From 20f2c86a511f7913cf858e7bd3668b0b59663ba0 Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Thu, 28 May 2015 09:11:32 +0100 Subject: Clean up atari source linendings, whitespace damage and executable status --- atari/about.h | 11 +- atari/bitmap.c | 0 atari/bitmap.h | 0 atari/certview.c | 593 +++--- atari/certview.h | 18 +- atari/clipboard.c | 176 +- atari/clipboard.h | 46 +- atari/cookies.c | 1 + atari/cookies.h | 54 +- atari/ctxmenu.h | 44 +- atari/deskmenu.c | 305 ++- atari/deskmenu.h | 11 +- atari/download.c | 0 atari/download.h | 114 +- atari/encoding.c | 117 +- atari/file.h | 10 +- atari/filetype.c | 0 atari/findfile.c | 0 atari/findfile.h | 1 - atari/font.c | 143 +- atari/font.h | 47 +- atari/gui.h | 0 atari/history.c | 64 +- atari/history.h | 56 +- atari/hotlist.c | 146 +- atari/hotlist.h | 94 +- atari/login.c | 0 atari/login.h | 52 +- atari/misc.c | 0 atari/misc.h | 0 atari/options.h | 0 atari/osspec.c | 13 +- atari/osspec.h | 81 +- atari/plot/eddi.h | 0 atari/plot/eddi.s | 0 atari/plot/font_freetype.c | 1038 +++++----- atari/plot/font_freetype.h | 101 +- atari/plot/font_internal.c | 4703 ++++++++++++++++++++++---------------------- atari/plot/font_internal.h | 63 +- atari/plot/font_vdi.c | 5 +- atari/plot/font_vdi.h | 45 +- atari/plot/fontplot.h | 18 + atari/plot/plot.c | 0 atari/plot/plot.h | 0 atari/redrawslots.c | 184 +- atari/redrawslots.h | 62 +- atari/rootwin.c | 0 atari/rootwin.h | 124 +- atari/save.h | 32 +- atari/schedule.c | 0 atari/schedule.h | 0 atari/search.c | 113 +- atari/settings.c | 19 + atari/settings.h | 20 +- atari/statusbar.c | 0 atari/statusbar.h | 75 +- atari/toolbar.c | 751 ++++--- atari/toolbar.h | 44 +- atari/treeview.h | 78 +- atari/verify_ssl.c | 0 atari/verify_ssl.h | 48 +- 61 files changed, 4862 insertions(+), 4858 deletions(-) mode change 100755 => 100644 atari/bitmap.c mode change 100755 => 100644 atari/bitmap.h mode change 100755 => 100644 atari/clipboard.h mode change 100755 => 100644 atari/download.c mode change 100755 => 100644 atari/download.h mode change 100755 => 100644 atari/filetype.c mode change 100755 => 100644 atari/findfile.c mode change 100755 => 100644 atari/findfile.h mode change 100755 => 100644 atari/font.c mode change 100755 => 100644 atari/font.h mode change 100755 => 100644 atari/gui.h mode change 100755 => 100644 atari/login.c mode change 100755 => 100644 atari/login.h mode change 100755 => 100644 atari/misc.c mode change 100755 => 100644 atari/misc.h mode change 100755 => 100644 atari/options.h mode change 100755 => 100644 atari/plot/eddi.h mode change 100755 => 100644 atari/plot/eddi.s mode change 100755 => 100644 atari/plot/font_freetype.c mode change 100755 => 100644 atari/plot/font_freetype.h mode change 100755 => 100644 atari/plot/font_vdi.c mode change 100755 => 100644 atari/plot/font_vdi.h mode change 100755 => 100644 atari/plot/plot.c mode change 100755 => 100644 atari/plot/plot.h mode change 100755 => 100644 atari/rootwin.c mode change 100755 => 100644 atari/rootwin.h mode change 100755 => 100644 atari/schedule.c mode change 100755 => 100644 atari/schedule.h mode change 100755 => 100644 atari/statusbar.c mode change 100755 => 100644 atari/statusbar.h mode change 100755 => 100644 atari/verify_ssl.c mode change 100755 => 100644 atari/verify_ssl.h (limited to 'atari') diff --git a/atari/about.h b/atari/about.h index db18250c5..dff6eaeee 100644 --- a/atari/about.h +++ b/atari/about.h @@ -16,10 +16,9 @@ * along with this program. If not, see . */ -#ifndef NS_ATARI_ABOUT_H_INCLUDED -#define NS_ATARI_ABOUT_H_INCLUDED +#ifndef NS_ATARI_ABOUT_H_INCLUDED +#define NS_ATARI_ABOUT_H_INCLUDED -void atari_about_show(void); - - -#endif // NS_ATARI_ABOUT_H_INCLUDED +void atari_about_show(void); + +#endif // NS_ATARI_ABOUT_H_INCLUDED diff --git a/atari/bitmap.c b/atari/bitmap.c old mode 100755 new mode 100644 diff --git a/atari/bitmap.h b/atari/bitmap.h old mode 100755 new mode 100644 diff --git a/atari/certview.c b/atari/certview.c index 15d57c236..c5d169a41 100644 --- a/atari/certview.c +++ b/atari/certview.c @@ -1,297 +1,296 @@ -/* - * Copyright 2013 Ole Loots - * - * This file is part of NetSurf, http://www.netsurf-browser.org/ - * - * NetSurf is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * NetSurf is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include -#include -#include -#include -#include -#include - -#include "utils/nsoption.h" -#include "utils/log.h" -#include "utils/messages.h" -#include "utils/utils.h" -#include "content/urldb.h" -#include "content/hlcache.h" -#include "desktop/sslcert_viewer.h" -#include "desktop/core_window.h" - -#include "atari/gui.h" -#include "atari/misc.h" -#include "atari/treeview.h" -#include "atari/certview.h" -#include "atari/findfile.h" -#include "atari/gemtk/gemtk.h" -#include "atari/res/netsurf.rsh" - -extern GRECT desk_area; - - -/* Setup Atari Treeview Callbacks: */ -static nserror atari_sslcert_viewer_init_phase2(struct core_window *cw, - struct core_window_callback_table * default_callbacks); -static void atari_sslcert_viewer_finish(struct core_window *cw); -static void atari_sslcert_viewer_keypress(struct core_window *cw, - uint32_t ucs4); -static void atari_sslcert_viewer_mouse_action(struct core_window *cw, - browser_mouse_state mouse, - int x, int y); -static void atari_sslcert_viewer_draw(struct core_window *cw, int x, - int y, struct rect *clip, - const struct redraw_context *ctx); -static short handle_event(GUIWIN *win, EVMULT_OUT *ev_out, short msg[8]); - -static struct atari_treeview_callbacks atari_sslcert_viewer_treeview_callbacks = { - .init_phase2 = atari_sslcert_viewer_init_phase2, - .finish = atari_sslcert_viewer_finish, - .draw = atari_sslcert_viewer_draw, - .keypress = atari_sslcert_viewer_keypress, - .mouse_action = atari_sslcert_viewer_mouse_action, - .gemtk_user_func = handle_event -}; - -/* static functions */ -static void atari_sslcert_viewer_destroy(struct atari_sslcert_viewer_s * cvwin); - - -static nserror atari_sslcert_viewer_init_phase2(struct core_window *cw, - struct core_window_callback_table *cb_t) -{ - struct atari_sslcert_viewer_s *cvwin; - struct sslcert_session_data *ssl_d; - - cvwin = (struct atari_sslcert_viewer_s *)atari_treeview_get_user_data(cw); - - assert(cvwin); - - ssl_d = cvwin->ssl_session_data; - - assert(ssl_d); - - LOG(("")); - - return(sslcert_viewer_init(cb_t, cw, ssl_d)); -} - -static void atari_sslcert_viewer_finish(struct core_window *cw) -{ - struct atari_sslcert_viewer_s *cvwin; - - assert(cw); - - cvwin = (struct atari_sslcert_viewer_s *)atari_treeview_get_user_data(cw); - - /* This will also free the session data: */ - sslcert_viewer_fini(cvwin->ssl_session_data); - - LOG(("")); -} - -static void atari_sslcert_viewer_draw(struct core_window *cw, int x, - int y, struct rect *clip, - const struct redraw_context *ctx) -{ - struct atari_sslcert_viewer_s *cvwin; - - assert(cw); - - cvwin = (struct atari_sslcert_viewer_s *)atari_treeview_get_user_data(cw); - - assert(cvwin); - - sslcert_viewer_redraw(cvwin->ssl_session_data, x, y, clip, ctx); -} - -static void atari_sslcert_viewer_keypress(struct core_window *cw, uint32_t ucs4) -{ - struct atari_sslcert_viewer_s *cvwin; - - assert(cw); - - cvwin = (struct atari_sslcert_viewer_s *)atari_treeview_get_user_data(cw); - - LOG(("ucs4: %lu\n", ucs4)); - sslcert_viewer_keypress(cvwin->ssl_session_data, ucs4); -} - -static void atari_sslcert_viewer_mouse_action(struct core_window *cw, - browser_mouse_state mouse, - int x, int y) -{ - struct atari_sslcert_viewer_s *cvwin; - - assert(cw); - - cvwin = (struct atari_sslcert_viewer_s *)atari_treeview_get_user_data(cw); - - sslcert_viewer_mouse_action(cvwin->ssl_session_data, mouse, x, y); -} - - -static short handle_event(GUIWIN *win, EVMULT_OUT *ev_out, short msg[8]) -{ - struct core_window *tv=NULL; - GRECT tb_area; - GUIWIN * gemtk_win; - struct atari_sslcert_viewer_s *cvwin = NULL; - short retval = 0; - OBJECT *toolbar; - - LOG(("")); - - if(ev_out->emo_events & MU_MESAG){ - switch (msg[0]) { - - case WM_TOOLBAR: - toolbar = gemtk_obj_get_tree(TOOLBAR_SSL_CERT); - LOG(("CERTVIEWER WM_TOOLBAR")); - tv = (struct core_window*) gemtk_wm_get_user_data(win); - assert(tv); - cvwin = (struct atari_sslcert_viewer_s *) - atari_treeview_get_user_data(tv); - switch (msg[4]) { - - case TOOLBAR_SSL_CERT_TRUSTED: - - if (toolbar[msg[4]].ob_state & OS_SELECTED) { - - } else { - - } - break; - } - - - gemtk_win = atari_treeview_get_gemtk_window(tv); - assert(gemtk_win); - //gemtk_obj_get_tree(TOOLBAR_HOTLIST)[msg[4]].ob_state &= ~OS_SELECTED; - atari_treeview_get_grect(tv, TREEVIEW_AREA_TOOLBAR, &tb_area); - evnt_timer(150); - gemtk_wm_exec_redraw(gemtk_win, &tb_area); - retval = 1; - break; - - case WM_CLOSED: - // TODO set perrmissions - toolbar = gemtk_obj_get_tree(TOOLBAR_SSL_CERT); - tv = (struct core_window*) gemtk_wm_get_user_data(win); - assert(tv); - cvwin = (struct atari_sslcert_viewer_s *) - atari_treeview_get_user_data(tv); - if (toolbar[TOOLBAR_SSL_CERT_TRUSTED].ob_state & OS_SELECTED) { - sslcert_viewer_accept(cvwin->ssl_session_data); - } else { - sslcert_viewer_reject(cvwin->ssl_session_data); - } - atari_sslcert_viewer_destroy(cvwin); - retval = 1; - break; - - default: break; - } - } - - return(retval); -} - -static void atari_sslcert_viewer_init(struct atari_sslcert_viewer_s * cvwin, - struct sslcert_session_data *ssl_d) -{ - assert(cvwin->init == false); - assert(cvwin->window == NULL); - assert(cvwin->tv == NULL); - - int flags = ATARI_TREEVIEW_WIDGETS; - short handle = -1; - OBJECT * tree = gemtk_obj_get_tree(TOOLBAR_SSL_CERT); - assert( tree ); - - handle = wind_create(flags, 0, 0, desk_area.g_w, desk_area.g_h); - cvwin->window = gemtk_wm_add(handle, - GEMTK_WM_FLAG_DEFAULTS, NULL); - if (cvwin->window == NULL ) { - gemtk_msg_box_show(GEMTK_MSG_BOX_ALERT, - "Failed to allocate Treeview:\nCertviewer"); - return; - } - wind_set_str(handle, WF_NAME, (char*)"SSL Certificate"); - gemtk_wm_set_toolbar(cvwin->window, tree, 0, 0); - gemtk_wm_unlink(cvwin->window); - - cvwin->ssl_session_data = ssl_d; - cvwin->tv = atari_treeview_create(cvwin->window, - &atari_sslcert_viewer_treeview_callbacks, - cvwin, flags); - - if (cvwin->tv == NULL) { - /* handle it properly, clean up previous allocs */ - LOG(("Failed to allocate treeview")); - return; - } - - cvwin->init = true; -} - -/* -* documented in certview.h -*/ -void atari_sslcert_viewer_open(struct sslcert_session_data *ssl_d) -{ - struct atari_sslcert_viewer_s * cvwin; - - cvwin = calloc(1, sizeof(struct atari_sslcert_viewer_s)); - - assert(cvwin); - - atari_sslcert_viewer_init(cvwin, ssl_d); - - if (atari_treeview_is_open(cvwin->tv) == false) { - - GRECT pos; - pos.g_x = desk_area.g_w - desk_area.g_w / 4; - pos.g_y = desk_area.g_y; - pos.g_w = desk_area.g_w / 4; - pos.g_h = desk_area.g_h; - - atari_treeview_open(cvwin->tv, &pos); - } else { - wind_set(gemtk_wm_get_handle(cvwin->window), WF_TOP, 1, 0, - 0, 0); - } -} - - -static void atari_sslcert_viewer_destroy(struct atari_sslcert_viewer_s * cvwin) -{ - assert(cvwin); - assert(cvwin->init); - assert(cvwin->window); - - LOG(("")); - - if (atari_treeview_is_open(cvwin->tv)) - atari_treeview_close(cvwin->tv); - wind_delete(gemtk_wm_get_handle(cvwin->window)); - gemtk_wm_remove(cvwin->window); - cvwin->window = NULL; - atari_treeview_delete(cvwin->tv); - free(cvwin); - LOG(("done")); -} - +/* + * Copyright 2013 Ole Loots + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +#include +#include +#include +#include +#include + +#include "utils/nsoption.h" +#include "utils/log.h" +#include "utils/messages.h" +#include "utils/utils.h" +#include "content/urldb.h" +#include "content/hlcache.h" +#include "desktop/sslcert_viewer.h" +#include "desktop/core_window.h" + +#include "atari/gui.h" +#include "atari/misc.h" +#include "atari/treeview.h" +#include "atari/certview.h" +#include "atari/findfile.h" +#include "atari/gemtk/gemtk.h" +#include "atari/res/netsurf.rsh" + +extern GRECT desk_area; + + +/* Setup Atari Treeview Callbacks: */ +static nserror atari_sslcert_viewer_init_phase2(struct core_window *cw, + struct core_window_callback_table * default_callbacks); +static void atari_sslcert_viewer_finish(struct core_window *cw); +static void atari_sslcert_viewer_keypress(struct core_window *cw, + uint32_t ucs4); +static void atari_sslcert_viewer_mouse_action(struct core_window *cw, + browser_mouse_state mouse, + int x, int y); +static void atari_sslcert_viewer_draw(struct core_window *cw, int x, + int y, struct rect *clip, + const struct redraw_context *ctx); +static short handle_event(GUIWIN *win, EVMULT_OUT *ev_out, short msg[8]); + +static struct atari_treeview_callbacks atari_sslcert_viewer_treeview_callbacks = { + .init_phase2 = atari_sslcert_viewer_init_phase2, + .finish = atari_sslcert_viewer_finish, + .draw = atari_sslcert_viewer_draw, + .keypress = atari_sslcert_viewer_keypress, + .mouse_action = atari_sslcert_viewer_mouse_action, + .gemtk_user_func = handle_event +}; + +/* static functions */ +static void atari_sslcert_viewer_destroy(struct atari_sslcert_viewer_s * cvwin); + + +static nserror atari_sslcert_viewer_init_phase2(struct core_window *cw, + struct core_window_callback_table *cb_t) +{ + struct atari_sslcert_viewer_s *cvwin; + struct sslcert_session_data *ssl_d; + + cvwin = (struct atari_sslcert_viewer_s *)atari_treeview_get_user_data(cw); + + assert(cvwin); + + ssl_d = cvwin->ssl_session_data; + + assert(ssl_d); + + LOG(("")); + + return(sslcert_viewer_init(cb_t, cw, ssl_d)); +} + +static void atari_sslcert_viewer_finish(struct core_window *cw) +{ + struct atari_sslcert_viewer_s *cvwin; + + assert(cw); + + cvwin = (struct atari_sslcert_viewer_s *)atari_treeview_get_user_data(cw); + + /* This will also free the session data: */ + sslcert_viewer_fini(cvwin->ssl_session_data); + + LOG(("")); +} + +static void atari_sslcert_viewer_draw(struct core_window *cw, int x, + int y, struct rect *clip, + const struct redraw_context *ctx) +{ + struct atari_sslcert_viewer_s *cvwin; + + assert(cw); + + cvwin = (struct atari_sslcert_viewer_s *)atari_treeview_get_user_data(cw); + + assert(cvwin); + + sslcert_viewer_redraw(cvwin->ssl_session_data, x, y, clip, ctx); +} + +static void atari_sslcert_viewer_keypress(struct core_window *cw, uint32_t ucs4) +{ + struct atari_sslcert_viewer_s *cvwin; + + assert(cw); + + cvwin = (struct atari_sslcert_viewer_s *)atari_treeview_get_user_data(cw); + + LOG(("ucs4: %lu\n", ucs4)); + sslcert_viewer_keypress(cvwin->ssl_session_data, ucs4); +} + +static void atari_sslcert_viewer_mouse_action(struct core_window *cw, + browser_mouse_state mouse, + int x, int y) +{ + struct atari_sslcert_viewer_s *cvwin; + + assert(cw); + + cvwin = (struct atari_sslcert_viewer_s *)atari_treeview_get_user_data(cw); + + sslcert_viewer_mouse_action(cvwin->ssl_session_data, mouse, x, y); +} + + +static short handle_event(GUIWIN *win, EVMULT_OUT *ev_out, short msg[8]) +{ + struct core_window *tv=NULL; + GRECT tb_area; + GUIWIN * gemtk_win; + struct atari_sslcert_viewer_s *cvwin = NULL; + short retval = 0; + OBJECT *toolbar; + + LOG(("")); + + if(ev_out->emo_events & MU_MESAG){ + switch (msg[0]) { + + case WM_TOOLBAR: + toolbar = gemtk_obj_get_tree(TOOLBAR_SSL_CERT); + LOG(("CERTVIEWER WM_TOOLBAR")); + tv = (struct core_window*) gemtk_wm_get_user_data(win); + assert(tv); + cvwin = (struct atari_sslcert_viewer_s *) + atari_treeview_get_user_data(tv); + switch (msg[4]) { + + case TOOLBAR_SSL_CERT_TRUSTED: + + if (toolbar[msg[4]].ob_state & OS_SELECTED) { + + } else { + + } + break; + } + + + gemtk_win = atari_treeview_get_gemtk_window(tv); + assert(gemtk_win); + //gemtk_obj_get_tree(TOOLBAR_HOTLIST)[msg[4]].ob_state &= ~OS_SELECTED; + atari_treeview_get_grect(tv, TREEVIEW_AREA_TOOLBAR, &tb_area); + evnt_timer(150); + gemtk_wm_exec_redraw(gemtk_win, &tb_area); + retval = 1; + break; + + case WM_CLOSED: + // TODO set perrmissions + toolbar = gemtk_obj_get_tree(TOOLBAR_SSL_CERT); + tv = (struct core_window*) gemtk_wm_get_user_data(win); + assert(tv); + cvwin = (struct atari_sslcert_viewer_s *) + atari_treeview_get_user_data(tv); + if (toolbar[TOOLBAR_SSL_CERT_TRUSTED].ob_state & OS_SELECTED) { + sslcert_viewer_accept(cvwin->ssl_session_data); + } else { + sslcert_viewer_reject(cvwin->ssl_session_data); + } + atari_sslcert_viewer_destroy(cvwin); + retval = 1; + break; + + default: break; + } + } + + return(retval); +} + +static void atari_sslcert_viewer_init(struct atari_sslcert_viewer_s * cvwin, + struct sslcert_session_data *ssl_d) +{ + assert(cvwin->init == false); + assert(cvwin->window == NULL); + assert(cvwin->tv == NULL); + + int flags = ATARI_TREEVIEW_WIDGETS; + short handle = -1; + OBJECT * tree = gemtk_obj_get_tree(TOOLBAR_SSL_CERT); + assert( tree ); + + handle = wind_create(flags, 0, 0, desk_area.g_w, desk_area.g_h); + cvwin->window = gemtk_wm_add(handle, + GEMTK_WM_FLAG_DEFAULTS, NULL); + if (cvwin->window == NULL ) { + gemtk_msg_box_show(GEMTK_MSG_BOX_ALERT, + "Failed to allocate Treeview:\nCertviewer"); + return; + } + wind_set_str(handle, WF_NAME, (char*)"SSL Certificate"); + gemtk_wm_set_toolbar(cvwin->window, tree, 0, 0); + gemtk_wm_unlink(cvwin->window); + + cvwin->ssl_session_data = ssl_d; + cvwin->tv = atari_treeview_create(cvwin->window, + &atari_sslcert_viewer_treeview_callbacks, + cvwin, flags); + + if (cvwin->tv == NULL) { + /* handle it properly, clean up previous allocs */ + LOG(("Failed to allocate treeview")); + return; + } + + cvwin->init = true; +} + +/* + * documented in certview.h + */ +void atari_sslcert_viewer_open(struct sslcert_session_data *ssl_d) +{ + struct atari_sslcert_viewer_s * cvwin; + + cvwin = calloc(1, sizeof(struct atari_sslcert_viewer_s)); + + assert(cvwin); + + atari_sslcert_viewer_init(cvwin, ssl_d); + + if (atari_treeview_is_open(cvwin->tv) == false) { + + GRECT pos; + pos.g_x = desk_area.g_w - desk_area.g_w / 4; + pos.g_y = desk_area.g_y; + pos.g_w = desk_area.g_w / 4; + pos.g_h = desk_area.g_h; + + atari_treeview_open(cvwin->tv, &pos); + } else { + wind_set(gemtk_wm_get_handle(cvwin->window), WF_TOP, 1, 0, + 0, 0); + } +} + + +static void atari_sslcert_viewer_destroy(struct atari_sslcert_viewer_s * cvwin) +{ + assert(cvwin); + assert(cvwin->init); + assert(cvwin->window); + + LOG(("")); + + if (atari_treeview_is_open(cvwin->tv)) + atari_treeview_close(cvwin->tv); + wind_delete(gemtk_wm_get_handle(cvwin->window)); + gemtk_wm_remove(cvwin->window); + cvwin->window = NULL; + atari_treeview_delete(cvwin->tv); + free(cvwin); + LOG(("done")); +} diff --git a/atari/certview.h b/atari/certview.h index fc30074f7..ff15d8076 100644 --- a/atari/certview.h +++ b/atari/certview.h @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -#ifndef CERTVIEW_H_INCLUDED +#ifndef CERTVIEW_H_INCLUDED #define CERTVIEW_H_INCLUDED #include @@ -28,24 +28,24 @@ #include "utils/nsoption.h" #include "utils/log.h" #include "desktop/sslcert_viewer.h" - + struct core_window; -struct atari_sslcert_viewer_s { - GUIWIN * window; +struct atari_sslcert_viewer_s { + GUIWIN * window; //struct atari_treeview_window *tv;/*< The hotlist treeview handle. */ struct core_window *tv; - struct sslcert_session_data *ssl_session_data; - bool init; -}; + struct sslcert_session_data *ssl_session_data; + bool init; +}; /** * Initializes and opens an certificate inspector window * \param ssl_d ssl session data created by sslcert_viewer_create_session_data * * The window takes ownership of the session data and free's the memory on exit. - */ + */ void atari_sslcert_viewer_open(struct sslcert_session_data *ssl_d); -#endif // CERTVIEW_H_INCLUDED +#endif // CERTVIEW_H_INCLUDED diff --git a/atari/clipboard.c b/atari/clipboard.c index e07e9d8d1..3464e4bca 100644 --- a/atari/clipboard.c +++ b/atari/clipboard.c @@ -1,88 +1,88 @@ -/* - * Copyright 2013 Ole Loots - * - * This file is part of NetSurf, http://www.netsurf-browser.org/ - * - * NetSurf is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * NetSurf is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Module Description: - * - * - * - */ - -#include -#include -#include -#include -#include -#include -#include "atari/clipboard.h" -#include "atari/gemtk/gemtk.h" - - -static int filesize(char * path) -{ - FILE *f; - int fs; - - f = fopen( path, "r+b"); - if(!f) - return(-1); - - fseek(f, 0L, SEEK_END); - fs = ftell(f); - fclose(f); - - return(fs); -} - -int scrap_txt_write(char *str) -{ - scrap_wtxt(str); - - - // Send SC_CHANGED message: - gemtk_send_msg(SC_CHANGED, 0, 2, 0, 0, 0, 0); - - return(0); - -} - -char *scrap_txt_read(void) -{ - char * buf = NULL; - char path[80]; - - if (get_scrapdir (path)) - { - int len; - strcat (path, "scrap.txt"); - len = filesize(path); - if(len > 0){ - int file; - if ((file = (int) Fopen (path, 0)) >= 0) - { - buf = malloc(len); - if(buf){ - len = Fread (file, len, buf); - Fclose (file); - buf[len] = '\0'; - return buf; - } - } - } - } - return buf; -} - +/* + * Copyright 2013 Ole Loots + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * Module Description: + * + * + * + */ + +#include +#include +#include +#include +#include +#include +#include "atari/clipboard.h" +#include "atari/gemtk/gemtk.h" + + +static int filesize(char * path) +{ + FILE *f; + int fs; + + f = fopen( path, "r+b"); + if(!f) + return(-1); + + fseek(f, 0L, SEEK_END); + fs = ftell(f); + fclose(f); + + return(fs); +} + +int scrap_txt_write(char *str) +{ + scrap_wtxt(str); + + + // Send SC_CHANGED message: + gemtk_send_msg(SC_CHANGED, 0, 2, 0, 0, 0, 0); + + return(0); + +} + +char *scrap_txt_read(void) +{ + char * buf = NULL; + char path[80]; + + if (get_scrapdir (path)) + { + int len; + strcat (path, "scrap.txt"); + len = filesize(path); + if(len > 0){ + int file; + if ((file = (int) Fopen (path, 0)) >= 0) + { + buf = malloc(len); + if(buf){ + len = Fread (file, len, buf); + Fclose (file); + buf[len] = '\0'; + return buf; + } + } + } + } + return buf; +} + diff --git a/atari/clipboard.h b/atari/clipboard.h old mode 100755 new mode 100644 index f35161e13..aeecc9a5f --- a/atari/clipboard.h +++ b/atari/clipboard.h @@ -1,25 +1,25 @@ -/* - * Copyright 2010 Ole Loots - * - * This file is part of NetSurf, http://www.netsurf-browser.org/ - * - * NetSurf is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * NetSurf is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef NS_ATARI_CLIPBOARD_H +/* + * Copyright 2010 Ole Loots + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef NS_ATARI_CLIPBOARD_H #define NS_ATARI_CLIPBOARD_H - -int scrap_txt_write(char *str); -char *scrap_txt_read(void); - + +int scrap_txt_write(char *str); +char *scrap_txt_read(void); + #endif diff --git a/atari/cookies.c b/atari/cookies.c index 579c23d05..0d4704e27 100644 --- a/atari/cookies.c +++ b/atari/cookies.c @@ -170,6 +170,7 @@ void atari_cookie_manager_init(void) } atari_cookie_manager.init = true; } + void atari_cookie_manager_open(void) { assert(atari_cookie_manager.init); diff --git a/atari/cookies.h b/atari/cookies.h index fc95f65fe..3649c8c60 100644 --- a/atari/cookies.h +++ b/atari/cookies.h @@ -1,19 +1,19 @@ -/* - * Copyright 2013 Ole Loots - * - * This file is part of NetSurf, http://www.netsurf-browser.org/ - * - * NetSurf is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * NetSurf is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . +/* + * Copyright 2013 Ole Loots + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ #ifndef NS_ATARI_COOKIE_MANAGER_H @@ -21,18 +21,18 @@ struct core_window; -struct atari_cookie_manager_s { - GUIWIN * window; +struct atari_cookie_manager_s { + GUIWIN * window; //struct atari_treeview_window * tv;/*< The hotlist treeview handle. */ - struct core_window *tv; - bool init; -}; - -extern struct atari_cookie_manager_s atari_cookie_manager; - -void atari_cookie_manager_init(void); -void atari_cookie_manager_open(void); -void atari_cookie_manager_close(void); + struct core_window *tv; + bool init; +}; + +extern struct atari_cookie_manager_s atari_cookie_manager; + +void atari_cookie_manager_init(void); +void atari_cookie_manager_open(void); +void atari_cookie_manager_close(void); void atari_cookie_manager_destroy(void); void atari_cookie_manager_redraw(void); diff --git a/atari/ctxmenu.h b/atari/ctxmenu.h index 079860d6b..73a96637a 100644 --- a/atari/ctxmenu.h +++ b/atari/ctxmenu.h @@ -1,24 +1,24 @@ -/* - * Copyright 2012 Ole Loots - * - * This file is part of NetSurf, http://www.netsurf-browser.org/ - * - * NetSurf is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * NetSurf is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . +/* + * Copyright 2012 Ole Loots + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#ifndef CTXMENU_H_INCLUDED -#define CTXMENU_H_INCLUDED - -void context_popup( struct gui_window * gw, short x, short y ); - -#endif // CTXMENU_H_INCLUDED +#ifndef CTXMENU_H_INCLUDED +#define CTXMENU_H_INCLUDED + +void context_popup( struct gui_window * gw, short x, short y ); + +#endif // CTXMENU_H_INCLUDED diff --git a/atari/deskmenu.c b/atari/deskmenu.c index 91a1d994c..98bb02e64 100644 --- a/atari/deskmenu.c +++ b/atari/deskmenu.c @@ -132,7 +132,7 @@ struct s_menu_item_evnt menu_evnt_tbl[] = {T_EDIT, MAINMENU_M_FIND, menu_find, {0,NK_F4,0}, NULL}, {T_VIEW, MAINMENU_M_RELOAD, menu_reload, {0,NK_F5,0}, NULL}, {T_VIEW, MAINMENU_INC_SCALE, menu_inc_scale, {'+',0,K_CTRL}, NULL}, - {T_VIEW, MAINMENU_DEC_SCALE, menu_dec_scale, {'-',0,K_CTRL}, NULL}, + {T_VIEW, MAINMENU_DEC_SCALE, menu_dec_scale, {'-',0,K_CTRL}, NULL}, {T_VIEW, MAINMENU_M_TOOLBARS, menu_toolbars, {0,NK_F1,K_CTRL}, NULL}, {T_VIEW, MAINMENU_M_SAVEWIN, menu_savewin, {0,0,0}, NULL}, {T_VIEW, MAINMENU_M_DEBUG_RENDER, menu_debug_render, {0,0,0}, NULL}, @@ -155,46 +155,46 @@ struct s_menu_item_evnt menu_evnt_tbl[] = /* -static void __CDECL evnt_menu(WINDOW * win, short buff[8]) -{ - int title = buff[3]; - INT16 x,y; - char *str; - struct gui_window * gw = window_list; - int i=0; - - deskmenu_dispatch_item(buff[3], buff[4]); -} + static void __CDECL evnt_menu(WINDOW * win, short buff[8]) + { + int title = buff[3]; + INT16 x,y; + char *str; + struct gui_window * gw = window_list; + int i=0; + + deskmenu_dispatch_item(buff[3], buff[4]); + } */ /* - Menu item event handlers: + Menu item event handlers: */ static void __CDECL menu_about(short item, short title, void *data) { /* - nsurl *url; - nserror error; - char buf[PATH_MAX]; - - LOG(("%s", __FUNCTION__)); - strcpy((char*)&buf, "file://"); - strncat((char*)&buf, (char*)"./doc/README.TXT", - PATH_MAX - (strlen("file://")+1) ); - - error = nsurl_create(buf, &url); - if (error == NSERROR_OK) { - error = browser_window_create(BW_CREATE_HISTORY, - url, - NULL, - NULL, - NULL); - nsurl_unref(url); - } - if (error != NSERROR_OK) { - warn_user(messages_get_errorcode(error), 0); - } + nsurl *url; + nserror error; + char buf[PATH_MAX]; + + LOG(("%s", __FUNCTION__)); + strcpy((char*)&buf, "file://"); + strncat((char*)&buf, (char*)"./doc/README.TXT", + PATH_MAX - (strlen("file://")+1) ); + + error = nsurl_create(buf, &url); + if (error == NSERROR_OK) { + error = browser_window_create(BW_CREATE_HISTORY, + url, + NULL, + NULL, + NULL); + nsurl_unref(url); + } + if (error != NSERROR_OK) { + warn_user(messages_get_errorcode(error), 0); + } */ atari_about_show(); } @@ -307,7 +307,7 @@ static void __CDECL menu_save_page(short item, short title, void *data) if( path != NULL ){ save_complete(browser_window_get_content( - input_window->browser->bw), path, NULL); + input_window->browser->bw), path, NULL); } } @@ -365,7 +365,7 @@ static void __CDECL menu_stop(short item, short title, void *data) if( input_window == NULL ) return; - assert(input_window && input_window->root); + assert(input_window && input_window->root); toolbar_stop_click(input_window->root->toolbar); } @@ -385,8 +385,8 @@ static void __CDECL menu_inc_scale(short item, short title, void *data) return; browser_window_set_scale(input_window->browser->bw, - browser_window_get_scale(input_window->browser->bw) + 0.25, - true); + browser_window_get_scale(input_window->browser->bw) + 0.25, + true); } @@ -396,8 +396,8 @@ static void __CDECL menu_dec_scale(short item, short title, void *data) return; browser_window_set_scale(input_window->browser->bw, - browser_window_get_scale(input_window->browser->bw) - 0.25, - true); + browser_window_get_scale(input_window->browser->bw) - 0.25, + true); } @@ -419,7 +419,7 @@ static void __CDECL menu_savewin(short item, short title, void *data) if (input_window && input_window->browser) { GRECT rect; wind_get_grect(gemtk_wm_get_handle(input_window->root->win), WF_CURRXYWH, - &rect); + &rect); option_window_width = rect.g_w; option_window_height = rect.g_h; option_window_x = rect.g_x; @@ -439,13 +439,13 @@ static void __CDECL menu_debug_render(short item, short title, void *data) html_redraw_debug = !html_redraw_debug; if( input_window != NULL ) { if ( input_window->browser != NULL - && input_window->browser->bw != NULL) { + && input_window->browser->bw != NULL) { GRECT rect; window_get_grect(input_window->root, BROWSER_AREA_CONTENT, &rect); browser_window_reformat(input_window->browser->bw, false, - rect.g_w, rect.g_h ); + rect.g_w, rect.g_h ); menu_icheck(h_gem_menu, MAINMENU_M_DEBUG_RENDER, - (html_redraw_debug) ? 1 : 0); + (html_redraw_debug) ? 1 : 0); } } } @@ -454,14 +454,14 @@ static void __CDECL menu_fg_images(short item, short title, void *data) { nsoption_set_bool(foreground_images, !nsoption_bool(foreground_images)); menu_icheck(h_gem_menu, MAINMENU_M_FG_IMAGES, - (nsoption_bool(foreground_images)) ? 1 : 0); + (nsoption_bool(foreground_images)) ? 1 : 0); } static void __CDECL menu_bg_images(short item, short title, void *data) { nsoption_set_bool(background_images, !nsoption_bool(background_images)); menu_icheck(h_gem_menu, MAINMENU_M_BG_IMAGES, - (nsoption_bool(background_images)) ? 1 : 0); + (nsoption_bool(background_images)) ? 1 : 0); } static void __CDECL menu_back(short item, short title, void *data) @@ -509,7 +509,7 @@ static void __CDECL menu_add_bookmark(short item, short title, void *data) atari_hotlist_add_page( nsurl_access(browser_window_get_url(input_window->browser->bw)), NULL - ); + ); } } } @@ -539,27 +539,27 @@ static void __CDECL menu_help_content(short item, short title, void *data) } /* - Public deskmenu interface: + Public deskmenu interface: */ /* - Parse encoded menu key shortcut - - The format is: - - "[" - marks start of the shortcut - "@,^,<" - If the keyshortcut is only valid - with modifier keys, one of these characters must directly - follow the start mark. - Meaning: - @ -> Alternate - ^ -> Control - "#" - keycode or ascii character. - The value is handled as keycode if the character value - is <= 28 ( Atari chracter table ) - or if it is interpreted as function key string. - (strings: F1 - F10) + Parse encoded menu key shortcut + + The format is: + + "[" - marks start of the shortcut + "@,^,<" - If the keyshortcut is only valid + with modifier keys, one of these characters must directly + follow the start mark. + Meaning: + @ -> Alternate + ^ -> Control + "#" - keycode or ascii character. + The value is handled as keycode if the character value + is <= 28 ( Atari chracter table ) + or if it is interpreted as function key string. + (strings: F1 - F10) */ static void register_menu_str( struct s_menu_item_evnt * mi ) @@ -575,17 +575,17 @@ static void register_menu_str( struct s_menu_item_evnt * mi ) i = l = strlen(str); while (i > 2) { - if ((strncmp(" ", &str[i], 2) == 0) && (strlen(&str[i]) > 2)) { - // "Standard" Keyboard Shortcut Element found: - LOG(("Standard Keyboard Shortcut: \"%s\"\n", &str[i])); - x = i+2; - is_std_shortcut = true; - break; - } + if ((strncmp(" ", &str[i], 2) == 0) && (strlen(&str[i]) > 2)) { + // "Standard" Keyboard Shortcut Element found: + LOG(("Standard Keyboard Shortcut: \"%s\"\n", &str[i])); + x = i+2; + is_std_shortcut = true; + break; + } if( str[i] == '['){ - LOG(("Keyboard Shortcut: \"%s\"\n", &str[i])); - // "Custom" Keyboard Shortcut Element found (identified by [): + LOG(("Keyboard Shortcut: \"%s\"\n", &str[i])); + // "Custom" Keyboard Shortcut Element found (identified by [): x = i; break; } @@ -595,20 +595,20 @@ static void register_menu_str( struct s_menu_item_evnt * mi ) // Parse keyboard shortcut value: if( x > -1 ){ - if (is_std_shortcut == false) { - // create a new menu string to hide the "[" mark: - mi->menustr = malloc( l+1 ); - strcpy(mi->menustr, str); - mi->menustr[x]=' '; - x++; - } + if (is_std_shortcut == false) { + // create a new menu string to hide the "[" mark: + mi->menustr = malloc( l+1 ); + strcpy(mi->menustr, str); + mi->menustr[x]=' '; + x++; + } - // find & register modifiers: + // find & register modifiers: if (str[x] == '@') { accel->mod = K_ALT; if (is_std_shortcut == false) { - // only modify menu items when it is malloc'd: - mi->menustr[x] = 0x07; + // only modify menu items when it is malloc'd: + mi->menustr[x] = 0x07; } x++; } @@ -617,24 +617,24 @@ static void register_menu_str( struct s_menu_item_evnt * mi ) x++; } else if (str[x] == 0x01) { // the arrow up chracter (atari-st encoding) - accel->mod = K_LSHIFT; - x++; + accel->mod = K_LSHIFT; + x++; } - // find keycodes / chracters: + // find keycodes / chracters: if( str[x] <= 28 ){ // parse symbol switch( str[x] ){ - case 0x03: - accel->keycode = NK_RIGHT; + case 0x03: + accel->keycode = NK_RIGHT; break; - case 0x04: - accel->keycode = NK_LEFT; + case 0x04: + accel->keycode = NK_LEFT; break; - case 0x1B: - accel->keycode = NK_ESC; + case 0x1B: + accel->keycode = NK_ESC; break; - default: + default: break; } } else { @@ -646,13 +646,13 @@ static void register_menu_str( struct s_menu_item_evnt * mi ) } } else if (strncmp(&str[x], "Home", 4) == 0) { - accel->keycode = NK_CLRHOME; + accel->keycode = NK_CLRHOME; } else if (strncmp(&str[x], "Undo", 4) == 0) { - accel->keycode = NK_UNDO; + accel->keycode = NK_UNDO; } else if (strncmp(&str[x], "Help", 4) == 0) { - accel->keycode = NK_HELP; + accel->keycode = NK_HELP; } else { accel->ascii = str[x]; @@ -660,14 +660,14 @@ static void register_menu_str( struct s_menu_item_evnt * mi ) } LOG(("Registered keyboard shortcut for \"%s\" => mod: %d, " - "keycode: %d, ascii: %c\n", str, accel->mod, accel->keycode, - accel->ascii)); + "keycode: %d, ascii: %c\n", str, accel->mod, accel->keycode, + accel->ascii)); } } /** -* Setup & display an desktop menu. -*/ + * Setup & display an desktop menu. + */ void deskmenu_init(void) { @@ -682,15 +682,15 @@ void deskmenu_init(void) /* parse and update menu items: */ i = 0; while (menu_evnt_tbl[i].rid != -1) { - if(menu_evnt_tbl[i].rid > 0 && menu_evnt_tbl[i].title > 0){ - register_menu_str( &menu_evnt_tbl[i] ); - /* Update menu string if not null: */ - if( menu_evnt_tbl[i].menustr != NULL ){ - menu_text(h_gem_menu, menu_evnt_tbl[i].rid, - menu_evnt_tbl[i].menustr); - } - } - i++; + if(menu_evnt_tbl[i].rid > 0 && menu_evnt_tbl[i].title > 0){ + register_menu_str( &menu_evnt_tbl[i] ); + /* Update menu string if not null: */ + if( menu_evnt_tbl[i].menustr != NULL ){ + menu_text(h_gem_menu, menu_evnt_tbl[i].rid, + menu_evnt_tbl[i].menustr); + } + } + i++; } deskmenu_update(); /* Redraw menu: */ @@ -698,8 +698,8 @@ void deskmenu_init(void) } /** -* Uninstall the desktop menu -*/ + * Uninstall the desktop menu + */ void deskmenu_destroy(void) { int i; @@ -717,37 +717,37 @@ void deskmenu_destroy(void) } /** -* Return the deskmenu AES OBJECT tree -*/ + * Return the deskmenu AES OBJECT tree + */ OBJECT * deskmenu_get_obj_tree(void) { return(h_gem_menu); } /** -* Handle an menu item event -*/ + * Handle an menu item event + */ int deskmenu_dispatch_item(short title, short item) { int i=0; int retval = 0; OBJECT * menu_root = deskmenu_get_obj_tree(); - menu_tnormal(menu_root, item, 1); + menu_tnormal(menu_root, item, 1); menu_tnormal(menu_root, title, 1); menu_bar(menu_root, 1); // legacy code, is this sensible?: /* - while( gw ) { - window_set_focus( gw, WIDGET_NONE, NULL ); - gw = gw->next; - } + while( gw ) { + window_set_focus( gw, WIDGET_NONE, NULL ); + gw = gw->next; + } */ while (menu_evnt_tbl[i].rid != -1) { - if (menu_evnt_tbl[i].rid == item) { + if (menu_evnt_tbl[i].rid == item) { if (menu_evnt_tbl[i].menu_func != NULL) { menu_evnt_tbl[i].menu_func(item, title, NULL); } @@ -760,33 +760,33 @@ int deskmenu_dispatch_item(short title, short item) } /** -* Handle an keypress (check for accelerator) -*/ + * Handle an keypress (check for accelerator) + */ int deskmenu_dispatch_keypress(unsigned short kcode, unsigned short kstate, - unsigned short nkc) + unsigned short nkc) { char sascii; bool done = 0; int i = 0; - sascii = gemtk_keybd2ascii(kcode, 0); - if(sascii >= 'a' && sascii <= 'z'){ - sascii = gemtk_keybd2ascii(kcode, K_LSHIFT); - } + sascii = gemtk_keybd2ascii(kcode, 0); + if(sascii >= 'a' && sascii <= 'z'){ + sascii = gemtk_keybd2ascii(kcode, K_LSHIFT); + } /* Iterate through the menu function table: */ while( menu_evnt_tbl[i].rid != -1 && done == false) { if( kstate == menu_evnt_tbl[i].accel.mod - && menu_evnt_tbl[i].accel.ascii != 0) { + && menu_evnt_tbl[i].accel.ascii != 0) { if( menu_evnt_tbl[i].accel.ascii == sascii) { - if (menu_evnt_tbl[i].title > 0 && menu_evnt_tbl[i].rid > 0) { - deskmenu_dispatch_item(menu_evnt_tbl[i].title, - menu_evnt_tbl[i].rid); - } - else { - /* Keyboard shortcut not displayed within menu: */ - menu_evnt_tbl[i].menu_func(0, 0, NULL); - } + if (menu_evnt_tbl[i].title > 0 && menu_evnt_tbl[i].rid > 0) { + deskmenu_dispatch_item(menu_evnt_tbl[i].title, + menu_evnt_tbl[i].rid); + } + else { + /* Keyboard shortcut not displayed within menu: */ + menu_evnt_tbl[i].menu_func(0, 0, NULL); + } done = true; break; } @@ -794,17 +794,17 @@ int deskmenu_dispatch_keypress(unsigned short kcode, unsigned short kstate, /* the accel code hides in the keycode: */ if( menu_evnt_tbl[i].accel.keycode != 0) { if( menu_evnt_tbl[i].accel.keycode == (nkc & 0xFF) && - kstate == menu_evnt_tbl[i].accel.mod) { - if (menu_evnt_tbl[i].title > 0 && menu_evnt_tbl[i].rid > 0) { - deskmenu_dispatch_item(menu_evnt_tbl[i].title, - menu_evnt_tbl[i].rid); - } - else { - /* Keyboard shortcut not displayed within menu: */ - menu_evnt_tbl[i].menu_func(0, 0, NULL); - } - done = true; - break; + kstate == menu_evnt_tbl[i].accel.mod) { + if (menu_evnt_tbl[i].title > 0 && menu_evnt_tbl[i].rid > 0) { + deskmenu_dispatch_item(menu_evnt_tbl[i].title, + menu_evnt_tbl[i].rid); + } + else { + /* Keyboard shortcut not displayed within menu: */ + menu_evnt_tbl[i].menu_func(0, 0, NULL); + } + done = true; + break; } } } @@ -814,15 +814,14 @@ int deskmenu_dispatch_keypress(unsigned short kcode, unsigned short kstate, } /** -* Refresh the desk menu, reflecting netsurf current state. -*/ + * Refresh the desk menu, reflecting netsurf current state. + */ void deskmenu_update(void) { menu_icheck(h_gem_menu, MAINMENU_M_DEBUG_RENDER, (html_redraw_debug) ? 1 : 0); menu_icheck(h_gem_menu, MAINMENU_M_FG_IMAGES, - (nsoption_bool(foreground_images)) ? 1 : 0); + (nsoption_bool(foreground_images)) ? 1 : 0); menu_icheck(h_gem_menu, MAINMENU_M_BG_IMAGES, - (nsoption_bool(background_images)) ? 1 : 0); - menu_icheck(h_gem_menu, MAINMENU_M_VLOG, ((verbose_log == true) ? 1 : 0)); + (nsoption_bool(background_images)) ? 1 : 0); + menu_icheck(h_gem_menu, MAINMENU_M_VLOG, ((verbose_log == true) ? 1 : 0)); } - diff --git a/atari/deskmenu.h b/atari/deskmenu.h index 6ab00dcc9..d1b157a2d 100644 --- a/atari/deskmenu.h +++ b/atari/deskmenu.h @@ -1,12 +1,11 @@ -#ifndef DESKMENU_H_INCLUDED +#ifndef DESKMENU_H_INCLUDED #define DESKMENU_H_INCLUDED void deskmenu_init(void); void deskmenu_destroy(void); -int deskmenu_dispatch_item(short title, short item); -int deskmenu_dispatch_keypress(unsigned short kcode, unsigned short kstate, - unsigned short nkc); +int deskmenu_dispatch_item(short title, short item); +int deskmenu_dispatch_keypress(unsigned short kcode, unsigned short kstate, unsigned short nkc); OBJECT * deskmenu_get_obj_tree(void); void deskmenu_update( void ); - -#endif // DESKMENU_H_INCLUDED + +#endif // DESKMENU_H_INCLUDED diff --git a/atari/download.c b/atari/download.c old mode 100755 new mode 100644 diff --git a/atari/download.h b/atari/download.h old mode 100755 new mode 100644 index 82f89c050..a5be3257e --- a/atari/download.h +++ b/atari/download.h @@ -1,63 +1,63 @@ -/* - * Copyright 2010 Ole Loots - * - * This file is part of NetSurf, http://www.netsurf-browser.org/ - * - * NetSurf is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * NetSurf is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef NS_ATARI_DOWNLOAD_H -#define NS_ATARI_DOWNLOAD_H - +/* + * Copyright 2010 Ole Loots + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef NS_ATARI_DOWNLOAD_H +#define NS_ATARI_DOWNLOAD_H + extern struct gui_download_table *atari_download_table; -#define MAX_SLEN_LBL_DONE 64 -#define MAX_SLEN_LBL_PERCENT 5 -#define MAX_SLEN_LBL_SPEED 13 +#define MAX_SLEN_LBL_DONE 64 +#define MAX_SLEN_LBL_PERCENT 5 +#define MAX_SLEN_LBL_SPEED 13 #define MAX_SLEN_LBL_FILE 256 -#define MAX_SLEN_BT_ABORT 5 - -#define DOWNLOAD_BAR_MAX 300 - -typedef enum { - NSATARI_DOWNLOAD_NONE, - NSATARI_DOWNLOAD_WORKING, - NSATARI_DOWNLOAD_ERROR, - NSATARI_DOWNLOAD_COMPLETE, - NSATARI_DOWNLOAD_CANCELED -} nsatari_download_status; - -struct gui_download_window { - struct download_context *ctx; - struct gui_window * parent; +#define MAX_SLEN_BT_ABORT 5 + +#define DOWNLOAD_BAR_MAX 300 + +typedef enum { + NSATARI_DOWNLOAD_NONE, + NSATARI_DOWNLOAD_WORKING, + NSATARI_DOWNLOAD_ERROR, + NSATARI_DOWNLOAD_COMPLETE, + NSATARI_DOWNLOAD_CANCELED +} nsatari_download_status; + +struct gui_download_window { + struct download_context *ctx; + struct gui_window * parent; GUIWIN *guiwin; short aes_handle; - OBJECT *tree; - nsatari_download_status status; - char *destination; - FILE * fd; - char lbl_done[MAX_SLEN_LBL_DONE]; - char lbl_percent[MAX_SLEN_LBL_PERCENT]; - char lbl_speed[MAX_SLEN_LBL_SPEED]; - char lbl_file[MAX_SLEN_LBL_FILE]; - uint32_t start; - uint32_t lastrdw; - uint32_t size_total; - uint32_t size_downloaded; - char * fbuf; - size_t fbufsize; + OBJECT *tree; + nsatari_download_status status; + char *destination; + FILE * fd; + char lbl_done[MAX_SLEN_LBL_DONE]; + char lbl_percent[MAX_SLEN_LBL_PERCENT]; + char lbl_speed[MAX_SLEN_LBL_SPEED]; + char lbl_file[MAX_SLEN_LBL_FILE]; + uint32_t start; + uint32_t lastrdw; + uint32_t size_total; + uint32_t size_downloaded; + char * fbuf; + size_t fbufsize; bool abort; - bool close_on_finish; -}; - -#endif + bool close_on_finish; +}; + +#endif diff --git a/atari/encoding.c b/atari/encoding.c index 8afcbb650..9a16cbd4e 100644 --- a/atari/encoding.c +++ b/atari/encoding.c @@ -1,19 +1,19 @@ -/* - * Copyright 2012 Ole Loots - * - * This file is part of NetSurf, http://www.netsurf-browser.org/ - * - * NetSurf is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * NetSurf is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . +/* + * Copyright 2012 Ole Loots + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ #include @@ -23,52 +23,53 @@ #include "atari/encoding.h" - + /* TODO: this need a rework..., encoding to atari st doesn|t always work. -( gui_add_to_clipboard...) */ -nserror utf8_to_local_encoding(const char *string, - size_t len, - char **result) -{ - nserror r; - r = utf8_to_enc(string, "ATARIST", len, result); - if(r != NSERROR_OK) { - r = utf8_to_enc(string, "UTF-8", len, result); - assert( r == NSERROR_OK ); - } - return r; -} +( gui_add_to_clipboard...) */ +nserror utf8_to_local_encoding(const char *string, + size_t len, + char **result) +{ + nserror r; + r = utf8_to_enc(string, "ATARIST", len, result); + if (r != NSERROR_OK) { + r = utf8_to_enc(string, "UTF-8", len, result); + assert( r == NSERROR_OK ); + } + return r; +} nserror utf8_from_local_encoding(const char *string, size_t len, char **result) -{ - return utf8_from_enc(string, "ATARIST", len, result, NULL); -} - - -/* borrowed from highwire project: */ -static const uint16_t Atari_to_Unicode[] = { - /* .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F */ - /* 7F */ 0x0394, - /* 8. */ 0x00C7,0x00FC,0x00E9,0x00E2,0x00E4,0x00E0,0x00E5,0x00E7,0x00EA,0x00EB,0x00E8,0x00EF,0x00EE,0x00EC,0x00C4,0x00C5, - /* 9. */ 0x00C9,0x00E6,0x00C6,0x00F4,0x00F6,0x00F2,0x00FB,0x00F9,0x00FF,0x00D6,0x00DC,0x00A2,0x00A3,0x00A5,0x00DF,0x0192, - /* A. */ 0x00E1,0x00ED,0x00F3,0x00FA,0x00F1,0x00D1,0x00AA,0x00BA,0x00BF,0x2310,0x00AC,0x00BD,0x00BC,0x00A1,0x00AB,0x00BB, - /* B. */ 0x00C3,0x00F5,0x00D8,0x00F8,0x0153,0x0152,0x00C0,0x00C3,0x00D5,0x00A8,0x00B4,0x2020,0x00B6,0x00A9,0x00AE,0x2122, - /* C. */ 0x0133,0x0132,0x05D0,0x05D1,0x05D2,0x05D3,0x05D4,0x05D5,0x05D6,0x05D7,0x05D8,0x05D9,0x05DB,0x05DC,0x05DE,0x05E0, - /* D. */ 0x05E1,0x05E2,0x05E4,0x05E6,0x05E7,0x05E8,0x05E9,0x05EA,0x05DF,0x05DA,0x05DD,0x05E3,0x05E5,0x00A7,0x2038,0x221E, - /* E. */ 0x03B1,0x03B2,0x0393,0x03C0,0x03A3,0x03C3,0x00B5,0x03C4,0x03A6,0x0398,0x03A9,0x03B4,0x222E,0x03C6,0x2208,0x2229, - /* F. */ 0x2261,0x00B1,0x2265,0x2264,0x2320,0x2321,0x00F7,0x2248,0x00B0,0x2022,0x00B7,0x221A,0x207F,0x00B2,0x00B3,0x00AF -}; -#define BEG_Atari_to_Unicode 0x7F - -int atari_to_ucs4(unsigned char atari) -{ - uint32_t ucs4 = 0xfffd; - if ( atari >= BEG_Atari_to_Unicode && atari <= 0xFE ) - ucs4 = (int)Atari_to_Unicode[(short)atari - BEG_Atari_to_Unicode]; - else - ucs4 = (int)atari; - return( ucs4 ); +{ + return utf8_from_enc(string, "ATARIST", len, result, NULL); +} + + +/* borrowed from highwire project: */ +static const uint16_t Atari_to_Unicode[] = { + /* .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F */ + /* 7F */ 0x0394, + /* 8. */ 0x00C7,0x00FC,0x00E9,0x00E2,0x00E4,0x00E0,0x00E5,0x00E7,0x00EA,0x00EB,0x00E8,0x00EF,0x00EE,0x00EC,0x00C4,0x00C5, + /* 9. */ 0x00C9,0x00E6,0x00C6,0x00F4,0x00F6,0x00F2,0x00FB,0x00F9,0x00FF,0x00D6,0x00DC,0x00A2,0x00A3,0x00A5,0x00DF,0x0192, + /* A. */ 0x00E1,0x00ED,0x00F3,0x00FA,0x00F1,0x00D1,0x00AA,0x00BA,0x00BF,0x2310,0x00AC,0x00BD,0x00BC,0x00A1,0x00AB,0x00BB, + /* B. */ 0x00C3,0x00F5,0x00D8,0x00F8,0x0153,0x0152,0x00C0,0x00C3,0x00D5,0x00A8,0x00B4,0x2020,0x00B6,0x00A9,0x00AE,0x2122, + /* C. */ 0x0133,0x0132,0x05D0,0x05D1,0x05D2,0x05D3,0x05D4,0x05D5,0x05D6,0x05D7,0x05D8,0x05D9,0x05DB,0x05DC,0x05DE,0x05E0, + /* D. */ 0x05E1,0x05E2,0x05E4,0x05E6,0x05E7,0x05E8,0x05E9,0x05EA,0x05DF,0x05DA,0x05DD,0x05E3,0x05E5,0x00A7,0x2038,0x221E, + /* E. */ 0x03B1,0x03B2,0x0393,0x03C0,0x03A3,0x03C3,0x00B5,0x03C4,0x03A6,0x0398,0x03A9,0x03B4,0x222E,0x03C6,0x2208,0x2229, + /* F. */ 0x2261,0x00B1,0x2265,0x2264,0x2320,0x2321,0x00F7,0x2248,0x00B0,0x2022,0x00B7,0x221A,0x207F,0x00B2,0x00B3,0x00AF +}; +#define BEG_Atari_to_Unicode 0x7F + +int atari_to_ucs4(unsigned char atari) +{ + uint32_t ucs4 = 0xfffd; + if ( atari >= BEG_Atari_to_Unicode && atari <= 0xFE ) { + ucs4 = (int)Atari_to_Unicode[(short)atari - BEG_Atari_to_Unicode]; + } else { + ucs4 = (int)atari; + } + return( ucs4 ); } diff --git a/atari/file.h b/atari/file.h index 4428f2e82..b368567c7 100644 --- a/atari/file.h +++ b/atari/file.h @@ -16,12 +16,12 @@ * along with this program. If not, see . */ -#ifndef FILE_C_INCLUDED +#ifndef FILE_C_INCLUDED #define FILE_C_INCLUDED #include "utils/file.h" -struct gui_file_table *atari_file_table; - - -#endif // FILE_C_INCLUDED +struct gui_file_table *atari_file_table; + + +#endif /* FILE_C_INCLUDED */ diff --git a/atari/filetype.c b/atari/filetype.c old mode 100755 new mode 100644 diff --git a/atari/findfile.c b/atari/findfile.c old mode 100755 new mode 100644 diff --git a/atari/findfile.h b/atari/findfile.h old mode 100755 new mode 100644 index 9a6f7848a..9cda2a0be --- a/atari/findfile.h +++ b/atari/findfile.h @@ -23,5 +23,4 @@ extern char *atari_find_resource(char *buf, const char *filename, const char *def); char *local_file_to_url(const char *filename); - #endif /* NETSURF_ATARI_FINDFILE_H */ diff --git a/atari/font.c b/atari/font.c old mode 100755 new mode 100644 index 6b3cc6f77..729986ca6 --- a/atari/font.c +++ b/atari/font.c @@ -1,60 +1,42 @@ -/* - * Copyright 2010 Ole Loots - * - * This file is part of NetSurf, http://www.netsurf-browser.org/ - * - * NetSurf is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * NetSurf is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include -#include -/* - * Copyright 2012 Ole Loots - * - * This file is part of NetSurf, http://www.netsurf-browser.org/ - * - * NetSurf is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * NetSurf is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . +/* + * Copyright 2010 Ole Loots + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#include - -#include "desktop/font.h" -#include "utils/utf8.h" -#include "utils/log.h" -#include "utils/nsoption.h" -#include "desktop/mouse.h" -#include "desktop/plotters.h" - -#include "atari/gui.h" -#include "atari/plot/fontplot.h" -#include "atari/plot/plot.h" -#include "atari/findfile.h" -#include "atari/font.h" - -extern FONT_PLOTTER fplotter; - -static bool atari_font_position_in_string(const plot_font_style_t * fstyle,const char *string, - size_t length,int x, size_t *char_offset, int *actual_x ) +#include +#include +#include + +#include "desktop/font.h" +#include "utils/utf8.h" +#include "utils/log.h" +#include "utils/nsoption.h" +#include "desktop/mouse.h" +#include "desktop/plotters.h" + +#include "atari/gui.h" +#include "atari/plot/fontplot.h" +#include "atari/plot/plot.h" +#include "atari/findfile.h" +#include "atari/font.h" + +extern FONT_PLOTTER fplotter; + +static bool atari_font_position_in_string(const plot_font_style_t * fstyle,const char *string, + size_t length,int x, size_t *char_offset, int *actual_x ) { float scale = plot_get_scale(); @@ -64,13 +46,13 @@ static bool atari_font_position_in_string(const plot_font_style_t * fstyle,const fplotter->pixel_pos(fplotter, &newstyle, string, length, x, char_offset, actual_x); } else { fplotter->pixel_pos(fplotter, fstyle, string, length, x, char_offset, actual_x); - } - - return( true ); -} - -static bool atari_font_split( const plot_font_style_t * fstyle, const char *string, - size_t length,int x, size_t *char_offset, int *actual_x ) + } + + return( true ); +} + +static bool atari_font_split( const plot_font_style_t * fstyle, const char *string, + size_t length,int x, size_t *char_offset, int *actual_x ) { float scale = plot_get_scale(); @@ -83,13 +65,13 @@ static bool atari_font_split( const plot_font_style_t * fstyle, const char *stri fplotter->str_split(fplotter, fstyle, string, length, x, char_offset, actual_x); } - - - return( true ); -} - -static bool atari_font_width( const plot_font_style_t *fstyle, const char * str, - size_t length, int * width ) + + + return( true ); +} + +static bool atari_font_width( const plot_font_style_t *fstyle, const char * str, + size_t length, int * width ) { float scale = plot_get_scale(); @@ -100,15 +82,14 @@ static bool atari_font_width( const plot_font_style_t *fstyle, const char * str, } else { fplotter->str_width(fplotter, fstyle, str, length, width); } - - - return( true ); -} - -const struct font_functions nsfont = { - atari_font_width, - atari_font_position_in_string, - atari_font_split -}; - - + + + return( true ); +} + +const struct font_functions nsfont = { + atari_font_width, + atari_font_position_in_string, + atari_font_split +}; + diff --git a/atari/font.h b/atari/font.h old mode 100755 new mode 100644 index 2717497b4..065a35acc --- a/atari/font.h +++ b/atari/font.h @@ -1,25 +1,24 @@ -/* - * Copyright 2010 Ole Loots - * - * This file is part of NetSurf, http://www.netsurf-browser.org/ - * - * NetSurf is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * NetSurf is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef NS_ATARI_FONT_H -#define NS_ATARI_FONT_H +/* + * Copyright 2010 Ole Loots + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef NS_ATARI_FONT_H +#define NS_ATARI_FONT_H + + +#endif /* NETSURF_FB_FONT_H */ - - -#endif /* NETSURF_FB_FONT_H */ - diff --git a/atari/gui.h b/atari/gui.h old mode 100755 new mode 100644 diff --git a/atari/history.c b/atari/history.c index 329328a29..cb2ba9e17 100644 --- a/atari/history.c +++ b/atari/history.c @@ -16,8 +16,6 @@ * along with this program. If not, see . */ - - #include #include #include @@ -50,16 +48,16 @@ struct atari_global_history_s atari_global_history; /* Setup Atari Treeview Callbacks: */ static nserror atari_global_history_init_phase2(struct core_window *cw, - struct core_window_callback_table * default_callbacks); + struct core_window_callback_table * default_callbacks); static void atari_global_history_finish(struct core_window *cw); static void atari_global_history_keypress(struct core_window *cw, - uint32_t ucs4); + uint32_t ucs4); static void atari_global_history_mouse_action(struct core_window *cw, - browser_mouse_state mouse, - int x, int y); + browser_mouse_state mouse, + int x, int y); static void atari_global_history_draw(struct core_window *cw, int x, - int y, struct rect *clip, - const struct redraw_context *ctx); + int y, struct rect *clip, + const struct redraw_context *ctx); static short handle_event(GUIWIN *win, EVMULT_OUT *ev_out, short msg[8]); static struct atari_treeview_callbacks atari_global_history_treeview_callbacks = { @@ -72,7 +70,7 @@ static struct atari_treeview_callbacks atari_global_history_treeview_callbacks = }; static nserror atari_global_history_init_phase2(struct core_window *cw, - struct core_window_callback_table *cb_t) + struct core_window_callback_table *cb_t) { LOG(("")); return(global_history_init(cb_t, cw)); @@ -85,8 +83,8 @@ static void atari_global_history_finish(struct core_window *cw) } static void atari_global_history_draw(struct core_window *cw, int x, - int y, struct rect *clip, - const struct redraw_context *ctx) + int y, struct rect *clip, + const struct redraw_context *ctx) { global_history_redraw(x, y, clip, ctx); } @@ -98,8 +96,8 @@ static void atari_global_history_keypress(struct core_window *cw, uint32_t ucs4) } static void atari_global_history_mouse_action(struct core_window *cw, - browser_mouse_state mouse, - int x, int y) + browser_mouse_state mouse, + int x, int y) { LOG(("x: %d, y: %d\n", x, y)); @@ -115,14 +113,14 @@ static short handle_event(GUIWIN *win, EVMULT_OUT *ev_out, short msg[8]) LOG(("")); - if(ev_out->emo_events & MU_MESAG){ + if (ev_out->emo_events & MU_MESAG) { switch (msg[0]) { - case WM_CLOSED: - atari_global_history_close(); - retval = 1; + case WM_CLOSED: + atari_global_history_close(); + retval = 1; break; - default: break; + default: break; } } @@ -134,9 +132,7 @@ static short handle_event(GUIWIN *win, EVMULT_OUT *ev_out, short msg[8]) void atari_global_history_init(void) { if (atari_global_history.init == false) { - - - if( atari_global_history.window == NULL ){ + if( atari_global_history.window == NULL ) { int flags = ATARI_TREEVIEW_WIDGETS; short handle = -1; OBJECT * tree = gemtk_obj_get_tree(TOOLBAR_HISTORY); @@ -146,7 +142,7 @@ void atari_global_history_init(void) atari_global_history.window = gemtk_wm_add(handle, GEMTK_WM_FLAG_DEFAULTS, NULL); if( atari_global_history.window == NULL ) { gemtk_msg_box_show(GEMTK_MSG_BOX_ALERT, - "Failed to allocate History"); + "Failed to allocate History"); return; } wind_set_str(handle, WF_NAME, (char*)messages_get("History")); @@ -154,18 +150,15 @@ void atari_global_history_init(void) gemtk_wm_unlink(atari_global_history.window); atari_global_history.tv = atari_treeview_create( - atari_global_history.window, - &atari_global_history_treeview_callbacks, - NULL, flags); + atari_global_history.window, + &atari_global_history_treeview_callbacks, + NULL, flags); if (atari_global_history.tv == NULL) { /* handle it properly, clean up previous allocs */ LOG(("Failed to allocate treeview")); return; } - - } else { - } } atari_global_history.init = true; @@ -181,11 +174,11 @@ void atari_global_history_open(void) if (atari_treeview_is_open(atari_global_history.tv) == false) { - GRECT pos; - pos.g_x = desk_area.g_w - desk_area.g_w / 4; - pos.g_y = desk_area.g_y; - pos.g_w = desk_area.g_w / 4; - pos.g_h = desk_area.g_h; + GRECT pos; + pos.g_x = desk_area.g_w - desk_area.g_w / 4; + pos.g_y = desk_area.g_y; + pos.g_w = desk_area.g_w / 4; + pos.g_h = desk_area.g_h; atari_treeview_open(atari_global_history.tv, &pos); } else { @@ -201,10 +194,11 @@ void atari_global_history_close(void) void atari_global_history_destroy(void) { - if( atari_global_history.init == false) { + if ( atari_global_history.init == false) { return; } - if( atari_global_history.window != NULL ) { + + if ( atari_global_history.window != NULL ) { if (atari_treeview_is_open(atari_global_history.tv)) atari_global_history_close(); wind_delete(gemtk_wm_get_handle(atari_global_history.window)); diff --git a/atari/history.h b/atari/history.h index 919407c63..06a5d32f2 100644 --- a/atari/history.h +++ b/atari/history.h @@ -1,19 +1,19 @@ -/* - * Copyright 2013 Ole Loots - * - * This file is part of NetSurf, http://www.netsurf-browser.org/ - * - * NetSurf is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * NetSurf is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . +/* + * Copyright 2013 Ole Loots + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ #ifndef NS_ATARI_HISTORY_H @@ -21,18 +21,18 @@ struct core_window; -struct atari_global_history_s { - GUIWIN * window; - //struct atari_treeview_window * tv;/*< The hotlist treeview handle. */ - struct core_window *tv; - bool init; -}; - -extern struct atari_global_history_s atari_global_history; - -void atari_global_history_init(void); -void atari_global_history_open(void); -void atari_global_history_close(void); +struct atari_global_history_s { + GUIWIN * window; + //struct atari_treeview_window * tv; /*< The hotlist treeview handle. */ + struct core_window *tv; + bool init; +}; + +extern struct atari_global_history_s atari_global_history; + +void atari_global_history_init(void); +void atari_global_history_open(void); +void atari_global_history_close(void); void atari_global_history_destroy(void); void atari_global_history_redraw(void); diff --git a/atari/hotlist.c b/atari/hotlist.c index d314fcb81..621d68891 100644 --- a/atari/hotlist.c +++ b/atari/hotlist.c @@ -16,7 +16,6 @@ * along with this program. If not, see . */ - #include #include #include @@ -49,16 +48,16 @@ struct atari_hotlist hl; /* Setup Atari Treeview Callbacks: */ static nserror atari_hotlist_init_phase2(struct core_window *cw, - struct core_window_callback_table * default_callbacks); + struct core_window_callback_table * default_callbacks); static void atari_hotlist_finish(struct core_window *cw); static void atari_hotlist_keypress(struct core_window *cw, - uint32_t ucs4); + uint32_t ucs4); static void atari_hotlist_mouse_action(struct core_window *cw, - browser_mouse_state mouse, - int x, int y); + browser_mouse_state mouse, + int x, int y); static void atari_hotlist_draw(struct core_window *cw, int x, - int y, struct rect *clip, - const struct redraw_context *ctx); + int y, struct rect *clip, + const struct redraw_context *ctx); static short handle_event(GUIWIN *win, EVMULT_OUT *ev_out, short msg[8]); static struct atari_treeview_callbacks atari_hotlist_treeview_callbacks = { @@ -71,7 +70,7 @@ static struct atari_treeview_callbacks atari_hotlist_treeview_callbacks = { }; static nserror atari_hotlist_init_phase2(struct core_window *cw, - struct core_window_callback_table *cb_t) + struct core_window_callback_table *cb_t) { LOG(("")); return(hotlist_init(cb_t, cw, hl.path)); @@ -84,8 +83,8 @@ static void atari_hotlist_finish(struct core_window *cw) } static void atari_hotlist_draw(struct core_window *cw, int x, - int y, struct rect *clip, - const struct redraw_context *ctx) + int y, struct rect *clip, + const struct redraw_context *ctx) { hotlist_redraw(x, y, clip, ctx); } @@ -102,8 +101,8 @@ static void atari_hotlist_keypress(struct core_window *cw, uint32_t ucs4) } static void atari_hotlist_mouse_action(struct core_window *cw, - browser_mouse_state mouse, - int x, int y) + browser_mouse_state mouse, + int x, int y) { LOG(("x: %d, y: %d\n", x, y)); @@ -129,59 +128,59 @@ static short handle_event(GUIWIN *win, EVMULT_OUT *ev_out, short msg[8]) tv = (struct atari_treeview_window*) gemtk_wm_get_user_data(win); cw = (struct core_window *)tv; - if(ev_out->emo_events & MU_MESAG){ + if (ev_out->emo_events & MU_MESAG) { switch (msg[0]) { - case WM_TOOLBAR: - LOG(("WM_TOOLBAR")); - - toolbar = gemtk_obj_get_tree(TOOLBAR_HOTLIST); - - assert(toolbar); - assert(tv); - - switch (msg[4]) { - case TOOLBAR_HOTLIST_CREATE_FOLDER: - hotlist_add_folder(NULL, 0, 0); - break; - - case TOOLBAR_HOTLIST_ADD: - gw = gui_get_input_window(); - if(gw && gw->browser){ - cur_url = gui_window_get_url(gw); - cur_title = gui_window_get_title(gw); - // TODO: read language string. - cur_title = (cur_title ? cur_title : (char*)"New bookmark"); - } else { - cur_url = (char*)"http://www"; - } - atari_hotlist_add_page(cur_url, cur_title); - break; - - case TOOLBAR_HOTLIST_DELETE: - hotlist_keypress(NS_KEY_DELETE_LEFT); - break; - - case TOOLBAR_HOTLIST_EDIT: - hotlist_edit_selection(); - break; + case WM_TOOLBAR: + LOG(("WM_TOOLBAR")); + + toolbar = gemtk_obj_get_tree(TOOLBAR_HOTLIST); + + assert(toolbar); + assert(tv); + + switch (msg[4]) { + case TOOLBAR_HOTLIST_CREATE_FOLDER: + hotlist_add_folder(NULL, 0, 0); + break; + + case TOOLBAR_HOTLIST_ADD: + gw = gui_get_input_window(); + if(gw && gw->browser){ + cur_url = gui_window_get_url(gw); + cur_title = gui_window_get_title(gw); + // TODO: read language string. + cur_title = (cur_title ? cur_title : (char*)"New bookmark"); + } else { + cur_url = (char*)"http://www"; } + atari_hotlist_add_page(cur_url, cur_title); + break; + + case TOOLBAR_HOTLIST_DELETE: + hotlist_keypress(NS_KEY_DELETE_LEFT); + break; - gemtk_win = atari_treeview_get_gemtk_window(cw); - assert(gemtk_win); - toolbar[msg[4]].ob_state &= ~OS_SELECTED; - atari_treeview_get_grect(cw, TREEVIEW_AREA_TOOLBAR, &tb_area); - evnt_timer(150); - gemtk_wm_exec_redraw(gemtk_win, &tb_area); - retval = 1; + case TOOLBAR_HOTLIST_EDIT: + hotlist_edit_selection(); + break; + } + + gemtk_win = atari_treeview_get_gemtk_window(cw); + assert(gemtk_win); + toolbar[msg[4]].ob_state &= ~OS_SELECTED; + atari_treeview_get_grect(cw, TREEVIEW_AREA_TOOLBAR, &tb_area); + evnt_timer(150); + gemtk_wm_exec_redraw(gemtk_win, &tb_area); + retval = 1; break; - case WM_CLOSED: - atari_hotlist_close(); - retval = 1; + case WM_CLOSED: + atari_hotlist_close(); + retval = 1; break; - default: break; + default: break; } } @@ -211,7 +210,7 @@ void atari_hotlist_init(void) hl.window = gemtk_wm_add(handle, GEMTK_WM_FLAG_DEFAULTS, NULL); if( hl.window == NULL ) { gemtk_msg_box_show(GEMTK_MSG_BOX_ALERT, - "Failed to allocate Hotlist"); + "Failed to allocate Hotlist"); return; } wind_set_str(handle, WF_NAME, (char*)messages_get("Hotlist")); @@ -220,7 +219,7 @@ void atari_hotlist_init(void) tree_hotlist_path = (const char*)&hl.path; hl.tv = atari_treeview_create(hl.window, &atari_hotlist_treeview_callbacks, - NULL, flags); + NULL, flags); if (hl.tv == NULL) { /* handle it properly, clean up previous allocs */ @@ -244,11 +243,11 @@ void atari_hotlist_open(void) if (atari_treeview_is_open(hl.tv) == false) { - GRECT pos; - pos.g_x = desk_area.g_w - desk_area.g_w / 4; - pos.g_y = desk_area.g_y; - pos.g_w = desk_area.g_w / 4; - pos.g_h = desk_area.g_h; + GRECT pos; + pos.g_x = desk_area.g_w - desk_area.g_w / 4; + pos.g_y = desk_area.g_y; + pos.g_w = desk_area.g_w / 4; + pos.g_h = desk_area.g_h; atari_treeview_open(hl.tv, &pos); } else { @@ -298,20 +297,19 @@ void atari_hotlist_add_page( const char * url, const char * title ) if (nsurl_create(url, &nsurl) != NSERROR_OK) return; - if (hotlist_has_url(nsurl)) { - LOG(("URL already added as Bookmark")); - nsurl_unref(nsurl); - return; - } + if (hotlist_has_url(nsurl)) { + LOG(("URL already added as Bookmark")); + nsurl_unref(nsurl); + return; + } /* doesn't look nice: - if( hl.tv->click.x >= 0 && hl.tv->click.y >= 0 ){ - hotlist_add_entry( nsurl, title, true, hl.tv->click.y ); - } else { + if( hl.tv->click.x >= 0 && hl.tv->click.y >= 0 ){ + hotlist_add_entry( nsurl, title, true, hl.tv->click.y ); + } else { - }*/ + }*/ //hotlist_add_url(nsurl); hotlist_add_entry(nsurl, title, 0, 0); nsurl_unref(nsurl); } - diff --git a/atari/hotlist.h b/atari/hotlist.h index 52598f27a..159878233 100644 --- a/atari/hotlist.h +++ b/atari/hotlist.h @@ -1,52 +1,52 @@ -/* - * Copyright 2013 Ole Loots - * - * This file is part of NetSurf, http://www.netsurf-browser.org/ - * - * NetSurf is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * NetSurf is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef NS_ATARI_HOTLIST_H -#define NS_ATARI_HOTLIST_H - -#include - -#include "desktop/tree.h" +/* + * Copyright 2013 Ole Loots + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef NS_ATARI_HOTLIST_H +#define NS_ATARI_HOTLIST_H + +#include + +#include "desktop/tree.h" #include "atari/gemtk/gemtk.h" -#include "atari/treeview.h" +#include "atari/treeview.h" + +#ifndef PATH_MAX +#define PATH_MAX 1024 +#endif -#ifndef PATH_MAX -#define PATH_MAX 1024 -#endif +/* The hotlist window, toolbar and treeview data. */ -/* The hotlist window, toolbar and treeview data. */ - -struct atari_hotlist { - GUIWIN * window; +struct atari_hotlist { + GUIWIN * window; //ATARI_TREEVIEW_PTR tv;/*< The hotlist treeview handle. */ - struct core_window *tv; - bool init; - char path[PATH_MAX]; -}; - -extern struct atari_hotlist hl; - -void atari_hotlist_init( void ); -void atari_hotlist_open( void ); -void atari_hotlist_close( void ); -void atari_hotlist_destroy( void ); -void atari_hotlist_add_page( const char * url, const char * title ); -void atari_hotlist_redraw( void ); - - + struct core_window *tv; + bool init; + char path[PATH_MAX]; +}; + +extern struct atari_hotlist hl; + +void atari_hotlist_init( void ); +void atari_hotlist_open( void ); +void atari_hotlist_close( void ); +void atari_hotlist_destroy( void ); +void atari_hotlist_add_page( const char * url, const char * title ); +void atari_hotlist_redraw( void ); + + #endif diff --git a/atari/login.c b/atari/login.c old mode 100755 new mode 100644 diff --git a/atari/login.h b/atari/login.h old mode 100755 new mode 100644 index 345f91df3..b61808c71 --- a/atari/login.h +++ b/atari/login.h @@ -1,26 +1,26 @@ -/* - * Copyright 2010 Ole Loots - * - * This file is part of NetSurf, http://www.netsurf-browser.org/ - * - * NetSurf is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * NetSurf is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef NS_LOGIN_H_INCLUDED -#define NS_LOGIN_H_INCLUDED - -#include "utils/nsurl.h" - -bool login_form_do( nsurl * host, char * realm, char **cbpw ); - -#endif +/* + * Copyright 2010 Ole Loots + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef NS_LOGIN_H_INCLUDED +#define NS_LOGIN_H_INCLUDED + +#include "utils/nsurl.h" + +bool login_form_do( nsurl * host, char * realm, char **cbpw ); + +#endif diff --git a/atari/misc.c b/atari/misc.c old mode 100755 new mode 100644 diff --git a/atari/misc.h b/atari/misc.h old mode 100755 new mode 100644 diff --git a/atari/options.h b/atari/options.h old mode 100755 new mode 100644 diff --git a/atari/osspec.c b/atari/osspec.c index 82e757a33..2f21bbefe 100644 --- a/atari/osspec.c +++ b/atari/osspec.c @@ -40,7 +40,7 @@ NS_ATARI_SYSINFO atari_sysinfo; void init_os_info(void) { int16_t out[4]; - unsigned long cookie_FSMC = 0; + unsigned long cookie_FSMC = 0; atari_sysinfo.gemdos_version = Sversion(); @@ -97,17 +97,16 @@ int tos_getcookie(long tag, long * value) /* - a fixed version of realpath() which returns valid - paths for TOS which have no U: drive + a fixed version of realpath() which returns valid + paths for TOS which have no U: drive */ -char * gemdos_realpath(const char * path, char * rpath) +char *gemdos_realpath(const char * path, char * rpath) { char work[PATH_MAX+1]; char * r; - if (rpath == NULL) { return (NULL); } @@ -124,10 +123,8 @@ char * gemdos_realpath(const char * path, char * rpath) unx2dos((const char *)r, rpath); LOG(("realpath out: %s\n", rpath)); return(rpath); - } - else { + } else { LOG(("realpath out: NULL!\n")); } return (NULL); } - diff --git a/atari/osspec.h b/atari/osspec.h index 29f87cccf..0c8d4cf66 100644 --- a/atari/osspec.h +++ b/atari/osspec.h @@ -1,44 +1,45 @@ -/* - * Copyright 2011 Ole Loots - * - * This file is part of NetSurf, http://www.netsurf-browser.org/ - * - * NetSurf is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * NetSurf is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef NS_ATARI_OSSPEC_H +/* + * Copyright 2011 Ole Loots + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef NS_ATARI_OSSPEC_H #define NS_ATARI_OSSPEC_H -typedef struct { - long c; - long v; -} COOKIE; - -typedef struct { - unsigned short gemdos_version; - unsigned short gdos_FSMC; - unsigned short systype; - unsigned short small_sfont_pxh; - unsigned short medium_sfont_pxh; - unsigned short large_sfont_pxh; - bool sfont_monospaced; - short aes_max_win_title_len; -} NS_ATARI_SYSINFO; - -extern NS_ATARI_SYSINFO atari_sysinfo; - -void init_os_info(void); -void fix_path(char * path); +typedef struct { + long c; + long v; +} COOKIE; + +typedef struct { + unsigned short gemdos_version; + unsigned short gdos_FSMC; + unsigned short systype; + unsigned short small_sfont_pxh; + unsigned short medium_sfont_pxh; + unsigned short large_sfont_pxh; + bool sfont_monospaced; + short aes_max_win_title_len; +} NS_ATARI_SYSINFO; + +extern NS_ATARI_SYSINFO atari_sysinfo; + +void init_os_info(void); +void fix_path(char * path); char * gemdos_realpath(const char * path, char * rpath); -int tos_getcookie( long tag, long * value ); +int tos_getcookie( long tag, long * value ); + #endif diff --git a/atari/plot/eddi.h b/atari/plot/eddi.h old mode 100755 new mode 100644 diff --git a/atari/plot/eddi.s b/atari/plot/eddi.s old mode 100755 new mode 100644 diff --git a/atari/plot/font_freetype.c b/atari/plot/font_freetype.c old mode 100755 new mode 100644 index 6b22ba81d..086008dd7 --- a/atari/plot/font_freetype.c +++ b/atari/plot/font_freetype.c @@ -112,89 +112,89 @@ int ft_load_type; /* cache manager faceID data to create freetype faceid on demand */ typedef struct ftc_faceid_s { - char *fontfile; /* path to font */ - int index; /* index of font */ - int cidx; /* character map index for unicode */ + char *fontfile; /* path to font */ + int index; /* index of font */ + int cidx; /* character map index for unicode */ } ftc_faceid_t; -static int dtor( FONT_PLOTTER self ); -static int str_width( FONT_PLOTTER self,const plot_font_style_t *fstyle, - const char * str, size_t length, int * width ); -static int str_split( FONT_PLOTTER self, const plot_font_style_t *fstyle, - const char *string, size_t length,int x, - size_t *char_offset, int *actual_x ); -static int pixel_pos( FONT_PLOTTER self, const plot_font_style_t *fstyle, - const char *string, size_t length,int x, - size_t *char_offset, int *actual_x ); -static int text( FONT_PLOTTER self, int x, int y, const char *text, - size_t length, const plot_font_style_t *fstyle ); - -static void draw_glyph8(FONT_PLOTTER self, GRECT *clip, GRECT * loc, - uint8_t * pixdata, int pitch, uint32_t colour); -static void draw_glyph1(FONT_PLOTTER self, GRECT * clip, GRECT * loc, - uint8_t * pixdata, int pitch, uint32_t colour); - -static ftc_faceid_t *font_faces[FONT_FACE_COUNT]; -static MFDB tmp; -static int tmp_mfdb_size; -static bool init = false; -static struct bitmap * fontbmp; -static size_t fontbmp_stride; -static int fontbmp_allocated_height; -static int fontbmp_allocated_width; - - - -/* map cache manager handle to face id */ -static FT_Error ft_face_requester(FTC_FaceID face_id, FT_Library library, FT_Pointer request_data, FT_Face *face ) -{ - FT_Error error; - ftc_faceid_t *ft_face = (ftc_faceid_t *)face_id; - int cidx; - - error = FT_New_Face(library, ft_face->fontfile, ft_face->index, face); - if (error) { - LOG(("Could not find font (code %d)\n", error)); - } else { - error = FT_Select_Charmap(*face, FT_ENCODING_UNICODE); - if (error) { - LOG(("Could not select charmap (code %d)\n", error)); - } else { - for (cidx = 0; cidx < (*face)->num_charmaps; cidx++) { - if ((*face)->charmap == (*face)->charmaps[cidx]) { - ft_face->cidx = cidx; - break; - } - } - } - } - LOG(("Loaded face from %s\n", ft_face->fontfile)); - return error; -} - -/* create new framebuffer face and cause it to be loaded to check its ok */ -static ftc_faceid_t * -ft_new_face(const char *option, const char *resname, const char *fontfile) -{ - ftc_faceid_t *newf; - FT_Error error; - FT_Face aface; - char buf[PATH_MAX]; - - newf = calloc(1, sizeof(ftc_faceid_t)); - if (option != NULL) { - newf->fontfile = strdup(option); - } else { - atari_find_resource(buf, resname, fontfile); - newf->fontfile = strdup(buf); - } - error = FTC_Manager_LookupFace(ft_cmanager, (FTC_FaceID)newf, &aface); - if (error) { - LOG(("Could not find font face %s (code %d)\n", fontfile, error)); - free(newf); - newf = font_faces[FONT_FACE_DEFAULT]; /* use default */ - } - return newf; +static int dtor( FONT_PLOTTER self ); +static int str_width( FONT_PLOTTER self,const plot_font_style_t *fstyle, + const char * str, size_t length, int * width ); +static int str_split( FONT_PLOTTER self, const plot_font_style_t *fstyle, + const char *string, size_t length,int x, + size_t *char_offset, int *actual_x ); +static int pixel_pos( FONT_PLOTTER self, const plot_font_style_t *fstyle, + const char *string, size_t length,int x, + size_t *char_offset, int *actual_x ); +static int text( FONT_PLOTTER self, int x, int y, const char *text, + size_t length, const plot_font_style_t *fstyle ); + +static void draw_glyph8(FONT_PLOTTER self, GRECT *clip, GRECT * loc, + uint8_t * pixdata, int pitch, uint32_t colour); +static void draw_glyph1(FONT_PLOTTER self, GRECT * clip, GRECT * loc, + uint8_t * pixdata, int pitch, uint32_t colour); + +static ftc_faceid_t *font_faces[FONT_FACE_COUNT]; +static MFDB tmp; +static int tmp_mfdb_size; +static bool init = false; +static struct bitmap * fontbmp; +static size_t fontbmp_stride; +static int fontbmp_allocated_height; +static int fontbmp_allocated_width; + + + +/* map cache manager handle to face id */ +static FT_Error ft_face_requester(FTC_FaceID face_id, FT_Library library, FT_Pointer request_data, FT_Face *face ) +{ + FT_Error error; + ftc_faceid_t *ft_face = (ftc_faceid_t *)face_id; + int cidx; + + error = FT_New_Face(library, ft_face->fontfile, ft_face->index, face); + if (error) { + LOG(("Could not find font (code %d)\n", error)); + } else { + error = FT_Select_Charmap(*face, FT_ENCODING_UNICODE); + if (error) { + LOG(("Could not select charmap (code %d)\n", error)); + } else { + for (cidx = 0; cidx < (*face)->num_charmaps; cidx++) { + if ((*face)->charmap == (*face)->charmaps[cidx]) { + ft_face->cidx = cidx; + break; + } + } + } + } + LOG(("Loaded face from %s\n", ft_face->fontfile)); + return error; +} + +/* create new framebuffer face and cause it to be loaded to check its ok */ +static ftc_faceid_t * +ft_new_face(const char *option, const char *resname, const char *fontfile) +{ + ftc_faceid_t *newf; + FT_Error error; + FT_Face aface; + char buf[PATH_MAX]; + + newf = calloc(1, sizeof(ftc_faceid_t)); + if (option != NULL) { + newf->fontfile = strdup(option); + } else { + atari_find_resource(buf, resname, fontfile); + newf->fontfile = strdup(buf); + } + error = FTC_Manager_LookupFace(ft_cmanager, (FTC_FaceID)newf, &aface); + if (error) { + LOG(("Could not find font face %s (code %d)\n", fontfile, error)); + free(newf); + newf = font_faces[FONT_FACE_DEFAULT]; /* use default */ + } + return newf; } static void ft_fill_scalar(const plot_font_style_t *fstyle, FTC_Scaler srec) @@ -255,460 +255,460 @@ static void ft_fill_scalar(const plot_font_style_t *fstyle, FTC_Scaler srec) /* TODO: because browser_get_dpi() is to large, calculate that value */ /* by VDI values. */ srec->x_res = srec->y_res = 72; // browser_get_dpi(); -} - -static FT_Glyph ft_getglyph(const plot_font_style_t *fstyle, uint32_t ucs4) -{ - FT_UInt glyph_index; - FTC_ScalerRec srec; - FT_Glyph glyph; - FT_Error error; - ftc_faceid_t *ft_face; - - ft_fill_scalar(fstyle, &srec); - ft_face = (ftc_faceid_t *)srec.face_id; - glyph_index = FTC_CMapCache_Lookup(ft_cmap_cache, srec.face_id, ft_face->cidx, ucs4); - error = FTC_ImageCache_LookupScaler(ft_image_cache, - &srec, - FT_LOAD_RENDER | - FT_LOAD_FORCE_AUTOHINT | - ft_load_type, - glyph_index, - &glyph, - NULL); - return glyph; -} - - -/* initialise font handling */ -static bool ft_font_init(void) -{ - FT_Error error; - FT_ULong max_cache_size; +} + +static FT_Glyph ft_getglyph(const plot_font_style_t *fstyle, uint32_t ucs4) +{ + FT_UInt glyph_index; + FTC_ScalerRec srec; + FT_Glyph glyph; + FT_Error error; + ftc_faceid_t *ft_face; + + ft_fill_scalar(fstyle, &srec); + ft_face = (ftc_faceid_t *)srec.face_id; + glyph_index = FTC_CMapCache_Lookup(ft_cmap_cache, srec.face_id, ft_face->cidx, ucs4); + error = FTC_ImageCache_LookupScaler(ft_image_cache, + &srec, + FT_LOAD_RENDER | + FT_LOAD_FORCE_AUTOHINT | + ft_load_type, + glyph_index, + &glyph, + NULL); + return glyph; +} + + +/* initialise font handling */ +static bool ft_font_init(void) +{ + FT_Error error; + FT_ULong max_cache_size; FT_UInt max_faces = 6; int i; - - /* freetype library initialise */ - error = FT_Init_FreeType( &library ); - if (error) { - LOG(("Freetype could not initialised (code %d)\n", error)); - return false; - } + + /* freetype library initialise */ + error = FT_Init_FreeType( &library ); + if (error) { + LOG(("Freetype could not initialised (code %d)\n", error)); + return false; + } /* set the Glyph cache size up */ max_cache_size = CACHE_SIZE * 1024; if (max_cache_size < CACHE_MIN_SIZE) { max_cache_size = CACHE_MIN_SIZE; - } - - /* cache manager initialise */ - error = FTC_Manager_New(library, - max_faces, - 0, - max_cache_size, - ft_face_requester, - NULL, - &ft_cmanager); - if (error) { - LOG(("Freetype could not initialise cache manager (code %d)\n", error)); - FT_Done_FreeType(library); - return false; - } - - error = FTC_CMapCache_New(ft_cmanager, &ft_cmap_cache); - error = FTC_ImageCache_New(ft_cmanager, &ft_image_cache); + } + + /* cache manager initialise */ + error = FTC_Manager_New(library, + max_faces, + 0, + max_cache_size, + ft_face_requester, + NULL, + &ft_cmanager); + if (error) { + LOG(("Freetype could not initialise cache manager (code %d)\n", error)); + FT_Done_FreeType(library); + return false; + } + + error = FTC_CMapCache_New(ft_cmanager, &ft_cmap_cache); + error = FTC_ImageCache_New(ft_cmanager, &ft_image_cache); /* Optain font faces */ - /* Default font, Sans Serif */ - font_faces[FONT_FACE_SANS_SERIF] = NULL; - font_faces[FONT_FACE_SANS_SERIF] = ft_new_face( - nsoption_charp(font_face_sans_serif), - FONT_RESOURCE_PATH "ss.ttf", - FONT_PKG_PATH FONT_FILE_SANS - ); - if (font_faces[FONT_FACE_SANS_SERIF] == NULL) { - LOG(("Could not find default font (code %d)\n", error)); - FTC_Manager_Done(ft_cmanager); - FT_Done_FreeType(library); - return false; - } - - /* Sans Serif Bold*/ - font_faces[FONT_FACE_SANS_SERIF_BOLD] = - ft_new_face(nsoption_charp(font_face_sans_serif_bold), - FONT_RESOURCE_PATH "ssb.ttf", - FONT_PKG_PATH FONT_FILE_SANS_BOLD); - - /* Sans Serif Italic */ - font_faces[FONT_FACE_SANS_SERIF_ITALIC] = - ft_new_face(nsoption_charp(font_face_sans_serif_italic), - FONT_RESOURCE_PATH "ssi.ttf", - FONT_PKG_PATH FONT_FILE_SANS_OBLIQUE); - - /* Sans Serif Italic Bold */ - font_faces[FONT_FACE_SANS_SERIF_ITALIC_BOLD] = - ft_new_face(nsoption_charp(font_face_sans_serif_italic_bold), - FONT_RESOURCE_PATH "ssib.ttf", - FONT_PKG_PATH FONT_FILE_SANS_BOLD_OBLIQUE); - - /* Monospaced */ - font_faces[FONT_FACE_MONOSPACE] = - ft_new_face(nsoption_charp(font_face_monospace), - FONT_RESOURCE_PATH "mono.ttf", - FONT_PKG_PATH FONT_FILE_MONO); - - /* Mospaced Bold */ - font_faces[FONT_FACE_MONOSPACE_BOLD] = - ft_new_face(nsoption_charp(font_face_monospace_bold), - FONT_RESOURCE_PATH "monob.ttf", - FONT_PKG_PATH FONT_FILE_MONO_BOLD); - - /* Serif */ - font_faces[FONT_FACE_SERIF] = - ft_new_face(nsoption_charp(font_face_serif), - FONT_RESOURCE_PATH "s.ttf", - FONT_PKG_PATH FONT_FILE_SERIF); - - /* Serif Bold */ - font_faces[FONT_FACE_SERIF_BOLD] = - ft_new_face(nsoption_charp(font_face_serif_bold), - FONT_RESOURCE_PATH "sb.ttf", - FONT_PKG_PATH FONT_FILE_SERIF_BOLD); - - /* Cursive */ - font_faces[FONT_FACE_CURSIVE] = - ft_new_face(nsoption_charp(font_face_cursive), - FONT_RESOURCE_PATH "cursive.ttf", - FONT_PKG_PATH FONT_FILE_OBLIQUE); - - /* Fantasy */ - font_faces[FONT_FACE_FANTASY] = - ft_new_face(nsoption_charp(font_face_fantasy), - FONT_RESOURCE_PATH "fantasy.ttf", - FONT_PKG_PATH FONT_FILE_FANTASY); + /* Default font, Sans Serif */ + font_faces[FONT_FACE_SANS_SERIF] = NULL; + font_faces[FONT_FACE_SANS_SERIF] = ft_new_face( + nsoption_charp(font_face_sans_serif), + FONT_RESOURCE_PATH "ss.ttf", + FONT_PKG_PATH FONT_FILE_SANS + ); + if (font_faces[FONT_FACE_SANS_SERIF] == NULL) { + LOG(("Could not find default font (code %d)\n", error)); + FTC_Manager_Done(ft_cmanager); + FT_Done_FreeType(library); + return false; + } + + /* Sans Serif Bold*/ + font_faces[FONT_FACE_SANS_SERIF_BOLD] = + ft_new_face(nsoption_charp(font_face_sans_serif_bold), + FONT_RESOURCE_PATH "ssb.ttf", + FONT_PKG_PATH FONT_FILE_SANS_BOLD); + + /* Sans Serif Italic */ + font_faces[FONT_FACE_SANS_SERIF_ITALIC] = + ft_new_face(nsoption_charp(font_face_sans_serif_italic), + FONT_RESOURCE_PATH "ssi.ttf", + FONT_PKG_PATH FONT_FILE_SANS_OBLIQUE); + + /* Sans Serif Italic Bold */ + font_faces[FONT_FACE_SANS_SERIF_ITALIC_BOLD] = + ft_new_face(nsoption_charp(font_face_sans_serif_italic_bold), + FONT_RESOURCE_PATH "ssib.ttf", + FONT_PKG_PATH FONT_FILE_SANS_BOLD_OBLIQUE); + + /* Monospaced */ + font_faces[FONT_FACE_MONOSPACE] = + ft_new_face(nsoption_charp(font_face_monospace), + FONT_RESOURCE_PATH "mono.ttf", + FONT_PKG_PATH FONT_FILE_MONO); + + /* Mospaced Bold */ + font_faces[FONT_FACE_MONOSPACE_BOLD] = + ft_new_face(nsoption_charp(font_face_monospace_bold), + FONT_RESOURCE_PATH "monob.ttf", + FONT_PKG_PATH FONT_FILE_MONO_BOLD); + + /* Serif */ + font_faces[FONT_FACE_SERIF] = + ft_new_face(nsoption_charp(font_face_serif), + FONT_RESOURCE_PATH "s.ttf", + FONT_PKG_PATH FONT_FILE_SERIF); + + /* Serif Bold */ + font_faces[FONT_FACE_SERIF_BOLD] = + ft_new_face(nsoption_charp(font_face_serif_bold), + FONT_RESOURCE_PATH "sb.ttf", + FONT_PKG_PATH FONT_FILE_SERIF_BOLD); + + /* Cursive */ + font_faces[FONT_FACE_CURSIVE] = + ft_new_face(nsoption_charp(font_face_cursive), + FONT_RESOURCE_PATH "cursive.ttf", + FONT_PKG_PATH FONT_FILE_OBLIQUE); + + /* Fantasy */ + font_faces[FONT_FACE_FANTASY] = + ft_new_face(nsoption_charp(font_face_fantasy), + FONT_RESOURCE_PATH "fantasy.ttf", + FONT_PKG_PATH FONT_FILE_FANTASY); for (i=1; iadvance.x >> 16; - } - return(1); -} - - -static int str_split( FONT_PLOTTER self, const plot_font_style_t *fstyle, - const char *string, size_t length, - int x, size_t *char_offset, int *actual_x) -{ - uint32_t ucs4; - size_t nxtchr = 0; - int last_space_x = 0; - int last_space_idx = 0; - FT_Glyph glyph; - - *actual_x = 0; - while (nxtchr < length) { - ucs4 = utf8_to_ucs4(string + nxtchr, length - nxtchr); - glyph = ft_getglyph(fstyle, ucs4); - if (glyph == NULL) - continue; - if (ucs4 == 0x20) { - last_space_x = *actual_x; - last_space_idx = nxtchr; - } - *actual_x += glyph->advance.x >> 16; - if (*actual_x > x && last_space_idx != 0) { - /* string has exceeded available width and we've - * found a space; return previous space */ - *actual_x = last_space_x; - *char_offset = last_space_idx; - return true; - } - nxtchr = utf8_next(string, length, nxtchr); - } - *char_offset = nxtchr; - return (1); -} - - -static int pixel_pos( FONT_PLOTTER self, const plot_font_style_t *fstyle, - const char *string, size_t length, - int x, size_t *char_offset, int *actual_x) -{ - uint32_t ucs4; - size_t nxtchr = 0; - FT_Glyph glyph; - int prev_x = 0; - - *actual_x = 0; - while (nxtchr < length) { - ucs4 = utf8_to_ucs4(string + nxtchr, length - nxtchr); - glyph = ft_getglyph(fstyle, ucs4); - if (glyph == NULL) - continue; - *actual_x += glyph->advance.x >> 16; - if (*actual_x > x) - break; - - prev_x = *actual_x; - nxtchr = utf8_next(string, length, nxtchr); - } - - /* choose nearest of previous and last x */ - if (abs(*actual_x - x) > abs(prev_x - x)) - *actual_x = prev_x; - *char_offset = nxtchr; - return ( 1 ); -} - - -static void draw_glyph8(FONT_PLOTTER self, GRECT * clip, GRECT * loc, uint8_t * pixdata, int pitch, uint32_t colour) -{ - uint32_t * linebuf; - uint32_t fontpix; - int xloop,yloop,xoff,yoff; - int x,y,w,h; - - x = loc->g_x; - y = loc->g_y; - w = loc->g_w; - h = loc->g_h; - - if( !rc_intersect( clip, loc ) ){ - return; - } - - xoff = loc->g_x - x; - yoff = loc->g_y - y; - - assert( loc->g_h <= h ); - assert( loc->g_w <= w ); - - h = loc->g_h; - w = loc->g_w; - - assert( h <= fontbmp_allocated_height ); - assert( w <= fontbmp_allocated_width ); - - fontbmp->height = h; - fontbmp->width = w; - for( yloop = 0; yloop < MIN(fontbmp_allocated_height, h); yloop++) { - linebuf = (uint32_t *)(fontbmp->pixdata + (fontbmp_stride * yloop)); - for(xloop = 0; xloop < MIN(fontbmp_allocated_width, w); xloop++){ - fontpix = (uint32_t)(pixdata[(( yoff + yloop ) * pitch) + xloop + xoff]); - linebuf[xloop] = (uint32_t)(colour | fontpix); - } - } - plot_blit_bitmap(fontbmp, loc->g_x, loc->g_y, 0, BITMAPF_MONOGLYPH); -} - -static void draw_glyph1(FONT_PLOTTER self, GRECT * clip, GRECT * loc, uint8_t * pixdata, int pitch, uint32_t colour) -{ - int xloop,yloop,xoff,yoff; - int x,y,w,h; - uint8_t bitm; - const uint8_t *fntd; - - x = loc->g_x; - y = loc->g_y; - w = loc->g_w; - h = loc->g_h; - - if( !rc_intersect( clip, loc ) ){ - return; - } - - xoff = loc->g_x - x; - yoff = loc->g_y - y; - - if (h > loc->g_h) - h = loc->g_h; - - if (w > loc->g_w) - w = loc->g_w; - - int stride = MFDB_STRIDE( w ); - if( tmp.fd_addr == NULL || tmp_mfdb_size < MFDB_SIZE( 1, stride, h) ){ - tmp_mfdb_size = init_mfdb( 1, w, h, MFDB_FLAG_STAND | MFDB_FLAG_ZEROMEM, &tmp ); - } else { - void * buf = tmp.fd_addr; - int size = init_mfdb( 1, w, h, MFDB_FLAG_STAND | MFDB_FLAG_NOALLOC, &tmp ); - tmp.fd_addr = buf; - memset( tmp.fd_addr, 0, size ); - } - short * buf; - for( yloop = 0; yloop < h; yloop++) { - fntd = pixdata + (pitch * (yloop+yoff))+(xoff>>3); - buf = tmp.fd_addr; - buf += (tmp.fd_wdwidth*yloop); - for ( xloop = 0, bitm = (1<<(7-(xoff%8))); xloop < w; xloop++, bitm=(bitm>>1) ) { - if( (*fntd & bitm) != 0 ){ - short whichbit = (1<<(15-(xloop%16))); - buf[xloop>>4] = ((buf[xloop>>4])|(whichbit)); - } - if( bitm == 1 ) { - fntd++; - bitm = 128; - } - } - } -#ifdef WITH_8BPP_SUPPORT - if( app.nplanes > 8 ){ -#endif - plot_blit_mfdb(loc, &tmp, OFFSET_CUSTOM_COLOR, PLOT_FLAG_TRANS ); -#ifdef WITH_8BPP_SUPPORT - } else { - plot_blit_mfdb(loc, &tmp, colour, PLOT_FLAG_TRANS ); - } -#endif - -} - -static int text( FONT_PLOTTER self, int x, int y, const char *text, size_t length, - const plot_font_style_t *fstyle ) -{ - uint32_t ucs4; - size_t nxtchr = 0; - FT_Glyph glyph; - FT_BitmapGlyph bglyph; - GRECT loc, clip; - uint32_t c = fstyle->foreground ; - struct rect clipping; - /* in -> BGR */ - /* out -> ARGB */ - if( !(self->flags & FONTPLOT_FLAG_MONOGLYPH) ){ - c = ABGR_TO_RGB(c); - } else { -#ifdef WITH_8BPP_SUPPORT - if( app.nplanes > 8 ){ -#endif + + return true; +} + + +static bool ft_font_finalise(void) +{ + FTC_Manager_Done(ft_cmanager ); + FT_Done_FreeType(library); + return true; +} + +static int str_width( FONT_PLOTTER self,const plot_font_style_t *fstyle, + const char *string, size_t length, + int *width) +{ + uint32_t ucs4; + size_t nxtchr = 0; + FT_Glyph glyph; + + *width = 0; + while (nxtchr < length) { + ucs4 = utf8_to_ucs4(string + nxtchr, length - nxtchr); + nxtchr = utf8_next(string, length, nxtchr); + + glyph = ft_getglyph(fstyle, ucs4); + if (glyph == NULL) + continue; + *width += glyph->advance.x >> 16; + } + return(1); +} + + +static int str_split( FONT_PLOTTER self, const plot_font_style_t *fstyle, + const char *string, size_t length, + int x, size_t *char_offset, int *actual_x) +{ + uint32_t ucs4; + size_t nxtchr = 0; + int last_space_x = 0; + int last_space_idx = 0; + FT_Glyph glyph; + + *actual_x = 0; + while (nxtchr < length) { + ucs4 = utf8_to_ucs4(string + nxtchr, length - nxtchr); + glyph = ft_getglyph(fstyle, ucs4); + if (glyph == NULL) + continue; + if (ucs4 == 0x20) { + last_space_x = *actual_x; + last_space_idx = nxtchr; + } + *actual_x += glyph->advance.x >> 16; + if (*actual_x > x && last_space_idx != 0) { + /* string has exceeded available width and we've + * found a space; return previous space */ + *actual_x = last_space_x; + *char_offset = last_space_idx; + return true; + } + nxtchr = utf8_next(string, length, nxtchr); + } + *char_offset = nxtchr; + return (1); +} + + +static int pixel_pos( FONT_PLOTTER self, const plot_font_style_t *fstyle, + const char *string, size_t length, + int x, size_t *char_offset, int *actual_x) +{ + uint32_t ucs4; + size_t nxtchr = 0; + FT_Glyph glyph; + int prev_x = 0; + + *actual_x = 0; + while (nxtchr < length) { + ucs4 = utf8_to_ucs4(string + nxtchr, length - nxtchr); + glyph = ft_getglyph(fstyle, ucs4); + if (glyph == NULL) + continue; + *actual_x += glyph->advance.x >> 16; + if (*actual_x > x) + break; + + prev_x = *actual_x; + nxtchr = utf8_next(string, length, nxtchr); + } + + /* choose nearest of previous and last x */ + if (abs(*actual_x - x) > abs(prev_x - x)) + *actual_x = prev_x; + *char_offset = nxtchr; + return ( 1 ); +} + + +static void draw_glyph8(FONT_PLOTTER self, GRECT * clip, GRECT * loc, uint8_t * pixdata, int pitch, uint32_t colour) +{ + uint32_t * linebuf; + uint32_t fontpix; + int xloop,yloop,xoff,yoff; + int x,y,w,h; + + x = loc->g_x; + y = loc->g_y; + w = loc->g_w; + h = loc->g_h; + + if( !rc_intersect( clip, loc ) ){ + return; + } + + xoff = loc->g_x - x; + yoff = loc->g_y - y; + + assert( loc->g_h <= h ); + assert( loc->g_w <= w ); + + h = loc->g_h; + w = loc->g_w; + + assert( h <= fontbmp_allocated_height ); + assert( w <= fontbmp_allocated_width ); + + fontbmp->height = h; + fontbmp->width = w; + for( yloop = 0; yloop < MIN(fontbmp_allocated_height, h); yloop++) { + linebuf = (uint32_t *)(fontbmp->pixdata + (fontbmp_stride * yloop)); + for(xloop = 0; xloop < MIN(fontbmp_allocated_width, w); xloop++){ + fontpix = (uint32_t)(pixdata[(( yoff + yloop ) * pitch) + xloop + xoff]); + linebuf[xloop] = (uint32_t)(colour | fontpix); + } + } + plot_blit_bitmap(fontbmp, loc->g_x, loc->g_y, 0, BITMAPF_MONOGLYPH); +} + +static void draw_glyph1(FONT_PLOTTER self, GRECT * clip, GRECT * loc, uint8_t * pixdata, int pitch, uint32_t colour) +{ + int xloop,yloop,xoff,yoff; + int x,y,w,h; + uint8_t bitm; + const uint8_t *fntd; + + x = loc->g_x; + y = loc->g_y; + w = loc->g_w; + h = loc->g_h; + + if( !rc_intersect( clip, loc ) ){ + return; + } + + xoff = loc->g_x - x; + yoff = loc->g_y - y; + + if (h > loc->g_h) + h = loc->g_h; + + if (w > loc->g_w) + w = loc->g_w; + + int stride = MFDB_STRIDE( w ); + if( tmp.fd_addr == NULL || tmp_mfdb_size < MFDB_SIZE( 1, stride, h) ){ + tmp_mfdb_size = init_mfdb( 1, w, h, MFDB_FLAG_STAND | MFDB_FLAG_ZEROMEM, &tmp ); + } else { + void * buf = tmp.fd_addr; + int size = init_mfdb( 1, w, h, MFDB_FLAG_STAND | MFDB_FLAG_NOALLOC, &tmp ); + tmp.fd_addr = buf; + memset( tmp.fd_addr, 0, size ); + } + short * buf; + for( yloop = 0; yloop < h; yloop++) { + fntd = pixdata + (pitch * (yloop+yoff))+(xoff>>3); + buf = tmp.fd_addr; + buf += (tmp.fd_wdwidth*yloop); + for ( xloop = 0, bitm = (1<<(7-(xoff%8))); xloop < w; xloop++, bitm=(bitm>>1) ) { + if( (*fntd & bitm) != 0 ){ + short whichbit = (1<<(15-(xloop%16))); + buf[xloop>>4] = ((buf[xloop>>4])|(whichbit)); + } + if( bitm == 1 ) { + fntd++; + bitm = 128; + } + } + } +#ifdef WITH_8BPP_SUPPORT + if( app.nplanes > 8 ){ +#endif + plot_blit_mfdb(loc, &tmp, OFFSET_CUSTOM_COLOR, PLOT_FLAG_TRANS ); +#ifdef WITH_8BPP_SUPPORT + } else { + plot_blit_mfdb(loc, &tmp, colour, PLOT_FLAG_TRANS ); + } +#endif + +} + +static int text( FONT_PLOTTER self, int x, int y, const char *text, size_t length, + const plot_font_style_t *fstyle ) +{ + uint32_t ucs4; + size_t nxtchr = 0; + FT_Glyph glyph; + FT_BitmapGlyph bglyph; + GRECT loc, clip; + uint32_t c = fstyle->foreground ; + struct rect clipping; + /* in -> BGR */ + /* out -> ARGB */ + if( !(self->flags & FONTPLOT_FLAG_MONOGLYPH) ){ + c = ABGR_TO_RGB(c); + } else { +#ifdef WITH_8BPP_SUPPORT + if( app.nplanes > 8 ){ +#endif RGB1000 out; /* struct with RGB shorts */ - rgb_to_vdi1000( (unsigned char*)&c, &out); + rgb_to_vdi1000( (unsigned char*)&c, &out); vs_color(atari_plot_vdi_handle, OFFSET_CUSTOM_COLOR, - (short*)&out); -#ifdef WITH_8BPP_SUPPORT - } else { - c = RGB_TO_VDI(c); - } -#endif - } - - plot_get_clip(&clipping); - clip.g_x = clipping.x0; - clip.g_y = clipping.y0; - clip.g_w = (clipping.x1 - clipping.x0)+1; - clip.g_h = (clipping.y1 - clipping.y0)+1; - - fontbmp = atari_bitmap_realloc( clip.g_w, clip.g_h, - 4, clip.g_w << 2, - BITMAP_GROW, fontbmp ); - fontbmp_stride = atari_bitmap_get_rowstride(fontbmp); - fontbmp_allocated_height = clip.g_h; - fontbmp_allocated_width = clip.g_w; - - while (nxtchr < length) { - ucs4 = utf8_to_ucs4(text + nxtchr, length - nxtchr); - nxtchr = utf8_next(text, length, nxtchr); - - glyph = ft_getglyph(fstyle, ucs4); - if (glyph == NULL){ - continue; - } - - if (glyph->format == FT_GLYPH_FORMAT_BITMAP) { - bglyph = (FT_BitmapGlyph)glyph; - loc.g_x = x + bglyph->left; - loc.g_y = y - bglyph->top; - loc.g_w = bglyph->bitmap.width; - loc.g_h = bglyph->bitmap.rows; - - if( loc.g_w > 0) { - self->draw_glyph( self, - &clip, &loc, - bglyph->bitmap.buffer, - bglyph->bitmap.pitch, - c - ); - } - } - x += glyph->advance.x >> 16; - } - return( 0 ); -} - - -int ctor_font_plotter_freetype( FONT_PLOTTER self ) -{ - self->dtor = dtor; - self->str_width = str_width; - self->str_split = str_split; - self->pixel_pos = pixel_pos; - self->text = text; - - /* set the default render mode */ - if( (self->flags & FONTPLOT_FLAG_MONOGLYPH) != 0 ){ - ft_load_type = FT_LOAD_MONOCHROME; - self->draw_glyph = draw_glyph1; - } - else{ - ft_load_type = 0; - self->draw_glyph = draw_glyph8; - } - - LOG(("%s: %s\n", (char*)__FILE__, __FUNCTION__)); - if( !init ) { - ft_font_init(); - fontbmp = atari_bitmap_create(48, 48, 0); - fontbmp->opaque = false; - init = true; - } - - return( 1 ); -} - -static int dtor( FONT_PLOTTER self ) -{ - ft_font_finalise(); - if( fontbmp != NULL ) { - atari_bitmap_destroy( fontbmp ); - fontbmp = NULL; - } - if( tmp.fd_addr != NULL ){ - free( tmp.fd_addr ); - } - return( 1 ); -} - -#endif + (short*)&out); +#ifdef WITH_8BPP_SUPPORT + } else { + c = RGB_TO_VDI(c); + } +#endif + } + + plot_get_clip(&clipping); + clip.g_x = clipping.x0; + clip.g_y = clipping.y0; + clip.g_w = (clipping.x1 - clipping.x0)+1; + clip.g_h = (clipping.y1 - clipping.y0)+1; + + fontbmp = atari_bitmap_realloc( clip.g_w, clip.g_h, + 4, clip.g_w << 2, + BITMAP_GROW, fontbmp ); + fontbmp_stride = atari_bitmap_get_rowstride(fontbmp); + fontbmp_allocated_height = clip.g_h; + fontbmp_allocated_width = clip.g_w; + + while (nxtchr < length) { + ucs4 = utf8_to_ucs4(text + nxtchr, length - nxtchr); + nxtchr = utf8_next(text, length, nxtchr); + + glyph = ft_getglyph(fstyle, ucs4); + if (glyph == NULL){ + continue; + } + + if (glyph->format == FT_GLYPH_FORMAT_BITMAP) { + bglyph = (FT_BitmapGlyph)glyph; + loc.g_x = x + bglyph->left; + loc.g_y = y - bglyph->top; + loc.g_w = bglyph->bitmap.width; + loc.g_h = bglyph->bitmap.rows; + + if( loc.g_w > 0) { + self->draw_glyph( self, + &clip, &loc, + bglyph->bitmap.buffer, + bglyph->bitmap.pitch, + c + ); + } + } + x += glyph->advance.x >> 16; + } + return( 0 ); +} + + +int ctor_font_plotter_freetype( FONT_PLOTTER self ) +{ + self->dtor = dtor; + self->str_width = str_width; + self->str_split = str_split; + self->pixel_pos = pixel_pos; + self->text = text; + + /* set the default render mode */ + if( (self->flags & FONTPLOT_FLAG_MONOGLYPH) != 0 ){ + ft_load_type = FT_LOAD_MONOCHROME; + self->draw_glyph = draw_glyph1; + } + else{ + ft_load_type = 0; + self->draw_glyph = draw_glyph8; + } + + LOG(("%s: %s\n", (char*)__FILE__, __FUNCTION__)); + if( !init ) { + ft_font_init(); + fontbmp = atari_bitmap_create(48, 48, 0); + fontbmp->opaque = false; + init = true; + } + + return( 1 ); +} + +static int dtor( FONT_PLOTTER self ) +{ + ft_font_finalise(); + if( fontbmp != NULL ) { + atari_bitmap_destroy( fontbmp ); + fontbmp = NULL; + } + if( tmp.fd_addr != NULL ){ + free( tmp.fd_addr ); + } + return( 1 ); +} + +#endif diff --git a/atari/plot/font_freetype.h b/atari/plot/font_freetype.h old mode 100755 new mode 100644 index 1e64ebc5d..58a5372a4 --- a/atari/plot/font_freetype.h +++ b/atari/plot/font_freetype.h @@ -1,51 +1,52 @@ -/* - * Copyright 2011 Ole Loots - * This file is part of NetSurf, http://www.netsurf-browser.org/ - * - * NetSurf is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * NetSurf is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef FONT_PLOTTER_FREETYPE -#define FONT_PLOTTER_FREETYPE - -#include -#include FT_FREETYPE_H -#include FT_GLYPH_H -#include "utils/utf8.h" - -/* defines for accesing the faces */ -#define FONT_FACE_DEFAULT 0 - -#define FONT_FACE_SANS_SERIF 0 -#define FONT_FACE_SANS_SERIF_BOLD 1 -#define FONT_FACE_SANS_SERIF_ITALIC 2 -#define FONT_FACE_SANS_SERIF_ITALIC_BOLD 3 -#define FONT_FACE_MONOSPACE 4 -#define FONT_FACE_MONOSPACE_BOLD 5 -#define FONT_FACE_SERIF 6 -#define FONT_FACE_SERIF_BOLD 7 -#define FONT_FACE_CURSIVE 8 -#define FONT_FACE_FANTASY 9 - -#define FONT_FACE_COUNT 10 - -struct font_desc { - const char *name; - int width, height; - const char *encoding; -}; - -/* extern int ft_load_type; */ - -int ctor_font_plotter_freetype( FONT_PLOTTER self ); +/* + * Copyright 2011 Ole Loots + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef FONT_PLOTTER_FREETYPE +#define FONT_PLOTTER_FREETYPE + +#include +#include FT_FREETYPE_H +#include FT_GLYPH_H +#include "utils/utf8.h" + +/* defines for accesing the faces */ +#define FONT_FACE_DEFAULT 0 + +#define FONT_FACE_SANS_SERIF 0 +#define FONT_FACE_SANS_SERIF_BOLD 1 +#define FONT_FACE_SANS_SERIF_ITALIC 2 +#define FONT_FACE_SANS_SERIF_ITALIC_BOLD 3 +#define FONT_FACE_MONOSPACE 4 +#define FONT_FACE_MONOSPACE_BOLD 5 +#define FONT_FACE_SERIF 6 +#define FONT_FACE_SERIF_BOLD 7 +#define FONT_FACE_CURSIVE 8 +#define FONT_FACE_FANTASY 9 + +#define FONT_FACE_COUNT 10 + +struct font_desc { + const char *name; + int width, height; + const char *encoding; +}; + +/* extern int ft_load_type; */ + +int ctor_font_plotter_freetype( FONT_PLOTTER self ); + #endif diff --git a/atari/plot/font_internal.c b/atari/plot/font_internal.c index bfe0def8c..66413f49c 100644 --- a/atari/plot/font_internal.c +++ b/atari/plot/font_internal.c @@ -1,22 +1,22 @@ -/* - * Copyright 2008 Vincent Sanders - * Copyright 2011 Ole Loots - * - * This file is part of NetSurf, http://www.netsurf-browser.org/ - * - * NetSurf is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * NetSurf is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - +/* + * Copyright 2008 Vincent Sanders + * Copyright 2011 Ole Loots + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #ifdef WITH_INTERNAL_FONT_DRIVER #include @@ -29,238 +29,238 @@ #include "atari/gui.h" #include "atari/bitmap.h" #include "atari/plot/plot.h" -#include "atari/plot/fontplot.h" -#include "atari/plot/font_internal.h" - +#include "atari/plot/fontplot.h" +#include "atari/plot/font_internal.h" + extern unsigned long atari_plot_flags; -extern int atari_plot_vdi_handle; - -static int dtor( FONT_PLOTTER self ); -static int str_width( FONT_PLOTTER self,const plot_font_style_t *fstyle, const char * str, size_t length, int * width ); -static int str_split( FONT_PLOTTER self, const plot_font_style_t *fstyle,const char *string, - size_t length,int x, size_t *char_offset, int *actual_x ); -static int pixel_pos( FONT_PLOTTER self, const plot_font_style_t *fstyle,const char *string, - size_t length,int x, size_t *char_offset, int *actual_x ); -static int text( FONT_PLOTTER self, int x, int y, const char *text, size_t length, const plot_font_style_t *fstyle ); - -static bool init = false; -static int vdih; -static struct bitmap * fontbmp; -extern struct s_vdi_sysinfo vdi_sysinfo; - -const struct fb_font_desc font_regular; -const struct fb_font_desc font_italic; -const struct fb_font_desc font_bold; -const struct fb_font_desc font_italic_bold; - -static MFDB tmp; -static int tmp_mfdb_size; - -#define FONTDATAMAX 4096 - -static const struct fb_font_desc* -fb_get_font(const plot_font_style_t *fstyle) -{ - if (fstyle->weight >= 700) { - if ((fstyle->flags & FONTF_ITALIC) || - (fstyle->flags & FONTF_OBLIQUE)) { - return &font_italic_bold; - } else { - return &font_bold; - } - } else { - if ((fstyle->flags & FONTF_ITALIC) || - (fstyle->flags & FONTF_OBLIQUE)) { - return &font_italic; - } else { - return &font_regular; - } - } -} - -static nserror utf8_to_font_encoding(const struct fb_font_desc* font, - const char *string, - size_t len, - char **result) -{ - return utf8_to_enc(string, font->encoding, len, result); - -} - -int ctor_font_plotter_internal( FONT_PLOTTER self ) -{ - self->dtor = dtor; - self->str_width = str_width; - self->str_split = str_split; - self->pixel_pos = pixel_pos; - self->text = text; - LOG(("%s: %s\n", (char*)__FILE__, __FUNCTION__)); - if( !init ) { - vdih = self->vdi_handle; - fontbmp = atari_bitmap_create(48, 48, 0); - fontbmp->opaque = false; - } - init = true; - return( 1 ); -} - -static int dtor( FONT_PLOTTER self ) -{ - if( tmp.fd_addr != NULL ){ - free( tmp.fd_addr ); - } - return( 1 ); -} - -static int str_width( FONT_PLOTTER self,const plot_font_style_t *fstyle, const char * str, - size_t length, int * width ) -{ - const struct fb_font_desc* fb_font = fb_get_font(fstyle); - *width = fb_font->width * utf8_bounded_length(str, length); - return( 1 ); -} - -static int str_split( FONT_PLOTTER self, const plot_font_style_t * fstyle, const char *string, - size_t length,int x, size_t *char_offset, int *actual_x ) -{ - const struct fb_font_desc* fb_font = fb_get_font(fstyle); - int c_off = *char_offset = x / fb_font->width; - if (*char_offset > length) { - *char_offset = length; - } else { - while (*char_offset > 0) { - if (string[*char_offset] == ' ') - break; - (*char_offset)--; - } - if (*char_offset == 0) { - *char_offset = c_off; - while (*char_offset < length && - string[*char_offset] != ' ') { - (*char_offset)++; - } - } - } - *actual_x = *char_offset * fb_font->width; - return( 1 ); -} - -static int pixel_pos( FONT_PLOTTER self, const plot_font_style_t * fstyle,const char *string, - size_t length,int x, size_t *char_offset, int *actual_x ) -{ - const struct fb_font_desc* fb_font = fb_get_font(fstyle); - *char_offset = x / fb_font->width; - if (*char_offset > length) - *char_offset = length; - *actual_x = *char_offset * fb_font->width; - return( 1 ); -} - -static void draw_glyph1(FONT_PLOTTER self, GRECT *inloc, uint8_t *chrp, int pitch, uint32_t colour ) -{ - size_t bmpstride; - GRECT clip; - uint32_t * fontdata; - int xloop,yloop; - int stride = pitch / 8; - uint32_t * linebuf; - GRECT loc = *inloc; - - fontbmp = atari_bitmap_realloc( loc.g_w, loc.g_h, fontbmp->bpp, loc.g_w * fontbmp->bpp, BITMAP_GROW, fontbmp ); - bmpstride = atari_bitmap_get_rowstride(fontbmp); - for( yloop = 0; yloop < loc.g_h; yloop++) { - uint32_t pixmask = 1 ; - linebuf = (uint32_t *)(fontbmp->pixdata + (bmpstride * yloop)); - fontdata = (uint32_t*)(chrp + (stride*yloop)); - for(xloop = loc.g_w-1; xloop>=0; xloop--){ - linebuf[xloop] = ((pixmask & *fontdata) == 0) ? 0 : colour; - pixmask = (pixmask << 1); - } - } - plot_blit_bitmap(fontbmp, loc.g_x, loc.g_y, 0, BITMAPF_MONOGLYPH ); -} - -static int text( FONT_PLOTTER self, int x, int y, const char *text, size_t length, - const plot_font_style_t *fstyle ) -{ - const struct fb_font_desc* fb_font = fb_get_font(fstyle); - const uint32_t *chrp; - char *buffer = NULL; - int chr; - int blen; - GRECT loc; - uint32_t c; - - utf8_to_font_encoding(fb_font, text, length, &buffer); - if (buffer == NULL) - return 1; - - /* y is given to the fonts baseline we need it to the fonts top */ - y-=((fb_font->height * 75)/100); - - /* needed? */ - y+=1; /* the coord is the bottom-left of the pixels offset by 1 to make - * it work since fb coords are the top-left of pixels - */ - blen = strlen(buffer); - if ( blen < 1 ) { - return( 1 ); - } - - if(atari_plot_flags & PLOT_FLAG_OFFSCREEN ){ - /* when the plotter is an offscreen plotter the call to - bitmap() isn't that expensive. Draw an 8 bit bitmap into the - offscreen buffer. - */ - c = fstyle->foreground; - /* in -> BGR */ - /* out -> ARGB */ - c = (ABGR_TO_RGB(c) | 0xFF); - loc.g_y = y; - loc.g_x = x; - loc.g_w = fb_font->width; - loc.g_h = fb_font->height; - for (chr = 0; chr < blen; chr++) { - loc.g_x = x; - chrp = fb_font->data + ((unsigned char)buffer[chr] * fb_font->height); - draw_glyph1(self, &loc, (uint8_t *)chrp, 32, c); - x+=fb_font->width; - } - } else { - /* render the whole string into an monochrom mfdb */ - /* and plot that to reduce overhead */ - loc.g_x = x; - loc.g_y = y; - loc.g_w = blen * fb_font->width; - assert( loc.g_w > 0 ); - loc.g_h = fb_font->height; - int stride = MFDB_STRIDE( loc.g_w ); - if( tmp.fd_addr == NULL || tmp_mfdb_size < MFDB_SIZE( 1, stride, loc.g_h) ){ - tmp_mfdb_size = init_mfdb( 1, loc.g_w, loc.g_h+1, MFDB_FLAG_STAND | MFDB_FLAG_ZEROMEM, &tmp ); - } else { - void * buf = tmp.fd_addr; - int size = init_mfdb( 1, loc.g_w, loc.g_h+1, MFDB_FLAG_STAND | MFDB_FLAG_NOALLOC, &tmp ); - tmp.fd_addr = buf; - memset( tmp.fd_addr, 0, size ); - } - short ypos; - int rowsize = tmp.fd_wdwidth << 1; - char * d; - uint32_t * pp; - for (chr = 0; chr < blen; chr++) { - pp = (uint32_t*)fb_font->data + ((unsigned char)buffer[chr] * fb_font->height); - d = ((uint8_t*)tmp.fd_addr) + chr; - for( ypos=0; yposweight >= 700) { + if ((fstyle->flags & FONTF_ITALIC) || + (fstyle->flags & FONTF_OBLIQUE)) { + return &font_italic_bold; + } else { + return &font_bold; + } + } else { + if ((fstyle->flags & FONTF_ITALIC) || + (fstyle->flags & FONTF_OBLIQUE)) { + return &font_italic; + } else { + return &font_regular; + } + } +} + +static nserror utf8_to_font_encoding(const struct fb_font_desc* font, + const char *string, + size_t len, + char **result) +{ + return utf8_to_enc(string, font->encoding, len, result); + +} + +int ctor_font_plotter_internal( FONT_PLOTTER self ) +{ + self->dtor = dtor; + self->str_width = str_width; + self->str_split = str_split; + self->pixel_pos = pixel_pos; + self->text = text; + LOG(("%s: %s\n", (char*)__FILE__, __FUNCTION__)); + if( !init ) { + vdih = self->vdi_handle; + fontbmp = atari_bitmap_create(48, 48, 0); + fontbmp->opaque = false; + } + init = true; + return( 1 ); +} + +static int dtor( FONT_PLOTTER self ) +{ + if( tmp.fd_addr != NULL ){ + free( tmp.fd_addr ); + } + return( 1 ); +} + +static int str_width( FONT_PLOTTER self,const plot_font_style_t *fstyle, const char * str, + size_t length, int * width ) +{ + const struct fb_font_desc* fb_font = fb_get_font(fstyle); + *width = fb_font->width * utf8_bounded_length(str, length); + return( 1 ); +} + +static int str_split( FONT_PLOTTER self, const plot_font_style_t * fstyle, const char *string, + size_t length,int x, size_t *char_offset, int *actual_x ) +{ + const struct fb_font_desc* fb_font = fb_get_font(fstyle); + int c_off = *char_offset = x / fb_font->width; + if (*char_offset > length) { + *char_offset = length; + } else { + while (*char_offset > 0) { + if (string[*char_offset] == ' ') + break; + (*char_offset)--; + } + if (*char_offset == 0) { + *char_offset = c_off; + while (*char_offset < length && + string[*char_offset] != ' ') { + (*char_offset)++; + } + } + } + *actual_x = *char_offset * fb_font->width; + return( 1 ); +} + +static int pixel_pos( FONT_PLOTTER self, const plot_font_style_t * fstyle,const char *string, + size_t length,int x, size_t *char_offset, int *actual_x ) +{ + const struct fb_font_desc* fb_font = fb_get_font(fstyle); + *char_offset = x / fb_font->width; + if (*char_offset > length) + *char_offset = length; + *actual_x = *char_offset * fb_font->width; + return( 1 ); +} + +static void draw_glyph1(FONT_PLOTTER self, GRECT *inloc, uint8_t *chrp, int pitch, uint32_t colour ) +{ + size_t bmpstride; + GRECT clip; + uint32_t * fontdata; + int xloop,yloop; + int stride = pitch / 8; + uint32_t * linebuf; + GRECT loc = *inloc; + + fontbmp = atari_bitmap_realloc( loc.g_w, loc.g_h, fontbmp->bpp, loc.g_w * fontbmp->bpp, BITMAP_GROW, fontbmp ); + bmpstride = atari_bitmap_get_rowstride(fontbmp); + for( yloop = 0; yloop < loc.g_h; yloop++) { + uint32_t pixmask = 1 ; + linebuf = (uint32_t *)(fontbmp->pixdata + (bmpstride * yloop)); + fontdata = (uint32_t*)(chrp + (stride*yloop)); + for(xloop = loc.g_w-1; xloop>=0; xloop--){ + linebuf[xloop] = ((pixmask & *fontdata) == 0) ? 0 : colour; + pixmask = (pixmask << 1); + } + } + plot_blit_bitmap(fontbmp, loc.g_x, loc.g_y, 0, BITMAPF_MONOGLYPH ); +} + +static int text( FONT_PLOTTER self, int x, int y, const char *text, size_t length, + const plot_font_style_t *fstyle ) +{ + const struct fb_font_desc* fb_font = fb_get_font(fstyle); + const uint32_t *chrp; + char *buffer = NULL; + int chr; + int blen; + GRECT loc; + uint32_t c; + + utf8_to_font_encoding(fb_font, text, length, &buffer); + if (buffer == NULL) + return 1; + + /* y is given to the fonts baseline we need it to the fonts top */ + y-=((fb_font->height * 75)/100); + + /* needed? */ + y+=1; /* the coord is the bottom-left of the pixels offset by 1 to make + * it work since fb coords are the top-left of pixels + */ + blen = strlen(buffer); + if ( blen < 1 ) { + return( 1 ); + } + + if(atari_plot_flags & PLOT_FLAG_OFFSCREEN ){ + /* when the plotter is an offscreen plotter the call to + bitmap() isn't that expensive. Draw an 8 bit bitmap into the + offscreen buffer. + */ + c = fstyle->foreground; + /* in -> BGR */ + /* out -> ARGB */ + c = (ABGR_TO_RGB(c) | 0xFF); + loc.g_y = y; + loc.g_x = x; + loc.g_w = fb_font->width; + loc.g_h = fb_font->height; + for (chr = 0; chr < blen; chr++) { + loc.g_x = x; + chrp = fb_font->data + ((unsigned char)buffer[chr] * fb_font->height); + draw_glyph1(self, &loc, (uint8_t *)chrp, 32, c); + x+=fb_font->width; + } + } else { + /* render the whole string into an monochrom mfdb */ + /* and plot that to reduce overhead */ + loc.g_x = x; + loc.g_y = y; + loc.g_w = blen * fb_font->width; + assert( loc.g_w > 0 ); + loc.g_h = fb_font->height; + int stride = MFDB_STRIDE( loc.g_w ); + if( tmp.fd_addr == NULL || tmp_mfdb_size < MFDB_SIZE( 1, stride, loc.g_h) ){ + tmp_mfdb_size = init_mfdb( 1, loc.g_w, loc.g_h+1, MFDB_FLAG_STAND | MFDB_FLAG_ZEROMEM, &tmp ); + } else { + void * buf = tmp.fd_addr; + int size = init_mfdb( 1, loc.g_w, loc.g_h+1, MFDB_FLAG_STAND | MFDB_FLAG_NOALLOC, &tmp ); + tmp.fd_addr = buf; + memset( tmp.fd_addr, 0, size ); + } + short ypos; + int rowsize = tmp.fd_wdwidth << 1; + char * d; + uint32_t * pp; + for (chr = 0; chr < blen; chr++) { + pp = (uint32_t*)fb_font->data + ((unsigned char)buffer[chr] * fb_font->height); + d = ((uint8_t*)tmp.fd_addr) + chr; + for( ypos=0; ypos 8 ){ -#endif +#endif //unsigned short out[4]; - RGB1000 out; + RGB1000 out; //rgb_to_vdi1000( (unsigned char*)&fstyle->foreground, (unsigned short*)&out ); out.blue = 0; out.green = 1000; @@ -269,2116 +269,2117 @@ static int text( FONT_PLOTTER self, int x, int y, const char *text, size_t leng vq_color(atari_plot_vdi_handle, OFFSET_CUSTOM_COLOR, 1, (short *)&out); //printf("r:%d,g:%d,b:%d", out.red, out.green, out.blue); //vsl_color(atari_plot_vdi_handle, OFFSET_CUSTOM_COLOR); - //vsf_color(atari_plot_vdi_handle, OFFSET_CUSTOM_COLOR); + //vsf_color(atari_plot_vdi_handle, OFFSET_CUSTOM_COLOR); plot_blit_mfdb(&loc, &tmp, OFFSET_CUSTOM_COLOR, PLOT_FLAG_TRANS); #ifdef WITH_8BPP_SUPPORT } else { unsigned char c = RGB_TO_VDI(fstyle->foreground); plot_blit_mfdb(&loc, &tmp, c, PLOT_FLAG_TRANS ); } -#endif - } - - free(buffer); - return( 1 ); -} - -/* ------------------*/ -/* Fontdata */ -/* ------------------*/ - -static const uint32_t fontdata_bold[FONTDATAMAX] = { - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xE4, 0xAC, 0xA4, 0xA4, 0xEE, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xEC, 0xA2, 0xA4, 0xA8, 0xEE, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xEC, 0xA2, 0xAC, 0xA2, 0xEC, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xEA, 0xAA, 0xAE, 0xA2, 0xE2, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xEE, 0xA8, 0xAE, 0xA2, 0xEE, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xE6, 0xA8, 0xAE, 0xAA, 0xEE, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xEE, 0xA2, 0xA4, 0xA4, 0xE4, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xEE, 0xAA, 0xAE, 0xAA, 0xEE, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xEE, 0xAA, 0xAE, 0xA2, 0xE2, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xE4, 0xAA, 0xAE, 0xAA, 0xEA, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xEC, 0xAA, 0xAC, 0xAA, 0xEC, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xE4, 0xAA, 0xA8, 0xAA, 0xE4, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xEC, 0xAA, 0xAA, 0xAA, 0xEC, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xEE, 0xA8, 0xAC, 0xA8, 0xEE, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xEE, 0xA8, 0xAC, 0xA8, 0xE8, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x4E, 0xCA, 0x4A, 0x4A, 0xEE, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x44, 0xCC, 0x44, 0x44, 0xEE, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x4C, 0xC2, 0x44, 0x48, 0xEE, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x4C, 0xC2, 0x4C, 0x42, 0xEC, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x4A, 0xCA, 0x4E, 0x42, 0xE2, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x4E, 0xC8, 0x4E, 0x42, 0xEE, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x46, 0xC8, 0x4E, 0x4A, 0xEE, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x4E, 0xC2, 0x44, 0x44, 0xE4, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x4E, 0xCA, 0x4E, 0x4A, 0xEE, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x4E, 0xCA, 0x4E, 0x42, 0xE2, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x44, 0xCA, 0x4E, 0x4A, 0xEA, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x4C, 0xCA, 0x4C, 0x4A, 0xEC, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x44, 0xCA, 0x48, 0x4A, 0xE4, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x4C, 0xCA, 0x4A, 0x4A, 0xEC, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x4E, 0xC8, 0x4C, 0x48, 0xEE, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x4E, 0xC8, 0x4C, 0x48, 0xE8, 0x00, 0xFE, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, - 0x1C, 0x00, 0x1C, 0x1C, 0x1C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x6C, 0x6C, 0xFE, 0xFE, 0xFE, 0x6C, 0x6C, - 0xFE, 0xFE, 0xFE, 0x6C, 0x6C, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x7C, 0xFE, 0xF6, 0xF0, 0xF8, 0x7C, - 0x3E, 0x1E, 0xDE, 0xFE, 0x7C, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE6, 0xEE, 0x1C, - 0x38, 0x70, 0xEE, 0xCE, 0x0E, 0x00, 0x00, 0x00, - 0x00, 0x70, 0xF8, 0xF8, 0xF8, 0xF8, 0x76, 0xFE, - 0xFE, 0xEC, 0xEE, 0xFE, 0x76, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x06, 0x0C, 0x1C, 0x38, 0x38, 0x70, 0x70, 0x70, - 0x70, 0x70, 0x38, 0x38, 0x1C, 0x0C, 0x06, 0x00, - 0x60, 0x30, 0x38, 0x1C, 0x1C, 0x0E, 0x0E, 0x0E, - 0x0E, 0x0E, 0x1C, 0x1C, 0x38, 0x30, 0x60, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x54, 0xFE, 0x7C, 0x38, - 0x7C, 0xFE, 0x54, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0xFE, - 0xFE, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x38, 0x78, 0x70, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, - 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x1E, 0x3C, - 0x78, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x7C, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, - 0xEE, 0xEE, 0xEE, 0x7C, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x18, 0x38, 0x78, 0x78, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xFE, 0xEE, 0x0E, 0x0E, 0x7E, 0xFC, - 0xE0, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xFE, 0xEE, 0x0E, 0x0E, 0x3C, 0x3C, - 0x0E, 0x0E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x0C, 0x1C, 0x3C, 0x7C, 0x6C, 0xEC, - 0xFE, 0xFE, 0x1C, 0x1C, 0x1C, 0x00, 0x00, 0x00, - 0x00, 0xFE, 0xFE, 0xE0, 0xE0, 0xFC, 0xFE, 0x0E, - 0x0E, 0x0E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xFC, 0xE0, 0xE0, 0xFC, 0xFE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0xFE, 0xFE, 0x0E, 0x0E, 0x1C, 0x1C, 0x1C, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xFE, 0x7C, 0xFE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, - 0x0E, 0x0E, 0x0E, 0x7C, 0x78, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x00, - 0x00, 0x00, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x00, - 0x00, 0x18, 0x38, 0x38, 0x30, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x06, 0x0E, 0x1C, 0x38, 0x70, - 0x70, 0x38, 0x1C, 0x0E, 0x06, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x00, - 0x00, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x60, 0x70, 0x38, 0x1C, 0x0E, - 0x0E, 0x1C, 0x38, 0x70, 0x60, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xFE, 0xEE, 0x0E, 0x0E, 0x3E, 0x7C, - 0x70, 0x00, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xEE, 0xFE, 0xFE, - 0xEC, 0xE0, 0xE0, 0xFC, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0xFE, - 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0xFC, 0xFE, 0xEE, 0xEE, 0xEE, 0xFC, 0xFC, - 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xE0, 0xE0, 0xE0, - 0xE0, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0xF8, 0xFC, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFC, 0xF8, 0x00, 0x00, 0x00, - 0x00, 0xFE, 0xFE, 0xE0, 0xE0, 0xE0, 0xF8, 0xF8, - 0xE0, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0xFE, 0xFE, 0xE0, 0xE0, 0xE0, 0xF8, 0xF8, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xE0, 0xE0, 0xFE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xFE, 0xFE, - 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0xFE, 0xFE, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, - 0x0E, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0xE0, 0xE6, 0xEE, 0xFE, 0xFC, 0xF8, 0xF0, - 0xF8, 0xFC, 0xFE, 0xEE, 0xE6, 0x00, 0x00, 0x00, - 0x00, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0xC6, 0xEE, 0xFE, 0xFE, 0xFE, 0xFE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0xCE, 0xEE, 0xEE, 0xFE, 0xFE, 0xFE, 0xFE, - 0xFE, 0xFE, 0xEE, 0xEE, 0xE6, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0xFC, 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0xFE, - 0xFC, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, - 0xEE, 0xFE, 0xFE, 0xFE, 0x7E, 0x06, 0x00, 0x00, - 0x00, 0xFC, 0xFE, 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, - 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xFE, 0xEE, 0xE0, 0xE0, 0xFC, 0x7E, - 0x0E, 0x0E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0xFE, 0xFE, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, - 0x6C, 0x7C, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, - 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, - 0xFE, 0xFE, 0xFE, 0xEE, 0x44, 0x00, 0x00, 0x00, - 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0x7C, 0x38, 0x38, - 0x7C, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x7C, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0xFE, 0xFE, 0x0E, 0x0E, 0x1C, 0x38, 0x38, - 0x70, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x3E, 0x3E, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x3E, 0x3E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x40, 0xE0, 0xF0, 0x78, - 0x3C, 0x1E, 0x0E, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFC, 0xFC, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, - 0x1C, 0x1C, 0x1C, 0xFC, 0xFC, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x7C, 0xEE, 0xC6, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, - 0x00, 0x00, 0x00, 0x30, 0x38, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0x0E, - 0x7E, 0xFE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0xE0, 0xE0, 0xE0, 0xE0, 0xFC, 0xFE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFE, 0xEE, - 0xE0, 0xE0, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x0E, 0x0E, 0x0E, 0x0E, 0x7E, 0xFE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFE, 0xEE, - 0xFE, 0xFE, 0xE0, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x3E, 0x7E, 0x70, 0x70, 0x70, 0xF8, 0xF8, - 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xFE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x0E, 0x7E, 0x7C, - 0x00, 0x00, 0xE0, 0xE0, 0xE0, 0xFC, 0xFE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x38, 0x38, 0x00, 0x78, 0x78, 0x38, - 0x38, 0x38, 0x38, 0x7C, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x3C, 0x3C, 0x1C, - 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x7C, 0x78, - 0x00, 0xE0, 0xE0, 0xE0, 0xE6, 0xEE, 0xFE, 0xFC, - 0xF8, 0xFC, 0xFE, 0xEE, 0xE6, 0x00, 0x00, 0x00, - 0x00, 0x78, 0x78, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xEC, 0xFE, 0xFE, - 0xFE, 0xFE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0xE0, 0xE0, 0xE0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xFE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x0E, 0x0F, 0x0F, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, 0xFE, 0xE0, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xFE, 0xE0, - 0xFC, 0x7E, 0x0E, 0xFE, 0xFC, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x30, 0x70, 0x70, 0xFC, 0xFC, 0x70, - 0x70, 0x70, 0x70, 0x7E, 0x3E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xEE, 0xEE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xEE, 0xEE, 0xEE, - 0xEE, 0xEE, 0x7C, 0x38, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xEE, 0xEE, 0xEE, - 0xFE, 0xFE, 0xFE, 0xEE, 0x44, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xEE, 0xEE, 0xEE, - 0x7C, 0x7C, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xEE, 0xEE, 0xEE, - 0xEE, 0xEE, 0xFE, 0x7E, 0x0E, 0x0E, 0xFE, 0xFC, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x1E, - 0x3C, 0x78, 0xF0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x1E, 0x3E, 0x38, 0x38, 0x38, 0xF0, 0xF0, - 0x38, 0x38, 0x38, 0x3E, 0x1E, 0x00, 0x00, 0x00, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, - 0x00, 0xF0, 0xF8, 0x38, 0x38, 0x38, 0x1E, 0x1E, - 0x38, 0x38, 0x38, 0xF8, 0xF0, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x66, 0xFE, 0xFE, 0xCC, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xEE, 0x28, 0x4C, 0x48, 0x48, 0x00, 0xFE, - 0x00, 0x38, 0x7C, 0xEE, 0xE0, 0xFC, 0xE0, 0xF8, - 0xE0, 0xE0, 0xEE, 0x7C, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, - 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x38, 0x38, 0x18, 0x30, 0x00, - 0x00, 0x3E, 0x7E, 0x70, 0x70, 0x70, 0xF8, 0xF8, - 0x70, 0x70, 0x70, 0x70, 0x70, 0xF0, 0xE0, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xEE, 0xEE, 0x66, 0xCC, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xDB, 0xDB, 0xDB, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x38, 0x38, 0x38, 0xFE, 0xFE, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, - 0x00, 0x38, 0x38, 0x38, 0xFE, 0xFE, 0x38, 0xFE, - 0xFE, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, - 0x00, 0x7C, 0xEE, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xCE, 0x1C, - 0x38, 0x70, 0xE0, 0xDB, 0x1B, 0x00, 0x00, 0x00, - 0xEE, 0x7C, 0x00, 0x7C, 0xFE, 0xEE, 0xE0, 0xFC, - 0x7E, 0x0E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0E, 0x1C, - 0x38, 0x70, 0x38, 0x1C, 0x0E, 0x06, 0x00, 0x00, - 0x00, 0x7F, 0xFF, 0xEE, 0xEE, 0xEE, 0xEF, 0xEF, - 0xEE, 0xEE, 0xEE, 0xFF, 0x7F, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, - 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, - 0xEE, 0x7C, 0x00, 0xFE, 0xFE, 0x0E, 0x1E, 0x3C, - 0x78, 0xF0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, - 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, - 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x30, 0x30, 0x30, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x30, 0x30, 0x30, 0x60, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x36, 0x6C, 0x6C, 0x6C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x36, 0x36, 0x36, 0x6C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, - 0x7E, 0x7E, 0x7E, 0x3C, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x7B, 0xDE, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xF1, 0xFB, 0x5F, 0x55, 0x51, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xEE, 0x7C, 0x38, 0x00, 0x7E, 0xFE, 0xE0, - 0xFC, 0x7E, 0x0E, 0xFE, 0xFC, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x70, 0x38, - 0x1C, 0x0E, 0x1C, 0x38, 0x70, 0x60, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xFE, 0xFA, - 0xDE, 0xDE, 0xFC, 0xFE, 0x6E, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, - 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, - 0x00, 0xEE, 0x7C, 0x38, 0x00, 0xFE, 0xFE, 0x1E, - 0x3C, 0x78, 0xF0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0xEE, 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0x7C, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x00, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x10, 0x7C, 0xFE, 0xD6, - 0xD0, 0xD0, 0xD6, 0xFE, 0x7C, 0x10, 0x10, 0x00, - 0x00, 0x3C, 0x7E, 0x76, 0x70, 0xFC, 0xFC, 0xFC, - 0x70, 0x76, 0xFE, 0xFE, 0xDC, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xEE, 0xEE, 0x7C, 0xFE, - 0xFE, 0xFE, 0xFE, 0x7C, 0xEE, 0xEE, 0x00, 0x00, - 0x00, 0x00, 0xEE, 0xEE, 0xEE, 0x7C, 0x38, 0xFE, - 0x38, 0xFE, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x38, 0x38, 0x38, 0x38, 0x00, - 0x00, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x3C, 0x7C, 0x7C, 0x70, 0x3C, 0x7E, 0x66, - 0x7E, 0x3C, 0x0E, 0x3E, 0x3E, 0x3C, 0x00, 0x00, - 0x00, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x3C, 0x7E, 0xC3, 0x99, 0xBD, 0xA5, 0xA1, - 0xA5, 0xBD, 0x99, 0xC3, 0x7E, 0x3C, 0x00, 0x00, - 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x7C, 0x00, 0xFC, - 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, - 0x7C, 0xF8, 0xF8, 0x7C, 0x3E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x7E, 0x7E, 0x7E, 0x06, 0x02, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x7E, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x3C, 0x7E, 0xC3, 0xB9, 0xBD, 0xA5, 0xB9, - 0xB9, 0xA5, 0xA5, 0xC3, 0x7E, 0x3C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x78, 0xFC, 0xCC, 0xFC, 0x78, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x38, 0x38, 0xFE, 0xFE, 0xFE, 0x38, - 0x38, 0x00, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0xF8, 0x18, 0x78, 0xF0, 0xC0, - 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0xF8, 0x18, 0x30, 0x18, 0xF8, - 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x38, 0x70, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0xE0, 0xE0, 0xC0, - 0x00, 0x00, 0x00, 0x7F, 0xDB, 0xDB, 0xDB, 0x7B, - 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, - 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x18, 0x1C, 0x0C, 0x1C, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x60, 0xE0, 0x60, 0x60, 0x60, 0xF0, - 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x70, 0xF8, 0x88, 0xF8, 0x70, 0x00, 0xF8, - 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, - 0x6C, 0x36, 0x36, 0x6C, 0xD8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x60, 0xE0, 0x62, 0x66, 0xFE, 0x1C, - 0x38, 0x76, 0xEE, 0xD6, 0x3E, 0x3E, 0x06, 0x00, - 0x00, 0x00, 0x60, 0xE0, 0x62, 0x66, 0xFE, 0x1C, - 0x38, 0x70, 0xFC, 0xC6, 0x0C, 0x18, 0x1E, 0x00, - 0x00, 0x00, 0xE0, 0x30, 0x62, 0x36, 0xEE, 0x1C, - 0x3A, 0x76, 0xEE, 0xD6, 0x3E, 0x3E, 0x06, 0x00, - 0x00, 0x00, 0x1C, 0x1C, 0x1C, 0x00, 0x1C, 0x1C, - 0x7C, 0xF8, 0xE0, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, - 0x00, 0xE0, 0x70, 0x00, 0x10, 0x38, 0x7C, 0xEE, - 0xFE, 0xFE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x0E, 0x1C, 0x00, 0x10, 0x38, 0x7C, 0xEE, - 0xFE, 0xFE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x6C, 0xC6, 0x10, 0x38, 0x7C, 0xEE, - 0xFE, 0xFE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x76, 0xDC, 0x00, 0x10, 0x38, 0x7C, 0xEE, - 0xFE, 0xFE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0xEE, 0xEE, 0x10, 0x38, 0x7C, 0xEE, 0xFE, - 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x6C, 0x38, 0x38, 0x7C, 0xEE, 0xFE, - 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x1F, 0x3F, 0x7F, 0xFE, 0xEE, 0xFF, 0xFF, - 0xFE, 0xEE, 0xEF, 0xEF, 0xEF, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xFE, 0xEE, 0xE0, 0xE0, 0xE0, 0xE0, - 0xE0, 0xE0, 0xEE, 0xFE, 0x7C, 0x0E, 0x6E, 0x7C, - 0x00, 0x70, 0x38, 0x00, 0xFE, 0xFE, 0xE0, 0xE0, - 0xF8, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x1C, 0x38, 0x00, 0xFE, 0xFE, 0xE0, 0xE0, - 0xF8, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xEE, 0x00, 0xFE, 0xFE, 0xE0, 0xE0, - 0xF8, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0xEE, 0xEE, 0x00, 0xFE, 0xFE, 0xE0, 0xE0, 0xF8, - 0xF8, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x70, 0x38, 0x00, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x1C, 0x38, 0x00, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x6C, 0x38, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0xEE, 0xEE, 0x00, 0x38, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xF8, 0xFC, 0xEE, 0xEE, 0xEE, 0xFE, - 0xEE, 0xEE, 0xEE, 0xFC, 0xF8, 0x00, 0x00, 0x00, - 0x00, 0x76, 0xDC, 0x00, 0xEE, 0xEE, 0xEE, 0xF6, - 0xFE, 0xDE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x70, 0x38, 0x00, 0x7C, 0xFE, 0xEE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x1C, 0x38, 0x00, 0x7C, 0xFE, 0xEE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xEE, 0x00, 0x7C, 0xFE, 0xEE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x76, 0xDC, 0x00, 0x7C, 0xFE, 0xEE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0xEE, 0xEE, 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xEE, 0x7C, - 0x38, 0x38, 0x7C, 0xEE, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x7A, 0xFC, 0xEE, 0xEE, 0xEE, 0xFE, 0xFE, - 0xFE, 0xEE, 0xEE, 0xFE, 0x7C, 0x80, 0x00, 0x00, - 0x00, 0x70, 0x38, 0x00, 0xEE, 0xEE, 0xEE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x1C, 0x38, 0x00, 0xEE, 0xEE, 0xEE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xEE, 0x00, 0xEE, 0xEE, 0xEE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0xEE, 0xEE, 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x1C, 0x38, 0x00, 0xEE, 0xEE, 0xEE, 0xEE, - 0x7C, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xE0, 0xE0, 0xFC, 0xFE, 0xEE, 0xEE, - 0xEE, 0xFE, 0xFC, 0xE0, 0xE0, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, - 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0xE0, 0xC0, 0x00, - 0x00, 0x00, 0x70, 0x38, 0x00, 0x7C, 0x7E, 0x0E, - 0x7E, 0xFE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x38, 0x00, 0x7C, 0x7E, 0x0E, - 0x7E, 0xFE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x7C, 0xEE, 0x00, 0x7C, 0x7E, 0x0E, - 0x7E, 0xFE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x76, 0xDC, 0x00, 0x7C, 0x7E, 0x0E, - 0x7E, 0xFE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xEE, 0xEE, 0x00, 0x7C, 0x7E, 0x0E, - 0x7E, 0xFE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x6C, 0x38, 0x00, 0x7C, 0x7E, 0x0E, - 0x7E, 0xFE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x74, 0x7E, 0x7E, 0x1A, - 0x7E, 0xFE, 0xD8, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFE, - 0xEE, 0xE0, 0xEE, 0xFE, 0x7C, 0x1C, 0x7E, 0x7C, - 0x00, 0x00, 0x70, 0x38, 0x00, 0x7C, 0xFE, 0xEE, - 0xFE, 0xFE, 0xE0, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x38, 0x70, 0x00, 0x7C, 0xFE, 0xEE, - 0xFE, 0xFE, 0xE0, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x7C, 0xEE, 0x00, 0x7C, 0xFE, 0xEE, - 0xFE, 0xFE, 0xE0, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xEE, 0xEE, 0x00, 0x7C, 0xFE, 0xEE, - 0xFE, 0xFE, 0xE0, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x70, 0x38, 0x00, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x38, 0x00, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x7C, 0xEE, 0x00, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xEE, 0xEE, 0x00, 0x38, 0x38, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0xEC, 0x7C, 0xF8, 0xFC, 0x7E, 0xFE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x76, 0xFE, 0xDC, 0x00, 0xFC, 0xFE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xE0, 0x70, 0x00, 0x7C, 0xFE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x38, 0x70, 0x00, 0x7C, 0xFE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x7C, 0xEE, 0x00, 0x7C, 0xFE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x76, 0xFE, 0xDC, 0x00, 0x7C, 0xFE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xEE, 0xEE, 0x00, 0x7C, 0xFE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x00, 0xFE, - 0xFE, 0x00, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x7C, 0xFE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x80, 0x00, 0x00, - 0x00, 0x00, 0xE0, 0x70, 0x00, 0xEE, 0xEE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x38, 0x70, 0x00, 0xEE, 0xEE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x7C, 0xEE, 0x00, 0xEE, 0xEE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xEE, 0xEE, 0x00, 0xEE, 0xEE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x38, 0x00, 0xEE, 0xEE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x0E, 0xFE, 0xFC, - 0x00, 0x00, 0xE0, 0xE0, 0xFC, 0xFE, 0xEE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0xE0, 0xE0, - 0x00, 0x00, 0xEE, 0xEE, 0x00, 0xEE, 0xEE, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x0E, 0xFE, 0xFC, -}; - -const struct fb_font_desc font_bold = { - .name = "NetSurf Bold", - .width = 8, - .height = 16, - .encoding = "CP1252", - .data = fontdata_bold, -}; - - -static const uint32_t fontdata_italic[FONTDATAMAX] = { - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xE4, 0xAC, 0xA4, 0xA4, 0xEE, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xEC, 0xA2, 0xA4, 0xA8, 0xEE, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xEC, 0xA2, 0xAC, 0xA2, 0xEC, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xEA, 0xAA, 0xAE, 0xA2, 0xE2, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xEE, 0xA8, 0xAE, 0xA2, 0xEE, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xE6, 0xA8, 0xAE, 0xAA, 0xEE, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xEE, 0xA2, 0xA4, 0xA4, 0xE4, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xEE, 0xAA, 0xAE, 0xAA, 0xEE, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xEE, 0xAA, 0xAE, 0xA2, 0xE2, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xE4, 0xAA, 0xAE, 0xAA, 0xEA, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xEC, 0xAA, 0xAC, 0xAA, 0xEC, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xE4, 0xAA, 0xA8, 0xAA, 0xE4, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xEC, 0xAA, 0xAA, 0xAA, 0xEC, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xEE, 0xA8, 0xAC, 0xA8, 0xEE, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xEE, 0xA8, 0xAC, 0xA8, 0xE8, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x4E, 0xCA, 0x4A, 0x4A, 0xEE, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x44, 0xCC, 0x44, 0x44, 0xEE, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x4C, 0xC2, 0x44, 0x48, 0xEE, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x4C, 0xC2, 0x4C, 0x42, 0xEC, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x4A, 0xCA, 0x4E, 0x42, 0xE2, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x4E, 0xC8, 0x4E, 0x42, 0xEE, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x46, 0xC8, 0x4E, 0x4A, 0xEE, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x4E, 0xC2, 0x44, 0x44, 0xE4, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x4E, 0xCA, 0x4E, 0x4A, 0xEE, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x4E, 0xCA, 0x4E, 0x42, 0xE2, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x44, 0xCA, 0x4E, 0x4A, 0xEA, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x4C, 0xCA, 0x4C, 0x4A, 0xEC, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x44, 0xCA, 0x48, 0x4A, 0xE4, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x4C, 0xCA, 0x4A, 0x4A, 0xEC, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x4E, 0xC8, 0x4C, 0x48, 0xEE, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x4E, 0xC8, 0x4C, 0x48, 0xE8, 0x00, 0xFE, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x06, 0x06, 0x06, 0x06, 0x0C, 0x0C, 0x0C, - 0x0C, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1B, 0x1B, 0x36, 0x36, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x1B, 0x1B, 0x1B, 0x7F, 0x7F, 0x36, 0x36, - 0xFF, 0xFF, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x3E, 0x7F, 0x6B, 0x68, 0x78, 0x3C, - 0x1E, 0x16, 0xD6, 0xFE, 0x7C, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xCE, 0x1C, - 0x38, 0x70, 0xE6, 0xC6, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x1C, 0x3E, 0x36, 0x36, 0x3C, 0x39, 0x7F, - 0x6E, 0xCC, 0xCC, 0xFE, 0x7A, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x06, 0x0C, 0x0C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x06, 0x0E, 0x1C, 0x38, 0x30, 0x60, 0x60, 0xC0, - 0xC0, 0xC0, 0xC0, 0xC0, 0xE0, 0x70, 0x30, 0x00, - 0x18, 0x1C, 0x0E, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x0C, 0x0C, 0x18, 0x38, 0x70, 0xE0, 0xC0, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x36, 0x36, 0x1C, 0x7F, - 0xFE, 0x38, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7E, - 0xFC, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x38, 0x70, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xFC, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0E, 0x1C, - 0x38, 0x70, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x1E, 0x3F, 0x33, 0x33, 0x67, 0x6E, 0x76, - 0xE6, 0xCC, 0xCC, 0xFC, 0x78, 0x00, 0x00, 0x00, - 0x00, 0x06, 0x0E, 0x1E, 0x3C, 0x0C, 0x0C, 0x18, - 0x18, 0x18, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, - 0x00, 0x1E, 0x3F, 0x33, 0x03, 0x07, 0x1E, 0x7C, - 0x60, 0xC0, 0xC0, 0xFC, 0xFC, 0x00, 0x00, 0x00, - 0x00, 0x1E, 0x3F, 0x33, 0x03, 0x06, 0x1E, 0x1E, - 0x06, 0x06, 0xCC, 0xFC, 0x78, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1E, 0x36, 0x7F, - 0x7F, 0x0C, 0x0C, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x1F, 0x1F, 0x30, 0x30, 0x7C, 0x7E, 0x06, - 0x06, 0x06, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x00, - 0x00, 0x0F, 0x1F, 0x38, 0x30, 0x60, 0x7C, 0x7E, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x3F, 0x7F, 0x63, 0x03, 0x06, 0x06, 0x0C, - 0x0C, 0x18, 0x18, 0x30, 0x30, 0x00, 0x00, 0x00, - 0x00, 0x1E, 0x3F, 0x33, 0x33, 0x33, 0x1E, 0x7C, - 0x66, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x1E, 0x3F, 0x33, 0x63, 0x63, 0x7E, 0x3E, - 0x06, 0x0C, 0x1C, 0xF8, 0xF0, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, - 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, - 0x00, 0x00, 0x18, 0x38, 0x30, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x0E, 0x1C, 0x38, 0x70, 0x70, - 0x70, 0x38, 0x1C, 0x0C, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3E, 0x7C, 0x00, 0x00, - 0x7C, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x18, 0x0C, 0x0C, 0x06, 0x0E, - 0x1C, 0x38, 0x70, 0x60, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x1E, 0x3F, 0x33, 0x33, 0x03, 0x07, 0x0E, - 0x1C, 0x18, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, - 0x00, 0x1E, 0x3F, 0x33, 0x63, 0x6F, 0x6B, 0x6B, - 0xCF, 0xCE, 0xC0, 0xFC, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x1E, 0x3F, 0x33, 0x33, 0x66, 0x7E, 0x7E, - 0x66, 0xCC, 0xCC, 0xCC, 0xCC, 0x00, 0x00, 0x00, - 0x00, 0x3E, 0x3F, 0x33, 0x63, 0x63, 0x7E, 0x7C, - 0x66, 0xC6, 0xC6, 0xFE, 0xFC, 0x00, 0x00, 0x00, - 0x00, 0x1E, 0x3F, 0x33, 0x30, 0x60, 0x60, 0x60, - 0x60, 0xC0, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x3E, 0x3F, 0x33, 0x63, 0x63, 0x63, 0x63, - 0xC3, 0xC6, 0xCE, 0xFC, 0xF8, 0x00, 0x00, 0x00, - 0x00, 0x3F, 0x3F, 0x30, 0x30, 0x60, 0x7C, 0x7C, - 0x60, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x3F, 0x3F, 0x30, 0x30, 0x60, 0x7C, 0x7C, - 0x60, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, - 0x00, 0x1E, 0x3F, 0x33, 0x30, 0x60, 0x60, 0x6E, - 0x6E, 0xC6, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x00, - 0x00, 0x33, 0x33, 0x33, 0x63, 0x66, 0x7E, 0x7E, - 0xC6, 0xC6, 0xCC, 0xCC, 0xCC, 0x00, 0x00, 0x00, - 0x00, 0x3F, 0x3F, 0x0C, 0x0C, 0x18, 0x18, 0x18, - 0x18, 0x30, 0x30, 0xFC, 0xFC, 0x00, 0x00, 0x00, - 0x00, 0x03, 0x03, 0x03, 0x03, 0x06, 0x06, 0x06, - 0x06, 0x0C, 0xCC, 0xFC, 0x78, 0x00, 0x00, 0x00, - 0x00, 0x30, 0x30, 0x33, 0x36, 0x7C, 0x78, 0x70, - 0x78, 0xF8, 0xDC, 0xCE, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x30, 0x30, 0x30, 0x30, 0x60, 0x60, 0x60, - 0x60, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x33, 0x33, 0x3F, 0x3F, 0x7F, 0x6B, 0x66, - 0x66, 0xC6, 0xCC, 0xCC, 0xCC, 0x00, 0x00, 0x00, - 0x00, 0x33, 0x33, 0x3B, 0x3B, 0x7B, 0x7E, 0x6E, - 0x6E, 0xCE, 0xCC, 0xCC, 0xCC, 0x00, 0x00, 0x00, - 0x00, 0x1E, 0x3F, 0x33, 0x33, 0x63, 0x66, 0x66, - 0xC6, 0xCC, 0xCC, 0xFC, 0x78, 0x00, 0x00, 0x00, - 0x00, 0x3E, 0x3F, 0x33, 0x33, 0x67, 0x7E, 0x7C, - 0x60, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, - 0x00, 0x1E, 0x3F, 0x33, 0x33, 0x63, 0x66, 0x66, - 0xC6, 0xF6, 0xDC, 0xF8, 0x7C, 0x0C, 0x00, 0x00, - 0x00, 0x3E, 0x3F, 0x33, 0x33, 0x63, 0x7E, 0x7C, - 0x6E, 0xC6, 0xC6, 0xCC, 0xCC, 0x00, 0x00, 0x00, - 0x00, 0x1E, 0x3F, 0x33, 0x60, 0x60, 0x7C, 0x3E, - 0x06, 0x06, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x00, - 0x00, 0x7F, 0x7F, 0x18, 0x18, 0x30, 0x30, 0x30, - 0x30, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00, - 0x00, 0x33, 0x33, 0x33, 0x33, 0x63, 0x66, 0x66, - 0x66, 0xC6, 0xCC, 0xFC, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x33, 0x33, 0x33, 0x33, 0x63, 0x63, 0x66, - 0x66, 0x6C, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x33, 0x33, 0x33, 0x33, 0x63, 0x63, 0x6B, - 0x6B, 0xFE, 0xFE, 0xEE, 0x44, 0x00, 0x00, 0x00, - 0x00, 0x63, 0x63, 0x63, 0x77, 0x3E, 0x1C, 0x38, - 0x7C, 0xEE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x3C, 0x18, - 0x18, 0x30, 0x30, 0x60, 0x60, 0x00, 0x00, 0x00, - 0x00, 0x7F, 0x7F, 0x03, 0x07, 0x0E, 0x0C, 0x18, - 0x38, 0x70, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x0F, 0x0F, 0x0C, 0x0C, 0x18, 0x18, 0x18, - 0x18, 0x30, 0x30, 0x3E, 0x3E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0x70, - 0x38, 0x1C, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x1F, 0x1F, 0x03, 0x03, 0x06, 0x06, 0x06, - 0x06, 0x0C, 0x0C, 0x7C, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x0E, 0x1F, 0x3B, 0x63, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x00, - 0x00, 0x00, 0x00, 0x0C, 0x0E, 0x0C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x3E, 0x06, - 0x7E, 0xFC, 0xCC, 0xFC, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x18, 0x18, 0x30, 0x30, 0x3E, 0x7F, 0x63, - 0x63, 0xC6, 0xC6, 0xFE, 0xFC, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0x66, - 0xC0, 0xC0, 0xCC, 0xFC, 0x78, 0x00, 0x00, 0x00, - 0x00, 0x03, 0x03, 0x03, 0x06, 0x3E, 0x7E, 0x66, - 0xC6, 0xCC, 0xCC, 0xFC, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0x66, - 0xFE, 0xFC, 0xC0, 0xFC, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x0F, 0x0C, 0x18, 0x7E, 0x7E, 0x30, - 0x30, 0x30, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x63, - 0x63, 0xC6, 0xC6, 0xFE, 0x7E, 0x0C, 0xFC, 0xF8, - 0x00, 0x00, 0x30, 0x30, 0x30, 0x6E, 0x7F, 0x73, - 0x63, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x06, 0x00, 0x1C, 0x3C, 0x0C, - 0x0C, 0x18, 0x18, 0x7C, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x03, 0x03, 0x00, 0x0E, 0x1E, 0x06, - 0x06, 0x0C, 0x0C, 0x0C, 0x0C, 0x18, 0xF8, 0xF0, - 0x00, 0x30, 0x30, 0x30, 0x33, 0x67, 0x6E, 0x7C, - 0x7C, 0xDC, 0xCE, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x0E, 0x0E, 0x06, 0x06, 0x0C, 0x0C, 0x0C, - 0x0C, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0x7F, 0x7F, - 0x6B, 0xD6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0x7E, 0x76, - 0x66, 0xCC, 0xCC, 0xCC, 0xCC, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0x66, - 0x66, 0xCC, 0xCC, 0xFC, 0x78, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x3F, 0x33, - 0x63, 0x66, 0x66, 0xFE, 0xFC, 0xC0, 0xC0, 0xC0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x63, - 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x0C, 0x0E, 0x0E, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x7F, 0x70, - 0x60, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x60, - 0x7C, 0x3E, 0x06, 0xFE, 0xFC, 0x00, 0x00, 0x00, - 0x00, 0x06, 0x06, 0x0C, 0x0C, 0x3F, 0x3F, 0x18, - 0x18, 0x30, 0x30, 0x3E, 0x1C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x33, 0x66, - 0x66, 0x66, 0xCC, 0xFE, 0x76, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, - 0xCC, 0xCC, 0xF8, 0x70, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x63, - 0x6B, 0xDE, 0xFE, 0xFE, 0x6C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x77, - 0x3E, 0x7C, 0xEE, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x63, - 0x63, 0xC6, 0xC6, 0xFE, 0x7E, 0x0C, 0xFC, 0xF8, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x07, - 0x1E, 0x78, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x0E, 0x0C, 0x0C, 0x18, 0x70, 0x70, - 0x18, 0x18, 0x30, 0x38, 0x1C, 0x00, 0x00, 0x00, - 0x06, 0x06, 0x06, 0x06, 0x0C, 0x0C, 0x0C, 0x0C, - 0x18, 0x18, 0x18, 0x18, 0x30, 0x30, 0x30, 0x00, - 0x00, 0x38, 0x1C, 0x0C, 0x18, 0x18, 0x0E, 0x0E, - 0x18, 0x30, 0x30, 0x70, 0xE0, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1D, 0x3F, 0x37, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xEE, 0x28, 0x4C, 0x48, 0x48, 0x00, 0xFE, - 0x00, 0x06, 0x0F, 0x1B, 0x18, 0x7E, 0x30, 0x7C, - 0x60, 0x60, 0x6C, 0x3C, 0x30, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, - 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x18, 0x10, 0x20, 0x00, - 0x00, 0x07, 0x0F, 0x0C, 0x18, 0x7E, 0x7E, 0x30, - 0x30, 0x30, 0x60, 0x60, 0x60, 0xC0, 0x80, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x66, 0x66, 0x44, 0x88, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xDB, 0xDB, 0x00, 0x00, 0x00, - 0x00, 0x06, 0x06, 0x06, 0x1F, 0x3F, 0x0C, 0x0C, - 0x0C, 0x18, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, - 0x00, 0x06, 0x06, 0x06, 0x1F, 0x3F, 0x0C, 0x3F, - 0x3F, 0x18, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, - 0x00, 0x3E, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x63, 0x06, - 0x0C, 0x30, 0x60, 0xDB, 0x9B, 0x00, 0x00, 0x00, - 0x63, 0x3E, 0x00, 0x1E, 0x3F, 0x33, 0x60, 0x7C, - 0x3E, 0x06, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0E, - 0x1C, 0x30, 0x38, 0x1C, 0x0C, 0x00, 0x00, 0x00, - 0x00, 0x1F, 0x3F, 0x33, 0x33, 0x66, 0x67, 0x67, - 0x66, 0xCC, 0xCC, 0xFF, 0x7F, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, - 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, - 0x63, 0x3E, 0x00, 0x7F, 0x7F, 0x03, 0x07, 0x0E, - 0x18, 0x70, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, - 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, - 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x04, 0x08, 0x10, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x0C, 0x04, 0x08, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x09, 0x12, 0x1B, 0x36, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1B, 0x1B, 0x09, 0x12, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x3F, - 0x3F, 0x7E, 0x7E, 0x3C, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x19, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFB, 0xFF, 0x55, 0xA2, 0xA2, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x63, 0x36, 0x1C, 0x00, 0x3F, 0x7F, 0x60, - 0x7C, 0x3E, 0x06, 0xFE, 0xFC, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1C, - 0x0E, 0x0C, 0x1C, 0x38, 0x30, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x7F, 0x6D, - 0x6F, 0xDE, 0xD8, 0xFE, 0x6E, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, - 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x63, 0x36, 0x1C, 0x00, 0x7F, 0x7F, 0x07, - 0x1E, 0x78, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x33, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x3C, - 0x18, 0x30, 0x30, 0x30, 0x60, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, - 0x0C, 0x18, 0x18, 0x18, 0x18, 0x30, 0x30, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x04, 0x3E, 0x7F, 0x6B, - 0x68, 0xD0, 0xD6, 0xFE, 0x7C, 0x20, 0x20, 0x00, - 0x00, 0x0F, 0x1F, 0x19, 0x18, 0x30, 0x7C, 0x7C, - 0x30, 0x60, 0xE6, 0xFE, 0xDC, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x19, 0x33, 0x1E, 0x3F, - 0x33, 0x66, 0x7E, 0x3C, 0x66, 0xCC, 0x00, 0x00, - 0x00, 0x00, 0x19, 0x19, 0x19, 0x1E, 0x0C, 0x3F, - 0x0C, 0x7E, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x06, 0x06, 0x0C, 0x0C, 0x00, - 0x00, 0x18, 0x18, 0x30, 0x30, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x0E, 0x18, 0x18, 0x3C, 0x7E, 0x66, - 0x7E, 0x3C, 0x18, 0x18, 0x70, 0xE0, 0x00, 0x00, - 0x00, 0x00, 0x33, 0x66, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0E, 0x1F, 0x21, 0x21, 0x4D, 0x51, 0x51, - 0x91, 0xA1, 0x9A, 0x82, 0x7C, 0x38, 0x00, 0x00, - 0x00, 0x1C, 0x02, 0x1E, 0x22, 0x3C, 0x00, 0x7C, - 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1B, - 0x36, 0xD8, 0xD8, 0x6C, 0x36, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1E, 0x3E, 0x06, 0x0C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0E, 0x1F, 0x21, 0x49, 0x55, 0x55, 0x59, - 0x99, 0xA5, 0xA5, 0x82, 0x7E, 0x78, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x1E, 0x3F, 0x33, 0x3F, 0x3C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x06, 0x06, 0x3F, 0x3F, 0x0C, - 0x0C, 0x00, 0x7E, 0x7E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3C, 0x3E, 0x06, 0x3C, 0x78, 0x60, - 0x7C, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3C, 0x3E, 0x06, 0x18, 0x0C, 0x7C, - 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x06, 0x0C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x33, - 0x33, 0x66, 0x66, 0x7E, 0x7C, 0xC0, 0xC0, 0x80, - 0x00, 0x00, 0x00, 0x3F, 0x6F, 0xDB, 0xDB, 0x7B, - 0x1B, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, - 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x18, 0x1C, 0x0C, 0x1C, 0x30, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x38, 0x18, 0x30, 0x30, 0x78, - 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0C, 0x1E, 0x22, 0x3C, 0x18, 0x00, 0x3C, - 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, - 0x36, 0x36, 0x36, 0x6C, 0xD8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x10, 0x30, 0x10, 0x23, 0x76, 0x0C, - 0x18, 0x64, 0xCC, 0x94, 0x3E, 0x08, 0x08, 0x00, - 0x00, 0x00, 0x10, 0x30, 0x10, 0x23, 0x76, 0x0C, - 0x18, 0x60, 0xDC, 0x82, 0x1C, 0x20, 0x3C, 0x00, - 0x00, 0x00, 0x38, 0x04, 0x18, 0x0B, 0x76, 0x0C, - 0x18, 0x64, 0xCC, 0x96, 0x3E, 0x08, 0x08, 0x00, - 0x00, 0x00, 0x00, 0x06, 0x06, 0x00, 0x0C, 0x0C, - 0x3C, 0x70, 0xC0, 0xC6, 0xC6, 0xFC, 0x78, 0x00, - 0x00, 0x18, 0x0C, 0x00, 0x04, 0x1C, 0x36, 0x63, - 0x7F, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x03, 0x06, 0x00, 0x04, 0x1C, 0x36, 0x63, - 0x7F, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x0E, 0x1B, 0x11, 0x04, 0x1C, 0x36, 0x63, - 0x7F, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x1D, 0x37, 0x00, 0x04, 0x1C, 0x36, 0x63, - 0x7F, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x1B, 0x1B, 0x04, 0x0E, 0x36, 0x63, 0x7F, - 0x7F, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x0E, 0x11, 0x0E, 0x0E, 0x36, 0x63, 0x7F, - 0x7F, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x0F, 0x1F, 0x3B, 0x66, 0x7F, 0x7F, - 0x66, 0xCC, 0xCC, 0xCF, 0xCF, 0x00, 0x00, 0x00, - 0x00, 0x1E, 0x3F, 0x33, 0x30, 0x60, 0x60, 0x60, - 0x60, 0xC0, 0xC6, 0xFE, 0x7C, 0x1C, 0xCC, 0x78, - 0x00, 0x0C, 0x06, 0x00, 0x3F, 0x7F, 0x60, 0x78, - 0x78, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x03, 0x06, 0x00, 0x3F, 0x7F, 0x60, 0x78, - 0x78, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x0E, 0x1B, 0x00, 0x3F, 0x7F, 0x60, 0x78, - 0x78, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x1B, 0x1B, 0x00, 0x3F, 0x3F, 0x60, 0x60, 0x78, - 0x78, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x0C, 0x06, 0x00, 0x1F, 0x1F, 0x0C, 0x0C, - 0x0C, 0x18, 0x18, 0x7C, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x03, 0x06, 0x00, 0x1F, 0x1F, 0x0C, 0x0C, - 0x0C, 0x18, 0x18, 0x7C, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x06, 0x09, 0x1F, 0x1F, 0x0C, 0x0C, 0x0C, - 0x0C, 0x18, 0x18, 0x7C, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x1B, 0x1B, 0x00, 0x1F, 0x1F, 0x0C, 0x0C, - 0x0C, 0x18, 0x18, 0x7C, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1E, 0x1F, 0x1B, 0x33, 0x33, 0x7B, - 0x33, 0x66, 0x6E, 0x7C, 0x78, 0x00, 0x00, 0x00, - 0x00, 0x1D, 0x37, 0x00, 0x31, 0x63, 0x73, 0x7B, - 0x7F, 0xDE, 0xCE, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x0C, 0x06, 0x00, 0x3E, 0x7F, 0x63, 0x63, - 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x03, 0x06, 0x00, 0x3E, 0x7F, 0x63, 0x63, - 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x0E, 0x1B, 0x00, 0x3E, 0x7F, 0x63, 0x63, - 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x1D, 0x37, 0x00, 0x3E, 0x7F, 0x63, 0x63, - 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x1B, 0x1B, 0x00, 0x3E, 0x7F, 0x63, 0x63, - 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x77, 0x3E, - 0x1C, 0x38, 0x7C, 0xEE, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x1D, 0x3E, 0x37, 0x6B, 0x6B, 0x6B, 0xD6, - 0xD6, 0xD6, 0xEE, 0x7C, 0xB8, 0x00, 0x00, 0x00, - 0x00, 0x0C, 0x06, 0x00, 0x33, 0x33, 0x63, 0x66, - 0x66, 0xC6, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x00, - 0x00, 0x03, 0x06, 0x00, 0x33, 0x33, 0x63, 0x66, - 0x66, 0xC6, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x00, - 0x00, 0x0E, 0x1B, 0x00, 0x33, 0x33, 0x63, 0x66, - 0x66, 0xC6, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x00, - 0x1B, 0x1B, 0x00, 0x33, 0x33, 0x63, 0x63, 0x63, - 0x66, 0xC6, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x00, - 0x00, 0x06, 0x0C, 0x00, 0x33, 0x33, 0x66, 0x6E, - 0x7C, 0x38, 0x30, 0x60, 0x60, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x18, 0x1F, 0x3F, 0x33, 0x33, - 0x3F, 0x7C, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00, - 0x00, 0x0E, 0x1F, 0x1B, 0x1B, 0x33, 0x3F, 0x3E, - 0x33, 0x66, 0x66, 0x7E, 0x7C, 0xC0, 0x80, 0x00, - 0x00, 0x00, 0x0C, 0x06, 0x00, 0x3F, 0x7F, 0x63, - 0x63, 0xCE, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x0C, 0x00, 0x3F, 0x7F, 0x63, - 0x63, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x0E, 0x1B, 0x00, 0x3F, 0x7F, 0x63, - 0x63, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1D, 0x37, 0x00, 0x3F, 0x7F, 0x63, - 0x63, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1B, 0x1B, 0x00, 0x3F, 0x7F, 0x63, - 0x63, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00, - 0x00, 0x0E, 0x1B, 0x0E, 0x00, 0x3E, 0x7F, 0x63, - 0x63, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0x3F, 0x0D, - 0x1F, 0x7E, 0xD8, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x7F, - 0x63, 0xC0, 0xC6, 0xFE, 0x7C, 0x30, 0xF8, 0xF0, - 0x00, 0x00, 0x0C, 0x06, 0x00, 0x3E, 0x7F, 0x63, - 0x7F, 0xFE, 0xC0, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x0C, 0x00, 0x3E, 0x7F, 0x63, - 0x7F, 0xFE, 0xC0, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x0E, 0x1B, 0x00, 0x3E, 0x7F, 0x63, - 0x7F, 0xFE, 0xC0, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1B, 0x1B, 0x00, 0x3E, 0x7F, 0x63, - 0x7F, 0xFE, 0xC0, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x0C, 0x06, 0x00, 0x0C, 0x0C, 0x0C, - 0x0C, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x03, 0x06, 0x00, 0x0C, 0x0C, 0x0C, - 0x0C, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x06, 0x0F, 0x19, 0x00, 0x0C, 0x0C, 0x0C, - 0x0C, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1B, 0x1B, 0x00, 0x0C, 0x0C, 0x0C, - 0x0C, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x1B, 0x1F, 0x3E, 0x37, 0x3E, 0x7F, 0x63, - 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x1D, 0x3F, 0x37, 0x00, 0x7E, 0x7F, 0x63, - 0x63, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x0C, 0x00, 0x3E, 0x7F, 0x63, - 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x0C, 0x00, 0x3E, 0x7F, 0x63, - 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x0E, 0x1B, 0x00, 0x3E, 0x7F, 0x63, - 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x1D, 0x3F, 0x37, 0x00, 0x3E, 0x7F, 0x63, - 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1B, 0x1B, 0x00, 0x3E, 0x7F, 0x63, - 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x3F, - 0x7E, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x7F, 0x67, - 0x6B, 0xD6, 0xE6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x0C, 0x00, 0x63, 0x63, 0x63, - 0x63, 0xC6, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x0C, 0x00, 0x63, 0x63, 0x63, - 0x63, 0xC6, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x0E, 0x1B, 0x00, 0x63, 0x63, 0x63, - 0x63, 0xC6, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1B, 0x1B, 0x00, 0x63, 0x63, 0x63, - 0x63, 0xC6, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x03, 0x06, 0x00, 0x63, 0x63, 0x63, - 0x63, 0xC6, 0xC6, 0xFE, 0x7E, 0x0C, 0xF8, 0xF0, - 0x00, 0x00, 0x18, 0x18, 0x18, 0x3E, 0x3F, 0x33, - 0x33, 0x66, 0x66, 0x7E, 0x7C, 0xC0, 0xC0, 0xC0, - 0x00, 0x00, 0x00, 0x1B, 0x00, 0x63, 0x63, 0x63, - 0x63, 0xC6, 0xC6, 0xFE, 0x7E, 0x0C, 0xF8, 0xF0, -}; - -const struct fb_font_desc font_italic = { - .name = "NetSurf Italic", - .width = 8, - .height = 16, - .encoding = "CP1252", - .data = fontdata_italic, -}; - - -static const uint32_t fontdata_italic_bold[FONTDATAMAX] = { - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xE4, 0xAC, 0xA4, 0xA4, 0xEE, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xEC, 0xA2, 0xA4, 0xA8, 0xEE, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xEC, 0xA2, 0xAC, 0xA2, 0xEC, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xEA, 0xAA, 0xAE, 0xA2, 0xE2, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xEE, 0xA8, 0xAE, 0xA2, 0xEE, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xE6, 0xA8, 0xAE, 0xAA, 0xEE, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xEE, 0xA2, 0xA4, 0xA4, 0xE4, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xEE, 0xAA, 0xAE, 0xAA, 0xEE, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xEE, 0xAA, 0xAE, 0xA2, 0xE2, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xE4, 0xAA, 0xAE, 0xAA, 0xEA, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xEC, 0xAA, 0xAC, 0xAA, 0xEC, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xE4, 0xAA, 0xA8, 0xAA, 0xE4, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xEC, 0xAA, 0xAA, 0xAA, 0xEC, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xEE, 0xA8, 0xAC, 0xA8, 0xEE, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xEE, 0xA8, 0xAC, 0xA8, 0xE8, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x4E, 0xCA, 0x4A, 0x4A, 0xEE, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x44, 0xCC, 0x44, 0x44, 0xEE, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x4C, 0xC2, 0x44, 0x48, 0xEE, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x4C, 0xC2, 0x4C, 0x42, 0xEC, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x4A, 0xCA, 0x4E, 0x42, 0xE2, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x4E, 0xC8, 0x4E, 0x42, 0xEE, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x46, 0xC8, 0x4E, 0x4A, 0xEE, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x4E, 0xC2, 0x44, 0x44, 0xE4, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x4E, 0xCA, 0x4E, 0x4A, 0xEE, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x4E, 0xCA, 0x4E, 0x42, 0xE2, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x44, 0xCA, 0x4E, 0x4A, 0xEA, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x4C, 0xCA, 0x4C, 0x4A, 0xEC, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x44, 0xCA, 0x48, 0x4A, 0xE4, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x4C, 0xCA, 0x4A, 0x4A, 0xEC, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x4E, 0xC8, 0x4C, 0x48, 0xEE, 0x00, 0xFE, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0x4E, 0xC8, 0x4C, 0x48, 0xE8, 0x00, 0xFE, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0E, 0x0E, 0x0E, 0x0E, 0x1C, 0x1C, 0x1C, - 0x1C, 0x00, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x77, 0x77, 0x77, 0x77, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x36, 0x36, 0x7F, 0x7F, 0x7F, 0x36, 0x6C, - 0xFE, 0xFE, 0xFE, 0x6C, 0x6C, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x3E, 0x7F, 0x7B, 0x78, 0x7C, 0x7C, - 0x3E, 0x1E, 0xDE, 0xFE, 0x7C, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x70, 0x73, 0x77, 0x0E, - 0x3C, 0x70, 0xEE, 0xCE, 0x0E, 0x00, 0x00, 0x00, - 0x00, 0x1C, 0x3E, 0x7E, 0x7C, 0x7C, 0x3B, 0xFE, - 0xFE, 0xEC, 0xEE, 0xFE, 0x74, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x1C, 0x1C, 0x1C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x06, 0x0E, 0x1C, 0x1C, 0x38, 0x38, 0x70, - 0x70, 0x70, 0x38, 0x38, 0x1C, 0x0C, 0x06, 0x00, - 0x60, 0x30, 0x38, 0x1C, 0x1C, 0x0E, 0x0E, 0x0E, - 0x1C, 0x1C, 0x38, 0x38, 0x70, 0x60, 0xC0, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x2A, 0x7F, 0x3E, 0x18, - 0x7C, 0xFE, 0x54, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x7E, - 0x7E, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x38, 0x78, 0x70, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, - 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0F, 0x3C, - 0x78, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x1C, 0x3E, 0x77, 0x77, 0x77, 0x77, 0xEE, - 0xEE, 0xEE, 0xEE, 0x7C, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x0C, 0x1C, 0x3C, 0x3C, 0x1C, 0x1C, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x3E, 0x7F, 0x77, 0x07, 0x07, 0x3E, 0x7C, - 0xE0, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x3E, 0x7F, 0x77, 0x07, 0x07, 0x1E, 0x3C, - 0x0E, 0x0E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x02, 0x06, 0x0E, 0x1E, 0x3E, 0x76, 0xEC, - 0xFE, 0xFE, 0x1C, 0x1C, 0x1C, 0x00, 0x00, 0x00, - 0x00, 0x7F, 0x7F, 0x70, 0x70, 0x7C, 0x7E, 0x0E, - 0x0E, 0x0E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x3E, 0x7E, 0x70, 0x70, 0x7C, 0x7E, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x7F, 0x7F, 0x07, 0x07, 0x0E, 0x0E, 0x1C, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x3E, 0x7F, 0x77, 0x77, 0x7F, 0x3E, 0x7E, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x3E, 0x7F, 0x77, 0x77, 0x77, 0x7F, 0x3E, - 0x0E, 0x0E, 0x0E, 0x7C, 0x78, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x00, - 0x00, 0x00, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x00, - 0x00, 0x18, 0x38, 0x38, 0x30, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x03, 0x07, 0x0E, 0x1C, 0x70, - 0x70, 0x38, 0x1C, 0x0E, 0x06, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x00, - 0x00, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x30, 0x38, 0x1C, 0x0E, 0x0E, - 0x0E, 0x1C, 0x38, 0x70, 0x60, 0x00, 0x00, 0x00, - 0x00, 0x3E, 0x7F, 0x77, 0x07, 0x07, 0x1E, 0x7C, - 0x70, 0x00, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x3E, 0x7F, 0x77, 0x77, 0x77, 0x7F, 0xFE, - 0xEC, 0xE0, 0xE0, 0xFC, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x3E, 0x7F, 0x77, 0x77, 0x77, 0x76, 0xFE, - 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x7E, 0x7F, 0x77, 0x77, 0x77, 0x7E, 0xFC, - 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0x00, 0x00, 0x00, - 0x00, 0x3E, 0x7F, 0x77, 0x77, 0x70, 0x70, 0xE0, - 0xE0, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0x7E, 0x77, 0x77, 0x77, 0x76, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFC, 0xF8, 0x00, 0x00, 0x00, - 0x00, 0x7F, 0x7F, 0x70, 0x70, 0x70, 0x7C, 0xF8, - 0xE0, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x7F, 0x7F, 0x70, 0x70, 0x70, 0x7C, 0xF8, - 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00, - 0x00, 0x3E, 0x7F, 0x77, 0x77, 0x70, 0x70, 0xFE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x77, 0x77, 0x77, 0x77, 0x77, 0x7E, 0xFE, - 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x7F, 0x7F, 0x1C, 0x1C, 0x1C, 0x1C, 0x38, - 0x38, 0x38, 0x38, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x06, 0x0E, - 0x0E, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x70, 0x70, 0x72, 0x77, 0x7F, 0x7E, 0xF8, - 0xF8, 0xFC, 0xFE, 0xEE, 0xE6, 0x00, 0x00, 0x00, - 0x00, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0xE0, - 0xE0, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x63, 0x77, 0x7F, 0x7F, 0x7F, 0x7E, 0xEE, - 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x67, 0x77, 0x77, 0x7F, 0x7F, 0x7E, 0xFE, - 0xFE, 0xFE, 0xEE, 0xEE, 0xE6, 0x00, 0x00, 0x00, - 0x00, 0x3E, 0x7F, 0x77, 0x77, 0x77, 0x76, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x7E, 0x7F, 0x77, 0x77, 0x77, 0x77, 0xFE, - 0xFC, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00, - 0x00, 0x3E, 0x7F, 0x77, 0x77, 0x77, 0x76, 0xEE, - 0xEE, 0xFE, 0xFE, 0xFE, 0x7E, 0x06, 0x00, 0x00, - 0x00, 0x7E, 0x7F, 0x77, 0x77, 0x77, 0x7E, 0xFC, - 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x3E, 0x7F, 0x77, 0x70, 0x70, 0x7C, 0x3E, - 0x0E, 0x0E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x7F, 0x7F, 0x1C, 0x1C, 0x1C, 0x1C, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x77, 0x77, 0x77, 0x77, 0x77, 0x76, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x77, 0x77, 0x77, 0x77, 0x77, 0x76, 0xEE, - 0x6C, 0x7C, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x77, 0x77, 0x77, 0x77, 0x77, 0x76, 0xEE, - 0xFE, 0xFE, 0xFE, 0xEE, 0x44, 0x00, 0x00, 0x00, - 0x00, 0x77, 0x77, 0x77, 0x77, 0x3E, 0x1C, 0x38, - 0x7C, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x77, 0x77, 0x77, 0x77, 0x77, 0x3E, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x7F, 0x7F, 0x07, 0x07, 0x0E, 0x1C, 0x38, - 0x70, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x38, - 0x38, 0x38, 0x38, 0x3E, 0x3E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x70, 0x78, 0x38, - 0x1C, 0x1E, 0x0E, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x7E, 0x7E, 0x0E, 0x0E, 0x0E, 0x0E, 0x1C, - 0x1C, 0x1C, 0x1C, 0xFC, 0xFC, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x1C, 0x3E, 0x77, 0x63, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x1C, 0x0C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x3E, 0x0E, - 0x3E, 0x7E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x38, 0x38, 0x70, 0x7C, 0x7E, 0x6E, - 0xEE, 0xEE, 0xEE, 0xFC, 0xF8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0xEE, - 0xE0, 0xE0, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x07, 0x07, 0x07, 0x3F, 0x7E, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0xEE, - 0xFE, 0xFC, 0xE0, 0xFC, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x1F, 0x3F, 0x38, 0x38, 0x70, 0x7C, 0x7C, - 0x70, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x7E, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x1C, 0xFC, 0xF8, - 0x00, 0x00, 0x70, 0x70, 0x70, 0x7C, 0x7E, 0xEE, - 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x0E, 0x0E, 0x00, 0x1E, 0x3E, 0x1C, - 0x1C, 0x38, 0x38, 0x7C, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x0E, 0x0E, 0x00, 0x1E, 0x3E, 0x0E, - 0x1C, 0x1C, 0x1C, 0x1C, 0x38, 0x38, 0xF8, 0xF0, - 0x00, 0x38, 0x38, 0x38, 0x3A, 0x7F, 0x7E, 0x7C, - 0x70, 0xF8, 0xFC, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x3C, 0x3C, 0x1C, 0x1C, 0x38, 0x38, 0x38, - 0x38, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x7E, 0xFE, - 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0xEE, - 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFC, 0x78, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFC, 0xF8, 0xE0, 0xE0, 0xE0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x7E, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFC, 0x7C, 0x1C, 0x1E, 0x1E, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0x7E, 0x70, - 0x70, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3E, 0x70, - 0x7C, 0x3E, 0x0E, 0x7C, 0xF8, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x38, 0x38, 0x70, 0x7C, 0x7C, 0x70, - 0xE0, 0xE0, 0xE0, 0xFC, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x76, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x76, 0xEE, - 0xEE, 0xEE, 0x7C, 0x38, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x76, 0xEE, - 0xFE, 0xFE, 0xFE, 0xEE, 0x44, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x76, 0x7E, - 0x38, 0x7C, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x76, 0xEE, - 0xEE, 0xEE, 0xFE, 0x7E, 0x1C, 0x1C, 0xFC, 0xF8, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7E, 0x1E, - 0x3C, 0x78, 0xF0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x0F, 0x1F, 0x1C, 0x1C, 0x1C, 0x78, 0xF0, - 0x38, 0x38, 0x38, 0x3E, 0x1E, 0x00, 0x00, 0x00, - 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, - 0x00, 0x78, 0x7C, 0x1C, 0x1C, 0x1C, 0x0F, 0x1E, - 0x38, 0x38, 0x38, 0xF8, 0xF0, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x33, 0x7F, 0x7F, 0x66, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, - 0x00, 0xEE, 0x28, 0x4C, 0x48, 0x48, 0x00, 0xFE, - 0x00, 0x06, 0x1F, 0x3B, 0x70, 0xFE, 0x70, 0xF8, - 0xE0, 0xE0, 0xEE, 0xFC, 0x70, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, - 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x38, 0x38, 0x30, 0x60, 0x00, - 0x00, 0x1F, 0x3F, 0x38, 0x38, 0x70, 0x7C, 0x7C, - 0x70, 0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0xC0, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xEE, 0xEE, 0xCC, 0x98, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xDB, 0xDB, 0xDB, 0x00, 0x00, 0x00, - 0x00, 0x1C, 0x1C, 0x1C, 0x1C, 0x7F, 0x7F, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, - 0x00, 0x1C, 0x1C, 0x1C, 0x7F, 0x7F, 0x1C, 0xFE, - 0xFE, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, - 0x00, 0x3E, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x67, 0x1C, - 0x38, 0x70, 0xE0, 0xDB, 0x1B, 0x00, 0x00, 0x00, - 0x77, 0x3E, 0x00, 0x3E, 0x7F, 0x77, 0x70, 0x7C, - 0x3E, 0x0E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x1C, - 0x38, 0x70, 0x38, 0x1C, 0x0E, 0x06, 0x00, 0x00, - 0x00, 0x3F, 0x7F, 0x77, 0x77, 0x77, 0x77, 0xEF, - 0xEE, 0xEE, 0xEE, 0xFF, 0x7F, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, - 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, - 0x77, 0x3E, 0x00, 0x7F, 0x7F, 0x07, 0x0E, 0x1C, - 0x38, 0x70, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, - 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, - 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x0C, 0x18, 0x18, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1B, 0x36, 0x36, 0x36, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1B, 0x1B, 0x1B, 0x36, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x7E, - 0x7E, 0x7E, 0x7E, 0x3C, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x3B, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x79, 0x7F, 0x2F, 0x29, 0x29, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x77, 0x3E, 0x1C, 0x00, 0x1F, 0x3E, 0x70, - 0x7C, 0x3E, 0x0E, 0x7C, 0xF8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x38, 0x38, - 0x1C, 0x0E, 0x1C, 0x38, 0x70, 0x60, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x7F, 0xFA, - 0xDE, 0xDE, 0xFC, 0xFE, 0x6E, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, - 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x77, 0x3E, 0x1C, 0x00, 0x7F, 0x7E, 0x1E, - 0x3C, 0x78, 0xF0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x3B, 0x00, 0x77, 0x77, 0x77, 0x77, 0x3E, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x00, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x08, 0x3E, 0x7F, 0xD6, - 0xD0, 0xD0, 0xD6, 0xFE, 0x7C, 0x10, 0x10, 0x00, - 0x00, 0x1E, 0x3F, 0x3B, 0x38, 0x7E, 0x7E, 0xFC, - 0x70, 0x76, 0xFE, 0xFE, 0xDC, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x77, 0x77, 0x3E, 0xFE, - 0xFE, 0xFE, 0xFE, 0x7C, 0xEE, 0xEE, 0x00, 0x00, - 0x00, 0x00, 0x77, 0x77, 0x77, 0x3E, 0x1C, 0xFE, - 0x38, 0xFE, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x1C, 0x1C, 0x00, - 0x00, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x1E, 0x3E, 0x3E, 0x38, 0x1E, 0x3F, 0x66, - 0x7E, 0x3C, 0x0E, 0x3E, 0x3E, 0x3C, 0x00, 0x00, - 0x00, 0x77, 0x77, 0x77, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x1E, 0x3F, 0x61, 0x4D, 0x5D, 0x51, 0xA1, - 0xA5, 0xBD, 0x99, 0xC3, 0x7E, 0x3C, 0x00, 0x00, - 0x00, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00, 0xFC, - 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, - 0x7C, 0xF8, 0xF8, 0x7C, 0x3E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3F, 0x3F, 0x3F, 0x03, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x7E, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x1E, 0x3F, 0x61, 0x59, 0x5D, 0x55, 0xB9, - 0xB9, 0xA5, 0xA5, 0xC3, 0x7E, 0x3C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x3C, 0x7E, 0x66, 0x7E, 0x3C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x1C, 0x7F, 0x7F, 0x7F, 0x38, - 0x38, 0x00, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x78, 0x7C, 0x0C, 0x3C, 0x78, 0xC0, - 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x78, 0x7C, 0x0C, 0x18, 0x0C, 0xF8, - 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1C, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0xE0, 0xE0, 0xC0, - 0x00, 0x00, 0x00, 0x3F, 0x6D, 0x6D, 0x6D, 0x7A, - 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x38, - 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x18, 0x1C, 0x0C, 0x1C, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x30, 0x70, 0x30, 0x30, 0x30, 0xF0, - 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x7C, 0x44, 0x7C, 0x38, 0x00, 0xF8, - 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, - 0x6C, 0x36, 0x36, 0x6C, 0xD8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x30, 0x70, 0x31, 0x33, 0x7F, 0x1C, - 0x38, 0x76, 0xEE, 0xD6, 0x3E, 0x3E, 0x06, 0x00, - 0x00, 0x00, 0x30, 0x70, 0x31, 0x33, 0x7F, 0x1C, - 0x38, 0x70, 0xFC, 0xC6, 0x0C, 0x18, 0x1E, 0x00, - 0x00, 0x00, 0x70, 0x18, 0x31, 0x1B, 0x77, 0x1C, - 0x3A, 0x76, 0xEE, 0xD6, 0x3E, 0x3E, 0x06, 0x00, - 0x00, 0x00, 0x0E, 0x0E, 0x0E, 0x00, 0x0E, 0x1C, - 0x7C, 0xF8, 0xE0, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, - 0x00, 0x70, 0x38, 0x00, 0x08, 0x1C, 0x3E, 0xEE, - 0xFE, 0xFE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x0E, 0x00, 0x08, 0x1C, 0x3E, 0xEE, - 0xFE, 0xFE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x1C, 0x36, 0x63, 0x08, 0x1C, 0x3E, 0xEE, - 0xFE, 0xFE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x3B, 0x6E, 0x00, 0x08, 0x1C, 0x3E, 0xEE, - 0xFE, 0xFE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x77, 0x77, 0x08, 0x1C, 0x3E, 0x76, 0xFE, - 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x1C, 0x36, 0x1C, 0x1C, 0x3E, 0x76, 0xFE, - 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x0F, 0x1F, 0x3F, 0x7F, 0x77, 0x7F, 0xFF, - 0xFE, 0xEE, 0xEF, 0xEF, 0xEF, 0x00, 0x00, 0x00, - 0x00, 0x3E, 0x7F, 0x77, 0x70, 0x70, 0x70, 0xE0, - 0xE0, 0xE0, 0xEE, 0xFE, 0x7C, 0x0E, 0x6E, 0x7C, - 0x00, 0x38, 0x1C, 0x00, 0x7F, 0x7F, 0x70, 0xE0, - 0xF8, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x0E, 0x1C, 0x00, 0x7F, 0x7F, 0x70, 0xE0, - 0xF8, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x3E, 0x77, 0x00, 0x7F, 0x7F, 0x70, 0xE0, - 0xF8, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x77, 0x77, 0x00, 0x7F, 0x7F, 0x70, 0x70, 0xF8, - 0xF8, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x1C, 0x00, 0x1C, 0x1C, 0x1C, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x0E, 0x1C, 0x00, 0x1C, 0x1C, 0x1C, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x1C, 0x36, 0x1C, 0x1C, 0x1C, 0x1C, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x77, 0x77, 0x00, 0x1C, 0x1C, 0x1C, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x7C, 0x7E, 0x77, 0x77, 0x76, 0xFE, - 0xEE, 0xEE, 0xEE, 0xFC, 0xF8, 0x00, 0x00, 0x00, - 0x00, 0x3B, 0x6E, 0x00, 0x77, 0x77, 0x76, 0xF6, - 0xFE, 0xDE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x1C, 0x00, 0x3E, 0x7F, 0x76, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x0E, 0x1C, 0x00, 0x3E, 0x7F, 0x76, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x3E, 0x77, 0x00, 0x3E, 0x7F, 0x76, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x3B, 0x6E, 0x00, 0x3E, 0x7F, 0x76, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x77, 0x77, 0x00, 0x3E, 0x7F, 0x77, 0x76, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x76, 0x7C, - 0x38, 0x38, 0x7C, 0xEE, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x3D, 0x7E, 0x77, 0x77, 0x77, 0x7E, 0xFE, - 0xFE, 0xEE, 0xEE, 0xFE, 0x7C, 0x80, 0x00, 0x00, - 0x00, 0x38, 0x1C, 0x00, 0x77, 0x77, 0x76, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x0E, 0x1C, 0x00, 0x77, 0x77, 0x76, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x3E, 0x77, 0x00, 0x77, 0x77, 0x76, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x77, 0x77, 0x00, 0x77, 0x77, 0x77, 0x76, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x0E, 0x1C, 0x00, 0x77, 0x77, 0x76, 0xEE, - 0x7C, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x70, 0x70, 0x7E, 0x7F, 0x76, 0xEE, - 0xEE, 0xFE, 0xFC, 0xE0, 0xE0, 0x00, 0x00, 0x00, - 0x00, 0x3E, 0x7F, 0x77, 0x77, 0x77, 0x7E, 0xFC, - 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0xE0, 0xC0, 0x00, - 0x00, 0x00, 0x70, 0x38, 0x00, 0x3C, 0x3E, 0x0E, - 0x3E, 0x7E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x38, 0x00, 0x3C, 0x3E, 0x0E, - 0x3E, 0x7E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x7C, 0xEE, 0x00, 0x3C, 0x3E, 0x0E, - 0x3E, 0x7E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x76, 0xDC, 0x00, 0x3C, 0x3E, 0x0E, - 0x3E, 0x7E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xEE, 0xEE, 0x00, 0x3C, 0x3E, 0x0E, - 0x3E, 0x7E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x6C, 0x38, 0x00, 0x3C, 0x3E, 0x0E, - 0x3E, 0x7E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3A, 0x3F, 0x3F, 0x1A, - 0x7E, 0xFE, 0xD8, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0xFE, - 0xEE, 0xE0, 0xEE, 0xFE, 0x7C, 0x1C, 0x7E, 0x7C, - 0x00, 0x00, 0x38, 0x1C, 0x00, 0x3E, 0x7F, 0xEE, - 0xFE, 0xFE, 0xE0, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x38, 0x00, 0x3E, 0x7F, 0xEE, - 0xFE, 0xFE, 0xE0, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x1C, 0x3E, 0x77, 0x00, 0x3E, 0x7F, 0xEE, - 0xFE, 0xFE, 0xE0, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x77, 0x77, 0x00, 0x3E, 0x7F, 0xEE, - 0xFE, 0xFE, 0xE0, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x38, 0x1C, 0x00, 0x1C, 0x1C, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x0E, 0x1C, 0x00, 0x1C, 0x1C, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x1C, 0x3E, 0x77, 0x00, 0x1C, 0x1C, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x77, 0x77, 0x00, 0x1C, 0x1C, 0x38, - 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, - 0x00, 0x76, 0x3E, 0x7C, 0x7E, 0x3F, 0x7E, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x3B, 0x7F, 0x6E, 0x00, 0x7E, 0x7F, 0xEE, - 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x70, 0x38, 0x00, 0x3C, 0x7E, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFC, 0x78, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x38, 0x00, 0x3C, 0x7E, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFC, 0x78, 0x00, 0x00, 0x00, - 0x00, 0x1C, 0x3E, 0x77, 0x00, 0x3C, 0x7E, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFC, 0x78, 0x00, 0x00, 0x00, - 0x00, 0x3B, 0x7F, 0x6E, 0x00, 0x3C, 0x7E, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFC, 0x78, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x77, 0x77, 0x00, 0x3C, 0x7E, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFC, 0x78, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0xFE, - 0xFE, 0x00, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x3E, 0x7E, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x70, 0x38, 0x00, 0x77, 0x76, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1C, 0x38, 0x00, 0x77, 0x76, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x1C, 0x3E, 0x77, 0x00, 0x77, 0x76, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x77, 0x77, 0x00, 0x77, 0x76, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x0E, 0x1C, 0x00, 0x77, 0x76, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x0E, 0xFE, 0xFC, - 0x00, 0x00, 0x70, 0x70, 0x7E, 0x7F, 0x76, 0xEE, - 0xEE, 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0xE0, 0xE0, - 0x00, 0x00, 0x77, 0x77, 0x00, 0x77, 0x76, 0xEE, - 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x0E, 0xFE, 0xFC, -}; - -const struct fb_font_desc font_italic_bold = { - .name = "NetSurf Italic Bold", - .width = 8, - .height = 16, - .encoding = "CP1252", - .data = fontdata_italic_bold, -}; - - -static const uint32_t fontdata_regular[FONTDATAMAX] = { - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xE4, 0xAC, 0xA4, 0xA4, 0xEE, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xEC, 0xA2, 0xA4, 0xA8, 0xEE, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xEC, 0xA2, 0xAC, 0xA2, 0xEC, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xEA, 0xAA, 0xAE, 0xA2, 0xE2, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xEE, 0xA8, 0xAE, 0xA2, 0xEE, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xE6, 0xA8, 0xAE, 0xAA, 0xEE, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xEE, 0xA2, 0xA4, 0xA4, 0xE4, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xEE, 0xAA, 0xAE, 0xAA, 0xEE, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xEE, 0xAA, 0xAE, 0xA2, 0xE2, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xE4, 0xAA, 0xAE, 0xAA, 0xEA, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xEC, 0xAA, 0xAC, 0xAA, 0xEC, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xE4, 0xAA, 0xA8, 0xAA, 0xE4, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xEC, 0xAA, 0xAA, 0xAA, 0xEC, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xEE, 0xA8, 0xAC, 0xA8, 0xEE, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xEE, 0xA8, 0xAC, 0xA8, 0xE8, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x4E, 0xCA, 0x4A, 0x4A, 0xEE, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x44, 0xCC, 0x44, 0x44, 0xEE, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x4C, 0xC2, 0x44, 0x48, 0xEE, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x4C, 0xC2, 0x4C, 0x42, 0xEC, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x4A, 0xCA, 0x4E, 0x42, 0xE2, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x4E, 0xC8, 0x4E, 0x42, 0xEE, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x46, 0xC8, 0x4E, 0x4A, 0xEE, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x4E, 0xC2, 0x44, 0x44, 0xE4, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x4E, 0xCA, 0x4E, 0x4A, 0xEE, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x4E, 0xCA, 0x4E, 0x42, 0xE2, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x44, 0xCA, 0x4E, 0x4A, 0xEA, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x4C, 0xCA, 0x4C, 0x4A, 0xEC, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x44, 0xCA, 0x48, 0x4A, 0xE4, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x4C, 0xCA, 0x4A, 0x4A, 0xEC, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x4E, 0xC8, 0x4C, 0x48, 0xEE, 0x00, 0xFE, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0x4E, 0xC8, 0x4C, 0x48, 0xE8, 0x00, 0xFE, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x6C, 0x6C, 0x6C, 0xFE, 0xFE, 0x6C, 0x6C, - 0xFE, 0xFE, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x7C, 0xFE, 0xD6, 0xD0, 0xF0, 0x7C, - 0x1E, 0x16, 0xD6, 0xFE, 0x7C, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xCE, 0x1C, - 0x38, 0x70, 0xE6, 0xC6, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x70, 0xF8, 0xD8, 0xD8, 0xF8, 0x72, 0xFE, - 0xDE, 0xCC, 0xCC, 0xFE, 0x7A, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x06, 0x0E, 0x1C, 0x18, 0x38, 0x30, 0x30, 0x30, - 0x30, 0x38, 0x18, 0x1C, 0x0E, 0x06, 0x00, 0x00, - 0x60, 0x70, 0x38, 0x18, 0x1C, 0x0C, 0x0C, 0x0C, - 0x0C, 0x1C, 0x18, 0x38, 0x70, 0x60, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x6C, 0x6C, 0x38, 0xFE, - 0xFE, 0x38, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7E, 0x7E, - 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x38, 0x30, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0E, 0x1C, - 0x38, 0x70, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xFE, 0xC6, 0xCE, 0xCE, 0xD6, 0xD6, - 0xE6, 0xE6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x18, 0x38, 0x78, 0x78, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xFE, 0xC6, 0x06, 0x06, 0x3E, 0x7C, - 0xE0, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xFE, 0xC6, 0x06, 0x06, 0x3C, 0x3C, - 0x06, 0x06, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x0C, 0x1C, 0x3C, 0x7C, 0xEC, 0xFE, - 0xFE, 0x0C, 0x0C, 0x0C, 0x0C, 0x00, 0x00, 0x00, - 0x00, 0xFE, 0xFE, 0xC0, 0xC0, 0xC0, 0xFC, 0xFE, - 0x06, 0x06, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x3C, 0x7C, 0xE0, 0xC0, 0xC0, 0xFC, 0xFE, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0xFE, 0xFE, 0xC6, 0x0E, 0x0C, 0x1C, 0x18, - 0x38, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xFE, 0xC6, 0xC6, 0xC6, 0x7C, 0x7C, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xFE, 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, - 0x06, 0x06, 0x0E, 0x7C, 0x78, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, - 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, - 0x00, 0x18, 0x18, 0x38, 0x30, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x0E, 0x1C, 0x38, 0x70, 0x70, - 0x38, 0x1C, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x00, 0x00, - 0x7E, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x60, 0x70, 0x38, 0x1C, 0x0E, 0x0E, - 0x1C, 0x38, 0x70, 0x60, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xFE, 0xC6, 0xC6, 0x06, 0x1E, 0x3C, - 0x30, 0x30, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xFE, 0xC6, 0xCE, 0xDE, 0xD6, 0xD6, - 0xDE, 0xCC, 0xC0, 0xFC, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xFE, 0xC6, 0xC6, 0xC6, 0xFE, 0xFE, - 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0xFC, 0xFE, 0xC6, 0xC6, 0xC6, 0xFC, 0xFC, - 0xC6, 0xC6, 0xC6, 0xFE, 0xFC, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xFE, 0xC6, 0xC0, 0xC0, 0xC0, 0xC0, - 0xC0, 0xC0, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0xF8, 0xFC, 0xCE, 0xC6, 0xC6, 0xC6, 0xC6, - 0xC6, 0xC6, 0xCE, 0xFC, 0xF8, 0x00, 0x00, 0x00, - 0x00, 0xFE, 0xFE, 0xC0, 0xC0, 0xC0, 0xF8, 0xF8, - 0xC0, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0xFE, 0xFE, 0xC0, 0xC0, 0xC0, 0xF8, 0xF8, - 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xFE, 0xC6, 0xC0, 0xC0, 0xDE, 0xDE, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xFE, 0xFE, - 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x7E, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x7E, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, - 0x0C, 0x0C, 0xCC, 0xFC, 0x78, 0x00, 0x00, 0x00, - 0x00, 0xC0, 0xC6, 0xCE, 0xDC, 0xF8, 0xF0, 0xE0, - 0xF0, 0xF8, 0xDC, 0xCE, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, - 0xC0, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0xC6, 0xC6, 0xEE, 0xFE, 0xFE, 0xFE, 0xD6, - 0xD6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0xC6, 0xC6, 0xE6, 0xE6, 0xF6, 0xF6, 0xDE, - 0xDE, 0xCE, 0xCE, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0xFC, 0xFE, 0xC6, 0xC6, 0xC6, 0xFE, 0xFC, - 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, - 0xC6, 0xD6, 0xDE, 0xFE, 0x7C, 0x06, 0x00, 0x00, - 0x00, 0xFC, 0xFE, 0xC6, 0xC6, 0xC6, 0xFC, 0xFC, - 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xFE, 0xC6, 0xC0, 0xC0, 0xFC, 0x7E, - 0x06, 0x06, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x7E, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xEE, - 0x6C, 0x7C, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, - 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xD6, - 0xD6, 0xFE, 0xFE, 0xEE, 0x44, 0x00, 0x00, 0x00, - 0x00, 0xC6, 0xC6, 0xC6, 0xEE, 0x7C, 0x38, 0x38, - 0x7C, 0xEE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xEE, 0x7C, 0x38, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0xFE, 0xFE, 0x0E, 0x0C, 0x1C, 0x18, 0x38, - 0x30, 0x70, 0x60, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x3E, 0x3E, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x3E, 0x3E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0x70, - 0x38, 0x1C, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0x7C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, - 0x0C, 0x0C, 0x0C, 0x7C, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x7C, 0xEE, 0xC6, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, - 0x00, 0x00, 0x30, 0x30, 0x18, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0x06, - 0x7E, 0xFE, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xFC, 0xFE, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0xFC, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFE, 0xC6, - 0xC0, 0xC0, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x06, 0x06, 0x06, 0x06, 0x7E, 0xFE, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFE, 0xC6, - 0xFE, 0xFE, 0xC0, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x1E, 0x3E, 0x30, 0x30, 0x30, 0x78, 0x78, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xFE, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x06, 0x7E, 0x7C, - 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xDC, 0xFE, 0xE6, - 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x18, 0x00, 0x38, 0x38, 0x18, - 0x18, 0x18, 0x18, 0x3C, 0x3C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x1C, 0x1C, 0x0C, - 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x7C, 0x78, - 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC6, 0xCE, 0xDC, - 0xF8, 0xF8, 0xDC, 0xCE, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xEC, 0xFE, 0xFE, - 0xD6, 0xD6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0xFE, 0xE6, - 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFE, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFE, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0xFC, 0xC0, 0xC0, 0xC0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xFE, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x06, 0x07, 0x07, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, 0xFE, 0xE0, - 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xFE, 0xC0, - 0xFC, 0x7C, 0x06, 0xFE, 0xFC, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x30, 0x30, 0x30, 0x7C, 0xFC, 0x30, - 0x30, 0x30, 0x30, 0x3E, 0x1E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, - 0xC6, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, - 0xC6, 0xEE, 0x7C, 0x38, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, - 0xD6, 0xD6, 0xFE, 0xFE, 0x6C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xEE, - 0x7C, 0x7C, 0xEE, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x06, 0xFE, 0xFC, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x0E, - 0x3C, 0x78, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x0E, 0x1E, 0x18, 0x18, 0x18, 0x70, 0x70, - 0x18, 0x18, 0x18, 0x1E, 0x0E, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, - 0x00, 0x70, 0x78, 0x18, 0x18, 0x18, 0x0E, 0x0E, - 0x18, 0x18, 0x18, 0x78, 0x70, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x76, 0xFE, 0xDC, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, - 0x00, 0xEE, 0x28, 0x4C, 0x48, 0x48, 0x00, 0xFE, - 0x00, 0x18, 0x3C, 0x66, 0x60, 0xFC, 0x60, 0xF8, - 0x60, 0x60, 0x66, 0x3C, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, - 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x18, 0x08, 0x10, 0x00, - 0x00, 0x1E, 0x3E, 0x30, 0x30, 0x30, 0x78, 0x78, - 0x30, 0x30, 0x30, 0x30, 0x30, 0xF0, 0x60, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x66, 0x66, 0x22, 0x44, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xDB, 0xDB, 0x00, 0x00, 0x00, - 0x00, 0x18, 0x18, 0x18, 0x7E, 0x7E, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, - 0x00, 0x18, 0x18, 0x18, 0x7E, 0x7E, 0x18, 0x7E, - 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, - 0x00, 0x7C, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0xC6, 0x0C, - 0x18, 0x30, 0x60, 0xDB, 0x9B, 0x00, 0x00, 0x00, - 0xC6, 0x7C, 0x00, 0x7C, 0xFE, 0xC6, 0xC0, 0xFC, - 0x7E, 0x06, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x1C, - 0x38, 0x30, 0x38, 0x1C, 0x0C, 0x00, 0x00, 0x00, - 0x00, 0x7F, 0xFF, 0xCC, 0xCC, 0xCC, 0xCF, 0xCF, - 0xCC, 0xCC, 0xCC, 0xFF, 0x7F, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, - 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, - 0xC6, 0x7C, 0x00, 0xFE, 0xFE, 0x06, 0x0C, 0x18, - 0x30, 0x60, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, - 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, - 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x10, 0x20, 0x30, 0x30, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x30, 0x30, 0x10, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x24, 0x48, 0x6C, 0x6C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x36, 0x36, 0x12, 0x24, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, - 0x7E, 0x7E, 0x7E, 0x3C, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x32, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xF1, 0xFB, 0x5F, 0x55, 0x51, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xC6, 0x6C, 0x38, 0x00, 0x7E, 0xFE, 0xC0, - 0xFC, 0x7C, 0x06, 0xFE, 0xFC, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x38, - 0x1C, 0x0C, 0x1C, 0x38, 0x30, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xFE, 0xDA, - 0xDE, 0xDE, 0xD8, 0xFE, 0x6E, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, - 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, - 0x00, 0xC6, 0x6C, 0x38, 0x00, 0xFE, 0xFE, 0x0E, - 0x3C, 0x78, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x6C, 0x00, 0xC6, 0xC6, 0xC6, 0xEE, 0x7C, - 0x38, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x10, 0x7C, 0xFE, 0xD6, - 0xD0, 0xD0, 0xD6, 0xFE, 0x7C, 0x10, 0x10, 0x00, - 0x00, 0x3C, 0x7E, 0x66, 0x60, 0x60, 0xF8, 0xF8, - 0x60, 0x60, 0xE6, 0xFE, 0xDC, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x3C, 0x7E, - 0x66, 0x66, 0x7E, 0x3C, 0x66, 0x66, 0x00, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E, - 0x18, 0x7E, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, - 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x3C, 0x7C, 0x60, 0x60, 0x3C, 0x7E, 0x66, - 0x7E, 0x3C, 0x06, 0x06, 0x3E, 0x3C, 0x00, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x3C, 0x7E, 0xC3, 0x99, 0xBD, 0xA5, 0xA1, - 0xA5, 0xBD, 0x99, 0xC3, 0x7E, 0x3C, 0x00, 0x00, - 0x00, 0x70, 0x08, 0x78, 0x88, 0x78, 0x00, 0xF8, - 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, - 0x6C, 0xD8, 0xD8, 0x6C, 0x36, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x7E, 0x7E, 0x06, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x3C, 0x7E, 0xC3, 0xB9, 0xBD, 0xA5, 0xB9, - 0xB9, 0xA5, 0xA5, 0xC3, 0x7E, 0x3C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x78, 0xFC, 0xCC, 0xFC, 0x78, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x18, 0x7E, 0x7E, 0x18, - 0x18, 0x00, 0x7E, 0x7E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0xF8, 0x18, 0x78, 0xF0, 0xC0, - 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xF0, 0xF8, 0x18, 0x30, 0x18, 0xF8, - 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x30, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, - 0x66, 0x66, 0x66, 0x7E, 0x7C, 0x60, 0x60, 0xC0, - 0x00, 0x00, 0x00, 0x7F, 0xDB, 0xDB, 0xDB, 0x7B, - 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x18, 0x1C, 0x0C, 0x1C, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x60, 0xE0, 0x60, 0x60, 0x60, 0xF0, - 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x70, 0xF8, 0x88, 0xF8, 0x70, 0x00, 0xF8, - 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, - 0x6C, 0x36, 0x36, 0x6C, 0xD8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0xC0, 0x42, 0x46, 0xEC, 0x18, - 0x30, 0x64, 0xCC, 0x94, 0x3E, 0x04, 0x04, 0x00, - 0x00, 0x00, 0x40, 0xC0, 0x42, 0x46, 0xEC, 0x18, - 0x30, 0x60, 0xDC, 0x82, 0x0C, 0x10, 0x1E, 0x00, - 0x00, 0x00, 0xE0, 0x10, 0x62, 0x16, 0xEC, 0x18, - 0x30, 0x64, 0xCC, 0x96, 0x3E, 0x04, 0x04, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, - 0x78, 0xF0, 0xC0, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, - 0x00, 0x60, 0x30, 0x00, 0x10, 0x38, 0x6C, 0xC6, - 0xFE, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x0C, 0x18, 0x00, 0x10, 0x38, 0x6C, 0xC6, - 0xFE, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x6C, 0x44, 0x10, 0x38, 0x6C, 0xC6, - 0xFE, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x76, 0xDC, 0x00, 0x10, 0x38, 0x6C, 0xC6, - 0xFE, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x6C, 0x6C, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xFE, - 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x44, 0x38, 0x38, 0x6C, 0xC6, 0xFE, - 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x1F, 0x3F, 0x7C, 0xEC, 0xCC, 0xFE, 0xFE, - 0xCC, 0xCC, 0xCC, 0xCF, 0xCF, 0x00, 0x00, 0x00, - 0x00, 0x7C, 0xFE, 0xC6, 0xC0, 0xC0, 0xC0, 0xC0, - 0xC0, 0xC0, 0xC6, 0xFE, 0x7C, 0x0E, 0x66, 0x3C, - 0x00, 0x30, 0x18, 0x00, 0xFE, 0xFE, 0xC0, 0xF0, - 0xF0, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x0C, 0x18, 0x00, 0xFE, 0xFE, 0xC0, 0xF0, - 0xF0, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x6C, 0x00, 0xFE, 0xFE, 0xC0, 0xF0, - 0xF0, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x6C, 0x6C, 0x00, 0xFE, 0xFE, 0xC0, 0xC0, 0xF0, - 0xF0, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00, - 0x00, 0x30, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x0C, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x18, 0x24, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x66, 0x66, 0x00, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x78, 0x7C, 0x6E, 0x66, 0x66, 0xF6, - 0x66, 0x66, 0x6E, 0x7C, 0x78, 0x00, 0x00, 0x00, - 0x00, 0x76, 0xDC, 0x00, 0xC6, 0xC6, 0xE6, 0xF6, - 0xFE, 0xDE, 0xCE, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x30, 0x18, 0x00, 0x7C, 0xFE, 0xC6, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x0C, 0x18, 0x00, 0x7C, 0xFE, 0xC6, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x6C, 0x00, 0x7C, 0xFE, 0xC6, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x76, 0xDC, 0x00, 0x7C, 0xFE, 0xC6, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x6C, 0x00, 0x7C, 0xFE, 0xC6, 0xC6, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xEE, 0x7C, - 0x38, 0x38, 0x7C, 0xEE, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x7E, 0xFE, 0xC6, 0xC6, 0xCE, 0xCE, 0xD6, - 0xD6, 0xE6, 0xE6, 0xFE, 0x7C, 0x80, 0x00, 0x00, - 0x00, 0x30, 0x18, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x0C, 0x18, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x6C, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x6C, 0x6C, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x0C, 0x18, 0x00, 0x66, 0x66, 0x66, 0x7E, - 0x3C, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x60, 0x60, 0x7C, 0x7E, 0x66, 0x66, - 0x7E, 0x7C, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00, - 0x00, 0x3C, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x7C, - 0x66, 0x66, 0x66, 0x7E, 0x7C, 0xE0, 0xC0, 0x00, - 0x00, 0x00, 0x30, 0x18, 0x00, 0x7E, 0xFE, 0xC6, - 0xC6, 0xCE, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x30, 0x00, 0x7E, 0xFE, 0xC6, - 0xC6, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x6C, 0x00, 0x7E, 0xFE, 0xC6, - 0xC6, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x76, 0xDC, 0x00, 0x7E, 0xFE, 0xC6, - 0xC6, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x6C, 0x6C, 0x00, 0x7E, 0xFE, 0xC6, - 0xC6, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00, - 0x00, 0x38, 0x6C, 0x38, 0x00, 0x7E, 0xFE, 0xC6, - 0xC6, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x7E, 0x1A, - 0x3E, 0x7E, 0xD8, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFE, - 0xC6, 0xC0, 0xC6, 0xFE, 0x7C, 0x18, 0x7C, 0x78, - 0x00, 0x00, 0x30, 0x18, 0x00, 0x7C, 0xFE, 0xC6, - 0xFE, 0xFE, 0xC0, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x30, 0x00, 0x7C, 0xFE, 0xC6, - 0xFE, 0xFE, 0xC0, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x6C, 0x00, 0x7C, 0xFE, 0xC6, - 0xFE, 0xFE, 0xC0, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x6C, 0x6C, 0x00, 0x7C, 0xFE, 0xC6, - 0xFE, 0xFE, 0xC0, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x30, 0x18, 0x00, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x0C, 0x18, 0x00, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x18, 0x3C, 0x66, 0x00, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x66, 0x66, 0x00, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x6C, 0x7C, 0xF8, 0xDC, 0x7C, 0xFE, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x76, 0xFE, 0xDC, 0x00, 0xFC, 0xFE, 0xC6, - 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x60, 0x30, 0x00, 0x7C, 0xFE, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x30, 0x00, 0x7C, 0xFE, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x6C, 0x00, 0x7C, 0xFE, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x76, 0xFE, 0xDC, 0x00, 0x7C, 0xFE, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x6C, 0x6C, 0x00, 0x7C, 0xFE, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x7E, - 0x7E, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x7C, 0xFE, 0xCE, - 0xD6, 0xD6, 0xE6, 0xFE, 0x7C, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x60, 0x30, 0x00, 0xC6, 0xC6, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x30, 0x00, 0xC6, 0xC6, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x6C, 0x00, 0xC6, 0xC6, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x6C, 0x6C, 0x00, 0xC6, 0xC6, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x0C, 0x18, 0x00, 0xC6, 0xC6, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x06, 0xFC, 0xF8, - 0x00, 0x00, 0x60, 0x60, 0x60, 0x7C, 0x7E, 0x66, - 0x66, 0x66, 0x66, 0x7E, 0x7C, 0x60, 0x60, 0x60, - 0x00, 0x00, 0x6C, 0x6C, 0x00, 0xC6, 0xC6, 0xC6, - 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x06, 0xFE, 0xFC, -}; - -const struct fb_font_desc font_regular = { - .name = "NetSurf Regular", - .width = 8, - .height = 16, - .encoding = "CP1252", - .data = fontdata_regular, -}; +#endif + } + + free(buffer); + return( 1 ); +} + +/* ------------------*/ +/* Fontdata */ +/* ------------------*/ + +static const uint32_t fontdata_bold[FONTDATAMAX] = { + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xE4, 0xAC, 0xA4, 0xA4, 0xEE, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xEC, 0xA2, 0xA4, 0xA8, 0xEE, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xEC, 0xA2, 0xAC, 0xA2, 0xEC, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xEA, 0xAA, 0xAE, 0xA2, 0xE2, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xEE, 0xA8, 0xAE, 0xA2, 0xEE, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xE6, 0xA8, 0xAE, 0xAA, 0xEE, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xEE, 0xA2, 0xA4, 0xA4, 0xE4, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xEE, 0xAA, 0xAE, 0xAA, 0xEE, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xEE, 0xAA, 0xAE, 0xA2, 0xE2, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xE4, 0xAA, 0xAE, 0xAA, 0xEA, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xEC, 0xAA, 0xAC, 0xAA, 0xEC, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xE4, 0xAA, 0xA8, 0xAA, 0xE4, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xEC, 0xAA, 0xAA, 0xAA, 0xEC, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xEE, 0xA8, 0xAC, 0xA8, 0xEE, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xEE, 0xA8, 0xAC, 0xA8, 0xE8, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x4E, 0xCA, 0x4A, 0x4A, 0xEE, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x44, 0xCC, 0x44, 0x44, 0xEE, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x4C, 0xC2, 0x44, 0x48, 0xEE, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x4C, 0xC2, 0x4C, 0x42, 0xEC, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x4A, 0xCA, 0x4E, 0x42, 0xE2, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x4E, 0xC8, 0x4E, 0x42, 0xEE, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x46, 0xC8, 0x4E, 0x4A, 0xEE, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x4E, 0xC2, 0x44, 0x44, 0xE4, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x4E, 0xCA, 0x4E, 0x4A, 0xEE, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x4E, 0xCA, 0x4E, 0x42, 0xE2, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x44, 0xCA, 0x4E, 0x4A, 0xEA, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x4C, 0xCA, 0x4C, 0x4A, 0xEC, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x44, 0xCA, 0x48, 0x4A, 0xE4, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x4C, 0xCA, 0x4A, 0x4A, 0xEC, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x4E, 0xC8, 0x4C, 0x48, 0xEE, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x4E, 0xC8, 0x4C, 0x48, 0xE8, 0x00, 0xFE, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, + 0x1C, 0x00, 0x1C, 0x1C, 0x1C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x6C, 0x6C, 0xFE, 0xFE, 0xFE, 0x6C, 0x6C, + 0xFE, 0xFE, 0xFE, 0x6C, 0x6C, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x7C, 0xFE, 0xF6, 0xF0, 0xF8, 0x7C, + 0x3E, 0x1E, 0xDE, 0xFE, 0x7C, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE6, 0xEE, 0x1C, + 0x38, 0x70, 0xEE, 0xCE, 0x0E, 0x00, 0x00, 0x00, + 0x00, 0x70, 0xF8, 0xF8, 0xF8, 0xF8, 0x76, 0xFE, + 0xFE, 0xEC, 0xEE, 0xFE, 0x76, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x06, 0x0C, 0x1C, 0x38, 0x38, 0x70, 0x70, 0x70, + 0x70, 0x70, 0x38, 0x38, 0x1C, 0x0C, 0x06, 0x00, + 0x60, 0x30, 0x38, 0x1C, 0x1C, 0x0E, 0x0E, 0x0E, + 0x0E, 0x0E, 0x1C, 0x1C, 0x38, 0x30, 0x60, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x54, 0xFE, 0x7C, 0x38, + 0x7C, 0xFE, 0x54, 0x10, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0xFE, + 0xFE, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x78, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, + 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x1E, 0x3C, + 0x78, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x7C, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, + 0xEE, 0xEE, 0xEE, 0x7C, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x38, 0x78, 0x78, 0x38, 0x38, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xFE, 0xEE, 0x0E, 0x0E, 0x7E, 0xFC, + 0xE0, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xFE, 0xEE, 0x0E, 0x0E, 0x3C, 0x3C, + 0x0E, 0x0E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x0C, 0x1C, 0x3C, 0x7C, 0x6C, 0xEC, + 0xFE, 0xFE, 0x1C, 0x1C, 0x1C, 0x00, 0x00, 0x00, + 0x00, 0xFE, 0xFE, 0xE0, 0xE0, 0xFC, 0xFE, 0x0E, + 0x0E, 0x0E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xFC, 0xE0, 0xE0, 0xFC, 0xFE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0xFE, 0xFE, 0x0E, 0x0E, 0x1C, 0x1C, 0x1C, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xFE, 0x7C, 0xFE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, + 0x0E, 0x0E, 0x0E, 0x7C, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x00, + 0x00, 0x00, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x00, + 0x00, 0x18, 0x38, 0x38, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x06, 0x0E, 0x1C, 0x38, 0x70, + 0x70, 0x38, 0x1C, 0x0E, 0x06, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x00, + 0x00, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x60, 0x70, 0x38, 0x1C, 0x0E, + 0x0E, 0x1C, 0x38, 0x70, 0x60, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xFE, 0xEE, 0x0E, 0x0E, 0x3E, 0x7C, + 0x70, 0x00, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xEE, 0xFE, 0xFE, + 0xEC, 0xE0, 0xE0, 0xFC, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0xFE, + 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0xFC, 0xFE, 0xEE, 0xEE, 0xEE, 0xFC, 0xFC, + 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xE0, 0xE0, 0xE0, + 0xE0, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0xF8, 0xFC, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFC, 0xF8, 0x00, 0x00, 0x00, + 0x00, 0xFE, 0xFE, 0xE0, 0xE0, 0xE0, 0xF8, 0xF8, + 0xE0, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0xFE, 0xFE, 0xE0, 0xE0, 0xE0, 0xF8, 0xF8, + 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xE0, 0xE0, 0xFE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xFE, 0xFE, + 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0xFE, 0xFE, 0x38, 0x38, 0x38, 0x38, 0x38, + 0x38, 0x38, 0x38, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, + 0x0E, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0xE0, 0xE6, 0xEE, 0xFE, 0xFC, 0xF8, 0xF0, + 0xF8, 0xFC, 0xFE, 0xEE, 0xE6, 0x00, 0x00, 0x00, + 0x00, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, + 0xE0, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0xC6, 0xEE, 0xFE, 0xFE, 0xFE, 0xFE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0xCE, 0xEE, 0xEE, 0xFE, 0xFE, 0xFE, 0xFE, + 0xFE, 0xFE, 0xEE, 0xEE, 0xE6, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0xFC, 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0xFE, + 0xFC, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, + 0xEE, 0xFE, 0xFE, 0xFE, 0x7E, 0x06, 0x00, 0x00, + 0x00, 0xFC, 0xFE, 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, + 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xFE, 0xEE, 0xE0, 0xE0, 0xFC, 0x7E, + 0x0E, 0x0E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0xFE, 0xFE, 0x38, 0x38, 0x38, 0x38, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, + 0x6C, 0x7C, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, + 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, + 0xFE, 0xFE, 0xFE, 0xEE, 0x44, 0x00, 0x00, 0x00, + 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0x7C, 0x38, 0x38, + 0x7C, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x7C, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0xFE, 0xFE, 0x0E, 0x0E, 0x1C, 0x38, 0x38, + 0x70, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x3E, 0x3E, 0x38, 0x38, 0x38, 0x38, 0x38, + 0x38, 0x38, 0x38, 0x3E, 0x3E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x40, 0xE0, 0xF0, 0x78, + 0x3C, 0x1E, 0x0E, 0x04, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xFC, 0xFC, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, + 0x1C, 0x1C, 0x1C, 0xFC, 0xFC, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x7C, 0xEE, 0xC6, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, + 0x00, 0x00, 0x00, 0x30, 0x38, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0x0E, + 0x7E, 0xFE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0xE0, 0xE0, 0xE0, 0xE0, 0xFC, 0xFE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFE, 0xEE, + 0xE0, 0xE0, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x0E, 0x0E, 0x0E, 0x0E, 0x7E, 0xFE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFE, 0xEE, + 0xFE, 0xFE, 0xE0, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x3E, 0x7E, 0x70, 0x70, 0x70, 0xF8, 0xF8, + 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xFE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x0E, 0x7E, 0x7C, + 0x00, 0x00, 0xE0, 0xE0, 0xE0, 0xFC, 0xFE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x38, 0x00, 0x78, 0x78, 0x38, + 0x38, 0x38, 0x38, 0x7C, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1C, 0x1C, 0x00, 0x3C, 0x3C, 0x1C, + 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x7C, 0x78, + 0x00, 0xE0, 0xE0, 0xE0, 0xE6, 0xEE, 0xFE, 0xFC, + 0xF8, 0xFC, 0xFE, 0xEE, 0xE6, 0x00, 0x00, 0x00, + 0x00, 0x78, 0x78, 0x38, 0x38, 0x38, 0x38, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xEC, 0xFE, 0xFE, + 0xFE, 0xFE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0xE0, 0xE0, 0xE0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xFE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x0E, 0x0F, 0x0F, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, 0xFE, 0xE0, + 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xFE, 0xE0, + 0xFC, 0x7E, 0x0E, 0xFE, 0xFC, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x30, 0x70, 0x70, 0xFC, 0xFC, 0x70, + 0x70, 0x70, 0x70, 0x7E, 0x3E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xEE, 0xEE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xEE, 0xEE, 0xEE, + 0xEE, 0xEE, 0x7C, 0x38, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xEE, 0xEE, 0xEE, + 0xFE, 0xFE, 0xFE, 0xEE, 0x44, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xEE, 0xEE, 0xEE, + 0x7C, 0x7C, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xEE, 0xEE, 0xEE, + 0xEE, 0xEE, 0xFE, 0x7E, 0x0E, 0x0E, 0xFE, 0xFC, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x1E, + 0x3C, 0x78, 0xF0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x1E, 0x3E, 0x38, 0x38, 0x38, 0xF0, 0xF0, + 0x38, 0x38, 0x38, 0x3E, 0x1E, 0x00, 0x00, 0x00, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, + 0x00, 0xF0, 0xF8, 0x38, 0x38, 0x38, 0x1E, 0x1E, + 0x38, 0x38, 0x38, 0xF8, 0xF0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x66, 0xFE, 0xFE, 0xCC, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xEE, 0x28, 0x4C, 0x48, 0x48, 0x00, 0xFE, + 0x00, 0x38, 0x7C, 0xEE, 0xE0, 0xFC, 0xE0, 0xF8, + 0xE0, 0xE0, 0xEE, 0x7C, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, + 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x38, 0x18, 0x30, 0x00, + 0x00, 0x3E, 0x7E, 0x70, 0x70, 0x70, 0xF8, 0xF8, + 0x70, 0x70, 0x70, 0x70, 0x70, 0xF0, 0xE0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xEE, 0xEE, 0x66, 0xCC, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xDB, 0xDB, 0xDB, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x38, 0x38, 0x38, 0xFE, 0xFE, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, + 0x00, 0x38, 0x38, 0x38, 0xFE, 0xFE, 0x38, 0xFE, + 0xFE, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, + 0x00, 0x7C, 0xEE, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xCE, 0x1C, + 0x38, 0x70, 0xE0, 0xDB, 0x1B, 0x00, 0x00, 0x00, + 0xEE, 0x7C, 0x00, 0x7C, 0xFE, 0xEE, 0xE0, 0xFC, + 0x7E, 0x0E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0E, 0x1C, + 0x38, 0x70, 0x38, 0x1C, 0x0E, 0x06, 0x00, 0x00, + 0x00, 0x7F, 0xFF, 0xEE, 0xEE, 0xEE, 0xEF, 0xEF, + 0xEE, 0xEE, 0xEE, 0xFF, 0x7F, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, + 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, + 0xEE, 0x7C, 0x00, 0xFE, 0xFE, 0x0E, 0x1E, 0x3C, + 0x78, 0xF0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, + 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, + 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x30, 0x30, 0x30, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x30, 0x30, 0x30, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x36, 0x6C, 0x6C, 0x6C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x36, 0x36, 0x36, 0x6C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, + 0x7E, 0x7E, 0x7E, 0x3C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7B, 0xDE, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xF1, 0xFB, 0x5F, 0x55, 0x51, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xEE, 0x7C, 0x38, 0x00, 0x7E, 0xFE, 0xE0, + 0xFC, 0x7E, 0x0E, 0xFE, 0xFC, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x70, 0x38, + 0x1C, 0x0E, 0x1C, 0x38, 0x70, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xFE, 0xFA, + 0xDE, 0xDE, 0xFC, 0xFE, 0x6E, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, + 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, + 0x00, 0xEE, 0x7C, 0x38, 0x00, 0xFE, 0xFE, 0x1E, + 0x3C, 0x78, 0xF0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0xEE, 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0x7C, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x00, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x10, 0x7C, 0xFE, 0xD6, + 0xD0, 0xD0, 0xD6, 0xFE, 0x7C, 0x10, 0x10, 0x00, + 0x00, 0x3C, 0x7E, 0x76, 0x70, 0xFC, 0xFC, 0xFC, + 0x70, 0x76, 0xFE, 0xFE, 0xDC, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xEE, 0xEE, 0x7C, 0xFE, + 0xFE, 0xFE, 0xFE, 0x7C, 0xEE, 0xEE, 0x00, 0x00, + 0x00, 0x00, 0xEE, 0xEE, 0xEE, 0x7C, 0x38, 0xFE, + 0x38, 0xFE, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x38, 0x38, 0x38, 0x00, + 0x00, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x3C, 0x7C, 0x7C, 0x70, 0x3C, 0x7E, 0x66, + 0x7E, 0x3C, 0x0E, 0x3E, 0x3E, 0x3C, 0x00, 0x00, + 0x00, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3C, 0x7E, 0xC3, 0x99, 0xBD, 0xA5, 0xA1, + 0xA5, 0xBD, 0x99, 0xC3, 0x7E, 0x3C, 0x00, 0x00, + 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x7C, 0x00, 0xFC, + 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, + 0x7C, 0xF8, 0xF8, 0x7C, 0x3E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7E, 0x7E, 0x7E, 0x06, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7E, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3C, 0x7E, 0xC3, 0xB9, 0xBD, 0xA5, 0xB9, + 0xB9, 0xA5, 0xA5, 0xC3, 0x7E, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x78, 0xFC, 0xCC, 0xFC, 0x78, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x38, 0xFE, 0xFE, 0xFE, 0x38, + 0x38, 0x00, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xF0, 0xF8, 0x18, 0x78, 0xF0, 0xC0, + 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xF0, 0xF8, 0x18, 0x30, 0x18, 0xF8, + 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0xE0, 0xE0, 0xC0, + 0x00, 0x00, 0x00, 0x7F, 0xDB, 0xDB, 0xDB, 0x7B, + 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, + 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x1C, 0x0C, 0x1C, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x60, 0xE0, 0x60, 0x60, 0x60, 0xF0, + 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x70, 0xF8, 0x88, 0xF8, 0x70, 0x00, 0xF8, + 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, + 0x6C, 0x36, 0x36, 0x6C, 0xD8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x60, 0xE0, 0x62, 0x66, 0xFE, 0x1C, + 0x38, 0x76, 0xEE, 0xD6, 0x3E, 0x3E, 0x06, 0x00, + 0x00, 0x00, 0x60, 0xE0, 0x62, 0x66, 0xFE, 0x1C, + 0x38, 0x70, 0xFC, 0xC6, 0x0C, 0x18, 0x1E, 0x00, + 0x00, 0x00, 0xE0, 0x30, 0x62, 0x36, 0xEE, 0x1C, + 0x3A, 0x76, 0xEE, 0xD6, 0x3E, 0x3E, 0x06, 0x00, + 0x00, 0x00, 0x1C, 0x1C, 0x1C, 0x00, 0x1C, 0x1C, + 0x7C, 0xF8, 0xE0, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, + 0x00, 0xE0, 0x70, 0x00, 0x10, 0x38, 0x7C, 0xEE, + 0xFE, 0xFE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x0E, 0x1C, 0x00, 0x10, 0x38, 0x7C, 0xEE, + 0xFE, 0xFE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x6C, 0xC6, 0x10, 0x38, 0x7C, 0xEE, + 0xFE, 0xFE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x76, 0xDC, 0x00, 0x10, 0x38, 0x7C, 0xEE, + 0xFE, 0xFE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0xEE, 0xEE, 0x10, 0x38, 0x7C, 0xEE, 0xFE, + 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x6C, 0x38, 0x38, 0x7C, 0xEE, 0xFE, + 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x1F, 0x3F, 0x7F, 0xFE, 0xEE, 0xFF, 0xFF, + 0xFE, 0xEE, 0xEF, 0xEF, 0xEF, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xFE, 0xEE, 0xE0, 0xE0, 0xE0, 0xE0, + 0xE0, 0xE0, 0xEE, 0xFE, 0x7C, 0x0E, 0x6E, 0x7C, + 0x00, 0x70, 0x38, 0x00, 0xFE, 0xFE, 0xE0, 0xE0, + 0xF8, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x1C, 0x38, 0x00, 0xFE, 0xFE, 0xE0, 0xE0, + 0xF8, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xEE, 0x00, 0xFE, 0xFE, 0xE0, 0xE0, + 0xF8, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0xEE, 0xEE, 0x00, 0xFE, 0xFE, 0xE0, 0xE0, 0xF8, + 0xF8, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x70, 0x38, 0x00, 0x38, 0x38, 0x38, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x1C, 0x38, 0x00, 0x38, 0x38, 0x38, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x6C, 0x38, 0x38, 0x38, 0x38, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0xEE, 0xEE, 0x00, 0x38, 0x38, 0x38, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xF8, 0xFC, 0xEE, 0xEE, 0xEE, 0xFE, + 0xEE, 0xEE, 0xEE, 0xFC, 0xF8, 0x00, 0x00, 0x00, + 0x00, 0x76, 0xDC, 0x00, 0xEE, 0xEE, 0xEE, 0xF6, + 0xFE, 0xDE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x70, 0x38, 0x00, 0x7C, 0xFE, 0xEE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x1C, 0x38, 0x00, 0x7C, 0xFE, 0xEE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xEE, 0x00, 0x7C, 0xFE, 0xEE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x76, 0xDC, 0x00, 0x7C, 0xFE, 0xEE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0xEE, 0xEE, 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xEE, 0x7C, + 0x38, 0x38, 0x7C, 0xEE, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x7A, 0xFC, 0xEE, 0xEE, 0xEE, 0xFE, 0xFE, + 0xFE, 0xEE, 0xEE, 0xFE, 0x7C, 0x80, 0x00, 0x00, + 0x00, 0x70, 0x38, 0x00, 0xEE, 0xEE, 0xEE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x1C, 0x38, 0x00, 0xEE, 0xEE, 0xEE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xEE, 0x00, 0xEE, 0xEE, 0xEE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0xEE, 0xEE, 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x1C, 0x38, 0x00, 0xEE, 0xEE, 0xEE, 0xEE, + 0x7C, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xE0, 0xE0, 0xFC, 0xFE, 0xEE, 0xEE, + 0xEE, 0xFE, 0xFC, 0xE0, 0xE0, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xFE, 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, + 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0xE0, 0xC0, 0x00, + 0x00, 0x00, 0x70, 0x38, 0x00, 0x7C, 0x7E, 0x0E, + 0x7E, 0xFE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1C, 0x38, 0x00, 0x7C, 0x7E, 0x0E, + 0x7E, 0xFE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x7C, 0xEE, 0x00, 0x7C, 0x7E, 0x0E, + 0x7E, 0xFE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x76, 0xDC, 0x00, 0x7C, 0x7E, 0x0E, + 0x7E, 0xFE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xEE, 0xEE, 0x00, 0x7C, 0x7E, 0x0E, + 0x7E, 0xFE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x6C, 0x38, 0x00, 0x7C, 0x7E, 0x0E, + 0x7E, 0xFE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x74, 0x7E, 0x7E, 0x1A, + 0x7E, 0xFE, 0xD8, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFE, + 0xEE, 0xE0, 0xEE, 0xFE, 0x7C, 0x1C, 0x7E, 0x7C, + 0x00, 0x00, 0x70, 0x38, 0x00, 0x7C, 0xFE, 0xEE, + 0xFE, 0xFE, 0xE0, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x70, 0x00, 0x7C, 0xFE, 0xEE, + 0xFE, 0xFE, 0xE0, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x7C, 0xEE, 0x00, 0x7C, 0xFE, 0xEE, + 0xFE, 0xFE, 0xE0, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xEE, 0xEE, 0x00, 0x7C, 0xFE, 0xEE, + 0xFE, 0xFE, 0xE0, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x38, 0x00, 0x38, 0x38, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1C, 0x38, 0x00, 0x38, 0x38, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x7C, 0xEE, 0x00, 0x38, 0x38, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xEE, 0xEE, 0x00, 0x38, 0x38, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0xEC, 0x7C, 0xF8, 0xFC, 0x7E, 0xFE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x76, 0xFE, 0xDC, 0x00, 0xFC, 0xFE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xE0, 0x70, 0x00, 0x7C, 0xFE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x70, 0x00, 0x7C, 0xFE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x7C, 0xEE, 0x00, 0x7C, 0xFE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x76, 0xFE, 0xDC, 0x00, 0x7C, 0xFE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xEE, 0xEE, 0x00, 0x7C, 0xFE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x00, 0xFE, + 0xFE, 0x00, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x7C, 0xFE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x80, 0x00, 0x00, + 0x00, 0x00, 0xE0, 0x70, 0x00, 0xEE, 0xEE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x70, 0x00, 0xEE, 0xEE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x7C, 0xEE, 0x00, 0xEE, 0xEE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xEE, 0xEE, 0x00, 0xEE, 0xEE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1C, 0x38, 0x00, 0xEE, 0xEE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x0E, 0xFE, 0xFC, + 0x00, 0x00, 0xE0, 0xE0, 0xFC, 0xFE, 0xEE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0xE0, 0xE0, + 0x00, 0x00, 0xEE, 0xEE, 0x00, 0xEE, 0xEE, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x0E, 0xFE, 0xFC, +}; + +const struct fb_font_desc font_bold = { + .name = "NetSurf Bold", + .width = 8, + .height = 16, + .encoding = "CP1252", + .data = fontdata_bold, +}; + + +static const uint32_t fontdata_italic[FONTDATAMAX] = { + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xE4, 0xAC, 0xA4, 0xA4, 0xEE, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xEC, 0xA2, 0xA4, 0xA8, 0xEE, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xEC, 0xA2, 0xAC, 0xA2, 0xEC, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xEA, 0xAA, 0xAE, 0xA2, 0xE2, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xEE, 0xA8, 0xAE, 0xA2, 0xEE, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xE6, 0xA8, 0xAE, 0xAA, 0xEE, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xEE, 0xA2, 0xA4, 0xA4, 0xE4, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xEE, 0xAA, 0xAE, 0xAA, 0xEE, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xEE, 0xAA, 0xAE, 0xA2, 0xE2, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xE4, 0xAA, 0xAE, 0xAA, 0xEA, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xEC, 0xAA, 0xAC, 0xAA, 0xEC, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xE4, 0xAA, 0xA8, 0xAA, 0xE4, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xEC, 0xAA, 0xAA, 0xAA, 0xEC, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xEE, 0xA8, 0xAC, 0xA8, 0xEE, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xEE, 0xA8, 0xAC, 0xA8, 0xE8, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x4E, 0xCA, 0x4A, 0x4A, 0xEE, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x44, 0xCC, 0x44, 0x44, 0xEE, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x4C, 0xC2, 0x44, 0x48, 0xEE, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x4C, 0xC2, 0x4C, 0x42, 0xEC, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x4A, 0xCA, 0x4E, 0x42, 0xE2, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x4E, 0xC8, 0x4E, 0x42, 0xEE, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x46, 0xC8, 0x4E, 0x4A, 0xEE, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x4E, 0xC2, 0x44, 0x44, 0xE4, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x4E, 0xCA, 0x4E, 0x4A, 0xEE, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x4E, 0xCA, 0x4E, 0x42, 0xE2, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x44, 0xCA, 0x4E, 0x4A, 0xEA, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x4C, 0xCA, 0x4C, 0x4A, 0xEC, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x44, 0xCA, 0x48, 0x4A, 0xE4, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x4C, 0xCA, 0x4A, 0x4A, 0xEC, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x4E, 0xC8, 0x4C, 0x48, 0xEE, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x4E, 0xC8, 0x4C, 0x48, 0xE8, 0x00, 0xFE, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x06, 0x06, 0x06, 0x06, 0x0C, 0x0C, 0x0C, + 0x0C, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1B, 0x1B, 0x36, 0x36, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1B, 0x1B, 0x1B, 0x7F, 0x7F, 0x36, 0x36, + 0xFF, 0xFF, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x3E, 0x7F, 0x6B, 0x68, 0x78, 0x3C, + 0x1E, 0x16, 0xD6, 0xFE, 0x7C, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xCE, 0x1C, + 0x38, 0x70, 0xE6, 0xC6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1C, 0x3E, 0x36, 0x36, 0x3C, 0x39, 0x7F, + 0x6E, 0xCC, 0xCC, 0xFE, 0x7A, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x06, 0x0C, 0x0C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x06, 0x0E, 0x1C, 0x38, 0x30, 0x60, 0x60, 0xC0, + 0xC0, 0xC0, 0xC0, 0xC0, 0xE0, 0x70, 0x30, 0x00, + 0x18, 0x1C, 0x0E, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x0C, 0x0C, 0x18, 0x38, 0x70, 0xE0, 0xC0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x36, 0x36, 0x1C, 0x7F, + 0xFE, 0x38, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7E, + 0xFC, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x38, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xFC, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0E, 0x1C, + 0x38, 0x70, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1E, 0x3F, 0x33, 0x33, 0x67, 0x6E, 0x76, + 0xE6, 0xCC, 0xCC, 0xFC, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x06, 0x0E, 0x1E, 0x3C, 0x0C, 0x0C, 0x18, + 0x18, 0x18, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x1E, 0x3F, 0x33, 0x03, 0x07, 0x1E, 0x7C, + 0x60, 0xC0, 0xC0, 0xFC, 0xFC, 0x00, 0x00, 0x00, + 0x00, 0x1E, 0x3F, 0x33, 0x03, 0x06, 0x1E, 0x1E, + 0x06, 0x06, 0xCC, 0xFC, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1E, 0x36, 0x7F, + 0x7F, 0x0C, 0x0C, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x1F, 0x1F, 0x30, 0x30, 0x7C, 0x7E, 0x06, + 0x06, 0x06, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x0F, 0x1F, 0x38, 0x30, 0x60, 0x7C, 0x7E, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x3F, 0x7F, 0x63, 0x03, 0x06, 0x06, 0x0C, + 0x0C, 0x18, 0x18, 0x30, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x1E, 0x3F, 0x33, 0x33, 0x33, 0x1E, 0x7C, + 0x66, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x1E, 0x3F, 0x33, 0x63, 0x63, 0x7E, 0x3E, + 0x06, 0x0C, 0x1C, 0xF8, 0xF0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, + 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, + 0x00, 0x00, 0x18, 0x38, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x0E, 0x1C, 0x38, 0x70, 0x70, + 0x70, 0x38, 0x1C, 0x0C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3E, 0x7C, 0x00, 0x00, + 0x7C, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x18, 0x0C, 0x0C, 0x06, 0x0E, + 0x1C, 0x38, 0x70, 0x60, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1E, 0x3F, 0x33, 0x33, 0x03, 0x07, 0x0E, + 0x1C, 0x18, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x1E, 0x3F, 0x33, 0x63, 0x6F, 0x6B, 0x6B, + 0xCF, 0xCE, 0xC0, 0xFC, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x1E, 0x3F, 0x33, 0x33, 0x66, 0x7E, 0x7E, + 0x66, 0xCC, 0xCC, 0xCC, 0xCC, 0x00, 0x00, 0x00, + 0x00, 0x3E, 0x3F, 0x33, 0x63, 0x63, 0x7E, 0x7C, + 0x66, 0xC6, 0xC6, 0xFE, 0xFC, 0x00, 0x00, 0x00, + 0x00, 0x1E, 0x3F, 0x33, 0x30, 0x60, 0x60, 0x60, + 0x60, 0xC0, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x3E, 0x3F, 0x33, 0x63, 0x63, 0x63, 0x63, + 0xC3, 0xC6, 0xCE, 0xFC, 0xF8, 0x00, 0x00, 0x00, + 0x00, 0x3F, 0x3F, 0x30, 0x30, 0x60, 0x7C, 0x7C, + 0x60, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x3F, 0x3F, 0x30, 0x30, 0x60, 0x7C, 0x7C, + 0x60, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, + 0x00, 0x1E, 0x3F, 0x33, 0x30, 0x60, 0x60, 0x6E, + 0x6E, 0xC6, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x33, 0x33, 0x33, 0x63, 0x66, 0x7E, 0x7E, + 0xC6, 0xC6, 0xCC, 0xCC, 0xCC, 0x00, 0x00, 0x00, + 0x00, 0x3F, 0x3F, 0x0C, 0x0C, 0x18, 0x18, 0x18, + 0x18, 0x30, 0x30, 0xFC, 0xFC, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x03, 0x03, 0x03, 0x06, 0x06, 0x06, + 0x06, 0x0C, 0xCC, 0xFC, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x30, 0x30, 0x33, 0x36, 0x7C, 0x78, 0x70, + 0x78, 0xF8, 0xDC, 0xCE, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x30, 0x30, 0x30, 0x30, 0x60, 0x60, 0x60, + 0x60, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x33, 0x33, 0x3F, 0x3F, 0x7F, 0x6B, 0x66, + 0x66, 0xC6, 0xCC, 0xCC, 0xCC, 0x00, 0x00, 0x00, + 0x00, 0x33, 0x33, 0x3B, 0x3B, 0x7B, 0x7E, 0x6E, + 0x6E, 0xCE, 0xCC, 0xCC, 0xCC, 0x00, 0x00, 0x00, + 0x00, 0x1E, 0x3F, 0x33, 0x33, 0x63, 0x66, 0x66, + 0xC6, 0xCC, 0xCC, 0xFC, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x3E, 0x3F, 0x33, 0x33, 0x67, 0x7E, 0x7C, + 0x60, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, + 0x00, 0x1E, 0x3F, 0x33, 0x33, 0x63, 0x66, 0x66, + 0xC6, 0xF6, 0xDC, 0xF8, 0x7C, 0x0C, 0x00, 0x00, + 0x00, 0x3E, 0x3F, 0x33, 0x33, 0x63, 0x7E, 0x7C, + 0x6E, 0xC6, 0xC6, 0xCC, 0xCC, 0x00, 0x00, 0x00, + 0x00, 0x1E, 0x3F, 0x33, 0x60, 0x60, 0x7C, 0x3E, + 0x06, 0x06, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0x7F, 0x18, 0x18, 0x30, 0x30, 0x30, + 0x30, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00, + 0x00, 0x33, 0x33, 0x33, 0x33, 0x63, 0x66, 0x66, + 0x66, 0xC6, 0xCC, 0xFC, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x33, 0x33, 0x33, 0x33, 0x63, 0x63, 0x66, + 0x66, 0x6C, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x33, 0x33, 0x33, 0x33, 0x63, 0x63, 0x6B, + 0x6B, 0xFE, 0xFE, 0xEE, 0x44, 0x00, 0x00, 0x00, + 0x00, 0x63, 0x63, 0x63, 0x77, 0x3E, 0x1C, 0x38, + 0x7C, 0xEE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x3C, 0x18, + 0x18, 0x30, 0x30, 0x60, 0x60, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0x7F, 0x03, 0x07, 0x0E, 0x0C, 0x18, + 0x38, 0x70, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x0F, 0x0F, 0x0C, 0x0C, 0x18, 0x18, 0x18, + 0x18, 0x30, 0x30, 0x3E, 0x3E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0x70, + 0x38, 0x1C, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1F, 0x1F, 0x03, 0x03, 0x06, 0x06, 0x06, + 0x06, 0x0C, 0x0C, 0x7C, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x0E, 0x1F, 0x3B, 0x63, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x00, + 0x00, 0x00, 0x00, 0x0C, 0x0E, 0x0C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x3E, 0x06, + 0x7E, 0xFC, 0xCC, 0xFC, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x18, 0x30, 0x30, 0x3E, 0x7F, 0x63, + 0x63, 0xC6, 0xC6, 0xFE, 0xFC, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0x66, + 0xC0, 0xC0, 0xCC, 0xFC, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x03, 0x03, 0x06, 0x3E, 0x7E, 0x66, + 0xC6, 0xCC, 0xCC, 0xFC, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0x66, + 0xFE, 0xFC, 0xC0, 0xFC, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x0F, 0x0C, 0x18, 0x7E, 0x7E, 0x30, + 0x30, 0x30, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x63, + 0x63, 0xC6, 0xC6, 0xFE, 0x7E, 0x0C, 0xFC, 0xF8, + 0x00, 0x00, 0x30, 0x30, 0x30, 0x6E, 0x7F, 0x73, + 0x63, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x06, 0x00, 0x1C, 0x3C, 0x0C, + 0x0C, 0x18, 0x18, 0x7C, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x03, 0x00, 0x0E, 0x1E, 0x06, + 0x06, 0x0C, 0x0C, 0x0C, 0x0C, 0x18, 0xF8, 0xF0, + 0x00, 0x30, 0x30, 0x30, 0x33, 0x67, 0x6E, 0x7C, + 0x7C, 0xDC, 0xCE, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x0E, 0x0E, 0x06, 0x06, 0x0C, 0x0C, 0x0C, + 0x0C, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0x7F, 0x7F, + 0x6B, 0xD6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0x7E, 0x76, + 0x66, 0xCC, 0xCC, 0xCC, 0xCC, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0x66, + 0x66, 0xCC, 0xCC, 0xFC, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x3F, 0x33, + 0x63, 0x66, 0x66, 0xFE, 0xFC, 0xC0, 0xC0, 0xC0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x63, + 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x0C, 0x0E, 0x0E, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x7F, 0x70, + 0x60, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x60, + 0x7C, 0x3E, 0x06, 0xFE, 0xFC, 0x00, 0x00, 0x00, + 0x00, 0x06, 0x06, 0x0C, 0x0C, 0x3F, 0x3F, 0x18, + 0x18, 0x30, 0x30, 0x3E, 0x1C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x33, 0x66, + 0x66, 0x66, 0xCC, 0xFE, 0x76, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, + 0xCC, 0xCC, 0xF8, 0x70, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x63, + 0x6B, 0xDE, 0xFE, 0xFE, 0x6C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x77, + 0x3E, 0x7C, 0xEE, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x63, 0x63, + 0x63, 0xC6, 0xC6, 0xFE, 0x7E, 0x0C, 0xFC, 0xF8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x07, + 0x1E, 0x78, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x0E, 0x0C, 0x0C, 0x18, 0x70, 0x70, + 0x18, 0x18, 0x30, 0x38, 0x1C, 0x00, 0x00, 0x00, + 0x06, 0x06, 0x06, 0x06, 0x0C, 0x0C, 0x0C, 0x0C, + 0x18, 0x18, 0x18, 0x18, 0x30, 0x30, 0x30, 0x00, + 0x00, 0x38, 0x1C, 0x0C, 0x18, 0x18, 0x0E, 0x0E, + 0x18, 0x30, 0x30, 0x70, 0xE0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1D, 0x3F, 0x37, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xEE, 0x28, 0x4C, 0x48, 0x48, 0x00, 0xFE, + 0x00, 0x06, 0x0F, 0x1B, 0x18, 0x7E, 0x30, 0x7C, + 0x60, 0x60, 0x6C, 0x3C, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, + 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x18, 0x10, 0x20, 0x00, + 0x00, 0x07, 0x0F, 0x0C, 0x18, 0x7E, 0x7E, 0x30, + 0x30, 0x30, 0x60, 0x60, 0x60, 0xC0, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x66, 0x66, 0x44, 0x88, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xDB, 0xDB, 0x00, 0x00, 0x00, + 0x00, 0x06, 0x06, 0x06, 0x1F, 0x3F, 0x0C, 0x0C, + 0x0C, 0x18, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, + 0x00, 0x06, 0x06, 0x06, 0x1F, 0x3F, 0x0C, 0x3F, + 0x3F, 0x18, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, + 0x00, 0x3E, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x63, 0x06, + 0x0C, 0x30, 0x60, 0xDB, 0x9B, 0x00, 0x00, 0x00, + 0x63, 0x3E, 0x00, 0x1E, 0x3F, 0x33, 0x60, 0x7C, + 0x3E, 0x06, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0E, + 0x1C, 0x30, 0x38, 0x1C, 0x0C, 0x00, 0x00, 0x00, + 0x00, 0x1F, 0x3F, 0x33, 0x33, 0x66, 0x67, 0x67, + 0x66, 0xCC, 0xCC, 0xFF, 0x7F, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, + 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, + 0x63, 0x3E, 0x00, 0x7F, 0x7F, 0x03, 0x07, 0x0E, + 0x18, 0x70, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, + 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, + 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x08, 0x10, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0C, 0x04, 0x08, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x09, 0x12, 0x1B, 0x36, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1B, 0x1B, 0x09, 0x12, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x3F, + 0x3F, 0x7E, 0x7E, 0x3C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x19, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFB, 0xFF, 0x55, 0xA2, 0xA2, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x63, 0x36, 0x1C, 0x00, 0x3F, 0x7F, 0x60, + 0x7C, 0x3E, 0x06, 0xFE, 0xFC, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1C, + 0x0E, 0x0C, 0x1C, 0x38, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x7F, 0x6D, + 0x6F, 0xDE, 0xD8, 0xFE, 0x6E, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, + 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x63, 0x36, 0x1C, 0x00, 0x7F, 0x7F, 0x07, + 0x1E, 0x78, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x33, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x3C, + 0x18, 0x30, 0x30, 0x30, 0x60, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, + 0x0C, 0x18, 0x18, 0x18, 0x18, 0x30, 0x30, 0x00, + 0x00, 0x00, 0x00, 0x04, 0x04, 0x3E, 0x7F, 0x6B, + 0x68, 0xD0, 0xD6, 0xFE, 0x7C, 0x20, 0x20, 0x00, + 0x00, 0x0F, 0x1F, 0x19, 0x18, 0x30, 0x7C, 0x7C, + 0x30, 0x60, 0xE6, 0xFE, 0xDC, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x19, 0x33, 0x1E, 0x3F, + 0x33, 0x66, 0x7E, 0x3C, 0x66, 0xCC, 0x00, 0x00, + 0x00, 0x00, 0x19, 0x19, 0x19, 0x1E, 0x0C, 0x3F, + 0x0C, 0x7E, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x06, 0x06, 0x0C, 0x0C, 0x00, + 0x00, 0x18, 0x18, 0x30, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x0E, 0x18, 0x18, 0x3C, 0x7E, 0x66, + 0x7E, 0x3C, 0x18, 0x18, 0x70, 0xE0, 0x00, 0x00, + 0x00, 0x00, 0x33, 0x66, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0E, 0x1F, 0x21, 0x21, 0x4D, 0x51, 0x51, + 0x91, 0xA1, 0x9A, 0x82, 0x7C, 0x38, 0x00, 0x00, + 0x00, 0x1C, 0x02, 0x1E, 0x22, 0x3C, 0x00, 0x7C, + 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1B, + 0x36, 0xD8, 0xD8, 0x6C, 0x36, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1E, 0x3E, 0x06, 0x0C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0E, 0x1F, 0x21, 0x49, 0x55, 0x55, 0x59, + 0x99, 0xA5, 0xA5, 0x82, 0x7E, 0x78, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1E, 0x3F, 0x33, 0x3F, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x06, 0x06, 0x3F, 0x3F, 0x0C, + 0x0C, 0x00, 0x7E, 0x7E, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3C, 0x3E, 0x06, 0x3C, 0x78, 0x60, + 0x7C, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3C, 0x3E, 0x06, 0x18, 0x0C, 0x7C, + 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x06, 0x0C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x33, + 0x33, 0x66, 0x66, 0x7E, 0x7C, 0xC0, 0xC0, 0x80, + 0x00, 0x00, 0x00, 0x3F, 0x6F, 0xDB, 0xDB, 0x7B, + 0x1B, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, + 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x1C, 0x0C, 0x1C, 0x30, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x38, 0x18, 0x30, 0x30, 0x78, + 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0C, 0x1E, 0x22, 0x3C, 0x18, 0x00, 0x3C, + 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, + 0x36, 0x36, 0x36, 0x6C, 0xD8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x30, 0x10, 0x23, 0x76, 0x0C, + 0x18, 0x64, 0xCC, 0x94, 0x3E, 0x08, 0x08, 0x00, + 0x00, 0x00, 0x10, 0x30, 0x10, 0x23, 0x76, 0x0C, + 0x18, 0x60, 0xDC, 0x82, 0x1C, 0x20, 0x3C, 0x00, + 0x00, 0x00, 0x38, 0x04, 0x18, 0x0B, 0x76, 0x0C, + 0x18, 0x64, 0xCC, 0x96, 0x3E, 0x08, 0x08, 0x00, + 0x00, 0x00, 0x00, 0x06, 0x06, 0x00, 0x0C, 0x0C, + 0x3C, 0x70, 0xC0, 0xC6, 0xC6, 0xFC, 0x78, 0x00, + 0x00, 0x18, 0x0C, 0x00, 0x04, 0x1C, 0x36, 0x63, + 0x7F, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x06, 0x00, 0x04, 0x1C, 0x36, 0x63, + 0x7F, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x0E, 0x1B, 0x11, 0x04, 0x1C, 0x36, 0x63, + 0x7F, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x1D, 0x37, 0x00, 0x04, 0x1C, 0x36, 0x63, + 0x7F, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x1B, 0x1B, 0x04, 0x0E, 0x36, 0x63, 0x7F, + 0x7F, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x0E, 0x11, 0x0E, 0x0E, 0x36, 0x63, 0x7F, + 0x7F, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x0F, 0x1F, 0x3B, 0x66, 0x7F, 0x7F, + 0x66, 0xCC, 0xCC, 0xCF, 0xCF, 0x00, 0x00, 0x00, + 0x00, 0x1E, 0x3F, 0x33, 0x30, 0x60, 0x60, 0x60, + 0x60, 0xC0, 0xC6, 0xFE, 0x7C, 0x1C, 0xCC, 0x78, + 0x00, 0x0C, 0x06, 0x00, 0x3F, 0x7F, 0x60, 0x78, + 0x78, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x06, 0x00, 0x3F, 0x7F, 0x60, 0x78, + 0x78, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x0E, 0x1B, 0x00, 0x3F, 0x7F, 0x60, 0x78, + 0x78, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x1B, 0x1B, 0x00, 0x3F, 0x3F, 0x60, 0x60, 0x78, + 0x78, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x0C, 0x06, 0x00, 0x1F, 0x1F, 0x0C, 0x0C, + 0x0C, 0x18, 0x18, 0x7C, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x06, 0x00, 0x1F, 0x1F, 0x0C, 0x0C, + 0x0C, 0x18, 0x18, 0x7C, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x06, 0x09, 0x1F, 0x1F, 0x0C, 0x0C, 0x0C, + 0x0C, 0x18, 0x18, 0x7C, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x1B, 0x1B, 0x00, 0x1F, 0x1F, 0x0C, 0x0C, + 0x0C, 0x18, 0x18, 0x7C, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1E, 0x1F, 0x1B, 0x33, 0x33, 0x7B, + 0x33, 0x66, 0x6E, 0x7C, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x1D, 0x37, 0x00, 0x31, 0x63, 0x73, 0x7B, + 0x7F, 0xDE, 0xCE, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x0C, 0x06, 0x00, 0x3E, 0x7F, 0x63, 0x63, + 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x06, 0x00, 0x3E, 0x7F, 0x63, 0x63, + 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x0E, 0x1B, 0x00, 0x3E, 0x7F, 0x63, 0x63, + 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x1D, 0x37, 0x00, 0x3E, 0x7F, 0x63, 0x63, + 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x1B, 0x1B, 0x00, 0x3E, 0x7F, 0x63, 0x63, + 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x77, 0x3E, + 0x1C, 0x38, 0x7C, 0xEE, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x1D, 0x3E, 0x37, 0x6B, 0x6B, 0x6B, 0xD6, + 0xD6, 0xD6, 0xEE, 0x7C, 0xB8, 0x00, 0x00, 0x00, + 0x00, 0x0C, 0x06, 0x00, 0x33, 0x33, 0x63, 0x66, + 0x66, 0xC6, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x06, 0x00, 0x33, 0x33, 0x63, 0x66, + 0x66, 0xC6, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x0E, 0x1B, 0x00, 0x33, 0x33, 0x63, 0x66, + 0x66, 0xC6, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x00, + 0x1B, 0x1B, 0x00, 0x33, 0x33, 0x63, 0x63, 0x63, + 0x66, 0xC6, 0xCE, 0xFC, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x06, 0x0C, 0x00, 0x33, 0x33, 0x66, 0x6E, + 0x7C, 0x38, 0x30, 0x60, 0x60, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x18, 0x1F, 0x3F, 0x33, 0x33, + 0x3F, 0x7C, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00, + 0x00, 0x0E, 0x1F, 0x1B, 0x1B, 0x33, 0x3F, 0x3E, + 0x33, 0x66, 0x66, 0x7E, 0x7C, 0xC0, 0x80, 0x00, + 0x00, 0x00, 0x0C, 0x06, 0x00, 0x3F, 0x7F, 0x63, + 0x63, 0xCE, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x0C, 0x00, 0x3F, 0x7F, 0x63, + 0x63, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x0E, 0x1B, 0x00, 0x3F, 0x7F, 0x63, + 0x63, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1D, 0x37, 0x00, 0x3F, 0x7F, 0x63, + 0x63, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1B, 0x1B, 0x00, 0x3F, 0x7F, 0x63, + 0x63, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00, + 0x00, 0x0E, 0x1B, 0x0E, 0x00, 0x3E, 0x7F, 0x63, + 0x63, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0x3F, 0x0D, + 0x1F, 0x7E, 0xD8, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x7F, + 0x63, 0xC0, 0xC6, 0xFE, 0x7C, 0x30, 0xF8, 0xF0, + 0x00, 0x00, 0x0C, 0x06, 0x00, 0x3E, 0x7F, 0x63, + 0x7F, 0xFE, 0xC0, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x0C, 0x00, 0x3E, 0x7F, 0x63, + 0x7F, 0xFE, 0xC0, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x0E, 0x1B, 0x00, 0x3E, 0x7F, 0x63, + 0x7F, 0xFE, 0xC0, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1B, 0x1B, 0x00, 0x3E, 0x7F, 0x63, + 0x7F, 0xFE, 0xC0, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0C, 0x06, 0x00, 0x0C, 0x0C, 0x0C, + 0x0C, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x06, 0x00, 0x0C, 0x0C, 0x0C, + 0x0C, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x06, 0x0F, 0x19, 0x00, 0x0C, 0x0C, 0x0C, + 0x0C, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1B, 0x1B, 0x00, 0x0C, 0x0C, 0x0C, + 0x0C, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x1B, 0x1F, 0x3E, 0x37, 0x3E, 0x7F, 0x63, + 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x1D, 0x3F, 0x37, 0x00, 0x7E, 0x7F, 0x63, + 0x63, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x0C, 0x00, 0x3E, 0x7F, 0x63, + 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x0C, 0x00, 0x3E, 0x7F, 0x63, + 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x0E, 0x1B, 0x00, 0x3E, 0x7F, 0x63, + 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x1D, 0x3F, 0x37, 0x00, 0x3E, 0x7F, 0x63, + 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1B, 0x1B, 0x00, 0x3E, 0x7F, 0x63, + 0x63, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x3F, + 0x7E, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x7F, 0x67, + 0x6B, 0xD6, 0xE6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x0C, 0x00, 0x63, 0x63, 0x63, + 0x63, 0xC6, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x0C, 0x00, 0x63, 0x63, 0x63, + 0x63, 0xC6, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x0E, 0x1B, 0x00, 0x63, 0x63, 0x63, + 0x63, 0xC6, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1B, 0x1B, 0x00, 0x63, 0x63, 0x63, + 0x63, 0xC6, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x06, 0x00, 0x63, 0x63, 0x63, + 0x63, 0xC6, 0xC6, 0xFE, 0x7E, 0x0C, 0xF8, 0xF0, + 0x00, 0x00, 0x18, 0x18, 0x18, 0x3E, 0x3F, 0x33, + 0x33, 0x66, 0x66, 0x7E, 0x7C, 0xC0, 0xC0, 0xC0, + 0x00, 0x00, 0x00, 0x1B, 0x00, 0x63, 0x63, 0x63, + 0x63, 0xC6, 0xC6, 0xFE, 0x7E, 0x0C, 0xF8, 0xF0, +}; + +const struct fb_font_desc font_italic = { + .name = "NetSurf Italic", + .width = 8, + .height = 16, + .encoding = "CP1252", + .data = fontdata_italic, +}; + + +static const uint32_t fontdata_italic_bold[FONTDATAMAX] = { + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xE4, 0xAC, 0xA4, 0xA4, 0xEE, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xEC, 0xA2, 0xA4, 0xA8, 0xEE, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xEC, 0xA2, 0xAC, 0xA2, 0xEC, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xEA, 0xAA, 0xAE, 0xA2, 0xE2, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xEE, 0xA8, 0xAE, 0xA2, 0xEE, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xE6, 0xA8, 0xAE, 0xAA, 0xEE, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xEE, 0xA2, 0xA4, 0xA4, 0xE4, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xEE, 0xAA, 0xAE, 0xAA, 0xEE, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xEE, 0xAA, 0xAE, 0xA2, 0xE2, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xE4, 0xAA, 0xAE, 0xAA, 0xEA, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xEC, 0xAA, 0xAC, 0xAA, 0xEC, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xE4, 0xAA, 0xA8, 0xAA, 0xE4, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xEC, 0xAA, 0xAA, 0xAA, 0xEC, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xEE, 0xA8, 0xAC, 0xA8, 0xEE, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xEE, 0xA8, 0xAC, 0xA8, 0xE8, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x4E, 0xCA, 0x4A, 0x4A, 0xEE, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x44, 0xCC, 0x44, 0x44, 0xEE, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x4C, 0xC2, 0x44, 0x48, 0xEE, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x4C, 0xC2, 0x4C, 0x42, 0xEC, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x4A, 0xCA, 0x4E, 0x42, 0xE2, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x4E, 0xC8, 0x4E, 0x42, 0xEE, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x46, 0xC8, 0x4E, 0x4A, 0xEE, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x4E, 0xC2, 0x44, 0x44, 0xE4, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x4E, 0xCA, 0x4E, 0x4A, 0xEE, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x4E, 0xCA, 0x4E, 0x42, 0xE2, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x44, 0xCA, 0x4E, 0x4A, 0xEA, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x4C, 0xCA, 0x4C, 0x4A, 0xEC, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x44, 0xCA, 0x48, 0x4A, 0xE4, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x4C, 0xCA, 0x4A, 0x4A, 0xEC, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x4E, 0xC8, 0x4C, 0x48, 0xEE, 0x00, 0xFE, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0x4E, 0xC8, 0x4C, 0x48, 0xE8, 0x00, 0xFE, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0E, 0x0E, 0x0E, 0x0E, 0x1C, 0x1C, 0x1C, + 0x1C, 0x00, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x77, 0x77, 0x77, 0x77, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x36, 0x36, 0x7F, 0x7F, 0x7F, 0x36, 0x6C, + 0xFE, 0xFE, 0xFE, 0x6C, 0x6C, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x3E, 0x7F, 0x7B, 0x78, 0x7C, 0x7C, + 0x3E, 0x1E, 0xDE, 0xFE, 0x7C, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x70, 0x73, 0x77, 0x0E, + 0x3C, 0x70, 0xEE, 0xCE, 0x0E, 0x00, 0x00, 0x00, + 0x00, 0x1C, 0x3E, 0x7E, 0x7C, 0x7C, 0x3B, 0xFE, + 0xFE, 0xEC, 0xEE, 0xFE, 0x74, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1C, 0x1C, 0x1C, 0x1C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x06, 0x0E, 0x1C, 0x1C, 0x38, 0x38, 0x70, + 0x70, 0x70, 0x38, 0x38, 0x1C, 0x0C, 0x06, 0x00, + 0x60, 0x30, 0x38, 0x1C, 0x1C, 0x0E, 0x0E, 0x0E, + 0x1C, 0x1C, 0x38, 0x38, 0x70, 0x60, 0xC0, 0x00, + 0x00, 0x00, 0x00, 0x08, 0x2A, 0x7F, 0x3E, 0x18, + 0x7C, 0xFE, 0x54, 0x10, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x7E, + 0x7E, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x78, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, + 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0F, 0x3C, + 0x78, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1C, 0x3E, 0x77, 0x77, 0x77, 0x77, 0xEE, + 0xEE, 0xEE, 0xEE, 0x7C, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x0C, 0x1C, 0x3C, 0x3C, 0x1C, 0x1C, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x3E, 0x7F, 0x77, 0x07, 0x07, 0x3E, 0x7C, + 0xE0, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x3E, 0x7F, 0x77, 0x07, 0x07, 0x1E, 0x3C, + 0x0E, 0x0E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x06, 0x0E, 0x1E, 0x3E, 0x76, 0xEC, + 0xFE, 0xFE, 0x1C, 0x1C, 0x1C, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0x7F, 0x70, 0x70, 0x7C, 0x7E, 0x0E, + 0x0E, 0x0E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x3E, 0x7E, 0x70, 0x70, 0x7C, 0x7E, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0x7F, 0x07, 0x07, 0x0E, 0x0E, 0x1C, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x3E, 0x7F, 0x77, 0x77, 0x7F, 0x3E, 0x7E, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x3E, 0x7F, 0x77, 0x77, 0x77, 0x7F, 0x3E, + 0x0E, 0x0E, 0x0E, 0x7C, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x00, + 0x00, 0x00, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x00, + 0x00, 0x18, 0x38, 0x38, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x07, 0x0E, 0x1C, 0x70, + 0x70, 0x38, 0x1C, 0x0E, 0x06, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x00, + 0x00, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x30, 0x38, 0x1C, 0x0E, 0x0E, + 0x0E, 0x1C, 0x38, 0x70, 0x60, 0x00, 0x00, 0x00, + 0x00, 0x3E, 0x7F, 0x77, 0x07, 0x07, 0x1E, 0x7C, + 0x70, 0x00, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3E, 0x7F, 0x77, 0x77, 0x77, 0x7F, 0xFE, + 0xEC, 0xE0, 0xE0, 0xFC, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x3E, 0x7F, 0x77, 0x77, 0x77, 0x76, 0xFE, + 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x7E, 0x7F, 0x77, 0x77, 0x77, 0x7E, 0xFC, + 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0x00, 0x00, 0x00, + 0x00, 0x3E, 0x7F, 0x77, 0x77, 0x70, 0x70, 0xE0, + 0xE0, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0x7E, 0x77, 0x77, 0x77, 0x76, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFC, 0xF8, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0x7F, 0x70, 0x70, 0x70, 0x7C, 0xF8, + 0xE0, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0x7F, 0x70, 0x70, 0x70, 0x7C, 0xF8, + 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00, + 0x00, 0x3E, 0x7F, 0x77, 0x77, 0x70, 0x70, 0xFE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x77, 0x77, 0x77, 0x77, 0x77, 0x7E, 0xFE, + 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0x7F, 0x1C, 0x1C, 0x1C, 0x1C, 0x38, + 0x38, 0x38, 0x38, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x06, 0x0E, + 0x0E, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x70, 0x70, 0x72, 0x77, 0x7F, 0x7E, 0xF8, + 0xF8, 0xFC, 0xFE, 0xEE, 0xE6, 0x00, 0x00, 0x00, + 0x00, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0xE0, + 0xE0, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x63, 0x77, 0x7F, 0x7F, 0x7F, 0x7E, 0xEE, + 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x67, 0x77, 0x77, 0x7F, 0x7F, 0x7E, 0xFE, + 0xFE, 0xFE, 0xEE, 0xEE, 0xE6, 0x00, 0x00, 0x00, + 0x00, 0x3E, 0x7F, 0x77, 0x77, 0x77, 0x76, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x7E, 0x7F, 0x77, 0x77, 0x77, 0x77, 0xFE, + 0xFC, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00, + 0x00, 0x3E, 0x7F, 0x77, 0x77, 0x77, 0x76, 0xEE, + 0xEE, 0xFE, 0xFE, 0xFE, 0x7E, 0x06, 0x00, 0x00, + 0x00, 0x7E, 0x7F, 0x77, 0x77, 0x77, 0x7E, 0xFC, + 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x3E, 0x7F, 0x77, 0x70, 0x70, 0x7C, 0x3E, + 0x0E, 0x0E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0x7F, 0x1C, 0x1C, 0x1C, 0x1C, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x77, 0x77, 0x77, 0x77, 0x77, 0x76, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x77, 0x77, 0x77, 0x77, 0x77, 0x76, 0xEE, + 0x6C, 0x7C, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x77, 0x77, 0x77, 0x77, 0x77, 0x76, 0xEE, + 0xFE, 0xFE, 0xFE, 0xEE, 0x44, 0x00, 0x00, 0x00, + 0x00, 0x77, 0x77, 0x77, 0x77, 0x3E, 0x1C, 0x38, + 0x7C, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x77, 0x77, 0x77, 0x77, 0x77, 0x3E, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0x7F, 0x07, 0x07, 0x0E, 0x1C, 0x38, + 0x70, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x38, + 0x38, 0x38, 0x38, 0x3E, 0x3E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x70, 0x78, 0x38, + 0x1C, 0x1E, 0x0E, 0x04, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7E, 0x7E, 0x0E, 0x0E, 0x0E, 0x0E, 0x1C, + 0x1C, 0x1C, 0x1C, 0xFC, 0xFC, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x1C, 0x3E, 0x77, 0x63, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x1C, 0x0C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x3E, 0x0E, + 0x3E, 0x7E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x38, 0x38, 0x70, 0x7C, 0x7E, 0x6E, + 0xEE, 0xEE, 0xEE, 0xFC, 0xF8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0xEE, + 0xE0, 0xE0, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x07, 0x07, 0x07, 0x3F, 0x7E, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0xEE, + 0xFE, 0xFC, 0xE0, 0xFC, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x1F, 0x3F, 0x38, 0x38, 0x70, 0x7C, 0x7C, + 0x70, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x7E, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x1C, 0xFC, 0xF8, + 0x00, 0x00, 0x70, 0x70, 0x70, 0x7C, 0x7E, 0xEE, + 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0E, 0x0E, 0x00, 0x1E, 0x3E, 0x1C, + 0x1C, 0x38, 0x38, 0x7C, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0E, 0x0E, 0x00, 0x1E, 0x3E, 0x0E, + 0x1C, 0x1C, 0x1C, 0x1C, 0x38, 0x38, 0xF8, 0xF0, + 0x00, 0x38, 0x38, 0x38, 0x3A, 0x7F, 0x7E, 0x7C, + 0x70, 0xF8, 0xFC, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x3C, 0x3C, 0x1C, 0x1C, 0x38, 0x38, 0x38, + 0x38, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x7E, 0xFE, + 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0xEE, + 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFC, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFC, 0xF8, 0xE0, 0xE0, 0xE0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x7E, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFC, 0x7C, 0x1C, 0x1E, 0x1E, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0x7E, 0x70, + 0x70, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3E, 0x70, + 0x7C, 0x3E, 0x0E, 0x7C, 0xF8, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x38, 0x38, 0x70, 0x7C, 0x7C, 0x70, + 0xE0, 0xE0, 0xE0, 0xFC, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x76, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x76, 0xEE, + 0xEE, 0xEE, 0x7C, 0x38, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x76, 0xEE, + 0xFE, 0xFE, 0xFE, 0xEE, 0x44, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x76, 0x7E, + 0x38, 0x7C, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x76, 0xEE, + 0xEE, 0xEE, 0xFE, 0x7E, 0x1C, 0x1C, 0xFC, 0xF8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7E, 0x1E, + 0x3C, 0x78, 0xF0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x0F, 0x1F, 0x1C, 0x1C, 0x1C, 0x78, 0xF0, + 0x38, 0x38, 0x38, 0x3E, 0x1E, 0x00, 0x00, 0x00, + 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, + 0x00, 0x78, 0x7C, 0x1C, 0x1C, 0x1C, 0x0F, 0x1E, + 0x38, 0x38, 0x38, 0xF8, 0xF0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x33, 0x7F, 0x7F, 0x66, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0x00, 0x77, 0x55, 0x55, 0x55, 0x77, + 0x00, 0xEE, 0x28, 0x4C, 0x48, 0x48, 0x00, 0xFE, + 0x00, 0x06, 0x1F, 0x3B, 0x70, 0xFE, 0x70, 0xF8, + 0xE0, 0xE0, 0xEE, 0xFC, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, + 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x38, 0x30, 0x60, 0x00, + 0x00, 0x1F, 0x3F, 0x38, 0x38, 0x70, 0x7C, 0x7C, + 0x70, 0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0xC0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xEE, 0xEE, 0xCC, 0x98, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xDB, 0xDB, 0xDB, 0x00, 0x00, 0x00, + 0x00, 0x1C, 0x1C, 0x1C, 0x1C, 0x7F, 0x7F, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, + 0x00, 0x1C, 0x1C, 0x1C, 0x7F, 0x7F, 0x1C, 0xFE, + 0xFE, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, + 0x00, 0x3E, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x67, 0x1C, + 0x38, 0x70, 0xE0, 0xDB, 0x1B, 0x00, 0x00, 0x00, + 0x77, 0x3E, 0x00, 0x3E, 0x7F, 0x77, 0x70, 0x7C, + 0x3E, 0x0E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x1C, + 0x38, 0x70, 0x38, 0x1C, 0x0E, 0x06, 0x00, 0x00, + 0x00, 0x3F, 0x7F, 0x77, 0x77, 0x77, 0x77, 0xEF, + 0xEE, 0xEE, 0xEE, 0xFF, 0x7F, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, + 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, + 0x77, 0x3E, 0x00, 0x7F, 0x7F, 0x07, 0x0E, 0x1C, + 0x38, 0x70, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, + 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, + 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0C, 0x18, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1B, 0x36, 0x36, 0x36, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1B, 0x1B, 0x1B, 0x36, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x7E, + 0x7E, 0x7E, 0x7E, 0x3C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3B, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x79, 0x7F, 0x2F, 0x29, 0x29, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x77, 0x3E, 0x1C, 0x00, 0x1F, 0x3E, 0x70, + 0x7C, 0x3E, 0x0E, 0x7C, 0xF8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x38, 0x38, + 0x1C, 0x0E, 0x1C, 0x38, 0x70, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x7F, 0xFA, + 0xDE, 0xDE, 0xFC, 0xFE, 0x6E, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, + 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x77, 0x3E, 0x1C, 0x00, 0x7F, 0x7E, 0x1E, + 0x3C, 0x78, 0xF0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x3B, 0x00, 0x77, 0x77, 0x77, 0x77, 0x3E, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x00, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, + 0x00, 0x00, 0x00, 0x08, 0x08, 0x3E, 0x7F, 0xD6, + 0xD0, 0xD0, 0xD6, 0xFE, 0x7C, 0x10, 0x10, 0x00, + 0x00, 0x1E, 0x3F, 0x3B, 0x38, 0x7E, 0x7E, 0xFC, + 0x70, 0x76, 0xFE, 0xFE, 0xDC, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x77, 0x77, 0x3E, 0xFE, + 0xFE, 0xFE, 0xFE, 0x7C, 0xEE, 0xEE, 0x00, 0x00, + 0x00, 0x00, 0x77, 0x77, 0x77, 0x3E, 0x1C, 0xFE, + 0x38, 0xFE, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x1C, 0x1C, 0x00, + 0x00, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x1E, 0x3E, 0x3E, 0x38, 0x1E, 0x3F, 0x66, + 0x7E, 0x3C, 0x0E, 0x3E, 0x3E, 0x3C, 0x00, 0x00, + 0x00, 0x77, 0x77, 0x77, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1E, 0x3F, 0x61, 0x4D, 0x5D, 0x51, 0xA1, + 0xA5, 0xBD, 0x99, 0xC3, 0x7E, 0x3C, 0x00, 0x00, + 0x00, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00, 0xFC, + 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, + 0x7C, 0xF8, 0xF8, 0x7C, 0x3E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3F, 0x3F, 0x3F, 0x03, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7E, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1E, 0x3F, 0x61, 0x59, 0x5D, 0x55, 0xB9, + 0xB9, 0xA5, 0xA5, 0xC3, 0x7E, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3C, 0x7E, 0x66, 0x7E, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1C, 0x1C, 0x7F, 0x7F, 0x7F, 0x38, + 0x38, 0x00, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x78, 0x7C, 0x0C, 0x3C, 0x78, 0xC0, + 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x78, 0x7C, 0x0C, 0x18, 0x0C, 0xF8, + 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1C, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0xE0, 0xE0, 0xC0, + 0x00, 0x00, 0x00, 0x3F, 0x6D, 0x6D, 0x6D, 0x7A, + 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x38, + 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x1C, 0x0C, 0x1C, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x30, 0x70, 0x30, 0x30, 0x30, 0xF0, + 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x7C, 0x44, 0x7C, 0x38, 0x00, 0xF8, + 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, + 0x6C, 0x36, 0x36, 0x6C, 0xD8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x30, 0x70, 0x31, 0x33, 0x7F, 0x1C, + 0x38, 0x76, 0xEE, 0xD6, 0x3E, 0x3E, 0x06, 0x00, + 0x00, 0x00, 0x30, 0x70, 0x31, 0x33, 0x7F, 0x1C, + 0x38, 0x70, 0xFC, 0xC6, 0x0C, 0x18, 0x1E, 0x00, + 0x00, 0x00, 0x70, 0x18, 0x31, 0x1B, 0x77, 0x1C, + 0x3A, 0x76, 0xEE, 0xD6, 0x3E, 0x3E, 0x06, 0x00, + 0x00, 0x00, 0x0E, 0x0E, 0x0E, 0x00, 0x0E, 0x1C, + 0x7C, 0xF8, 0xE0, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, + 0x00, 0x70, 0x38, 0x00, 0x08, 0x1C, 0x3E, 0xEE, + 0xFE, 0xFE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x0E, 0x00, 0x08, 0x1C, 0x3E, 0xEE, + 0xFE, 0xFE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x1C, 0x36, 0x63, 0x08, 0x1C, 0x3E, 0xEE, + 0xFE, 0xFE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x3B, 0x6E, 0x00, 0x08, 0x1C, 0x3E, 0xEE, + 0xFE, 0xFE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x77, 0x77, 0x08, 0x1C, 0x3E, 0x76, 0xFE, + 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x1C, 0x36, 0x1C, 0x1C, 0x3E, 0x76, 0xFE, + 0xFE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x0F, 0x1F, 0x3F, 0x7F, 0x77, 0x7F, 0xFF, + 0xFE, 0xEE, 0xEF, 0xEF, 0xEF, 0x00, 0x00, 0x00, + 0x00, 0x3E, 0x7F, 0x77, 0x70, 0x70, 0x70, 0xE0, + 0xE0, 0xE0, 0xEE, 0xFE, 0x7C, 0x0E, 0x6E, 0x7C, + 0x00, 0x38, 0x1C, 0x00, 0x7F, 0x7F, 0x70, 0xE0, + 0xF8, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x0E, 0x1C, 0x00, 0x7F, 0x7F, 0x70, 0xE0, + 0xF8, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x3E, 0x77, 0x00, 0x7F, 0x7F, 0x70, 0xE0, + 0xF8, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x77, 0x77, 0x00, 0x7F, 0x7F, 0x70, 0x70, 0xF8, + 0xF8, 0xE0, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x1C, 0x00, 0x1C, 0x1C, 0x1C, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x0E, 0x1C, 0x00, 0x1C, 0x1C, 0x1C, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x1C, 0x36, 0x1C, 0x1C, 0x1C, 0x1C, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x77, 0x77, 0x00, 0x1C, 0x1C, 0x1C, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7C, 0x7E, 0x77, 0x77, 0x76, 0xFE, + 0xEE, 0xEE, 0xEE, 0xFC, 0xF8, 0x00, 0x00, 0x00, + 0x00, 0x3B, 0x6E, 0x00, 0x77, 0x77, 0x76, 0xF6, + 0xFE, 0xDE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x1C, 0x00, 0x3E, 0x7F, 0x76, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x0E, 0x1C, 0x00, 0x3E, 0x7F, 0x76, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x3E, 0x77, 0x00, 0x3E, 0x7F, 0x76, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x3B, 0x6E, 0x00, 0x3E, 0x7F, 0x76, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x77, 0x77, 0x00, 0x3E, 0x7F, 0x77, 0x76, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x76, 0x7C, + 0x38, 0x38, 0x7C, 0xEE, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x3D, 0x7E, 0x77, 0x77, 0x77, 0x7E, 0xFE, + 0xFE, 0xEE, 0xEE, 0xFE, 0x7C, 0x80, 0x00, 0x00, + 0x00, 0x38, 0x1C, 0x00, 0x77, 0x77, 0x76, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x0E, 0x1C, 0x00, 0x77, 0x77, 0x76, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x3E, 0x77, 0x00, 0x77, 0x77, 0x76, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x77, 0x77, 0x00, 0x77, 0x77, 0x77, 0x76, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x0E, 0x1C, 0x00, 0x77, 0x77, 0x76, 0xEE, + 0x7C, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x70, 0x7E, 0x7F, 0x76, 0xEE, + 0xEE, 0xFE, 0xFC, 0xE0, 0xE0, 0x00, 0x00, 0x00, + 0x00, 0x3E, 0x7F, 0x77, 0x77, 0x77, 0x7E, 0xFC, + 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0xE0, 0xC0, 0x00, + 0x00, 0x00, 0x70, 0x38, 0x00, 0x3C, 0x3E, 0x0E, + 0x3E, 0x7E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1C, 0x38, 0x00, 0x3C, 0x3E, 0x0E, + 0x3E, 0x7E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x7C, 0xEE, 0x00, 0x3C, 0x3E, 0x0E, + 0x3E, 0x7E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x76, 0xDC, 0x00, 0x3C, 0x3E, 0x0E, + 0x3E, 0x7E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xEE, 0xEE, 0x00, 0x3C, 0x3E, 0x0E, + 0x3E, 0x7E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x6C, 0x38, 0x00, 0x3C, 0x3E, 0x0E, + 0x3E, 0x7E, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3A, 0x3F, 0x3F, 0x1A, + 0x7E, 0xFE, 0xD8, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0xFE, + 0xEE, 0xE0, 0xEE, 0xFE, 0x7C, 0x1C, 0x7E, 0x7C, + 0x00, 0x00, 0x38, 0x1C, 0x00, 0x3E, 0x7F, 0xEE, + 0xFE, 0xFE, 0xE0, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1C, 0x38, 0x00, 0x3E, 0x7F, 0xEE, + 0xFE, 0xFE, 0xE0, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x1C, 0x3E, 0x77, 0x00, 0x3E, 0x7F, 0xEE, + 0xFE, 0xFE, 0xE0, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x77, 0x77, 0x00, 0x3E, 0x7F, 0xEE, + 0xFE, 0xFE, 0xE0, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x1C, 0x00, 0x1C, 0x1C, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0E, 0x1C, 0x00, 0x1C, 0x1C, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x1C, 0x3E, 0x77, 0x00, 0x1C, 0x1C, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x77, 0x77, 0x00, 0x1C, 0x1C, 0x38, + 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x76, 0x3E, 0x7C, 0x7E, 0x3F, 0x7E, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x3B, 0x7F, 0x6E, 0x00, 0x7E, 0x7F, 0xEE, + 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x38, 0x00, 0x3C, 0x7E, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFC, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1C, 0x38, 0x00, 0x3C, 0x7E, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFC, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x1C, 0x3E, 0x77, 0x00, 0x3C, 0x7E, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFC, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x3B, 0x7F, 0x6E, 0x00, 0x3C, 0x7E, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFC, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x77, 0x77, 0x00, 0x3C, 0x7E, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFC, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1C, 0x1C, 0x00, 0xFE, + 0xFE, 0x00, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x3E, 0x7E, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7C, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x38, 0x00, 0x77, 0x76, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1C, 0x38, 0x00, 0x77, 0x76, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x1C, 0x3E, 0x77, 0x00, 0x77, 0x76, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x77, 0x77, 0x00, 0x77, 0x76, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0E, 0x1C, 0x00, 0x77, 0x76, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x0E, 0xFE, 0xFC, + 0x00, 0x00, 0x70, 0x70, 0x7E, 0x7F, 0x76, 0xEE, + 0xEE, 0xEE, 0xEE, 0xEE, 0xFE, 0xFC, 0xE0, 0xE0, + 0x00, 0x00, 0x77, 0x77, 0x00, 0x77, 0x76, 0xEE, + 0xEE, 0xEE, 0xEE, 0xFE, 0x7E, 0x0E, 0xFE, 0xFC, +}; + +const struct fb_font_desc font_italic_bold = { + .name = "NetSurf Italic Bold", + .width = 8, + .height = 16, + .encoding = "CP1252", + .data = fontdata_italic_bold, +}; + + +static const uint32_t fontdata_regular[FONTDATAMAX] = { + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xE4, 0xAC, 0xA4, 0xA4, 0xEE, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xEC, 0xA2, 0xA4, 0xA8, 0xEE, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xEC, 0xA2, 0xAC, 0xA2, 0xEC, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xEA, 0xAA, 0xAE, 0xA2, 0xE2, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xEE, 0xA8, 0xAE, 0xA2, 0xEE, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xE6, 0xA8, 0xAE, 0xAA, 0xEE, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xEE, 0xA2, 0xA4, 0xA4, 0xE4, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xEE, 0xAA, 0xAE, 0xAA, 0xEE, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xEE, 0xAA, 0xAE, 0xA2, 0xE2, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xE4, 0xAA, 0xAE, 0xAA, 0xEA, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xEC, 0xAA, 0xAC, 0xAA, 0xEC, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xE4, 0xAA, 0xA8, 0xAA, 0xE4, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xEC, 0xAA, 0xAA, 0xAA, 0xEC, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xEE, 0xA8, 0xAC, 0xA8, 0xEE, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xEE, 0xA8, 0xAC, 0xA8, 0xE8, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x4E, 0xCA, 0x4A, 0x4A, 0xEE, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x44, 0xCC, 0x44, 0x44, 0xEE, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x4C, 0xC2, 0x44, 0x48, 0xEE, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x4C, 0xC2, 0x4C, 0x42, 0xEC, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x4A, 0xCA, 0x4E, 0x42, 0xE2, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x4E, 0xC8, 0x4E, 0x42, 0xEE, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x46, 0xC8, 0x4E, 0x4A, 0xEE, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x4E, 0xC2, 0x44, 0x44, 0xE4, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x4E, 0xCA, 0x4E, 0x4A, 0xEE, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x4E, 0xCA, 0x4E, 0x42, 0xE2, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x44, 0xCA, 0x4E, 0x4A, 0xEA, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x4C, 0xCA, 0x4C, 0x4A, 0xEC, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x44, 0xCA, 0x48, 0x4A, 0xE4, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x4C, 0xCA, 0x4A, 0x4A, 0xEC, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x4E, 0xC8, 0x4C, 0x48, 0xEE, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0x4E, 0xC8, 0x4C, 0x48, 0xE8, 0x00, 0xFE, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x6C, 0x6C, 0x6C, 0xFE, 0xFE, 0x6C, 0x6C, + 0xFE, 0xFE, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x7C, 0xFE, 0xD6, 0xD0, 0xF0, 0x7C, + 0x1E, 0x16, 0xD6, 0xFE, 0x7C, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xCE, 0x1C, + 0x38, 0x70, 0xE6, 0xC6, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x70, 0xF8, 0xD8, 0xD8, 0xF8, 0x72, 0xFE, + 0xDE, 0xCC, 0xCC, 0xFE, 0x7A, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x06, 0x0E, 0x1C, 0x18, 0x38, 0x30, 0x30, 0x30, + 0x30, 0x38, 0x18, 0x1C, 0x0E, 0x06, 0x00, 0x00, + 0x60, 0x70, 0x38, 0x18, 0x1C, 0x0C, 0x0C, 0x0C, + 0x0C, 0x1C, 0x18, 0x38, 0x70, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x6C, 0x6C, 0x38, 0xFE, + 0xFE, 0x38, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7E, 0x7E, + 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x38, 0x30, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0E, 0x1C, + 0x38, 0x70, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xFE, 0xC6, 0xCE, 0xCE, 0xD6, 0xD6, + 0xE6, 0xE6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x38, 0x78, 0x78, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xFE, 0xC6, 0x06, 0x06, 0x3E, 0x7C, + 0xE0, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xFE, 0xC6, 0x06, 0x06, 0x3C, 0x3C, + 0x06, 0x06, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x0C, 0x1C, 0x3C, 0x7C, 0xEC, 0xFE, + 0xFE, 0x0C, 0x0C, 0x0C, 0x0C, 0x00, 0x00, 0x00, + 0x00, 0xFE, 0xFE, 0xC0, 0xC0, 0xC0, 0xFC, 0xFE, + 0x06, 0x06, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x3C, 0x7C, 0xE0, 0xC0, 0xC0, 0xFC, 0xFE, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0xFE, 0xFE, 0xC6, 0x0E, 0x0C, 0x1C, 0x18, + 0x38, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xFE, 0xC6, 0xC6, 0xC6, 0x7C, 0x7C, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xFE, 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, + 0x06, 0x06, 0x0E, 0x7C, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, + 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, + 0x00, 0x18, 0x18, 0x38, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x0E, 0x1C, 0x38, 0x70, 0x70, + 0x38, 0x1C, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x00, 0x00, + 0x7E, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x70, 0x38, 0x1C, 0x0E, 0x0E, + 0x1C, 0x38, 0x70, 0x60, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xFE, 0xC6, 0xC6, 0x06, 0x1E, 0x3C, + 0x30, 0x30, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xFE, 0xC6, 0xCE, 0xDE, 0xD6, 0xD6, + 0xDE, 0xCC, 0xC0, 0xFC, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xFE, 0xC6, 0xC6, 0xC6, 0xFE, 0xFE, + 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0xFC, 0xFE, 0xC6, 0xC6, 0xC6, 0xFC, 0xFC, + 0xC6, 0xC6, 0xC6, 0xFE, 0xFC, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xFE, 0xC6, 0xC0, 0xC0, 0xC0, 0xC0, + 0xC0, 0xC0, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0xF8, 0xFC, 0xCE, 0xC6, 0xC6, 0xC6, 0xC6, + 0xC6, 0xC6, 0xCE, 0xFC, 0xF8, 0x00, 0x00, 0x00, + 0x00, 0xFE, 0xFE, 0xC0, 0xC0, 0xC0, 0xF8, 0xF8, + 0xC0, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0xFE, 0xFE, 0xC0, 0xC0, 0xC0, 0xF8, 0xF8, + 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xFE, 0xC6, 0xC0, 0xC0, 0xDE, 0xDE, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xFE, 0xFE, + 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x7E, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x7E, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, + 0x0C, 0x0C, 0xCC, 0xFC, 0x78, 0x00, 0x00, 0x00, + 0x00, 0xC0, 0xC6, 0xCE, 0xDC, 0xF8, 0xF0, 0xE0, + 0xF0, 0xF8, 0xDC, 0xCE, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, + 0xC0, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0xC6, 0xC6, 0xEE, 0xFE, 0xFE, 0xFE, 0xD6, + 0xD6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0xC6, 0xC6, 0xE6, 0xE6, 0xF6, 0xF6, 0xDE, + 0xDE, 0xCE, 0xCE, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0xFC, 0xFE, 0xC6, 0xC6, 0xC6, 0xFE, 0xFC, + 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, + 0xC6, 0xD6, 0xDE, 0xFE, 0x7C, 0x06, 0x00, 0x00, + 0x00, 0xFC, 0xFE, 0xC6, 0xC6, 0xC6, 0xFC, 0xFC, + 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xFE, 0xC6, 0xC0, 0xC0, 0xFC, 0x7E, + 0x06, 0x06, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x7E, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xEE, + 0x6C, 0x7C, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, + 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xD6, + 0xD6, 0xFE, 0xFE, 0xEE, 0x44, 0x00, 0x00, 0x00, + 0x00, 0xC6, 0xC6, 0xC6, 0xEE, 0x7C, 0x38, 0x38, + 0x7C, 0xEE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xEE, 0x7C, 0x38, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0xFE, 0xFE, 0x0E, 0x0C, 0x1C, 0x18, 0x38, + 0x30, 0x70, 0x60, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x3E, 0x3E, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x3E, 0x3E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0x70, + 0x38, 0x1C, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0x7C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, + 0x0C, 0x0C, 0x0C, 0x7C, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x7C, 0xEE, 0xC6, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, + 0x00, 0x00, 0x30, 0x30, 0x18, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0x06, + 0x7E, 0xFE, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xFC, 0xFE, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0xFC, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFE, 0xC6, + 0xC0, 0xC0, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x06, 0x06, 0x06, 0x06, 0x7E, 0xFE, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFE, 0xC6, + 0xFE, 0xFE, 0xC0, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x1E, 0x3E, 0x30, 0x30, 0x30, 0x78, 0x78, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xFE, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x06, 0x7E, 0x7C, + 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xDC, 0xFE, 0xE6, + 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x18, 0x00, 0x38, 0x38, 0x18, + 0x18, 0x18, 0x18, 0x3C, 0x3C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x1C, 0x1C, 0x0C, + 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x7C, 0x78, + 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC6, 0xCE, 0xDC, + 0xF8, 0xF8, 0xDC, 0xCE, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xEC, 0xFE, 0xFE, + 0xD6, 0xD6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0xFE, 0xE6, + 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFE, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFE, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0xFC, 0xC0, 0xC0, 0xC0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xFE, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x06, 0x07, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, 0xFE, 0xE0, + 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xFE, 0xC0, + 0xFC, 0x7C, 0x06, 0xFE, 0xFC, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x30, 0x30, 0x30, 0x7C, 0xFC, 0x30, + 0x30, 0x30, 0x30, 0x3E, 0x1E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, + 0xC6, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, + 0xC6, 0xEE, 0x7C, 0x38, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, + 0xD6, 0xD6, 0xFE, 0xFE, 0x6C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xEE, + 0x7C, 0x7C, 0xEE, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x06, 0xFE, 0xFC, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x0E, + 0x3C, 0x78, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x0E, 0x1E, 0x18, 0x18, 0x18, 0x70, 0x70, + 0x18, 0x18, 0x18, 0x1E, 0x0E, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, + 0x00, 0x70, 0x78, 0x18, 0x18, 0x18, 0x0E, 0x0E, + 0x18, 0x18, 0x18, 0x78, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x76, 0xFE, 0xDC, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xFE, 0x00, 0xEE, 0xAA, 0xAA, 0xAA, 0xEE, + 0x00, 0xEE, 0x28, 0x4C, 0x48, 0x48, 0x00, 0xFE, + 0x00, 0x18, 0x3C, 0x66, 0x60, 0xFC, 0x60, 0xF8, + 0x60, 0x60, 0x66, 0x3C, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, + 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x18, 0x08, 0x10, 0x00, + 0x00, 0x1E, 0x3E, 0x30, 0x30, 0x30, 0x78, 0x78, + 0x30, 0x30, 0x30, 0x30, 0x30, 0xF0, 0x60, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x66, 0x66, 0x22, 0x44, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xDB, 0xDB, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x18, 0x18, 0x7E, 0x7E, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x18, 0x18, 0x18, 0x7E, 0x7E, 0x18, 0x7E, + 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x7C, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0xC6, 0x0C, + 0x18, 0x30, 0x60, 0xDB, 0x9B, 0x00, 0x00, 0x00, + 0xC6, 0x7C, 0x00, 0x7C, 0xFE, 0xC6, 0xC0, 0xFC, + 0x7E, 0x06, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x1C, + 0x38, 0x30, 0x38, 0x1C, 0x0C, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0xFF, 0xCC, 0xCC, 0xCC, 0xCF, 0xCF, + 0xCC, 0xCC, 0xCC, 0xFF, 0x7F, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, + 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, + 0xC6, 0x7C, 0x00, 0xFE, 0xFE, 0x06, 0x0C, 0x18, + 0x30, 0x60, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, + 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, + 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x20, 0x30, 0x30, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x30, 0x30, 0x10, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x24, 0x48, 0x6C, 0x6C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x36, 0x36, 0x12, 0x24, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7E, + 0x7E, 0x7E, 0x7E, 0x3C, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x32, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xF1, 0xFB, 0x5F, 0x55, 0x51, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xC6, 0x6C, 0x38, 0x00, 0x7E, 0xFE, 0xC0, + 0xFC, 0x7C, 0x06, 0xFE, 0xFC, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x38, + 0x1C, 0x0C, 0x1C, 0x38, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xFE, 0xDA, + 0xDE, 0xDE, 0xD8, 0xFE, 0x6E, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x38, 0x6C, 0x54, 0xF6, 0xEE, + 0x6C, 0x7C, 0x28, 0x38, 0x10, 0x00, 0x00, 0x00, + 0x00, 0xC6, 0x6C, 0x38, 0x00, 0xFE, 0xFE, 0x0E, + 0x3C, 0x78, 0xE0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x6C, 0x00, 0xC6, 0xC6, 0xC6, 0xEE, 0x7C, + 0x38, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x10, 0x7C, 0xFE, 0xD6, + 0xD0, 0xD0, 0xD6, 0xFE, 0x7C, 0x10, 0x10, 0x00, + 0x00, 0x3C, 0x7E, 0x66, 0x60, 0x60, 0xF8, 0xF8, + 0x60, 0x60, 0xE6, 0xFE, 0xDC, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x3C, 0x7E, + 0x66, 0x66, 0x7E, 0x3C, 0x66, 0x66, 0x00, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E, + 0x18, 0x7E, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, + 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x3C, 0x7C, 0x60, 0x60, 0x3C, 0x7E, 0x66, + 0x7E, 0x3C, 0x06, 0x06, 0x3E, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3C, 0x7E, 0xC3, 0x99, 0xBD, 0xA5, 0xA1, + 0xA5, 0xBD, 0x99, 0xC3, 0x7E, 0x3C, 0x00, 0x00, + 0x00, 0x70, 0x08, 0x78, 0x88, 0x78, 0x00, 0xF8, + 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, + 0x6C, 0xD8, 0xD8, 0x6C, 0x36, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7E, 0x7E, 0x06, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3C, 0x7E, 0xC3, 0xB9, 0xBD, 0xA5, 0xB9, + 0xB9, 0xA5, 0xA5, 0xC3, 0x7E, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x78, 0xFC, 0xCC, 0xFC, 0x78, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x18, 0x7E, 0x7E, 0x18, + 0x18, 0x00, 0x7E, 0x7E, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xF0, 0xF8, 0x18, 0x78, 0xF0, 0xC0, + 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xF0, 0xF8, 0x18, 0x30, 0x18, 0xF8, + 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, + 0x66, 0x66, 0x66, 0x7E, 0x7C, 0x60, 0x60, 0xC0, + 0x00, 0x00, 0x00, 0x7F, 0xDB, 0xDB, 0xDB, 0x7B, + 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, + 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x1C, 0x0C, 0x1C, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x60, 0xE0, 0x60, 0x60, 0x60, 0xF0, + 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x70, 0xF8, 0x88, 0xF8, 0x70, 0x00, 0xF8, + 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, + 0x6C, 0x36, 0x36, 0x6C, 0xD8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x40, 0xC0, 0x42, 0x46, 0xEC, 0x18, + 0x30, 0x64, 0xCC, 0x94, 0x3E, 0x04, 0x04, 0x00, + 0x00, 0x00, 0x40, 0xC0, 0x42, 0x46, 0xEC, 0x18, + 0x30, 0x60, 0xDC, 0x82, 0x0C, 0x10, 0x1E, 0x00, + 0x00, 0x00, 0xE0, 0x10, 0x62, 0x16, 0xEC, 0x18, + 0x30, 0x64, 0xCC, 0x96, 0x3E, 0x04, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, + 0x78, 0xF0, 0xC0, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, + 0x00, 0x60, 0x30, 0x00, 0x10, 0x38, 0x6C, 0xC6, + 0xFE, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x0C, 0x18, 0x00, 0x10, 0x38, 0x6C, 0xC6, + 0xFE, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x6C, 0x44, 0x10, 0x38, 0x6C, 0xC6, + 0xFE, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x76, 0xDC, 0x00, 0x10, 0x38, 0x6C, 0xC6, + 0xFE, 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x6C, 0x6C, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xFE, + 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x44, 0x38, 0x38, 0x6C, 0xC6, 0xFE, + 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x1F, 0x3F, 0x7C, 0xEC, 0xCC, 0xFE, 0xFE, + 0xCC, 0xCC, 0xCC, 0xCF, 0xCF, 0x00, 0x00, 0x00, + 0x00, 0x7C, 0xFE, 0xC6, 0xC0, 0xC0, 0xC0, 0xC0, + 0xC0, 0xC0, 0xC6, 0xFE, 0x7C, 0x0E, 0x66, 0x3C, + 0x00, 0x30, 0x18, 0x00, 0xFE, 0xFE, 0xC0, 0xF0, + 0xF0, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x0C, 0x18, 0x00, 0xFE, 0xFE, 0xC0, 0xF0, + 0xF0, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x6C, 0x00, 0xFE, 0xFE, 0xC0, 0xF0, + 0xF0, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x6C, 0x6C, 0x00, 0xFE, 0xFE, 0xC0, 0xC0, 0xF0, + 0xF0, 0xC0, 0xC0, 0xFE, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x30, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x0C, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x24, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x66, 0x66, 0x00, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x78, 0x7C, 0x6E, 0x66, 0x66, 0xF6, + 0x66, 0x66, 0x6E, 0x7C, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x76, 0xDC, 0x00, 0xC6, 0xC6, 0xE6, 0xF6, + 0xFE, 0xDE, 0xCE, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x30, 0x18, 0x00, 0x7C, 0xFE, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x0C, 0x18, 0x00, 0x7C, 0xFE, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x6C, 0x00, 0x7C, 0xFE, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x76, 0xDC, 0x00, 0x7C, 0xFE, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x6C, 0x00, 0x7C, 0xFE, 0xC6, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xEE, 0x7C, + 0x38, 0x38, 0x7C, 0xEE, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x7E, 0xFE, 0xC6, 0xC6, 0xCE, 0xCE, 0xD6, + 0xD6, 0xE6, 0xE6, 0xFE, 0x7C, 0x80, 0x00, 0x00, + 0x00, 0x30, 0x18, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x0C, 0x18, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x6C, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x6C, 0x6C, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x0C, 0x18, 0x00, 0x66, 0x66, 0x66, 0x7E, + 0x3C, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x60, 0x7C, 0x7E, 0x66, 0x66, + 0x7E, 0x7C, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00, + 0x00, 0x3C, 0x7E, 0x66, 0x66, 0x66, 0x7E, 0x7C, + 0x66, 0x66, 0x66, 0x7E, 0x7C, 0xE0, 0xC0, 0x00, + 0x00, 0x00, 0x30, 0x18, 0x00, 0x7E, 0xFE, 0xC6, + 0xC6, 0xCE, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x30, 0x00, 0x7E, 0xFE, 0xC6, + 0xC6, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x6C, 0x00, 0x7E, 0xFE, 0xC6, + 0xC6, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x76, 0xDC, 0x00, 0x7E, 0xFE, 0xC6, + 0xC6, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x6C, 0x6C, 0x00, 0x7E, 0xFE, 0xC6, + 0xC6, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x6C, 0x38, 0x00, 0x7E, 0xFE, 0xC6, + 0xC6, 0xC6, 0xCE, 0xFE, 0x76, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x7E, 0x1A, + 0x3E, 0x7E, 0xD8, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFE, + 0xC6, 0xC0, 0xC6, 0xFE, 0x7C, 0x18, 0x7C, 0x78, + 0x00, 0x00, 0x30, 0x18, 0x00, 0x7C, 0xFE, 0xC6, + 0xFE, 0xFE, 0xC0, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x30, 0x00, 0x7C, 0xFE, 0xC6, + 0xFE, 0xFE, 0xC0, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x6C, 0x00, 0x7C, 0xFE, 0xC6, + 0xFE, 0xFE, 0xC0, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x6C, 0x6C, 0x00, 0x7C, 0xFE, 0xC6, + 0xFE, 0xFE, 0xC0, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x30, 0x18, 0x00, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0C, 0x18, 0x00, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x3C, 0x66, 0x00, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x66, 0x66, 0x00, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x6C, 0x7C, 0xF8, 0xDC, 0x7C, 0xFE, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x76, 0xFE, 0xDC, 0x00, 0xFC, 0xFE, 0xC6, + 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x30, 0x00, 0x7C, 0xFE, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x30, 0x00, 0x7C, 0xFE, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x6C, 0x00, 0x7C, 0xFE, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x76, 0xFE, 0xDC, 0x00, 0x7C, 0xFE, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x6C, 0x6C, 0x00, 0x7C, 0xFE, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x7E, + 0x7E, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x7C, 0xFE, 0xCE, + 0xD6, 0xD6, 0xE6, 0xFE, 0x7C, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x30, 0x00, 0xC6, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x30, 0x00, 0xC6, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x38, 0x6C, 0x00, 0xC6, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x6C, 0x6C, 0x00, 0xC6, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0C, 0x18, 0x00, 0xC6, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x06, 0xFC, 0xF8, + 0x00, 0x00, 0x60, 0x60, 0x60, 0x7C, 0x7E, 0x66, + 0x66, 0x66, 0x66, 0x7E, 0x7C, 0x60, 0x60, 0x60, + 0x00, 0x00, 0x6C, 0x6C, 0x00, 0xC6, 0xC6, 0xC6, + 0xC6, 0xC6, 0xC6, 0xFE, 0x7E, 0x06, 0xFE, 0xFC, +}; + +const struct fb_font_desc font_regular = { + .name = "NetSurf Regular", + .width = 8, + .height = 16, + .encoding = "CP1252", + .data = fontdata_regular, +}; + #endif diff --git a/atari/plot/font_internal.h b/atari/plot/font_internal.h index 628a63cdc..9bfbbedef 100644 --- a/atari/plot/font_internal.h +++ b/atari/plot/font_internal.h @@ -1,36 +1,37 @@ -/* - * Copyright 2008 Vincent Sanders - * Copyright 2011 Ole Loots - * - * This file is part of NetSurf, http://www.netsurf-browser.org/ - * - * NetSurf is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * NetSurf is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . +/* + * Copyright 2008 Vincent Sanders + * Copyright 2011 Ole Loots + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ - #ifdef WITH_INTERNAL_FONT_DRIVER -#ifndef FONT_PLOTTER_INTERNAL + +#ifdef WITH_INTERNAL_FONT_DRIVER +#ifndef FONT_PLOTTER_INTERNAL #define FONT_PLOTTER_INTERNAL -#include "atari/plot/plot.h" - -int ctor_font_plotter_internal( FONT_PLOTTER self ); - -struct fb_font_desc { - const char *name; - int width, height; - const char *encoding; - const uint32_t *data; -}; - - +#include "atari/plot/plot.h" + +int ctor_font_plotter_internal( FONT_PLOTTER self ); + +struct fb_font_desc { + const char *name; + int width, height; + const char *encoding; + const uint32_t *data; +}; + + #endif #endif diff --git a/atari/plot/font_vdi.c b/atari/plot/font_vdi.c old mode 100755 new mode 100644 index 7f3dacf63..7c186107a --- a/atari/plot/font_vdi.c +++ b/atari/plot/font_vdi.c @@ -29,13 +29,10 @@ #include "atari/encoding.h" - - //static char * lstr = NULL; - static int dtor( FONT_PLOTTER self ); -static int str_width( FONT_PLOTTER self,const plot_font_style_t *fstyle, const char * str, size_t length, int * width ); +static int str_width( FONT_PLOTTER self,const plot_font_style_t *fstyle, const char * str, size_t length, int * width ); static int str_split( FONT_PLOTTER self, const plot_font_style_t *fstyle,const char *string, size_t length,int x, size_t *char_offset, int *actual_x ); static int pixel_pos( FONT_PLOTTER self, const plot_font_style_t *fstyle,const char *string, diff --git a/atari/plot/font_vdi.h b/atari/plot/font_vdi.h old mode 100755 new mode 100644 index 6de2c4e29..3a1fdb54b --- a/atari/plot/font_vdi.h +++ b/atari/plot/font_vdi.h @@ -1,25 +1,26 @@ -/* - * Copyright 2010 Ole Loots - * - * This file is part of NetSurf, http://www.netsurf-browser.org/ - * - * NetSurf is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * NetSurf is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ +/* + * Copyright 2010 Ole Loots + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #ifdef WITH_VDI_FONT_DRIVER -#ifndef FONT_PLOTTER_VDI -#define FONT_PLOTTER_VDI - -int ctor_font_plotter_vdi( FONT_PLOTTER self ); - +#ifndef FONT_PLOTTER_VDI +#define FONT_PLOTTER_VDI + +int ctor_font_plotter_vdi( FONT_PLOTTER self ); + #endif #endif diff --git a/atari/plot/fontplot.h b/atari/plot/fontplot.h index 27524fded..6690bff2c 100644 --- a/atari/plot/fontplot.h +++ b/atari/plot/fontplot.h @@ -1,3 +1,21 @@ +/* + * Copyright 2010 Ole Loots + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #ifndef FONT_PLOT_H #define FONT_PLOT_H diff --git a/atari/plot/plot.c b/atari/plot/plot.c old mode 100755 new mode 100644 diff --git a/atari/plot/plot.h b/atari/plot/plot.h old mode 100755 new mode 100644 diff --git a/atari/redrawslots.c b/atari/redrawslots.c index 6977a6d2d..f5351866a 100644 --- a/atari/redrawslots.c +++ b/atari/redrawslots.c @@ -1,19 +1,19 @@ -/* - * Copyright 2011 Ole Loots - * - * This file is part of NetSurf, http://www.netsurf-browser.org/ - * - * NetSurf is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * NetSurf is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . +/* + * Copyright 2011 Ole Loots + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ #include @@ -25,101 +25,101 @@ void redraw_slots_init(struct s_redrw_slots * slots, short size) { - // TODO: allocate slots dynamically! + // TODO: allocate slots dynamically! slots->size = MIN( MAX_REDRW_SLOTS , size); slots->areas_used = 0; } void redraw_slots_free(struct s_redrw_slots * slots) { - // TOOD: free areas... + // TOOD: free areas... } -static inline bool rect_intersect( struct rect * box1, struct rect * box2 ) -{ - if (box2->x1 < box1->x0) - return false; - - if (box2->y1 < box1->y0) - return false; - - if (box2->x0 > box1->x1) - return false; - - if (box2->y0 > box1->y1) - return false; - - return true; +static inline bool rect_intersect( struct rect * box1, struct rect * box2 ) +{ + if (box2->x1 < box1->x0) + return false; + + if (box2->y1 < box1->y0) + return false; + + if (box2->x0 > box1->x1) + return false; + + if (box2->y0 > box1->y1) + return false; + + return true; } void redraw_slot_schedule_grect(struct s_redrw_slots * slots, GRECT *area, - bool force) + bool force) { - redraw_slot_schedule(slots, area->g_x, area->g_y, - area->g_x + area->g_w, area->g_y + area->g_h, force); + redraw_slot_schedule(slots, area->g_x, area->g_y, + area->g_x + area->g_w, area->g_y + area->g_h, force); } -/* - schedule redraw coords. -*/ +/* + schedule redraw coords. +*/ void redraw_slot_schedule(struct s_redrw_slots * slots, short x0, short y0, - short x1, short y1, bool force) -{ - int i = 0; - struct rect area; - - area.x0 = x0; - area.y0 = y0; - area.x1 = x1; - area.y1 = y1; - - if (force == false) { - for (i=0; iareas_used; i++) { - if (slots->areas[i].x0 <= x0 - && slots->areas[i].x1 >= x1 - && slots->areas[i].y0 <= y0 - && slots->areas[i].y1 >= y1) { - /* the area is already queued for redraw */ - return; - } else { - if (rect_intersect(&slots->areas[i], &area )) { - slots->areas[i].x0 = MIN(slots->areas[i].x0, x0); - slots->areas[i].y0 = MIN(slots->areas[i].y0, y0); - slots->areas[i].x1 = MAX(slots->areas[i].x1, x1); - slots->areas[i].y1 = MAX(slots->areas[i].y1, y1); - return; - } - } - } - } - - if (slots->areas_used < slots->size) { - slots->areas[slots->areas_used].x0 = x0; - slots->areas[slots->areas_used].x1 = x1; - slots->areas[slots->areas_used].y0 = y0; - slots->areas[slots->areas_used].y1 = y1; - slots->areas_used++; - } else { - /* - we are out of available slots, merge box with last slot - this is dumb... but also a very rare case. - */ - slots->areas[slots->size-1].x0 = MIN(slots->areas[i].x0, x0); - slots->areas[slots->size-1].y0 = MIN(slots->areas[i].y0, y0); - slots->areas[slots->size-1].x1 = MAX(slots->areas[i].x1, x1); - slots->areas[slots->size-1].y1 = MAX(slots->areas[i].y1, y1); - } - - return; + short x1, short y1, bool force) +{ + int i = 0; + struct rect area; + + area.x0 = x0; + area.y0 = y0; + area.x1 = x1; + area.y1 = y1; + + if (force == false) { + for (i=0; iareas_used; i++) { + if (slots->areas[i].x0 <= x0 + && slots->areas[i].x1 >= x1 + && slots->areas[i].y0 <= y0 + && slots->areas[i].y1 >= y1) { + /* the area is already queued for redraw */ + return; + } else { + if (rect_intersect(&slots->areas[i], &area )) { + slots->areas[i].x0 = MIN(slots->areas[i].x0, x0); + slots->areas[i].y0 = MIN(slots->areas[i].y0, y0); + slots->areas[i].x1 = MAX(slots->areas[i].x1, x1); + slots->areas[i].y1 = MAX(slots->areas[i].y1, y1); + return; + } + } + } + } + + if (slots->areas_used < slots->size) { + slots->areas[slots->areas_used].x0 = x0; + slots->areas[slots->areas_used].x1 = x1; + slots->areas[slots->areas_used].y0 = y0; + slots->areas[slots->areas_used].y1 = y1; + slots->areas_used++; + } else { + /* + we are out of available slots, merge box with last slot + this is dumb... but also a very rare case. + */ + slots->areas[slots->size-1].x0 = MIN(slots->areas[i].x0, x0); + slots->areas[slots->size-1].y0 = MIN(slots->areas[i].y0, y0); + slots->areas[slots->size-1].x1 = MAX(slots->areas[i].x1, x1); + slots->areas[slots->size-1].y1 = MAX(slots->areas[i].y1, y1); + } + + return; } void redraw_slots_remove_area(struct s_redrw_slots * slots, int i) { - int x; - for(x = i+1; iareas_used; x++){ - slots->areas[x-1] = slots->areas[x]; - } - slots->areas_used--; + int x; + for (x = i+1; iareas_used; x++) { + slots->areas[x-1] = slots->areas[x]; + } + slots->areas_used--; } diff --git a/atari/redrawslots.h b/atari/redrawslots.h index c972c17ed..ca72a0172 100644 --- a/atari/redrawslots.h +++ b/atari/redrawslots.h @@ -1,19 +1,19 @@ -/* - * Copyright 2012 Ole Loots - * - * This file is part of NetSurf, http://www.netsurf-browser.org/ - * - * NetSurf is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * NetSurf is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . +/* + * Copyright 2012 Ole Loots + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ @@ -24,23 +24,23 @@ #include "utils/utils.h" -/* - MAX_REDRW_SLOTS - This is the number of redraw requests that the slotlist can store. - If a redraw is scheduled and all slots are used, the rectangle will - be merged to one of the existing slots. - */ +/** + * This is the number of redraw requests that the slotlist can store. + * If a redraw is scheduled and all slots are used, the rectangle will + * be merged to one of the existing slots. + */ #define MAX_REDRW_SLOTS 32 - -/* - This struct holds scheduled redraw requests. -*/ -struct rect; -struct s_redrw_slots -{ + +struct rect; + +/** + * This struct holds scheduled redraw requests. + */ +struct s_redrw_slots +{ struct rect areas[MAX_REDRW_SLOTS]; - short size; - short volatile areas_used; + short size; + short volatile areas_used; }; void redraw_slots_init(struct s_redrw_slots * slots, short size); diff --git a/atari/rootwin.c b/atari/rootwin.c old mode 100755 new mode 100644 diff --git a/atari/rootwin.h b/atari/rootwin.h old mode 100755 new mode 100644 index a5b22c968..99b286f70 --- a/atari/rootwin.h +++ b/atari/rootwin.h @@ -1,34 +1,34 @@ -/* - * Copyright 2010 Ole Loots - * - * This file is part of NetSurf, http://www.netsurf-browser.org/ - * - * NetSurf is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * NetSurf is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef NS_ATARI_BROWSER_WIN_H +/* + * Copyright 2010 Ole Loots + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef NS_ATARI_BROWSER_WIN_H #define NS_ATARI_BROWSER_WIN_H -#include - -#define GEMTK_WM_VISIBLE(gw) (gw->root->handle->status & WS_OPEN) -#define GEMWIN_VISIBLE(win) (win->status & WS_OPEN) - -#define WIDGET_STATUSBAR 0x1 -#define WIDGET_TOOLBAR 0x2 +#include + +#define GEMTK_WM_VISIBLE(gw) (gw->root->handle->status & WS_OPEN) +#define GEMWIN_VISIBLE(win) (win->status & WS_OPEN) + +#define WIDGET_STATUSBAR 0x1 +#define WIDGET_TOOLBAR 0x2 #define WIDGET_SCROLL 0x4 #define WIDGET_RESIZE 0x8 -#define WIN_TOP 0x100 +#define WIN_TOP 0x100 enum browser_area_e { BROWSER_AREA_CONTENT = 1, @@ -37,40 +37,40 @@ enum browser_area_e { BROWSER_AREA_URL_INPUT, BROWSER_AREA_SEARCH }; - - -/* -------------------------------------------------------------------------- */ -/* Public module functions: */ -/* -------------------------------------------------------------------------- */ - -/* Creates an normal Browser window with [toolbar], [statusbar] */ + + +/* -------------------------------------------------------------------------- */ +/* Public module functions: */ +/* -------------------------------------------------------------------------- */ + +/* Creates an normal Browser window with [toolbar], [statusbar] */ int window_create(struct gui_window * gw, struct browser_window * bw, struct gui_window * existing, - unsigned long flags ); -/* Destroys WinDom part of gui_window */ -int window_destroy(ROOTWIN *rootwin); - -/** show the window at specified position and make gw the active tab. */ -void window_open(ROOTWIN *rootwin, struct gui_window *gw, GRECT pos); - -void window_snd_redraw(ROOTWIN *rootwin, short x, short y, short w, short h ); -/* Update Shade / Unshade state of the fwd/back buttons*/ -void window_update_back_forward(struct s_gui_win_root * rootwin); -/* set root browser component: */ -void window_attach_browser(ROOTWIN *rootwin, CMP_BROWSER b); - -/* set focus element */ + unsigned long flags ); +/* Destroys WinDom part of gui_window */ +int window_destroy(ROOTWIN *rootwin); + +/** show the window at specified position and make gw the active tab. */ +void window_open(ROOTWIN *rootwin, struct gui_window *gw, GRECT pos); + +void window_snd_redraw(ROOTWIN *rootwin, short x, short y, short w, short h ); +/* Update Shade / Unshade state of the fwd/back buttons*/ +void window_update_back_forward(struct s_gui_win_root * rootwin); +/* set root browser component: */ +void window_attach_browser(ROOTWIN *rootwin, CMP_BROWSER b); + +/* set focus element */ void window_set_focus(ROOTWIN *rootwin, enum focus_element_type type, - void * element ); -/* Shade / Unshade the forward/back bt. of toolbar, depending on history.*/ + void * element ); +/* Shade / Unshade the forward/back bt. of toolbar, depending on history.*/ bool window_widget_has_focus(ROOTWIN *rootwin, enum focus_element_type t, - void * element); -bool window_url_widget_has_focus(ROOTWIN *rootwin); -void window_set_url(ROOTWIN *rootwin, const char * text); + void * element); +bool window_url_widget_has_focus(ROOTWIN *rootwin); +void window_set_url(ROOTWIN *rootwin, const char * text); void window_set_stauts(ROOTWIN *rootwin, char * text); void window_set_title(ROOTWIN *rootwin, char * text); -void window_set_content_size(ROOTWIN *rootwin, int w, int h); +void window_set_content_size(ROOTWIN *rootwin, int w, int h); void window_set_icon(ROOTWIN *rootwin, struct bitmap * bmp ); void window_set_active_gui_window(ROOTWIN *rootwin, struct gui_window *gw); void window_restore_active_gui_window(ROOTWIN *rootwin); @@ -87,11 +87,11 @@ void window_get_grect(ROOTWIN *rootwin, enum browser_area_e which, GRECT *d); void window_redraw_favicon(struct s_gui_win_root * rootwin, GRECT *clip); void window_unref_gui_window(ROOTWIN *rootwin, struct gui_window *gw); bool window_key_input(unsigned short kcode, unsigned short kstate, - unsigned short nkc); - - -/* -------------------------------------------------------------------------- */ -/* Public event handlers: */ -/* -------------------------------------------------------------------------- */ - -#endif + unsigned short nkc); + + +/* -------------------------------------------------------------------------- */ +/* Public event handlers: */ +/* -------------------------------------------------------------------------- */ + +#endif diff --git a/atari/save.h b/atari/save.h index 0775723f2..01086be4b 100644 --- a/atari/save.h +++ b/atari/save.h @@ -1,19 +1,19 @@ -/* - * Copyright 2012 Ole Loots - * - * This file is part of NetSurf, http://www.netsurf-browser.org/ - * - * NetSurf is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * NetSurf is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . +/* + * Copyright 2012 Ole Loots + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ #ifndef NSATARI_SAVE_H diff --git a/atari/schedule.c b/atari/schedule.c old mode 100755 new mode 100644 diff --git a/atari/schedule.h b/atari/schedule.h old mode 100755 new mode 100644 diff --git a/atari/search.c b/atari/search.c index cd9847bf2..c2b02f06a 100644 --- a/atari/search.c +++ b/atari/search.c @@ -61,53 +61,53 @@ struct gui_search_table *atari_search_table = &search_table; /** -* Change the displayed search status. -* \param found search pattern matched in text -* \param p the pointer sent to search_verify_new() / search_create_context() -*/ - + * Change the displayed search status. + * \param found search pattern matched in text + * \param p the pointer sent to search_verify_new() / search_create_context() + */ void nsatari_search_set_status(bool found, void *p) { LOG(("%p set status: %d\n", p, found)); // TODO: maybe update GUI } -/** -* display hourglass while searching -* \param active start/stop indicator -* \param p the pointer sent to search_verify_new() / search_create_context() -*/ +/** + * display hourglass while searching + * \param active start/stop indicator + * \param p the pointer sent to search_verify_new() / search_create_context() + */ void nsatari_search_set_hourglass(bool active, void *p) { SEARCH_FORM_SESSION s = (SEARCH_FORM_SESSION)p; LOG(("active: %d, session: %p", active, p)); - if (active) + if (active) { gui_window_set_pointer(s->g, GUI_POINTER_PROGRESS); - else + } else { gui_window_set_pointer(s->g, GUI_POINTER_DEFAULT); + } } -/** -* add search string to recent searches list -* front is at liberty how to implement the bare notification -* should normally store a strdup() of the string; -* core gives no guarantee of the integrity of the const char * -* \param string search pattern -* \param p the pointer sent to search_verify_new() / search_create_context() -*/ +/** + * add search string to recent searches list + * front is at liberty how to implement the bare notification + * should normally store a strdup() of the string; + * core gives no guarantee of the integrity of the const char * + * \param string search pattern + * \param p the pointer sent to search_verify_new() / search_create_context() + */ void nsatari_search_add_recent(const char *string, void *p) { LOG(("%p add recent: %s\n", p, string)); } -/** -* activate search forwards button in gui -* \param active activate/inactivate -* \param p the pointer sent to search_verify_new() / search_create_context() -*/ +/** + * activate search forwards button in gui + * \param active activate/inactivate + * \param p the pointer sent to search_verify_new() / search_create_context() + */ void nsatari_search_set_forward_state(bool active, void *p) { struct gui_window *gw; @@ -120,21 +120,21 @@ void nsatari_search_set_forward_state(bool active, void *p) gw = s->g; toolbar = toolbar_get_form(gw->root->toolbar); - if(active) + if (active) { toolbar[TOOLBAR_BT_SEARCH_FWD].ob_state &= ~OS_DISABLED; - else + } else { toolbar[TOOLBAR_BT_SEARCH_FWD].ob_state |= OS_DISABLED; + } window_get_grect(gw->root, BROWSER_AREA_SEARCH, &area); window_schedule_redraw_grect(gw->root, &area); - } -/** -* activate search back button in gui -* \param active activate/inactivate -* \param p the pointer sent to search_verify_new() / search_create_context() -*/ +/** + * activate search back button in gui + * \param active activate/inactivate + * \param p the pointer sent to search_verify_new() / search_create_context() + */ void nsatari_search_set_back_state(bool active, void *p) { struct gui_window *gw; @@ -148,10 +148,11 @@ void nsatari_search_set_back_state(bool active, void *p) gw = s->g; toolbar = toolbar_get_form(gw->root->toolbar); - if(active) + if (active) { toolbar[TOOLBAR_BT_SEARCH_BACK].ob_state &= ~OS_DISABLED; - else + } else { toolbar[TOOLBAR_BT_SEARCH_BACK].ob_state |= OS_DISABLED; + } window_get_grect(gw->root, BROWSER_AREA_SEARCH, &area); window_schedule_redraw_grect(gw->root, &area); } @@ -165,10 +166,12 @@ static int apply_form(OBJECT *obj, struct s_search_form_state *s) s->flags = 0; - if( (obj[TOOLBAR_CB_CASESENSE].ob_state & OS_SELECTED) != 0 ) + if ((obj[TOOLBAR_CB_CASESENSE].ob_state & OS_SELECTED) != 0 ) { s->flags |= SEARCH_FLAG_CASE_SENSITIVE; - if( (obj[TOOLBAR_CB_SHOWALL].ob_state & OS_SELECTED) != 0 ) + } + if ((obj[TOOLBAR_CB_SHOWALL].ob_state & OS_SELECTED) != 0 ) { s->flags |= SEARCH_FLAG_SHOWALL; + } cstr = gemtk_obj_get_text(obj, TOOLBAR_TB_SRCH); snprintf(s->text, 32, "%s", cstr); @@ -180,9 +183,10 @@ static void set_text(OBJECT *obj, short idx, char * text, int len) { char spare[255]; - if( len > 254 ) + if (len > 254) { len = 254; - if( text != NULL ){ + } + if (text != NULL) { strncpy(spare, text, 254); } else { strcpy(spare, ""); @@ -191,19 +195,18 @@ static void set_text(OBJECT *obj, short idx, char * text, int len) set_string(obj, idx, spare); } + void nsatari_search_restore_form( struct s_search_form_session *s, OBJECT *obj) { if ((s->state.flags & SEARCH_FLAG_SHOWALL) != 0) { obj[TOOLBAR_CB_SHOWALL].ob_state |= OS_SELECTED; - } - else { + } else { obj[TOOLBAR_CB_SHOWALL].ob_state &= ~OS_SELECTED; } if ((s->state.flags & SEARCH_FLAG_CASE_SENSITIVE) != 0) { obj[TOOLBAR_CB_CASESENSE].ob_state |= OS_SELECTED; - } - else { + } else { obj[TOOLBAR_CB_CASESENSE].ob_state &= ~OS_SELECTED; } @@ -215,9 +218,9 @@ void nsatari_search_restore_form( struct s_search_form_session *s, OBJECT *obj) TEDINFO *t = ((TEDINFO *)get_obspec(obj, TOOLBAR_TB_SRCH)); set_text(obj, TOOLBAR_TB_SRCH, s->state.text, t->te_txtlen); - } + void nsatari_search_session_destroy(struct s_search_form_session *s) { if (s != NULL) { @@ -227,6 +230,7 @@ void nsatari_search_session_destroy(struct s_search_form_session *s) } } + /** checks for search parameters changes */ static bool search_session_compare(struct s_search_form_session *s, OBJECT *obj) { @@ -245,7 +249,7 @@ static bool search_session_compare(struct s_search_form_session *s, OBJECT *obj) char * cstr; cstr = gemtk_obj_get_text(obj, TOOLBAR_TB_SRCH); - if (cstr != NULL){ + if (cstr != NULL) { if (strcmp(cstr, (char*)&s->state.text) != 0) { return (true); } @@ -256,34 +260,31 @@ static bool search_session_compare(struct s_search_form_session *s, OBJECT *obj) void nsatari_search_perform(struct s_search_form_session *s, OBJECT *obj, - search_flags_t f) + search_flags_t f) { assert(s!=null); assert(input_window->browser->bw == s->g->browser->bw); - - if(search_session_compare(s, obj)){ + if (search_session_compare(s, obj)) { browser_window_search_clear(s->g->browser->bw); apply_form(obj, &s->state); - } else { - } /* get search direction manually: */ - if ( (f&SEARCH_FLAG_FORWARDS) != 0 ) + if ( (f&SEARCH_FLAG_FORWARDS) != 0 ) { s->state.flags |= SEARCH_FLAG_FORWARDS; - else + } else { s->state.flags &= (~SEARCH_FLAG_FORWARDS); + } browser_window_search(s->g->browser->bw, s, - s->state.flags, - gemtk_obj_get_text(obj, TOOLBAR_TB_SRCH)); - + s->state.flags, + gemtk_obj_get_text(obj, TOOLBAR_TB_SRCH)); } struct s_search_form_session * nsatari_search_session_create(OBJECT * obj, - struct gui_window *gw) + struct gui_window *gw) { struct s_search_form_session *sfs; diff --git a/atari/settings.c b/atari/settings.c index fe42f2ab2..6a9faf190 100644 --- a/atari/settings.c +++ b/atari/settings.c @@ -1,3 +1,22 @@ +/* + * Copyright 2013 Ole Loots + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + #include #include #include diff --git a/atari/settings.h b/atari/settings.h index 87597e6a0..ac7bd8aa4 100644 --- a/atari/settings.h +++ b/atari/settings.h @@ -1,7 +1,25 @@ +/* + * Copyright 2013 Ole Loots + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + #ifndef NS_ATARI_SETTINGS #define NS_ATARI_SETTINGS - void open_settings(void); void close_settings(void); diff --git a/atari/statusbar.c b/atari/statusbar.c old mode 100755 new mode 100644 diff --git a/atari/statusbar.h b/atari/statusbar.h old mode 100755 new mode 100644 index 7739c6fed..8ac090497 --- a/atari/statusbar.h +++ b/atari/statusbar.h @@ -1,41 +1,40 @@ -/* - * Copyright 2010 Ole Loots - * - * This file is part of NetSurf, http://www.netsurf-browser.org/ - * - * NetSurf is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * NetSurf is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef NS_ATARI_STATUSBAR -#define NS_ATARI_STATUSBAR - -#define STATUSBAR_HEIGHT 16 -#define STATUSBAR_MAX_SLEN 255 - -struct s_statusbar -{ -#ifdef WITH_COMPONENT_STATUSBAR +/* + * Copyright 2010 Ole Loots + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef NS_ATARI_STATUSBAR +#define NS_ATARI_STATUSBAR + +#define STATUSBAR_HEIGHT 16 +#define STATUSBAR_MAX_SLEN 255 + +struct s_statusbar { +#ifdef WITH_COMPONENT_STATUSBAR COMPONENT * comp; -#endif - char text[STATUSBAR_MAX_SLEN+1]; - size_t textlen; +#endif + char text[STATUSBAR_MAX_SLEN+1]; + size_t textlen; bool attached; - short aes_win; -}; - - -CMP_STATUSBAR sb_create( struct gui_window * gw ); -void sb_destroy( CMP_STATUSBAR s ); + short aes_win; +}; + +CMP_STATUSBAR sb_create( struct gui_window * gw ); +void sb_destroy( CMP_STATUSBAR s ); void sb_set_text( CMP_STATUSBAR sb , const char * text ); -void sb_attach(CMP_STATUSBAR sb, struct gui_window * gw); -#endif +void sb_attach(CMP_STATUSBAR sb, struct gui_window * gw); + +#endif diff --git a/atari/toolbar.c b/atari/toolbar.c index 02861818f..c2e7ced06 100644 --- a/atari/toolbar.c +++ b/atari/toolbar.c @@ -69,15 +69,14 @@ enum e_toolbar_button_states { struct s_toolbar; -struct s_tb_button -{ +struct s_tb_button { short rsc_id; void (*cb_click)(struct s_toolbar *tb); hlcache_handle *icon[TOOLBAR_BUTTON_NUM_STATES]; struct s_toolbar *owner; - enum e_toolbar_button_states state; - short index; - GRECT area; + enum e_toolbar_button_states state; + short index; + GRECT area; }; @@ -97,50 +96,48 @@ static int area_full_height = 0; static float toolbar_url_scale = 1.0; static plot_font_style_t font_style_url = { - .family = PLOT_FONT_FAMILY_SANS_SERIF, - .size = 14*FONT_SIZE_SCALE, - .weight = 400, - .flags = FONTF_NONE, - .background = 0xffffff, - .foreground = 0x0 - }; + .family = PLOT_FONT_FAMILY_SANS_SERIF, + .size = 14*FONT_SIZE_SCALE, + .weight = 400, + .flags = FONTF_NONE, + .background = 0xffffff, + .foreground = 0x0 +}; /* prototypes & order for button widgets: */ - -static struct s_tb_button tb_buttons[] = -{ +static struct s_tb_button tb_buttons[] = { { - TOOLBAR_BT_BACK, - toolbar_back_click, - {0,0}, - 0, 0, 0, {0,0,0,0} - }, + TOOLBAR_BT_BACK, + toolbar_back_click, + {0,0}, + 0, 0, 0, {0,0,0,0} + }, { - TOOLBAR_BT_HOME, - toolbar_home_click, - {0,0}, - 0, 0, 0, {0,0,0,0} - }, + TOOLBAR_BT_HOME, + toolbar_home_click, + {0,0}, + 0, 0, 0, {0,0,0,0} + }, { - TOOLBAR_BT_FORWARD, - toolbar_forward_click, - {0,0}, - 0, 0, 0, {0,0,0,0} - }, + TOOLBAR_BT_FORWARD, + toolbar_forward_click, + {0,0}, + 0, 0, 0, {0,0,0,0} + }, { - TOOLBAR_BT_STOP, - toolbar_stop_click, - {0,0}, - 0, 0, 0, {0,0,0,0} - }, + TOOLBAR_BT_STOP, + toolbar_stop_click, + {0,0}, + 0, 0, 0, {0,0,0,0} + }, { - TOOLBAR_BT_RELOAD, - toolbar_reload_click, - {0,0}, - 0, 0, 0, {0,0,0,0} - }, + TOOLBAR_BT_RELOAD, + toolbar_reload_click, + {0,0}, + 0, 0, 0, {0,0,0,0} + }, { 0, 0, {0,0}, 0, -1, 0, {0,0,0,0}} }; @@ -148,8 +145,7 @@ struct s_toolbar_style { int font_height_pt; }; -static struct s_toolbar_style toolbar_styles[] = -{ +static struct s_toolbar_style toolbar_styles[] = { /* small (18 px height) */ {9}, /* medium (default - 26 px height) */ @@ -161,16 +157,16 @@ static struct s_toolbar_style toolbar_styles[] = }; static const struct redraw_context toolbar_rdrw_ctx = { - .interactive = true, - .background_images = true, - .plot = &atari_plotters - }; + .interactive = true, + .background_images = true, + .plot = &atari_plotters +}; static void tb_txt_request_redraw(void *data, int x, int y, int w, int h ); /** -* Find a button for a specific resource ID -*/ + * Find a button for a specific resource ID + */ static struct s_tb_button *find_button(struct s_toolbar *tb, int rsc_id) { int i = 0; @@ -184,54 +180,54 @@ static struct s_tb_button *find_button(struct s_toolbar *tb, int rsc_id) } /** -* Callback for textarea redraw -*/ + * Callback for textarea redraw + */ static void tb_txt_request_redraw(void *data, int x, int y, int w, int h) { - GRECT area; + GRECT area; struct s_toolbar * tb = (struct s_toolbar *)data; if (tb->attached == false) { - return; - } + return; + } toolbar_get_grect(tb, TOOLBAR_AREA_URL, &area); area.g_x += x; area.g_y += y; area.g_w = w; area.g_h = h; - //dbg_grect("tb_txt_request_redraw", &area); + /* dbg_grect("tb_txt_request_redraw", &area); */ window_schedule_redraw_grect(tb->owner, &area); - return; + return; } static void tb_txt_callback(void *data, struct textarea_msg *msg) { switch (msg->type) { - case TEXTAREA_MSG_DRAG_REPORT: + case TEXTAREA_MSG_DRAG_REPORT: break; - case TEXTAREA_MSG_REDRAW_REQUEST: - tb_txt_request_redraw(data, - msg->data.redraw.x0, msg->data.redraw.y0, - msg->data.redraw.x1 - msg->data.redraw.x0, - msg->data.redraw.y1 - msg->data.redraw.y0); + case TEXTAREA_MSG_REDRAW_REQUEST: + tb_txt_request_redraw(data, + msg->data.redraw.x0, msg->data.redraw.y0, + msg->data.redraw.x1 - msg->data.redraw.x0, + msg->data.redraw.y1 - msg->data.redraw.y0); break; - default: + default: break; } } static struct s_tb_button *button_init(struct s_toolbar *tb, OBJECT * tree, int index, - struct s_tb_button * instance) + struct s_tb_button * instance) { *instance = tb_buttons[index]; instance->owner = tb; - return(instance); + return(instance); } @@ -244,12 +240,12 @@ void toolbar_init( void ) { static USERBLK userblk; - aes_toolbar = gemtk_obj_get_tree(TOOLBAR); - throbber_form = gemtk_obj_get_tree(THROBBER); + aes_toolbar = gemtk_obj_get_tree(TOOLBAR); + throbber_form = gemtk_obj_get_tree(THROBBER); userblk.ub_code = toolbar_url_userdraw; - userblk.ub_parm = (long) aes_toolbar[TOOLBAR_AREA_URL].ob_spec.userblk; - aes_toolbar[TOOLBAR_AREA_URL].ob_spec.userblk = &userblk; + userblk.ub_parm = (long) aes_toolbar[TOOLBAR_AREA_URL].ob_spec.userblk; + aes_toolbar[TOOLBAR_AREA_URL].ob_spec.userblk = &userblk; aes_toolbar[TOOLBAR_CB_SHOWALL].ob_state &= ~OS_SELECTED; aes_toolbar[TOOLBAR_CB_CASESENSE].ob_state &= ~OS_SELECTED; @@ -257,11 +253,11 @@ void toolbar_init( void ) /* init default values: */ gemtk_obj_set_str_safe(aes_toolbar, TOOLBAR_TB_SRCH, (char*)""); - area_full_height = aes_toolbar->ob_height; + area_full_height = aes_toolbar->ob_height; area_search_height = aes_toolbar[TOOLBAR_AREA_SEARCH].ob_height; area_navigation_height = aes_toolbar[TOOLBAR_AREA_NAVIGATION].ob_height; - init = true; + init = true; } @@ -327,7 +323,7 @@ struct s_toolbar *toolbar_create(struct s_gui_win_root *owner) ta_setup.text.foreground = 0x000000; ta_setup.text.background = 0xffffff; t->url.textarea = textarea_create(ta_flags, &ta_setup, - tb_txt_callback, t); + tb_txt_callback, t); /* create the throbber widget: */ t->throbber.index = THROBBER_INACTIVE_INDEX; @@ -335,14 +331,14 @@ struct s_toolbar *toolbar_create(struct s_gui_win_root *owner) t->throbber.running = false; LOG(("created toolbar: %p, root: %p, textarea: %p, throbber: %p", t, - owner, t->url.textarea, t->throbber)); + owner, t->url.textarea, t->throbber)); return( t ); } void toolbar_destroy(struct s_toolbar *tb) { - free(tb->buttons); + free(tb->buttons); free(tb->form); textarea_destroy(tb->url.textarea); @@ -369,102 +365,101 @@ static int toolbar_calculate_height(struct s_toolbar *tb) static void toolbar_reflow(struct s_toolbar *tb) { - int i; - short offx, offy; + int i; + short offx, offy; - // position toolbar areas: - tb->form->ob_x = tb->area.g_x; - tb->form->ob_y = tb->area.g_y; - tb->form->ob_width = tb->area.g_w; - tb->form->ob_height = toolbar_calculate_height(tb); + // position toolbar areas: + tb->form->ob_x = tb->area.g_x; + tb->form->ob_y = tb->area.g_y; + tb->form->ob_width = tb->area.g_w; + tb->form->ob_height = toolbar_calculate_height(tb); // expand the "main" areas to the current width: - tb->form[TOOLBAR_AREA_NAVIGATION].ob_width = tb->area.g_w; - tb->form[TOOLBAR_AREA_SEARCH].ob_width = tb->area.g_w; + tb->form[TOOLBAR_AREA_NAVIGATION].ob_width = tb->area.g_w; + tb->form[TOOLBAR_AREA_SEARCH].ob_width = tb->area.g_w; - if (tb->search_visible) { + if (tb->search_visible) { tb->form[TOOLBAR_AREA_SEARCH].ob_state &= ~OF_HIDETREE; - } else { - tb->form[TOOLBAR_AREA_SEARCH].ob_state |= OF_HIDETREE; + } else { + tb->form[TOOLBAR_AREA_SEARCH].ob_state |= OF_HIDETREE; - } + } // align TOOLBAR_AREA_RIGHT IBOX at right edge: - tb->form[TOOLBAR_AREA_RIGHT].ob_x = tb->area.g_w - - tb->form[TOOLBAR_AREA_RIGHT].ob_width; + tb->form[TOOLBAR_AREA_RIGHT].ob_x = tb->area.g_w + - tb->form[TOOLBAR_AREA_RIGHT].ob_width; // center the URL area: - tb->form[TOOLBAR_AREA_URL].ob_width = tb->area.g_w - - (tb->form[TOOLBAR_AREA_LEFT].ob_width - + tb->form[TOOLBAR_AREA_RIGHT].ob_width); + tb->form[TOOLBAR_AREA_URL].ob_width = tb->area.g_w + - (tb->form[TOOLBAR_AREA_LEFT].ob_width + + tb->form[TOOLBAR_AREA_RIGHT].ob_width); - // position throbber image above IBOX: - objc_offset(tb->form, TOOLBAR_THROBBER_AREA, &offx, &offy); - throbber_form[tb->throbber.index].ob_x = offx; - throbber_form[tb->throbber.index].ob_y = offy; + // position throbber image above IBOX: + objc_offset(tb->form, TOOLBAR_THROBBER_AREA, &offx, &offy); + throbber_form[tb->throbber.index].ob_x = offx; + throbber_form[tb->throbber.index].ob_y = offy; // align the search button: tb->form[TOOLBAR_SEARCH_ALIGN_RIGHT].ob_x = tb->area.g_w - - tb->form[TOOLBAR_SEARCH_ALIGN_RIGHT].ob_width; - - // set button states: - for (i=0; i < tb->btcnt; i++ ) { - if (tb->buttons[i].state == button_off) { - tb->form[tb->buttons[i].rsc_id].ob_state |= OS_DISABLED; - } - else if (tb->buttons[i].state == button_on) { - tb->form[tb->buttons[i].rsc_id].ob_state &= ~OS_DISABLED; - } + - tb->form[TOOLBAR_SEARCH_ALIGN_RIGHT].ob_width; + + // set button states: + for (i=0; i < tb->btcnt; i++ ) { + if (tb->buttons[i].state == button_off) { + tb->form[tb->buttons[i].rsc_id].ob_state |= OS_DISABLED; + } else if (tb->buttons[i].state == button_on) { + tb->form[tb->buttons[i].rsc_id].ob_state &= ~OS_DISABLED; + } } - tb->reflow = false; - // TODO: iterate through all other toolbars and set reflow = true + tb->reflow = false; + // TODO: iterate through all other toolbars and set reflow = true } void toolbar_redraw(struct s_toolbar *tb, GRECT *clip) { - GRECT area, area_ro; + GRECT area, area_ro; - if (tb->attached == false) { - return; - } + if (tb->attached == false) { + return; + } - if(tb->reflow == true) - toolbar_reflow(tb); + if(tb->reflow == true) + toolbar_reflow(tb); //dbg_grect("toolbar redraw clip", clip); /* Redraw the AES objects: */ - objc_draw_grect(tb->form,0,8,clip); - objc_draw_grect(&throbber_form[tb->throbber.index], 0, 1, clip); + objc_draw_grect(tb->form,0,8,clip); + objc_draw_grect(&throbber_form[tb->throbber.index], 0, 1, clip); - toolbar_get_grect(tb, TOOLBAR_AREA_URL, &area_ro); - area = area_ro; + toolbar_get_grect(tb, TOOLBAR_AREA_URL, &area_ro); + area = area_ro; - if (rc_intersect(clip, &area)) { - float old_scale; + if (rc_intersect(clip, &area)) { + float old_scale; - plot_set_dimensions(area_ro.g_x, area_ro.g_y, area_ro.g_w, area_ro.g_h); - struct rect r = { - .x0 = MAX(0,area.g_x - area_ro.g_x), - .y0 = MAX(0,area.g_y - area_ro.g_y), - .x1 = MAX(0,area.g_x - area_ro.g_x) + area.g_w, - .y1 = MAX(0,area.g_y - area_ro.g_y) + area.g_h + plot_set_dimensions(area_ro.g_x, area_ro.g_y, area_ro.g_w, area_ro.g_h); + struct rect r = { + .x0 = MAX(0,area.g_x - area_ro.g_x), + .y0 = MAX(0,area.g_y - area_ro.g_y), + .x1 = MAX(0,area.g_x - area_ro.g_x) + area.g_w, + .y1 = MAX(0,area.g_y - area_ro.g_y) + area.g_h }; //dbg_rect("tb textarea clip: ", &r); // TODO: let this be handled by an userdef object redraw function: /* Redraw the url input: */ old_scale = plot_set_scale(toolbar_url_scale); - textarea_redraw(tb->url.textarea, 0, 0, 0xffffff, 1.0, &r, - &toolbar_rdrw_ctx); - plot_set_scale(old_scale); - } + textarea_redraw(tb->url.textarea, 0, 0, 0xffffff, 1.0, &r, + &toolbar_rdrw_ctx); + plot_set_scale(old_scale); + } } void toolbar_update_buttons(struct s_toolbar *tb, struct browser_window *bw, - short button) + short button) { - LOG(("")); + LOG(("")); struct s_tb_button * bt; bool enable = false; @@ -473,13 +468,13 @@ void toolbar_update_buttons(struct s_toolbar *tb, struct browser_window *bw, assert(bw != NULL); if (button == TOOLBAR_BT_BACK || button <= 0 ) { - bt = find_button(tb, TOOLBAR_BT_BACK); + bt = find_button(tb, TOOLBAR_BT_BACK); enable = browser_window_back_available(bw); - if (enable) { - bt->state = button_on; - } else { - bt->state = button_off; - } + if (enable) { + bt->state = button_on; + } else { + bt->state = button_off; + } } if (button == TOOLBAR_BT_HOME || button <= 0 ) { @@ -489,46 +484,45 @@ void toolbar_update_buttons(struct s_toolbar *tb, struct browser_window *bw, if (button == TOOLBAR_BT_FORWARD || button <= 0 ) { bt = find_button(tb, TOOLBAR_BT_FORWARD); enable = browser_window_forward_available(bw); - if (enable) { - bt->state = button_on; - } else { - bt->state = button_off; - } + if (enable) { + bt->state = button_on; + } else { + bt->state = button_off; + } } if (button == TOOLBAR_BT_RELOAD || button <= 0 ) { - bt = find_button(tb, TOOLBAR_BT_RELOAD); + bt = find_button(tb, TOOLBAR_BT_RELOAD); enable = browser_window_reload_available(bw); - if (enable) { - bt->state = button_on; - } else { - bt->state = button_off; - } + if (enable) { + bt->state = button_on; + } else { + bt->state = button_off; + } } if (button == TOOLBAR_BT_STOP || button <= 0) { - bt = find_button(tb, TOOLBAR_BT_STOP); + bt = find_button(tb, TOOLBAR_BT_STOP); enable = browser_window_stop_available(bw); - if (enable) { - bt->state = button_on; - } else { - bt->state = button_off; - } + if (enable) { + bt->state = button_on; + } else { + bt->state = button_off; + } } - if (tb->attached) { - if (button > 0) { - toolbar_get_grect(tb, button, &area); - window_schedule_redraw_grect(tb->owner, &area); - } - else { - toolbar_get_grect(tb, TOOLBAR_AREA_LEFT, &area); - window_schedule_redraw_grect(tb->owner, &area); - - toolbar_get_grect(tb, TOOLBAR_AREA_RIGHT, &area); - window_schedule_redraw_grect(tb->owner, &area); - } - } + if (tb->attached) { + if (button > 0) { + toolbar_get_grect(tb, button, &area); + window_schedule_redraw_grect(tb->owner, &area); + } else { + toolbar_get_grect(tb, TOOLBAR_AREA_LEFT, &area); + window_schedule_redraw_grect(tb->owner, &area); + + toolbar_get_grect(tb, TOOLBAR_AREA_RIGHT, &area); + window_schedule_redraw_grect(tb->owner, &area); + } + } } void toolbar_set_width(struct s_toolbar *tb, short w) @@ -541,12 +535,12 @@ void toolbar_set_width(struct s_toolbar *tb, short w) tb->area.g_w = w; - /* reflow now, just for url input calucation: */ - toolbar_reflow(tb); - /* this will request an textarea redraw: */ - textarea_set_dimensions(tb->url.textarea, - tb->form[TOOLBAR_AREA_URL].ob_width, - tb->form[TOOLBAR_AREA_URL].ob_height); + /* reflow now, just for url input calucation: */ + toolbar_reflow(tb); + /* this will request an textarea redraw: */ + textarea_set_dimensions(tb->url.textarea, + tb->form[TOOLBAR_AREA_URL].ob_width, + tb->form[TOOLBAR_AREA_URL].ob_height); tb->reflow = true; } } @@ -566,56 +560,56 @@ void toolbar_set_origin(struct s_toolbar *tb, short x, short y) void toolbar_set_dimensions(struct s_toolbar *tb, GRECT *area) { - if (area->g_w != tb->area.g_w) { - - tb->area = *area; - - /* reflow now, just for url input calucation: */ - toolbar_reflow(tb); - /* this will request an textarea redraw: */ - textarea_set_dimensions(tb->url.textarea, - tb->form[TOOLBAR_AREA_URL].ob_width, - tb->form[TOOLBAR_AREA_URL].ob_height-1); - } - else { - tb->area = *area; - } + if (area->g_w != tb->area.g_w) { + + tb->area = *area; + + /* reflow now, just for url input calucation: */ + toolbar_reflow(tb); + /* this will request an textarea redraw: */ + textarea_set_dimensions(tb->url.textarea, + tb->form[TOOLBAR_AREA_URL].ob_width, + tb->form[TOOLBAR_AREA_URL].ob_height-1); + } + else { + tb->area = *area; + } /* reflow for next redraw: */ - /* TODO: that's only required because we do not reset others toolbars reflow - state on reflow */ - tb->reflow = true; + /* TODO: that's only required because we do not reset others toolbars reflow + state on reflow */ + tb->reflow = true; } void toolbar_set_url(struct s_toolbar *tb, const char * text) { - LOG(("")); - textarea_set_text(tb->url.textarea, text); - - if (tb->attached && tb->visible) { - GRECT area; - toolbar_get_grect(tb, TOOLBAR_AREA_URL, &area); - window_schedule_redraw_grect(tb->owner, &area); - struct gui_window * gw = window_get_active_gui_window(tb->owner); - assert(gw != NULL); - toolbar_update_buttons(tb, gw->browser->bw , 0); + LOG(("")); + textarea_set_text(tb->url.textarea, text); + + if (tb->attached && tb->visible) { + GRECT area; + toolbar_get_grect(tb, TOOLBAR_AREA_URL, &area); + window_schedule_redraw_grect(tb->owner, &area); + struct gui_window * gw = window_get_active_gui_window(tb->owner); + assert(gw != NULL); + toolbar_update_buttons(tb, gw->browser->bw , 0); } } void toolbar_set_throbber_state(struct s_toolbar *tb, bool active) { - GRECT throbber_area; - - tb->throbber.running = active; - if (active) { - tb->throbber.index = THROBBER_MIN_INDEX; - } else { - tb->throbber.index = THROBBER_INACTIVE_INDEX; - } - - tb->reflow = true; - toolbar_get_grect(tb, TOOLBAR_THROBBER_AREA, &throbber_area); - window_schedule_redraw_grect(tb->owner, &throbber_area); + GRECT throbber_area; + + tb->throbber.running = active; + if (active) { + tb->throbber.index = THROBBER_MIN_INDEX; + } else { + tb->throbber.index = THROBBER_INACTIVE_INDEX; + } + + tb->reflow = true; + toolbar_get_grect(tb, TOOLBAR_THROBBER_AREA, &throbber_area); + window_schedule_redraw_grect(tb->owner, &throbber_area); } void toolbar_set_visible(struct s_toolbar *tb, short area, bool visible) @@ -628,8 +622,7 @@ void toolbar_set_visible(struct s_toolbar *tb, short area, bool visible) tb->visible = false; tb->reflow = true; } - } - else if (area == TOOLBAR_AREA_SEARCH) { + } else if (area == TOOLBAR_AREA_SEARCH) { tb->search_visible = visible; tb->reflow = true; OBJECT *frm = toolbar_get_form(tb); @@ -648,35 +641,36 @@ void toolbar_set_reflow(struct s_toolbar *tb, bool do_reflow) void toolbar_set_attached(struct s_toolbar *tb, bool attached) { - tb->attached = attached; + tb->attached = attached; } void toolbar_throbber_progress(struct s_toolbar *tb) { - GRECT throbber_area; + GRECT throbber_area; - assert(tb->throbber.running == true); + assert(tb->throbber.running == true); - if(tb->throbber.running == false) - return; + if(tb->throbber.running == false) + return; - tb->throbber.index++; - if(tb->throbber.index > THROBBER_MAX_INDEX) - tb->throbber.index = THROBBER_MIN_INDEX; + tb->throbber.index++; + if (tb->throbber.index > THROBBER_MAX_INDEX) { + tb->throbber.index = THROBBER_MIN_INDEX; + } - tb->reflow = true; - toolbar_get_grect(tb, TOOLBAR_THROBBER_AREA, &throbber_area); - window_schedule_redraw_grect(tb->owner, &throbber_area); + tb->reflow = true; + toolbar_get_grect(tb, TOOLBAR_THROBBER_AREA, &throbber_area); + window_schedule_redraw_grect(tb->owner, &throbber_area); } bool toolbar_text_input(struct s_toolbar *tb, char *text) { - bool handled = true; + bool handled = true; - LOG(("")); + LOG(("")); - return(handled); + return(handled); } bool toolbar_key_input(struct s_toolbar *tb, short nkc) @@ -695,8 +689,8 @@ bool toolbar_key_input(struct s_toolbar *tb, short nkc) if ((nkc&0xFF) >= 9) { ret = textarea_keypress(tb->url.textarea, ucs4); } - } - else if (ik == NS_KEY_CR || ik == NS_KEY_NL) { + + } else if (ik == NS_KEY_CR || ik == NS_KEY_NL) { nsurl *url; char tmp_url[PATH_MAX]; if ( textarea_get_text( tb->url.textarea, tmp_url, PATH_MAX) > 0 ) { @@ -705,15 +699,15 @@ bool toolbar_key_input(struct s_toolbar *tb, short nkc) warn_user("NoMemory", 0); } else { browser_window_navigate(gw->browser->bw, url, NULL, - BW_NAVIGATE_HISTORY, - NULL, NULL, NULL); + BW_NAVIGATE_HISTORY, + NULL, NULL, NULL); nsurl_unref(url); } ret = true; } - } - else if (ik == NS_KEY_COPY_SELECTION) { + + } else if (ik == NS_KEY_COPY_SELECTION) { // copy whole text char * text; int len; @@ -724,8 +718,8 @@ bool toolbar_key_input(struct s_toolbar *tb, short nkc) scrap_txt_write(text); free( text ); } - } - else if ( ik == NS_KEY_PASTE) { + + } else if ( ik == NS_KEY_PASTE) { char * clip = scrap_txt_read(); if ( clip != NULL ){ int clip_length = strlen( clip ); @@ -743,13 +737,14 @@ bool toolbar_key_input(struct s_toolbar *tb, short nkc) } free( clip ); } - } - else if (ik == NS_KEY_ESCAPE) { + + } else if (ik == NS_KEY_ESCAPE) { textarea_keypress( tb->url.textarea, NS_KEY_SELECT_ALL ); textarea_keypress( tb->url.textarea, NS_KEY_DELETE_LEFT ); - } - else { + + } else { ret = textarea_keypress( tb->url.textarea, ik ); + } return( ret ); @@ -758,36 +753,35 @@ bool toolbar_key_input(struct s_toolbar *tb, short nkc) void toolbar_mouse_input(struct s_toolbar *tb, short obj, short button) { - LOG(("")); - GRECT work; + LOG(("")); + GRECT work; short mx, my, mb, kstat; struct gui_window * gw; - if (obj==TOOLBAR_AREA_URL){ + if (obj==TOOLBAR_AREA_URL) { + graf_mkstate(&mx, &my, &mb, &kstat); + toolbar_get_grect(tb, TOOLBAR_AREA_URL, &work); + mx -= work.g_x; + my -= work.g_y; - graf_mkstate(&mx, &my, &mb, &kstat); - toolbar_get_grect(tb, TOOLBAR_AREA_URL, &work); - mx -= work.g_x; - my -= work.g_y; + /* TODO: reset mouse state of browser window? */ + /* select whole text when newly focused, otherwise set caret to + end of text */ + if (!window_url_widget_has_focus(tb->owner)) { + window_set_focus(tb->owner, URL_WIDGET, (void*)&tb->url); - /* TODO: reset mouse state of browser window? */ - /* select whole text when newly focused, otherwise set caret to - end of text */ - if (!window_url_widget_has_focus(tb->owner)) { - window_set_focus(tb->owner, URL_WIDGET, (void*)&tb->url); - } - /* url widget has focus and mouse button is still pressed... */ - else if (mb & 1) { + } else if (mb & 1) { + /* url widget has focus and mouse button is still pressed... */ - textarea_mouse_action(tb->url.textarea, BROWSER_MOUSE_DRAG_1, - mx, my ); + textarea_mouse_action(tb->url.textarea, BROWSER_MOUSE_DRAG_1, + mx, my ); short prev_x = mx; short prev_y = my; do { if (abs(prev_x-mx) > 5 || abs(prev_y-my) > 5) { textarea_mouse_action( tb->url.textarea, - BROWSER_MOUSE_HOLDING_1, mx, my ); + BROWSER_MOUSE_HOLDING_1, mx, my ); prev_x = mx; prev_y = my; window_schedule_redraw_grect(tb->owner, &work); @@ -796,121 +790,118 @@ void toolbar_mouse_input(struct s_toolbar *tb, short obj, short button) graf_mkstate( &mx, &my, &mb, &kstat ); mx = mx - (work.g_x); my = my - (work.g_y); - } while (mb & 1); + } while (mb & 1); textarea_mouse_action( tb->url.textarea, BROWSER_MOUSE_HOVER, mx, - my); - } - else if (button & 2) { + my); + + } else if (button & 2) { // TODO: open a context popup - } - else { - /* when execution reaches here, mouse input is a click or dclick */ - /* TODO: recognize click + shitoolbar_update_buttonsft key */ - if (aes_event_out.emo_mclicks == 2 ) { + + } else { + /* when execution reaches here, mouse input is a click or dclick */ + /* TODO: recognize click + shitoolbar_update_buttonsft key */ + if (aes_event_out.emo_mclicks == 2 ) { textarea_mouse_action( tb->url.textarea, - BROWSER_MOUSE_DOUBLE_CLICK | BROWSER_MOUSE_CLICK_1, mx, - my); - toolbar_get_grect(tb, TOOLBAR_AREA_URL, &work); - window_schedule_redraw_grect(tb->owner, &work); + BROWSER_MOUSE_DOUBLE_CLICK | BROWSER_MOUSE_CLICK_1, mx, + my); + toolbar_get_grect(tb, TOOLBAR_AREA_URL, &work); + window_schedule_redraw_grect(tb->owner, &work); } else { textarea_mouse_action(tb->url.textarea, - BROWSER_MOUSE_PRESS_1, mx, my ); + BROWSER_MOUSE_PRESS_1, mx, my ); } - } - } - else if(obj==TOOLBAR_TB_SRCH) { + } + + } else if(obj==TOOLBAR_TB_SRCH) { window_set_focus(tb->owner, SEARCH_INPUT, NULL); - } - else if (obj==TOOLBAR_BT_SEARCH_FWD) { + + } else if (obj==TOOLBAR_BT_SEARCH_FWD) { gw = tb->owner->active_gui_window; assert(gw->search); nsatari_search_perform(gw->search, tb->form, SEARCH_FLAG_FORWARDS); - } - else if (obj==TOOLBAR_BT_SEARCH_BACK) { + + } else if (obj==TOOLBAR_BT_SEARCH_BACK) { gw = tb->owner->active_gui_window; assert(gw->search); nsatari_search_perform(gw->search, tb->form, 0); - } - else if (obj==TOOLBAR_BT_CLOSE_SEARCH) { + + } else if (obj==TOOLBAR_BT_CLOSE_SEARCH) { tb->form[TOOLBAR_BT_CLOSE_SEARCH].ob_state &= ~OS_SELECTED; window_close_search(tb->owner); + } else { + struct s_tb_button *bt = find_button(tb, obj); + if (bt != NULL && bt->state != button_off) { + bt->cb_click(tb); + struct gui_window * gw = window_get_active_gui_window(tb->owner); + toolbar_update_buttons(tb, gw->browser->bw, 0); + } } - else { - struct s_tb_button *bt = find_button(tb, obj); - if (bt != NULL && bt->state != button_off) { - bt->cb_click(tb); - struct gui_window * gw = window_get_active_gui_window(tb->owner); - toolbar_update_buttons(tb, gw->browser->bw, 0); - } - - } } /** -* Receive a specific region of the toolbar. -* @param tb - the toolbar pointer -* @param which - the area to retrieve: 0 to receive the workarea, - all other values must be - an resource ID of the TOOLBAR tree. -* @param dst - GRECT pointer receiving the area. -*/ + * Receive a specific region of the toolbar. + * @param tb - the toolbar pointer + * @param which - the area to retrieve: 0 to receive the workarea, + all other values must be + an resource ID of the TOOLBAR tree. + * @param dst - GRECT pointer receiving the area. + */ void toolbar_get_grect(struct s_toolbar *tb, short which, GRECT *dst) { - #define LAST_TOOLBAR_AREA TOOLBAR_AREA_SEARCH +#define LAST_TOOLBAR_AREA TOOLBAR_AREA_SEARCH - if (tb->reflow == true) { - toolbar_reflow(tb); - } + if (tb->reflow == true) { + toolbar_reflow(tb); + } - objc_offset(tb->form, which, &dst->g_x, &dst->g_y); + objc_offset(tb->form, which, &dst->g_x, &dst->g_y); - dst->g_w = tb->form[which].ob_width; - dst->g_h = tb->form[which].ob_height; - //tb->form[which].ob_height; + dst->g_w = tb->form[which].ob_width; + dst->g_h = tb->form[which].ob_height; + //tb->form[which].ob_height; - //printf("Toolbar get grect (%d): ", which); - //dbg_grect("", dst); + //printf("Toolbar get grect (%d): ", which); + //dbg_grect("", dst); - #undef LAST_TOOLBAR_AREA +#undef LAST_TOOLBAR_AREA } struct textarea *toolbar_get_textarea(struct s_toolbar *tb, - enum toolbar_textarea which) + enum toolbar_textarea which) { - return(tb->url.textarea); + return(tb->url.textarea); } char *toolbar_get_url(struct s_toolbar *tb) { - char * c_url = NULL; - int c_url_len = 0; + char * c_url = NULL; + int c_url_len = 0; - c_url_len = textarea_get_text(tb->url.textarea, NULL, 0); + c_url_len = textarea_get_text(tb->url.textarea, NULL, 0); - if (c_url_len > -1) { - c_url = malloc(c_url_len+1); - textarea_get_text(tb->url.textarea, c_url, c_url_len+1); - } + if (c_url_len > -1) { + c_url = malloc(c_url_len+1); + textarea_get_text(tb->url.textarea, c_url, c_url_len+1); + } - return(c_url); + return(c_url); } nsurl * toolbar_get_nsurl(struct s_toolbar * tb) { + nsurl * ns_url = NULL; + char * c_url; - nsurl * ns_url = NULL; - char * c_url; - - c_url = toolbar_get_url(tb); - if (c_url) { - nsurl_create(c_url, &ns_url); - } + c_url = toolbar_get_url(tb); + if (c_url) { + nsurl_create(c_url, &ns_url); + } - return(ns_url); + return(ns_url); } @@ -923,43 +914,45 @@ OBJECT *toolbar_get_form(struct s_toolbar *tb) /* public event handler */ void toolbar_back_click(struct s_toolbar *tb) { - struct browser_window * bw; - struct gui_window * gw; + struct browser_window * bw; + struct gui_window * gw; - gw = window_get_active_gui_window(tb->owner); - assert(gw != NULL); - bw = gw->browser->bw; - assert(bw != NULL); + gw = window_get_active_gui_window(tb->owner); + assert(gw != NULL); + bw = gw->browser->bw; + assert(bw != NULL); - if( browser_window_back_available(bw) ) + if( browser_window_back_available(bw) ) { browser_window_history_back(bw, false); + } } void toolbar_reload_click(struct s_toolbar *tb) { - struct browser_window * bw; - struct gui_window * gw; + struct browser_window * bw; + struct gui_window * gw; - gw = window_get_active_gui_window(tb->owner); - assert(gw != NULL); - bw = gw->browser->bw; - assert(bw != NULL); + gw = window_get_active_gui_window(tb->owner); + assert(gw != NULL); + bw = gw->browser->bw; + assert(bw != NULL); browser_window_reload(bw, true); } void toolbar_forward_click(struct s_toolbar *tb) { - struct browser_window * bw; - struct gui_window * gw; + struct browser_window * bw; + struct gui_window * gw; - gw = window_get_active_gui_window(tb->owner); - assert(gw != NULL); - bw = gw->browser->bw; - assert(bw != NULL); + gw = window_get_active_gui_window(tb->owner); + assert(gw != NULL); + bw = gw->browser->bw; + assert(bw != NULL); - if (browser_window_forward_available(bw)) + if (browser_window_forward_available(bw)) { browser_window_history_forward(bw, false); + } } void toolbar_home_click(struct s_toolbar *tb) @@ -975,8 +968,8 @@ void toolbar_home_click(struct s_toolbar *tb) assert(bw != NULL); use_url = nsoption_charp(homepage_url); - if(use_url == NULL || strlen(use_url) == 0){ - use_url = (char*)"about:welcome"; + if (use_url == NULL || strlen(use_url) == 0){ + use_url = (char*)"about:welcome"; } if (nsurl_create(use_url, &url) != NSERROR_OK) { @@ -989,56 +982,56 @@ void toolbar_home_click(struct s_toolbar *tb) NULL, NULL, NULL); - nsurl_unref(url); + nsurl_unref(url); } } void toolbar_stop_click(struct s_toolbar *tb) { - struct browser_window * bw; - struct gui_window * gw; + struct browser_window * bw; + struct gui_window * gw; - gw = window_get_active_gui_window(tb->owner); + gw = window_get_active_gui_window(tb->owner); - assert(gw != NULL); + assert(gw != NULL); - bw = gw->browser->bw; + bw = gw->browser->bw; - assert(bw != NULL); + assert(bw != NULL); browser_window_stop(bw); } void toolbar_favorite_click(struct s_toolbar *tb) { - nsurl * ns_url = NULL; - char * c_url; - int c_url_len = 0; - - c_url = toolbar_get_url(tb); - c_url_len = strlen(c_url); - - nsurl_create(c_url, &ns_url); - - if (hotlist_has_url(ns_url)) { - char msg[c_url_len+100]; - snprintf(msg, c_url_len+100, "Really delete from favorites: \"%s\"", - c_url); - if(gemtk_msg_box_show(GEMTK_MSG_BOX_CONFIRM, msg)) { - hotlist_remove_url(ns_url); - } - } - else { - hotlist_add_url(ns_url); - } - - nsurl_unref(ns_url); - free(c_url); + nsurl * ns_url = NULL; + char * c_url; + int c_url_len = 0; + + c_url = toolbar_get_url(tb); + c_url_len = strlen(c_url); + + nsurl_create(c_url, &ns_url); + + if (hotlist_has_url(ns_url)) { + char msg[c_url_len+100]; + snprintf(msg, c_url_len+100, "Really delete from favorites: \"%s\"", + c_url); + if (gemtk_msg_box_show(GEMTK_MSG_BOX_CONFIRM, msg)) { + hotlist_remove_url(ns_url); + } + + } else { + hotlist_add_url(ns_url); + + } + + nsurl_unref(ns_url); + free(c_url); } void toolbar_crypto_click(struct s_toolbar *tb) { } - diff --git a/atari/toolbar.h b/atari/toolbar.h index 19063f906..61ae48c82 100644 --- a/atari/toolbar.h +++ b/atari/toolbar.h @@ -26,37 +26,35 @@ struct s_toolbar; struct nsurl; enum toolbar_textarea { - URL_INPUT_TEXT_AREA = 1 + URL_INPUT_TEXT_AREA = 1 }; -struct s_url_widget -{ +struct s_url_widget { struct textarea *textarea; - GRECT area; + GRECT area; }; -struct s_throbber_widget -{ - short index; - short max_index; - bool running; -}; +struct s_throbber_widget { + short index; + short max_index; + bool running; +}; -struct s_toolbar -{ +struct s_toolbar { struct s_gui_win_root *owner; - struct s_url_widget url; + struct s_url_widget url; struct s_throbber_widget throbber; OBJECT *form; - GRECT area; + GRECT area; + /* size & location of buttons: */ struct s_tb_button * buttons; int btcnt; int style; bool attached; - bool reflow; - bool visible; - bool search_visible; + bool reflow; + bool visible; + bool search_visible; }; @@ -68,11 +66,11 @@ bool toolbar_text_input(struct s_toolbar *tb, char *text); bool toolbar_key_input(struct s_toolbar *tb, short nkc); void toolbar_mouse_input(struct s_toolbar *tb, short obj, short mbut); void toolbar_update_buttons(struct s_toolbar *tb, struct browser_window *bw, - short idx); + short idx); void toolbar_get_grect(struct s_toolbar *tb, short which, GRECT *g); OBJECT *toolbar_get_form(struct s_toolbar *tb); struct textarea *toolbar_get_textarea(struct s_toolbar *tb, - enum toolbar_textarea which); + enum toolbar_textarea which); char *toolbar_get_url(struct s_toolbar *tb); struct nsurl * toolbar_get_nsurl(struct s_toolbar * tb); void toolbar_set_throbber_state(struct s_toolbar *tb, bool active); @@ -86,10 +84,10 @@ void toolbar_set_url(struct s_toolbar *tb, const char *text); void toolbar_redraw(struct s_toolbar *tb, GRECT *clip); void toolbar_throbber_progress(struct s_toolbar *tb); /* public events handlers: */ -void toolbar_back_click(struct s_toolbar *tb); -void toolbar_reload_click(struct s_toolbar *tb); -void toolbar_forward_click(struct s_toolbar *tb); -void toolbar_home_click(struct s_toolbar *tb); +void toolbar_back_click(struct s_toolbar *tb); +void toolbar_reload_click(struct s_toolbar *tb); +void toolbar_forward_click(struct s_toolbar *tb); +void toolbar_home_click(struct s_toolbar *tb); void toolbar_stop_click(struct s_toolbar *tb); void toolbar_favorite_click(struct s_toolbar *tb); void toolbar_crypto_click(struct s_toolbar *tb); diff --git a/atari/treeview.h b/atari/treeview.h index 4412b1dfc..a6b4a62e9 100644 --- a/atari/treeview.h +++ b/atari/treeview.h @@ -1,19 +1,19 @@ -/* - * Copyright 2013 Ole Loots - * - * This file is part of NetSurf, http://www.netsurf-browser.org/ - * - * NetSurf is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * NetSurf is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . +/* + * Copyright 2013 Ole Loots + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ #ifndef NSATARI_TREEVIEW_H @@ -28,9 +28,9 @@ * atari_treeview_create as the flags parameter to have an standardized treeview * window. */ -#define ATARI_TREEVIEW_WIDGETS (CLOSER | MOVER | SIZER| NAME | FULLER | \ - SMALLER | VSLIDE | HSLIDE | UPARROW | DNARROW \ - | LFARROW | RTARROW) +#define ATARI_TREEVIEW_WIDGETS (CLOSER | MOVER | SIZER| NAME | FULLER | \ + SMALLER | VSLIDE | HSLIDE | UPARROW | DNARROW | \ + LFARROW | RTARROW) enum treeview_area_e { TREEVIEW_AREA_WORK = 0, @@ -48,18 +48,12 @@ struct atari_treeview_window; * These callbacks must be implemented by any atari treeview window. */ -// TODO: add drag_status callback -typedef nserror (*atari_treeview_init2_callback)(struct core_window *cw, - struct core_window_callback_table * default_callbacks); +/** \todo atari add drag_status callback */ +typedef nserror (*atari_treeview_init2_callback)(struct core_window *cw, struct core_window_callback_table * default_callbacks); typedef void (*atari_treeview_finish_callback)(struct core_window *cw); -typedef void (*atari_treeview_keypress_callback)(struct core_window *cw, - uint32_t ucs4); -typedef void (*atari_treeview_mouse_action_callback)(struct core_window *cw, - browser_mouse_state mouse, - int x, int y); -typedef void (*atari_treeview_draw_callback)(struct core_window *cw, int x, - int y, struct rect *clip, - const struct redraw_context *ctx); +typedef void (*atari_treeview_keypress_callback)(struct core_window *cw, uint32_t ucs4); +typedef void (*atari_treeview_mouse_action_callback)(struct core_window *cw, browser_mouse_state mouse, int x, int y); +typedef void (*atari_treeview_draw_callback)(struct core_window *cw, int x, int y, struct rect *clip, const struct redraw_context *ctx); struct atari_treeview_callbacks { atari_treeview_init2_callback init_phase2; @@ -74,12 +68,11 @@ struct atari_treeview_callbacks { * Initalize an window to be an treeview window. * */ -struct core_window *atari_treeview_create(GUIWIN *win, - struct atari_treeview_callbacks * callbacks, - void * user_data, uint32_t flags); +struct core_window *atari_treeview_create(GUIWIN *win, struct atari_treeview_callbacks * callbacks, void * user_data, uint32_t flags); + /** * Free the Treeview, but not the gemtk window used for the treeview. -*/ + */ void atari_treeview_delete(struct core_window *cw); /** @@ -89,12 +82,12 @@ void atari_treeview_open(struct core_window *cw, GRECT *pos); /** * Returns the window "open" state. -*/ + */ bool atari_treeview_is_open(struct core_window *cw); /** * Closes (hides) the treeview window. -*/ + */ void atari_treeview_close(struct core_window *cw); /** @@ -105,9 +98,8 @@ GUIWIN * atari_treeview_get_gemtk_window(struct core_window *cw); /** * Get an specific area inside the window. -*/ -void atari_treeview_get_grect(struct core_window *cw, enum treeview_area_e mode, - GRECT *dest); + */ +void atari_treeview_get_grect(struct core_window *cw, enum treeview_area_e mode, GRECT *dest); /** * Process all pending redraw requests for a single treeview @@ -116,9 +108,8 @@ void atari_treeview_redraw(struct core_window *cw); /** * Attach arbitary user data to the treeview. -*/ -void atari_treeview_set_user_data(struct core_window *cw, - void *user_data_ptr); + */ +void atari_treeview_set_user_data(struct core_window *cw, void *user_data_ptr); /** * Return the arbitary user data set by atari_treeview_set_user_data() @@ -127,8 +118,7 @@ void *atari_treeview_get_user_data(struct core_window *cw); /** * Process all redraw request of all open Treeview windows -*/ + */ void atari_treeview_flush_redraws(void); #endif //NSATARI_TREEVIEW_H - diff --git a/atari/verify_ssl.c b/atari/verify_ssl.c old mode 100755 new mode 100644 diff --git a/atari/verify_ssl.h b/atari/verify_ssl.h old mode 100755 new mode 100644 index 97716ab88..b69bc9cfb --- a/atari/verify_ssl.h +++ b/atari/verify_ssl.h @@ -1,24 +1,24 @@ -/* - * Copyright 2010 Ole Loots - * - * This file is part of NetSurf, http://www.netsurf-browser.org/ - * - * NetSurf is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * NetSurf is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef NS_VERIFY_SSL_H_INCLUDED -#define NS_VERIFY_SSL_H_INCLUDED - -bool verify_ssl_form_do( const char * url, const struct ssl_cert_info * cert_infos_n , unsigned long num_certs ); - -#endif +/* + * Copyright 2010 Ole Loots + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef NS_VERIFY_SSL_H_INCLUDED +#define NS_VERIFY_SSL_H_INCLUDED + +bool verify_ssl_form_do( const char * url, const struct ssl_cert_info * cert_infos_n , unsigned long num_certs ); + +#endif -- cgit v1.2.3