diff --git a/CMakeLists.txt b/CMakeLists.txt
index b8ff999508b2c89cf0592fb2733b6bd87686df82..b301febcb7506c845c17516ca956349d42fb74d2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,11 +1,52 @@
 cmake_minimum_required(VERSION 3.11)
 project (XPDevPlus CXX)
-add_subdirectory(ciolib)
-add_subdirectory(comio)
-add_subdirectory(encode)
-add_subdirectory(hash)
-add_subdirectory(uifc)
-add_subdirectory(xpdev)
+include("FetchContent")
+
+include(ExternalProject)
+
+add_compile_options(-include xpdevplus.h)
+
+FetchContent_Declare(
+	CONIO
+	URL https://gitlab.synchro.net/main/sbbs/-/archive/master/sbbs-master.tar.gz?path=src/conio
+	SOURCE_SUBDIR src/conio
+)
+FetchContent_MakeAvailable(CONIO)
+
+FetchContent_Declare(
+	COMIO
+	URL https://gitlab.synchro.net/main/sbbs/-/archive/master/sbbs-master.tar.gz?path=src/comio
+	SOURCE_SUBDIR src/comio
+)
+FetchContent_MakeAvailable(COMIO)
+
+FetchContent_Declare(
+	Encode
+	URL https://gitlab.synchro.net/main/sbbs/-/archive/master/sbbs-master.tar.gz?path=src/encode
+	SOURCE_SUBDIR src/encode
+)
+FetchContent_MakeAvailable(Encode)
+
+FetchContent_Declare(
+	Hash
+	URL https://gitlab.synchro.net/main/sbbs/-/archive/master/sbbs-master.tar.gz?path=src/hash
+	SOURCE_SUBDIR src/hash
+)
+FetchContent_MakeAvailable(Hash)
+
+FetchContent_Declare(
+	UIFC
+	URL https://gitlab.synchro.net/main/sbbs/-/archive/master/sbbs-master.tar.gz?path=src/uifc
+	SOURCE_SUBDIR src/uifc
+)
+FetchContent_MakeAvailable(UIFC)
+
+FetchContent_Declare(
+	XPDev
+	URL https://gitlab.synchro.net/main/sbbs/-/archive/master/sbbs-master.tar.gz?path=src/xpdev
+	SOURCE_SUBDIR src/xpdev
+)
+FetchContent_MakeAvailable(XPDev)
 
 enable_language(C)
 set(SOURCE
diff --git a/ciolib/CMakeLists.txt b/ciolib/CMakeLists.txt
deleted file mode 100644
index bfd25ed21d5353e31b2c49f4af80b8011f56af28..0000000000000000000000000000000000000000
--- a/ciolib/CMakeLists.txt
+++ /dev/null
@@ -1,129 +0,0 @@
-project (ConIOLib C)
-
-cmake_minimum_required(VERSION 3.11)
-
-INCLUDE (CheckFunctionExists)
-find_package(X11)
-# So on BSD, this causes the find to fail.  However, it's required for Linux
-# This is because on BSD, ncursesw.h does not exist, but libraries use
-# ncurses.h
-set(CURSES_NEED_WIDE TRUE)
-find_package(Threads REQUIRED)
-if(NOT WIN32)
-	find_package(Curses)
-	find_package(PkgConfig)
-	pkg_check_modules(SDL2 sdl2)
-endif()
-
-set(SOURCE
-	allfonts.c
-	ansi_cio.c
-	ciolib.c
-	ciolib.rc
-	cterm.c
-	mouse.c
-	syncicon64.c
-	utf8_codepages.c
-	vidmodes.c
-	xbr.c
-)
-
-set(HEADER
-	ciolib.h
-	cterm.h
-	keys.h
-	mouse.h
-	utf8_codepages.h
-	vidmodes.h
-)
-
-if(WIN32)
-	list(APPEND SOURCE win32cio.c ciolib.rc)
-endif()
-
-if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Windows")
-	if(CURSES_FOUND)
-		list(APPEND SOURCE curs_cio.c)
-		set(USE_CURSES_ANYWAY TRUE)
-	else()
-		if(${CMAKE_SYSTEM_NAME} MATCHES "(Free|Open|Net)BSD")
-			list(APPEND SOURCE curs_cio.c)
-			set(USE_CURSES_ANYWAY TRUE)
-		else()
-			message(FATAL_ERROR "ncursesw not found")
-		endif()
-	endif()
-endif()
-
-if(X11_FOUND)
-	list(APPEND SOURCE x_events.c x_cio.c)
-	set(NEED_BITMAP TRUE)
-	set(NEED_DLOPEN TRUE)
-	set(NEED_SCALE TRUE)
-endif()
-
-if(SDL2_INCLUDE_DIRS)
-	list(APPEND SOURCE sdl_con.c)
-	list(APPEND SOURCE sdlfuncs.c)
-	set(NEED_SCALE TRUE)
-	if(WIN32)
-		list(APPEND SOURCE SDL_win32_main.c)
-	endif()
-	if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
-		list(APPEND SOURCE SDLMain.m)
-	endif()
-	set(NEED_BITMAP TRUE)
-	set(NEED_DLOPEN TRUE)
-endif()
-
-if(NEED_BITMAP)
-	list(APPEND SOURCE bitmap_con.c)
-endif()
-
-if(NEED_SCALE)
-	list(APPEND SOURCE scale.c)
-endif()
-
-add_library(ciolib OBJECT ${SOURCE})
-target_include_directories(ciolib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
-if(CURSES_FOUND)
-	if(${CMAKE_SYSTEM_NAME} MATCHES "(Free|Open|Net)BSD")
-		list(APPEND SOURCE curs_cio.c)
-		set(USE_CURSES_ANYWAY TRUE)
-	endif()
-endif()
-
-if(X11_FOUND)
-	target_include_directories(ciolib PRIVATE ${X11_INCLUDE_DIR})
-else()
-	target_compile_definitions(ciolib PRIVATE NO_X)
-endif()
-
-if(SDL2_INCLUDE_DIRS)
-	target_include_directories(ciolib PUBLIC ${SDL2_INCLUDE_DIRS})
-	set(WITH_SDL TRUE PARENT_SCOPE)
-endif()
-
-if(NOT WIN32)
-	target_link_libraries(ciolib pthread)
-endif()
-
-if(USE_CURSES_ANYWAY)
-	if(CURSES_FOUND)
-		if (CURSES_HAVE_NCURSES_NCURSES_H)
-			target_compile_definitions(ciolib PRIVATE DEBIAN_HATES_YOU)
-		elseif(CURSES_HAVE_NCURSES_H)
-			target_compile_definitions(ciolib PRIVATE N_CURSES_LIB)
-		endif()
-		target_link_libraries(ciolib ${NCURSES_LIBRARIES})
-	else()
-		target_link_libraries(ciolib ${CURSES_NCURSES_LIBRARY})
-		target_link_libraries(ciolib ${CURSES_TINFO_LIBRARY_NAME})
-	endif()
-endif()
-
-CHECK_FUNCTION_EXISTS(vasprintf HAVE_VASPRINTF) 
-if(HAVE_VASPRINTF)
-	target_compile_definitions(ciolib PRIVATE HAVE_VASPRINTF)
-endif()
-target_link_libraries(ciolib hash encode xpdev)
diff --git a/ciolib/CVS/Entries b/ciolib/CVS/Entries
deleted file mode 100644
index 1cdbe4100a30bb1c644a396ec10539316d65922e..0000000000000000000000000000000000000000
--- a/ciolib/CVS/Entries
+++ /dev/null
@@ -1,3 +0,0 @@
-/conio.dsp/1.15/Thu Jun  1 21:57:02 2006//
-/conio_sdl.dsp/1.1/Thu Oct 11 06:30:16 2007//
-D
diff --git a/ciolib/CVS/Repository b/ciolib/CVS/Repository
deleted file mode 100644
index 88f933e283e7658742d29f7326f3c5f223962280..0000000000000000000000000000000000000000
--- a/ciolib/CVS/Repository
+++ /dev/null
@@ -1 +0,0 @@
-src/conio
diff --git a/ciolib/CVS/Root b/ciolib/CVS/Root
deleted file mode 100644
index 008bd82c7aed529de99eded0875165f6284f0ec3..0000000000000000000000000000000000000000
--- a/ciolib/CVS/Root
+++ /dev/null
@@ -1 +0,0 @@
-:pserver:deuce@cvs.synchro.net:/cvsroot/sbbs
diff --git a/ciolib/CVS/Template b/ciolib/CVS/Template
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/ciolib/OverhaulNotes.txt b/ciolib/OverhaulNotes.txt
deleted file mode 100644
index 2822c71f6a9bb922d43f814db5c54ed061e875ac..0000000000000000000000000000000000000000
--- a/ciolib/OverhaulNotes.txt
+++ /dev/null
@@ -1,113 +0,0 @@
-1)  NO GLOBALS (ESCDELAY etc will be in the struct with accessors)
-2)  An init function that returns a struct with a bunch of function pointers in
-    it.
-3)  UIFC will need to have the ability for the ciolib struct to be passed to
-    it.
-4)  Will support multiple independent windows.
-5)  There will be a compatability library for JUST conio stuff.
-6)  Any advanced features not in the conio API will not be present.
-7)  Unicode (UTF-8) support... likely X11 first, followed by Curses, SDL and
-    Win32.
-8)  ANSI mode may never get proper unicode support... or at least not until
-    everything else works.
-9)  Unicode support will support GR access of the C1 set.  Most importantly,
-    this means CSI (\x9b).  This is actually somewhat silly since it will take
-    two bytes regardless, but if UCS-2 or something gets added in the future,
-    it may make a difference, and there's no reason to show control codes.
-10) Greatly expanded attribute sets, and in UTF-8 mode there will be no
-    hackiness.  The great bright/bold debate will rage on though... possibly a
-    new set/reset mode will be added to control it.
-11) Double-height/Double-width/Double-size modes.  As is tradition, all the
-    cells covered by the glyph must be the same character and attributes.  This
-    opens a whole can of worms regarding how further updates work etc.  I'll
-    strive to keep it sane and compatible, which may be impossible.
-12) A Unicode cell will potentially have multiple codepoints "in" it.
-13) We need a way to specify the initial mode.
-
-Some sort of state checkpoint thing... you "save" the checkpoint, and send that
-ID back and you get the same state returned.
-
-Stack and state save thing
-
-For CONIOng:
-Layers:
-0  - Solid fixed background (doesn't scoll)
-1  - Text area background (scrolls, text area)
-2  - Text area background bitmap (scrolls, text area)
-3  - Text area background pixel (scrolls, text area)
-4  - Bitmap background (doesn't scroll)
-5  - Pixel background (doesn't scroll)
-6  - Text area foreground (scrolls, text area)
-7  - Text area foreground bitmap (scrolls, text area)
-8  - Text area foreground pixel (scrolls, text area)
-9  - Bitmap foreground (doesn't scroll)
-10 - Pixel foreground layer (doesn't scroll)
-
-Layer Attributes:
-Layer 0:  "colour"
-Layer 1:  <none>
-Layer 2:  <none>
-Layer 3:  "hidden"
-Layer 4:  <none>
-Layer 5:  "hidden"
-Layer 6:  <none>
-Layer 7:  <none>
-Layer 8:  "hidden"
-Layer 9:  <none>
-Layer 10: "hidden"
-
-A text area can be defined as having a given width and height with the
-top-left corner positioned at any pixel location.  Text areas use a fixed
-width font, and have multiple planes... text background, background bitmap,
-background pixels, text foreground, foreground bitmap, foreground pixels
-It will have the following attributes:
-Fonts
-Codepage
-Tab stops
-Cursor position
-Auto-wrap
-Blink enabled
-Cursor vidible
-Palette definition
-Foreground visible
-Foreground bitmaps visible
-Foreground pixels visible
-Background visible
-Background bitmaps visible
-Background pixels visible
-Z-index
-"Current" cell attributes (see below)
-
-Each character cell will have the following attributes:
-Codepoints (array)
-Foreground colour
-Background colour
-Font
-Flags
-- Fast Blink
-- Slow Blink
-- Bold
-- Italic
-- Negative
-- Concealed
-- Underline
-- Overstrike
-- Double underline
-- Double overstrike
-- Double-wide
-- Double-high
-- Superscript
-- Subscript
-
-Bitmap layers contain zero or more bitmaps (likely WebP, maybe others)
-which have a stacking order in the layer. Attributes:
-position
-hidden
-paused (not animated)
-Z-index
-
-Pixel layers are simply an array of pixels that may be directly
-manipulated.  No attributes are planned.
-
-For the bitmap and pixel layers associated with a text area, they will
-scroll with the text in that area.
diff --git a/ciolib/SDLMain.h b/ciolib/SDLMain.h
deleted file mode 100644
index 4683df57a5e61fc41b189e67245f4a0a32d7552d..0000000000000000000000000000000000000000
--- a/ciolib/SDLMain.h
+++ /dev/null
@@ -1,11 +0,0 @@
-/*   SDLMain.m - main entry point for our Cocoa-ized SDL app
-       Initial Version: Darrell Walisser <dwaliss1@purdue.edu>
-       Non-NIB-Code & other changes: Max Horn <max@quendi.de>
-
-    Feel free to customize this file to suit your needs
-*/
-
-#import <Cocoa/Cocoa.h>
-
-@interface SDLMain : NSObject
-@end
diff --git a/ciolib/SDLMain.m b/ciolib/SDLMain.m
deleted file mode 100644
index f9c6394b012da9a7758380695bca74321ce92d06..0000000000000000000000000000000000000000
--- a/ciolib/SDLMain.m
+++ /dev/null
@@ -1,387 +0,0 @@
-/*   SDLMain.m - main entry point for our Cocoa-ized SDL app
-       Initial Version: Darrell Walisser <dwaliss1@purdue.edu>
-       Non-NIB-Code & other changes: Max Horn <max@quendi.de>
-
-    Feel free to customize this file to suit your needs
-*/
-
-#include "SDL.h"
-#include "SDLMain.h"
-#include <sys/param.h> /* for MAXPATHLEN */
-#include <unistd.h>
-
-/* For some reaon, Apple removed setAppleMenu from the headers in 10.4,
- but the method still is there and works. To avoid warnings, we declare
- it ourselves here. */
-@interface NSApplication(SDL_Missing_Methods)
-- (void)setAppleMenu:(NSMenu *)menu;
-@end
-
-/* Use this flag to determine whether we use SDLMain.nib or not */
-#define		SDL_USE_NIB_FILE	0
-
-/* Use this flag to determine whether we use CPS (docking) or not */
-#define		SDL_USE_CPS		1
-#ifdef SDL_USE_CPS
-/* Portions of CPS.h */
-typedef struct CPSProcessSerNum
-{
-	UInt32		lo;
-	UInt32		hi;
-} CPSProcessSerNum;
-
-extern OSErr	CPSGetCurrentProcess( CPSProcessSerNum *psn);
-extern OSErr 	CPSEnableForegroundOperation( CPSProcessSerNum *psn, UInt32 _arg2, UInt32 _arg3, UInt32 _arg4, UInt32 _arg5);
-extern OSErr	CPSSetFrontProcess( CPSProcessSerNum *psn);
-
-#endif /* SDL_USE_CPS */
-
-static int    gArgc;
-static char  **gArgv;
-static BOOL   gFinderLaunch;
-static BOOL   gCalledAppMainline = FALSE;
-
-static NSString *getApplicationName(void)
-{
-    const NSDictionary *dict;
-    NSString *appName = 0;
-
-    /* Determine the application name */
-    dict = (const NSDictionary *)CFBundleGetInfoDictionary(CFBundleGetMainBundle());
-    if (dict)
-        appName = [dict objectForKey: @"CFBundleName"];
-    
-    if (![appName length])
-        appName = [[NSProcessInfo processInfo] processName];
-
-    return appName;
-}
-
-#if SDL_USE_NIB_FILE
-/* A helper category for NSString */
-@interface NSString (ReplaceSubString)
-- (NSString *)stringByReplacingRange:(NSRange)aRange with:(NSString *)aString;
-@end
-#endif
-
-@interface NSApplication (SDLApplication)
-@end
-
-@implementation NSApplication (SDLApplication)
-/* Invoked from the Quit menu item */
-- (void)terminate:(id)sender
-{
-    /* Post a SDL_QUIT event */
-    SDL_Event event;
-    event.type = SDL_QUIT;
-    SDL_PushEvent(&event);
-}
-@end
-
-/* The main class of the application, the application's delegate */
-@implementation SDLMain
-
-/* Set the working directory to the .app's parent directory */
-- (void) setupWorkingDirectory:(BOOL)shouldChdir
-{
-    if (shouldChdir)
-    {
-        char parentdir[MAXPATHLEN];
-        CFURLRef url = CFBundleCopyBundleURL(CFBundleGetMainBundle());
-        CFURLRef url2 = CFURLCreateCopyDeletingLastPathComponent(0, url);
-        if (CFURLGetFileSystemRepresentation(url2, 1, (UInt8 *)parentdir, MAXPATHLEN)) {
-            chdir(parentdir);   /* chdir to the binary app's parent */
-        }
-        CFRelease(url);
-        CFRelease(url2);
-    }
-}
-
-#if SDL_USE_NIB_FILE
-
-/* Fix menu to contain the real app name instead of "SDL App" */
-- (void)fixMenu:(NSMenu *)aMenu withAppName:(NSString *)appName
-{
-    NSRange aRange;
-    NSEnumerator *enumerator;
-    NSMenuItem *menuItem;
-
-    aRange = [[aMenu title] rangeOfString:@"SDL App"];
-    if (aRange.length != 0)
-        [aMenu setTitle: [[aMenu title] stringByReplacingRange:aRange with:appName]];
-
-    enumerator = [[aMenu itemArray] objectEnumerator];
-    while ((menuItem = [enumerator nextObject]))
-    {
-        aRange = [[menuItem title] rangeOfString:@"SDL App"];
-        if (aRange.length != 0)
-            [menuItem setTitle: [[menuItem title] stringByReplacingRange:aRange with:appName]];
-        if ([menuItem hasSubmenu])
-            [self fixMenu:[menuItem submenu] withAppName:appName];
-    }
-}
-
-#else
-
-static void setApplicationMenu(void)
-{
-    /* warning: this code is very odd */
-    NSMenu *appleMenu;
-    NSMenuItem *menuItem;
-    NSString *title;
-    NSString *appName;
-    
-    appName = getApplicationName();
-    appleMenu = [[NSMenu alloc] initWithTitle:@""];
-    
-    /* Add menu items */
-    title = [@"About " stringByAppendingString:appName];
-    [appleMenu addItemWithTitle:title action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""];
-
-    [appleMenu addItem:[NSMenuItem separatorItem]];
-
-    title = [@"Hide " stringByAppendingString:appName];
-    [appleMenu addItemWithTitle:title action:@selector(hide:) keyEquivalent:@""];
-
-    menuItem = (NSMenuItem *)[appleMenu addItemWithTitle:@"Hide Others" action:@selector(hideOtherApplications:) keyEquivalent:@""];
-    [menuItem setKeyEquivalentModifierMask:(NSAlternateKeyMask|NSCommandKeyMask)];
-
-    [appleMenu addItemWithTitle:@"Show All" action:@selector(unhideAllApplications:) keyEquivalent:@""];
-
-    [appleMenu addItem:[NSMenuItem separatorItem]];
-
-    title = [@"Quit " stringByAppendingString:appName];
-    [appleMenu addItemWithTitle:title action:@selector(terminate:) keyEquivalent:@""];
-
-    
-    /* Put menu into the menubar */
-    menuItem = [[NSMenuItem alloc] initWithTitle:@"" action:nil keyEquivalent:@""];
-    [menuItem setSubmenu:appleMenu];
-    [[NSApp mainMenu] addItem:menuItem];
-
-    /* Tell the application object that this is now the application menu */
-    [NSApp setAppleMenu:appleMenu];
-
-    /* Finally give up our references to the objects */
-    [appleMenu release];
-    [menuItem release];
-}
-
-/* Create a window menu */
-static void setupWindowMenu(void)
-{
-    NSMenu      *windowMenu;
-    NSMenuItem  *windowMenuItem;
-    NSMenuItem  *menuItem;
-
-    windowMenu = [[NSMenu alloc] initWithTitle:@"Window"];
-    
-    /* "Minimize" item */
-    menuItem = [[NSMenuItem alloc] initWithTitle:@"Minimize" action:@selector(performMiniaturize:) keyEquivalent:@""];
-    [windowMenu addItem:menuItem];
-    [menuItem release];
-    
-    /* Put menu into the menubar */
-    windowMenuItem = [[NSMenuItem alloc] initWithTitle:@"Window" action:nil keyEquivalent:@""];
-    [windowMenuItem setSubmenu:windowMenu];
-    [[NSApp mainMenu] addItem:windowMenuItem];
-    
-    /* Tell the application object that this is now the window menu */
-    [NSApp setWindowsMenu:windowMenu];
-
-    /* Finally give up our references to the objects */
-    [windowMenu release];
-    [windowMenuItem release];
-}
-
-/* Replacement for NSApplicationMain */
-static void CustomApplicationMain (int argc, char **argv)
-{
-    NSAutoreleasePool	*pool = [[NSAutoreleasePool alloc] init];
-    SDLMain				*sdlMain;
-
-    /* If there's no Window Server (ie: remote headless), go in dry. */
-    if (_CGSDefaultConnection() == NULL) {
-        XPDEV_main(argc, argv, environ);
-        return;
-    }
-
-    /* Ensure the application object is initialised */
-    [NSApplication sharedApplication];
-    
-#ifdef SDL_USE_CPS
-    {
-        CPSProcessSerNum PSN;
-        /* Tell the dock about us */
-        if (!CPSGetCurrentProcess(&PSN))
-            if (!CPSEnableForegroundOperation(&PSN,0x03,0x3C,0x2C,0x1103))
-                if (!CPSSetFrontProcess(&PSN))
-                    [NSApplication sharedApplication];
-    }
-#endif /* SDL_USE_CPS */
-
-    /* Set up the menubar */
-    [NSApp setMainMenu:[[NSMenu alloc] init]];
-    setApplicationMenu();
-    setupWindowMenu();
-
-    /* Create SDLMain and make it the app delegate */
-    sdlMain = [[SDLMain alloc] init];
-    [NSApp setDelegate:sdlMain];
-    
-    /* Start the main event loop */
-    [NSApp run];
-    
-    [sdlMain release];
-    [pool release];
-}
-
-#endif
-
-
-/*
- * Catch document open requests...this lets us notice files when the app
- *  was launched by double-clicking a document, or when a document was
- *  dragged/dropped on the app's icon. You need to have a
- *  CFBundleDocumentsType section in your Info.plist to get this message,
- *  apparently.
- *
- * Files are added to gArgv, so to the app, they'll look like command line
- *  arguments. Previously, apps launched from the finder had nothing but
- *  an argv[0].
- *
- * This message may be received multiple times to open several docs on launch.
- *
- * This message is ignored once the app's mainline has been called.
- */
-- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename
-{
-    const char *temparg;
-    size_t arglen;
-    char *arg;
-    char **newargv;
-
-    if (!gFinderLaunch)  /* MacOS is passing command line args. */
-        return FALSE;
-
-    if (gCalledAppMainline)  /* app has started, ignore this document. */
-        return FALSE;
-
-    temparg = [filename UTF8String];
-    arglen = SDL_strlen(temparg) + 1;
-    arg = (char *) SDL_malloc(arglen);
-    if (arg == NULL)
-        return FALSE;
-
-    newargv = (char **) realloc(gArgv, sizeof (char *) * (gArgc + 2));
-    if (newargv == NULL)
-    {
-        SDL_free(arg);
-        return FALSE;
-    }
-    gArgv = newargv;
-
-    SDL_strlcpy(arg, temparg, arglen);
-    gArgv[gArgc++] = arg;
-    gArgv[gArgc] = NULL;
-    return TRUE;
-}
-
-extern char **environ;
-/* Called when the internal event loop has just started running */
-- (void) applicationDidFinishLaunching: (NSNotification *) note
-{
-    int status;
-
-    /* Set the working directory to the .app's parent directory */
-    [self setupWorkingDirectory:gFinderLaunch];
-
-#if SDL_USE_NIB_FILE
-    /* Set the main menu to contain the real app name instead of "SDL App" */
-    [self fixMenu:[NSApp mainMenu] withAppName:getApplicationName()];
-#endif
-
-    /* Hand off to main application code */
-    gCalledAppMainline = TRUE;
-    status = SDL_main_env (gArgc, gArgv, environ);
-
-    /* We're done, thank you for playing */
-    exit(status);
-}
-@end
-
-
-@implementation NSString (ReplaceSubString)
-
-- (NSString *)stringByReplacingRange:(NSRange)aRange with:(NSString *)aString
-{
-    unsigned int bufferSize;
-    unsigned int selfLen = [self length];
-    unsigned int aStringLen = [aString length];
-    unichar *buffer;
-    NSRange localRange;
-    NSString *result;
-
-    bufferSize = selfLen + aStringLen - aRange.length;
-    buffer = (unichar *)NSAllocateMemoryPages(bufferSize*sizeof(unichar));
-    
-    /* Get first part into buffer */
-    localRange.location = 0;
-    localRange.length = aRange.location;
-    [self getCharacters:buffer range:localRange];
-    
-    /* Get middle part into buffer */
-    localRange.location = 0;
-    localRange.length = aStringLen;
-    [aString getCharacters:(buffer+aRange.location) range:localRange];
-     
-    /* Get last part into buffer */
-    localRange.location = aRange.location + aRange.length;
-    localRange.length = selfLen - localRange.location;
-    [self getCharacters:(buffer+aRange.location+aStringLen) range:localRange];
-    
-    /* Build output string */
-    result = [NSString stringWithCharacters:buffer length:bufferSize];
-    
-    NSDeallocateMemoryPages(buffer, bufferSize);
-    
-    return result;
-}
-
-@end
-
-
-
-#ifdef main
-#  undef main
-#endif
-
-
-/* Main entry point to executable - should *not* be SDL_main! */
-int main (int argc, char **argv)
-{
-    /* Copy the arguments into a global variable */
-    /* This is passed if we are launched by double-clicking */
-    if ( argc >= 2 && strncmp (argv[1], "-psn", 4) == 0 ) {
-        gArgv = (char **) SDL_malloc(sizeof (char *) * 2);
-        gArgv[0] = argv[0];
-        gArgv[1] = NULL;
-        gArgc = 1;
-        gFinderLaunch = YES;
-    } else {
-        int i;
-        gArgc = argc;
-        gArgv = (char **) SDL_malloc(sizeof (char *) * (argc+1));
-        for (i = 0; i <= argc; i++)
-            gArgv[i] = argv[i];
-        gFinderLaunch = NO;
-    }
-
-#if SDL_USE_NIB_FILE
-    NSApplicationMain (argc, argv);
-#else
-    CustomApplicationMain (argc, argv);
-#endif
-    return 0;
-}
-
diff --git a/ciolib/SDL_win32_main.c b/ciolib/SDL_win32_main.c
deleted file mode 100644
index 96f87f245a5378b395da1b5f2da8693a19a29476..0000000000000000000000000000000000000000
--- a/ciolib/SDL_win32_main.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
-    SDL_main.c, placed in the public domain by Sam Lantinga  4/13/98
-
-    The WinMain function -- calls your program's main() function
-*/
-
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
-#include <stdlib.h>
-
-#include <windows.h>
-#include <malloc.h>			/* For _alloca() */
-
-#define DIR_SEPERATOR TEXT("/")
-#include <direct.h>
-
-#include "ciolib.h"			/* ciolib_appname */
-
-/* Parse a command line buffer into arguments */
-static int ParseCommandLine(char *cmdline, char **argv)
-{
-	char *bufp;
-	int argc;
-
-	argc = 0;
-	for ( bufp = cmdline; *bufp; ) {
-		/* Skip leading whitespace */
-		while ( isspace(*bufp) ) {
-			++bufp;
-		}
-		/* Skip over argument */
-		if ( *bufp == '"' ) {
-			++bufp;
-			if ( *bufp ) {
-				if ( argv ) {
-					argv[argc] = bufp;
-				}
-				++argc;
-			}
-			/* Skip over word */
-			while ( *bufp && (*bufp != '"') ) {
-				++bufp;
-			}
-		} else {
-			if ( *bufp ) {
-				if ( argv ) {
-					argv[argc] = bufp;
-				}
-				++argc;
-			}
-			/* Skip over word */
-			while ( *bufp && ! isspace(*bufp) ) {
-				++bufp;
-			}
-		}
-		if ( *bufp ) {
-			if ( argv ) {
-				*bufp = '\0';
-			}
-			++bufp;
-		}
-	}
-	if ( argv ) {
-		argv[argc] = NULL;
-	}
-	return(argc);
-}
-
-extern int CIOLIB_main(int argc, char **argv);
-
-/* This is where execution begins [console apps] */
-static int console_main(int argc, char *argv[], char **env)
-{
-	int n;
-	char *bufp, *appname;
-
-	/* Get the class name from argv[0] */
-	appname = argv[0];
-	if ( (bufp=strrchr(argv[0], '\\')) != NULL ) {
-		appname = bufp+1;
-	} else
-	if ( (bufp=strrchr(argv[0], '/')) != NULL ) {
-		appname = bufp+1;
-	}
-
-	if ( (bufp=strrchr(appname, '.')) == NULL )
-		n = strlen(appname);
-	else
-		n = (bufp-appname);
-
-	bufp = (char *)alloca(n+1);
-	if ( bufp == NULL ) {
-		return 1;
-	}
-	strncpy(bufp, appname, n);
-	bufp[n] = '\0';
-	ciolib_appname = bufp;
-
-	/* Run the application main() code */
-	n=CIOLIB_main(argc, argv);
-
-	/* Exit cleanly, calling atexit() functions */
-	exit(n);
-
-	/* Hush little compiler, don't you cry... */
-	return(n);
-}
-
-/* This is where execution begins [windowed apps] */
-int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int sw)
-{
-	HINSTANCE handle;
-	char **argv;
-	int argc;
-	char *cmdline;
-	char *bufp;
-
-	/* Start up DDHELP.EXE before opening any files, so DDHELP doesn't
-	   keep them open.  This is a hack.. hopefully it will be fixed 
-	   someday.  DDHELP.EXE starts up the first time DDRAW.DLL is loaded.
-	 */
-	handle = LoadLibrary(TEXT("DDRAW.DLL"));
-	if ( handle != NULL ) {
-		FreeLibrary(handle);
-	}
-
-	/* Grab the command line (use alloca() on Windows) */
-	bufp = GetCommandLine();
-	cmdline = (char *)alloca(strlen(bufp)+1);
-	if ( cmdline == NULL ) {
-		return 1;
-	}
-	strcpy(cmdline, bufp);
-
-	/* Parse it into argv and argc */
-	argc = ParseCommandLine(cmdline, NULL);
-	argv = (char **)alloca((argc+1)*(sizeof *argv));
-	if ( argv == NULL ) {
-		return 1;
-	}
-	ParseCommandLine(cmdline, argv);
-
-	/* Run the main program (after a little SDL initialization) */
-	return(console_main(argc, argv, _environ));
-}
diff --git a/ciolib/allfonts.c b/ciolib/allfonts.c
deleted file mode 100644
index f2d6a5452fa3898abb004efbf3405f108f27cc4f..0000000000000000000000000000000000000000
--- a/ciolib/allfonts.c
+++ /dev/null
@@ -1,23825 +0,0 @@
-#include <stdio.h>		/* NULL */
-
-#include "ciolib.h"
-
-#ifdef NO_FONTS
-CIOLIBEXPORT struct conio_font_data_struct conio_fontdata[257] = {
-	{NULL, NULL, NULL, "Codepage 437 English", CIOLIB_CP437},
-	{NULL, NULL, NULL, "Codepage 1251 Cyrillic, (swiss)", CIOLIB_CP1251},
-	{NULL, NULL, NULL, "Russian koi8-r", CIOLIB_KOI8_R},
-	{NULL, NULL, NULL, "ISO-8859-2 Central European", CIOLIB_ISO_8859_2},
-	{NULL, NULL, NULL, "ISO-8859-4 Baltic wide (VGA 9bit mapped)", CIOLIB_ISO_8859_4},
-	{NULL, NULL, NULL, "Codepage 866 (c) Russian", CIOLIB_CP866M},
-	{NULL, NULL, NULL, "ISO-8859-9 Turkish", CIOLIB_ISO_8859_9},
-	{NULL, NULL, NULL, "haik8 codepage (use only with armscii8 screenmap)", CIOLIB_HAIK8},
-	{NULL, NULL, NULL, "ISO-8859-8 Hebrew", CIOLIB_ISO_8859_8},
-	{NULL, NULL, NULL, "Ukrainian font koi8-u", CIOLIB_KOI8_U},
-	{NULL, NULL, NULL, "ISO-8859-15 West European, (thin)", CIOLIB_ISO_8859_15},
-	{NULL, NULL, NULL, "ISO-8859-4 Baltic (VGA 9bit mapped)", CIOLIB_ISO_8859_4},
-	{NULL, NULL, NULL, "Russian koi8-r (b)", CIOLIB_KOI8_R},
-	{NULL, NULL, NULL, "ISO-8859-4 Baltic wide", CIOLIB_ISO_8859_4},
-	{NULL, NULL, NULL, "ISO-8859-5 Cyrillic", CIOLIB_ISO_8859_5},
-	{NULL, NULL, NULL, "ARMSCII-8 Character set", CIOLIB_ARMSCII8},
-	{NULL, NULL, NULL, "ISO-8859-15 West European", CIOLIB_ISO_8859_15},
-	{NULL, NULL, NULL, "Codepage 850 Multilingual Latin I, (thin)", CIOLIB_CP850},
-	{NULL, NULL, NULL, "Codepage 850 Multilingual Latin I", CIOLIB_CP850},
-	{NULL, NULL, NULL, "Codepage 865 Norwegian, (thin)", CIOLIB_CP865},
-	{NULL, NULL, NULL, "Codepage 1251 Cyrillic", CIOLIB_CP1251},
-	{NULL, NULL, NULL, "ISO-8859-7 Greek", CIOLIB_ISO_8859_7},
-	{NULL, NULL, NULL, "Russian koi8-r (c)", CIOLIB_KOI8_R},
-	{NULL, NULL, NULL, "ISO-8859-4 Baltic", CIOLIB_ISO_8859_4},
-	{NULL, NULL, NULL, "ISO-8859-1 West European", CIOLIB_ISO_8859_1},
-	{NULL, NULL, NULL, "Codepage 866 Russian", CIOLIB_CP866M2},
-	{NULL, NULL, NULL, "Codepage 437 English, (thin)", CIOLIB_CP437},
-	{NULL, NULL, NULL, "Codepage 866 (b) Russian", CIOLIB_CP866M2},
-	{NULL, NULL, NULL, "Codepage 865 Norwegian", CIOLIB_CP865},
-	{NULL, NULL, NULL, "Ukrainian font cp866u", CIOLIB_CP866U},
-	{NULL, NULL, NULL, "ISO-8859-1 West European, (thin)", CIOLIB_ISO_8859_1},
-	{NULL, NULL, NULL, "Codepage 1131 Belarusian, (swiss)", CIOLIB_CP1131},
-	{NULL, NULL, NULL, "Commodore 64 (UPPER)", CIOLIB_PETSCIIU},
-	{NULL, NULL, NULL, "Commodore 64 (Lower)", CIOLIB_PETSCIIL},
-	{NULL, NULL, NULL, "Commodore 128 (UPPER)", CIOLIB_PETSCIIU},
-	{NULL, NULL, NULL, "Commodore 128 (Lower)", CIOLIB_PETSCIIL},
-	{NULL, NULL, NULL, "Atari", CIOLIB_ATASCII},
-	{NULL, NULL, NULL, "P0T NOoDLE (Amiga)", CIOLIB_ISO_8859_1},
-	{NULL, NULL, NULL, "mO'sOul (Amiga)", CIOLIB_ISO_8859_1},
-	{NULL, NULL, NULL , "MicroKnight Plus (Amiga)", CIOLIB_ISO_8859_1},
-	{NULL, NULL, NULL, "Topaz Plus (Amiga)", CIOLIB_ISO_8859_1},
-	{NULL, NULL, NULL, "MicroKnight (Amiga)", CIOLIB_ISO_8859_1},
-	{NULL, NULL, NULL, "Topaz (Amiga)", CIOLIB_ISO_8859_1}
-};
-#else
-CIOLIBEXPORT struct conio_font_data_struct conio_fontdata[257] = {
-	 {"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7e\x81\xa5\x81\x81\xbd\x99\x81\x81\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7e\xff\xdb\xff\xff\xc3\xe7\xff\xff\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\xe7\xe7\xe7\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\xff\xff\x7e\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff\xff\xff"
-		"\x00\x00\x1e\x0e\x1a\x32\x78\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\x66\x66\x66\x3c\x18\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x3f\x33\x3f\x30\x30\x30\x30\x70\xf0\xe0\x00\x00\x00\x00"
-		"\x00\x00\x7f\x63\x7f\x63\x63\x63\x63\x67\xe7\xe6\xc0\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\xdb\x3c\xe7\x3c\xdb\x18\x18\x00\x00\x00\x00"
-		"\x00\x80\xc0\xe0\xf0\xf8\xfe\xf8\xf0\xe0\xc0\x80\x00\x00\x00\x00"
-		"\x00\x02\x06\x0e\x1e\x3e\xfe\x3e\x1e\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x66\x00\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x1b\x00\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x0c\xfe\x0c\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x60\xfe\x60\x30\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc0\xc0\xc0\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x28\x6c\xfe\x6c\x28\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xd6\xd6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x6c\xc6\xc6\xc6\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x0c\x06\x7c\x00\x00"
-		"\x00\x00\xcc\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xcc\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x38\x6c\x38\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x3c\x66\x60\x60\x66\x3c\x0c\x06\x3c\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x66\x00\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x18\x3c\x66\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\xc6\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x38\x6c\x38\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x18\x30\x60\x00\xfe\x66\x60\x7c\x60\x60\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\x76\x36\x7e\xd8\xd8\x6e\x00\x00\x00\x00"
-		"\x00\x00\x3e\x6c\xcc\xcc\xfe\xcc\xcc\xcc\xcc\xce\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x30\x78\xcc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\x78\x00"
-		"\x00\xc6\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x18\x18\x3c\x66\x60\x60\x60\x66\x3c\x18\x18\x00\x00\x00\x00"
-		"\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xe6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x3c\x18\x7e\x18\x7e\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\xf8\xcc\xcc\xf8\xc4\xcc\xde\xcc\xcc\xcc\xc6\x00\x00\x00\x00"
-		"\x00\x0e\x1b\x18\x18\x18\x7e\x18\x18\x18\x18\x18\xd8\x70\x00\x00"
-		"\x00\x18\x30\x60\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x76\xdc\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x3c\x6c\x6c\x3e\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x30\x30\x00\x30\x30\x60\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xc0\xc0\xc0\xc0\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\x06\x06\x06\x00\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xc2\xc6\xcc\x18\x30\x60\xdc\x86\x0c\x18\x3e\x00\x00"
-		"\x00\xc0\xc0\xc2\xc6\xcc\x18\x30\x66\xce\x9e\x3e\x06\x06\x00\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x18\x3c\x3c\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x36\x6c\xd8\x6c\x36\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd8\x6c\x36\x6c\xd8\x00\x00\x00\x00\x00\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\xd8\xd8\xd8\xdc\x76\x00\x00\x00\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xd8\xcc\xc6\xc6\xc6\xcc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\x6c\x6c\x6c\x6c\x6c\x6c\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\xfe\xc6\x60\x30\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xd8\xd8\xd8\xd8\xd8\x70\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x7c\x60\x60\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x76\xdc\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7e\x18\x3c\x66\x66\x66\x3c\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xc6\x6c\x6c\x6c\x6c\xee\x00\x00\x00\x00"
-		"\x00\x00\x1e\x30\x18\x0c\x3e\x66\x66\x66\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xdb\xdb\xdb\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x03\x06\x7e\xdb\xdb\xf3\x7e\x60\xc0\x00\x00\x00\x00"
-		"\x00\x00\x1c\x30\x60\x60\x7c\x60\x60\x60\x30\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\x00\x00\xfe\x00\x00\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\xff\x00\x00\x00\x00"
-		"\x00\x00\x00\x30\x18\x0c\x06\x0c\x18\x30\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x60\x30\x18\x0c\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x0e\x1b\x1b\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xd8\xd8\xd8\x70\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\xec\x6c\x6c\x3c\x1c\x00\x00\x00\x00"
-		"\x00\xd8\x6c\x6c\x6c\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7e\x81\xa5\x81\x81\xbd\x99\x81\x7e\x00\x00\x00"
-		"\x00\x00\x7e\xff\xdb\xff\xff\xc3\xe7\xff\x7e\x00\x00\x00"
-		"\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\xe7\xe7\xe7\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\xff\xff\x7e\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff\xff"
-		"\x00\x00\x1e\x0e\x1a\x32\x78\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x18\x7e\x18\x18\x00\x00\x00"
-		"\x00\x00\x3f\x33\x3f\x30\x30\x30\x70\xf0\xe0\x00\x00\x00"
-		"\x00\x00\x7f\x63\x7f\x63\x63\x63\x67\xe7\xe6\xc0\x00\x00"
-		"\x00\x00\x18\x18\xdb\x3c\xe7\x3c\xdb\x18\x18\x00\x00\x00"
-		"\x00\x00\x80\xc0\xe0\xf8\xfe\xf8\xe0\xc0\x80\x00\x00\x00"
-		"\x00\x00\x02\x06\x0e\x3e\xfe\x3e\x0e\x06\x02\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x00\x66\x66\x00\x00\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x7e\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x0c\xfe\x0c\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x30\x60\xfe\x60\x30\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xc0\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x28\x6c\xfe\x6c\x28\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x86\xc6\x7c\x18\x18\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x66\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xce\xde\xf6\xe6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x0c\x78\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\x66\x3a\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\xe6\x66\x6c\x6c\x78\x6c\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xfe\x7c\x6c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x38\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x8c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xfe\x6c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x66\xfe\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x6c\xc6\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc2\x66\x3c\x0c\x06\x7c\x00"
-		"\x00\x00\xcc\xcc\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\xcc\xcc\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x38\x6c\x38\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x3c\x66\x60\x66\x3c\x0c\x06\x3c\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xcc\xcc\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x66\x66\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x18\x3c\x66\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\xc6\xc6\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\x00\x00\x00"
-		"\x38\x6c\x38\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\x00\x00\x00"
-		"\x18\x30\x60\x00\xfe\x66\x60\x7c\x60\x66\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\xcc\x76\x36\x7e\xd8\xd8\x6e\x00\x00\x00"
-		"\x00\x00\x3e\x6c\xcc\xcc\xfe\xcc\xcc\xcc\xce\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x30\x78\xcc\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\x78\x00"
-		"\x00\xc6\xc6\x38\x6c\xc6\xc6\xc6\xc6\x6c\x38\x00\x00\x00"
-		"\x00\xc6\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x18\x18\x3c\x66\x60\x60\x66\x3c\x18\x18\x00\x00\x00"
-		"\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\xe6\xfc\x00\x00\x00"
-		"\x00\x00\x66\x66\x3c\x18\x7e\x18\x7e\x18\x18\x00\x00\x00"
-		"\x00\xf8\xcc\xcc\xf8\xc4\xcc\xde\xcc\xcc\xc6\x00\x00\x00"
-		"\x00\x0e\x1b\x18\x18\x18\x7e\x18\x18\x18\x18\xd8\x70\x00"
-		"\x00\x18\x30\x60\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\xdc\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x76\xdc\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\x00\x00\x00"
-		"\x00\x3c\x6c\x6c\x3e\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x7c\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x30\x30\x00\x30\x30\x60\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\x06\x06\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xc6\xcc\xd8\x30\x60\xdc\x86\x0c\x18\x3e\x00"
-		"\x00\xc0\xc0\xc6\xcc\xd8\x30\x66\xce\x9e\x3e\x06\x06\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x3c\x3c\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x36\x6c\xd8\x6c\x36\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xd8\x6c\x36\x6c\xd8\x00\x00\x00\x00\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\xd8\xd8\xdc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\xc6\xfc\xc6\xc6\xfc\xc0\xc0\x40\x00"
-		"\x00\x00\xfe\xc6\xc6\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\x6c\x6c\x6c\x6c\x6c\x6c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x60\x30\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xd8\xd8\xd8\xd8\x70\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x7c\x60\x60\xc0\x00\x00"
-		"\x00\x00\x00\x00\x76\xdc\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x7e\x18\x3c\x66\x66\x66\x3c\x18\x7e\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\x6c\x38\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xc6\x6c\x6c\x6c\xee\x00\x00\x00"
-		"\x00\x00\x1e\x30\x18\x0c\x3e\x66\x66\x66\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xdb\xdb\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x03\x06\x7e\xdb\xdb\xf3\x7e\x60\xc0\x00\x00\x00"
-		"\x00\x00\x1c\x30\x60\x60\x7c\x60\x60\x30\x1c\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xfe\x00\x00\xfe\x00\x00\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\xff\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x06\x0c\x18\x30\x00\x7e\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x60\x30\x18\x0c\x00\x7e\x00\x00\x00"
-		"\x00\x00\x0e\x1b\x1b\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xd8\xd8\x70\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\xec\x6c\x3c\x1c\x00\x00\x00"
-		"\x00\xd8\x6c\x6c\x6c\x6c\x6c\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x81\xa5\x81\xbd\x99\x81\x7e"
-		"\x7e\xff\xdb\xff\xc3\xe7\xff\x7e"
-		"\x6c\xfe\xfe\xfe\x7c\x38\x10\x00"
-		"\x10\x38\x7c\xfe\x7c\x38\x10\x00"
-		"\x38\x7c\x38\xfe\xfe\x7c\x38\x7c"
-		"\x10\x10\x38\x7c\xfe\x7c\x38\x7c"
-		"\x00\x00\x18\x3c\x3c\x18\x00\x00"
-		"\xff\xff\xe7\xc3\xc3\xe7\xff\xff"
-		"\x00\x3c\x66\x42\x42\x66\x3c\x00"
-		"\xff\xc3\x99\xbd\xbd\x99\xc3\xff"
-		"\x0f\x07\x0f\x7d\xcc\xcc\xcc\x78"
-		"\x3c\x66\x66\x66\x3c\x18\x7e\x18"
-		"\x3f\x33\x3f\x30\x30\x70\xf0\xe0"
-		"\x7f\x63\x7f\x63\x63\x67\xe6\xc0"
-		"\x99\x5a\x3c\xe7\xe7\x3c\x5a\x99"
-		"\x80\xe0\xf8\xfe\xf8\xe0\x80\x00"
-		"\x02\x0e\x3e\xfe\x3e\x0e\x02\x00"
-		"\x18\x3c\x7e\x18\x18\x7e\x3c\x18"
-		"\x66\x66\x66\x66\x66\x00\x66\x00"
-		"\x7f\xdb\xdb\x7b\x1b\x1b\x1b\x00"
-		"\x3e\x63\x38\x6c\x6c\x38\xcc\x78"
-		"\x00\x00\x00\x00\x7e\x7e\x7e\x00"
-		"\x18\x3c\x7e\x18\x7e\x3c\x18\xff"
-		"\x18\x3c\x7e\x18\x18\x18\x18\x00"
-		"\x18\x18\x18\x18\x7e\x3c\x18\x00"
-		"\x00\x18\x0c\xfe\x0c\x18\x00\x00"
-		"\x00\x30\x60\xfe\x60\x30\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xfe\x00\x00"
-		"\x00\x24\x66\xff\x66\x24\x00\x00"
-		"\x00\x18\x3c\x7e\xff\xff\x00\x00"
-		"\x00\xff\xff\x7e\x3c\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x78\x78\x30\x30\x00\x30\x00"
-		"\x6c\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x30\x7c\xc0\x78\x0c\xf8\x30\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x60\x60\xc0\x00\x00\x00\x00\x00"
-		"\x18\x30\x60\x60\x60\x30\x18\x00"
-		"\x60\x30\x18\x18\x18\x30\x60\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x30\x30\xfc\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x60"
-		"\x00\x00\x00\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x7c\xc6\xce\xde\xf6\xe6\x7c\x00"
-		"\x30\x70\x30\x30\x30\x30\xfc\x00"
-		"\x78\xcc\x0c\x38\x60\xcc\xfc\x00"
-		"\x78\xcc\x0c\x38\x0c\xcc\x78\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\xfc\xc0\xf8\x0c\x0c\xcc\x78\x00"
-		"\x38\x60\xc0\xf8\xcc\xcc\x78\x00"
-		"\xfc\xcc\x0c\x18\x30\x30\x30\x00"
-		"\x78\xcc\xcc\x78\xcc\xcc\x78\x00"
-		"\x78\xcc\xcc\x7c\x0c\x18\x70\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x60"
-		"\x18\x30\x60\xc0\x60\x30\x18\x00"
-		"\x00\x00\xfc\x00\x00\xfc\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x78\xcc\x0c\x18\x30\x00\x30\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x30\x78\xcc\xcc\xfc\xcc\xcc\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3e\x00"
-		"\xcc\xcc\xcc\xfc\xcc\xcc\xcc\x00"
-		"\x78\x30\x30\x30\x30\x30\x78\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x38\x6c\xc6\xc6\xc6\x6c\x38\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x78\xcc\xcc\xcc\xdc\x78\x1c\x00"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x78\xcc\xe0\x70\x1c\xcc\x78\x00"
-		"\xfc\xb4\x30\x30\x30\x30\x78\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xfc\x00"
-		"\xcc\xcc\xcc\xcc\xcc\x78\x30\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc6\xc6\x6c\x38\x38\x6c\xc6\x00"
-		"\xcc\xcc\xcc\x78\x30\x30\x78\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x78\x60\x60\x60\x60\x60\x78\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x78\x18\x18\x18\x18\x18\x78\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x30\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\xe0\x60\x60\x7c\x66\x66\xdc\x00"
-		"\x00\x00\x78\xcc\xc0\xcc\x78\x00"
-		"\x1c\x0c\x0c\x7c\xcc\xcc\x76\x00"
-		"\x00\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x38\x6c\x60\xf0\x60\x60\xf0\x00"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\xf8"
-		"\xe0\x60\x6c\x76\x66\x66\xe6\x00"
-		"\x30\x00\x70\x30\x30\x30\x78\x00"
-		"\x0c\x00\x0c\x0c\x0c\xcc\xcc\x78"
-		"\xe0\x60\x66\x6c\x78\x6c\xe6\x00"
-		"\x70\x30\x30\x30\x30\x30\x78\x00"
-		"\x00\x00\xcc\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x78\x00"
-		"\x00\x00\xdc\x66\x66\x7c\x60\xf0"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\x1e"
-		"\x00\x00\xdc\x76\x66\x60\xf0\x00"
-		"\x00\x00\x7c\xc0\x78\x0c\xf8\x00"
-		"\x10\x30\x7c\x30\x30\x34\x18\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x76\x00"
-		"\x00\x00\xcc\xcc\xcc\x78\x30\x00"
-		"\x00\x00\xc6\xd6\xfe\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\xcc\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\xfc\x98\x30\x64\xfc\x00"
-		"\x1c\x30\x30\xe0\x30\x30\x1c\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\xe0\x30\x30\x1c\x30\x30\xe0\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\xc6\xc6\xfe\x00"
-		"\x78\xcc\xc0\xcc\x78\x18\x0c\x78"
-		"\x00\xcc\x00\xcc\xcc\xcc\x7e\x00"
-		"\x1c\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x7e\xc3\x3c\x06\x3e\x66\x3f\x00"
-		"\xcc\x00\x78\x0c\x7c\xcc\x7e\x00"
-		"\xe0\x00\x78\x0c\x7c\xcc\x7e\x00"
-		"\x30\x30\x78\x0c\x7c\xcc\x7e\x00"
-		"\x00\x00\x78\xc0\xc0\x78\x0c\x38"
-		"\x7e\xc3\x3c\x66\x7e\x60\x3c\x00"
-		"\xcc\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\xe0\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\xcc\x00\x70\x30\x30\x30\x78\x00"
-		"\x7c\xc6\x38\x18\x18\x18\x3c\x00"
-		"\xe0\x00\x70\x30\x30\x30\x78\x00"
-		"\xc6\x38\x6c\xc6\xfe\xc6\xc6\x00"
-		"\x30\x30\x00\x78\xcc\xfc\xcc\x00"
-		"\x1c\x00\xfc\x60\x78\x60\xfc\x00"
-		"\x00\x00\x7f\x0c\x7f\xcc\x7f\x00"
-		"\x3e\x6c\xcc\xfe\xcc\xcc\xce\x00"
-		"\x78\xcc\x00\x78\xcc\xcc\x78\x00"
-		"\x00\xcc\x00\x78\xcc\xcc\x78\x00"
-		"\x00\xe0\x00\x78\xcc\xcc\x78\x00"
-		"\x78\xcc\x00\xcc\xcc\xcc\x7e\x00"
-		"\x00\xe0\x00\xcc\xcc\xcc\x7e\x00"
-		"\x00\xcc\x00\xcc\xcc\x7c\x0c\xf8"
-		"\xc3\x18\x3c\x66\x66\x3c\x18\x00"
-		"\xcc\x00\xcc\xcc\xcc\xcc\x78\x00"
-		"\x18\x18\x7e\xc0\xc0\x7e\x18\x18"
-		"\x38\x6c\x64\xf0\x60\xe6\xfc\x00"
-		"\xcc\xcc\x78\xfc\x30\xfc\x30\x30"
-		"\xf8\xcc\xcc\xfa\xc6\xcf\xc6\xc7"
-		"\x0e\x1b\x18\x3c\x18\x18\xd8\x70"
-		"\x1c\x00\x78\x0c\x7c\xcc\x7e\x00"
-		"\x38\x00\x70\x30\x30\x30\x78\x00"
-		"\x00\x1c\x00\x78\xcc\xcc\x78\x00"
-		"\x00\x1c\x00\xcc\xcc\xcc\x7e\x00"
-		"\x00\xf8\x00\xf8\xcc\xcc\xcc\x00"
-		"\xfc\x00\xcc\xec\xfc\xdc\xcc\x00"
-		"\x3c\x6c\x6c\x3e\x00\x7e\x00\x00"
-		"\x38\x6c\x6c\x38\x00\x7c\x00\x00"
-		"\x30\x00\x30\x60\xc0\xcc\x78\x00"
-		"\x00\x00\x00\xfc\xc0\xc0\x00\x00"
-		"\x00\x00\x00\xfc\x0c\x0c\x00\x00"
-		"\xc3\xc6\xcc\xde\x33\x66\xcc\x0f"
-		"\xc3\xc6\xcc\xdb\x37\x6f\xcf\x03"
-		"\x18\x18\x00\x18\x18\x18\x18\x00"
-		"\x00\x33\x66\xcc\x66\x33\x00\x00"
-		"\x00\xcc\x66\x33\x66\xcc\x00\x00"
-		"\x22\x88\x22\x88\x22\x88\x22\x88"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdb\x77\xdb\xee\xdb\x77\xdb\xee"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\xf8\x18\x18\x18"
-		"\x18\x18\xf8\x18\xf8\x18\x18\x18"
-		"\x36\x36\x36\x36\xf6\x36\x36\x36"
-		"\x00\x00\x00\x00\xfe\x36\x36\x36"
-		"\x00\x00\xf8\x18\xf8\x18\x18\x18"
-		"\x36\x36\xf6\x06\xf6\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\xfe\x06\xf6\x36\x36\x36"
-		"\x36\x36\xf6\x06\xfe\x00\x00\x00"
-		"\x36\x36\x36\x36\xfe\x00\x00\x00"
-		"\x18\x18\xf8\x18\xf8\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\x18\x18\x18"
-		"\x18\x18\x18\x18\x1f\x00\x00\x00"
-		"\x18\x18\x18\x18\xff\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\x18\x18\x18"
-		"\x18\x18\x18\x18\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\xff\x00\x00\x00"
-		"\x18\x18\x18\x18\xff\x18\x18\x18"
-		"\x18\x18\x1f\x18\x1f\x18\x18\x18"
-		"\x36\x36\x36\x36\x37\x36\x36\x36"
-		"\x36\x36\x37\x30\x3f\x00\x00\x00"
-		"\x00\x00\x3f\x30\x37\x36\x36\x36"
-		"\x36\x36\xf7\x00\xff\x00\x00\x00"
-		"\x00\x00\xff\x00\xf7\x36\x36\x36"
-		"\x36\x36\x37\x30\x37\x36\x36\x36"
-		"\x00\x00\xff\x00\xff\x00\x00\x00"
-		"\x36\x36\xf7\x00\xf7\x36\x36\x36"
-		"\x18\x18\xff\x00\xff\x00\x00\x00"
-		"\x36\x36\x36\x36\xff\x00\x00\x00"
-		"\x00\x00\xff\x00\xff\x18\x18\x18"
-		"\x00\x00\x00\x00\xff\x36\x36\x36"
-		"\x36\x36\x36\x36\x3f\x00\x00\x00"
-		"\x18\x18\x1f\x18\x1f\x00\x00\x00"
-		"\x00\x00\x1f\x18\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\x3f\x36\x36\x36"
-		"\x36\x36\x36\x36\xff\x36\x36\x36"
-		"\x18\x18\xff\x18\xff\x18\x18\x18"
-		"\x18\x18\x18\x18\xf8\x00\x00\x00"
-		"\x00\x00\x00\x00\x1f\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\xc8\xdc\x76\x00"
-		"\x00\x78\xcc\xf8\xcc\xf8\xc0\xc0"
-		"\x00\xfc\xcc\xc0\xc0\xc0\xc0\x00"
-		"\x00\xfe\x6c\x6c\x6c\x6c\x6c\x00"
-		"\xfc\xcc\x60\x30\x60\xcc\xfc\x00"
-		"\x00\x00\x7e\xd8\xd8\xd8\x70\x00"
-		"\x00\x66\x66\x66\x66\x7c\x60\xc0"
-		"\x00\x76\xdc\x18\x18\x18\x18\x00"
-		"\xfc\x30\x78\xcc\xcc\x78\x30\xfc"
-		"\x38\x6c\xc6\xfe\xc6\x6c\x38\x00"
-		"\x38\x6c\xc6\xc6\x6c\x6c\xee\x00"
-		"\x1c\x30\x18\x7c\xcc\xcc\x78\x00"
-		"\x00\x00\x7e\xdb\xdb\x7e\x00\x00"
-		"\x06\x0c\x7e\xdb\xdb\x7e\x60\xc0"
-		"\x38\x60\xc0\xf8\xc0\x60\x38\x00"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\x00"
-		"\x00\xfc\x00\xfc\x00\xfc\x00\x00"
-		"\x30\x30\xfc\x30\x30\x00\xfc\x00"
-		"\x60\x30\x18\x30\x60\x00\xfc\x00"
-		"\x18\x30\x60\x30\x18\x00\xfc\x00"
-		"\x0e\x1b\x1b\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\xd8\xd8\x70"
-		"\x30\x30\x00\xfc\x00\x30\x30\x00"
-		"\x00\x76\xdc\x00\x76\xdc\x00\x00"
-		"\x38\x6c\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x00\x00\x00"
-		"\x0f\x0c\x0c\x0c\xec\x6c\x3c\x1c"
-		"\x78\x6c\x6c\x6c\x6c\x00\x00\x00"
-		"\x70\x18\x30\x60\x78\x00\x00\x00"
-		"\x00\x00\x3c\x3c\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "Codepage 437 English", CIOLIB_CP437}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x81\xe7\xa5\x99\x81\x99\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x7e\xff\x99\xdb\xe7\xff\xe7\x7e\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x38\x38\x10\xd6\xfe\xd6\x10\x38\x7c\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x7c\xfe\xfe\x54\x10\x38\x7c\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff\xff\xff"
-		"\x00\x00\x1e\x0e\x1a\x30\x78\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x18\x7e\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x20\x30\x38\x3c\x36\x36\x30\x70\xf0\xf0\x60\x00\x00\x00\x00"
-		"\x00\x00\x3e\x22\x3e\x22\x22\x22\x22\x26\x6e\xe4\x40\x00\x00\x00"
-		"\x00\x00\x00\x10\x92\x54\x28\xc6\x28\x54\x92\x10\x00\x00\x00\x00"
-		"\x00\x00\x40\x60\x70\x78\x7c\x7e\x7c\x78\x70\x60\x40\x00\x00\x00"
-		"\x00\x00\x02\x06\x0e\x1e\x3e\x7e\x3e\x1e\x0e\x06\x02\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x7e\x3c\x18\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x66\x00\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x7e\xf4\xf4\xf4\x74\x14\x14\x14\x14\x14\x00\x00\x00\x00"
-		"\x00\x1e\x30\x78\xdc\xce\xe7\x73\x3b\x1e\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\xff\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x0c\x06\xff\x06\x0c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x60\xff\x60\x30\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x33\x66\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x24\x66\xff\x66\x24\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x3c\x3c\x7e\x7e\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\xff\x7e\x7e\x3c\x3c\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x77\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x6c\x00\x00\x00"
-		"\x00\x10\x7c\xd6\xd0\xd0\x70\x38\x1c\x16\x16\xd6\x7c\x10\x00\x00"
-		"\x00\x00\xc6\xc6\x0c\x0c\x18\x30\x30\x60\x60\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x70\xd6\xdc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x1c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x00\x00"
-		"\x00\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\xff\x3c\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x03\x03\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xd6\xd6\xd6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x18\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x0c\x18\x30\x60\xc0\xc0\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x0c\x0c\xcc\xcc\xcc\xcc\xfe\x0c\x0c\x0c\x0c\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x3c\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfe\x06\x06\x0c\x0c\x18\x18\x30\x30\x30\x30\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\x7e\x06\x06\x0c\x18\x70\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x1c\x18\x30\x00\x00\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\xc0\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xc0\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\xc0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x0c\x18\x30\x30\x00\x30\x30\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xde\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00"
-		"\x00\x00\x38\x38\x38\x6c\x6c\x6c\x7c\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x66\x3c\x00\x00\x00"
-		"\x00\x00\xf8\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xcc\xf8\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xc0\xc0\xc0\xc0\xc0\xfe\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc0\xc0\xc0\xce\xc6\xc6\xc6\x66\x3c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x1e\x06\x06\x06\x06\x06\x06\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xcc\xd8\xf0\xe0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xfe\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xf6\xde\x7c\x0c\x06\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xd8\xcc\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc0\xc0\x60\x38\x0c\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x6c\x6c\x6c\x38\x38\x10\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xd6\xd6\xfe\xee\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\xfe\x06\x0c\x0c\x18\x18\x30\x60\x60\xc0\xfe\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x06\x03\x03\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x00\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x00\x00\x70\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\x06\x7e\xc6\xc6\xc6\x7e\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x06\x06\x06\x06\x7e\xc6\xc6\xc6\xc6\xc6\x7e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x3c\x66\x60\x60\xf0\x60\x60\x60\x60\x60\x60\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\x00\xc0\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x00\x06\x06\x06\x06\x06\x06\x06\xc6\xc6\x7c"
-		"\x00\x00\x00\xc0\xc0\xc0\xc6\xcc\xd8\xf0\xd8\xcc\xc6\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xec\xfe\xfe\xd6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0"
-		"\x00\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06"
-		"\x00\x00\x00\x00\x00\x00\xfc\xc6\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc0\x70\x1c\x06\x06\x7c\x00\x00\x00"
-		"\x00\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x30\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xd6\xd6\xfe\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\x0c\x18\x30\x60\xfe\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x30\x60\x30\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0c\x06\x0c\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x6c\xc6\xc6\xc6\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\xfc\x60\x60\x60\x7e\x63\x63\x63\x63\x67\x6c\x00\x00\x00"
-		"\x18\x30\x00\xfe\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x18\x30\x00\x00"
-		"\x00\x00\x00\x18\x30\x00\xfc\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x66\xcc\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\xdb\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x7e\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x1e\x32\x30\x7e\x30\x7e\x30\x30\x32\x1e\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x0c\x0c\x18\x30\x30\x60\x60\xdb\xdb\x00\x00\x00"
-		"\x00\x00\x38\x78\xd8\xd8\xde\xdb\xdb\xdb\xdb\xdb\xde\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x0c\x18\x30\x30\x18\x0c\x00\x00\x00\x00\x00"
-		"\x00\x00\xd8\xd8\xd8\xd8\xd8\xfe\xdb\xdb\xdb\xdb\xde\x00\x00\x00"
-		"\x18\x30\x00\xc6\xcc\xd8\xf0\xe0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\x60\x60\x60\x7e\x63\x63\x63\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x38\x38\x00"
-		"\x00\x00\x60\x60\xf8\x60\x7c\x66\x66\x66\x66\x66\x66\x0c\x18\x00"
-		"\x00\x00\x0c\x18\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x1c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x33\x66\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x77\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xf1\x5b\x55\x51\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x38\x58\xd8\xde\xdb\xdb\xde\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x60\x30\x18\x18\x30\x60\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xd8\xd8\xd8\xfe\xdb\xdb\xde\x00\x00\x00"
-		"\x00\x00\x00\x18\x30\x00\xc6\xcc\xd8\xf0\xd8\xcc\xc6\x00\x00\x00"
-		"\x00\x00\x60\x60\xf8\x60\x7c\x66\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x38\x38\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x44\x38\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x44\x38\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\x00\x1e\x06\x06\x06\x06\x06\x06\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x66\x66\x3c\x66\x66\x66\x66\x3c\x66\x66\x00\x00\x00"
-		"\x06\x06\xfe\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x1e\x30\x78\xdc\xce\xe7\x73\x3b\x1e\x0c\x78\x00\x00\x00\x00"
-		"\x6c\x6c\x00\xfe\xc0\xc0\xfc\xc0\xc0\xc0\xc0\xc0\xfe\x00\x00\x00"
-		"\x00\x00\x3e\x63\x5d\x51\x51\x5d\x63\x3e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc0\xc0\xc0\xfc\xc0\xc0\xc0\x66\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x36\x6c\xd8\xd8\x6c\x36\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\x06\x06\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x3e\x63\x5d\x55\x59\x55\x63\x3e\x00\x00\x00\x00\x00\x00"
-		"\x66\x66\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\xff\x00\x00\x00\x00"
-		"\x18\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x0c\x0c\xfc\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x7c\x60\x60\xc0\x00"
-		"\x00\x00\x7e\xf4\xf4\xf4\x74\x14\x14\x14\x14\x14\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc8\xc8\xea\xed\xdd\xda\xc8\xcf\xc8\xc8\xc8\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xf8\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd8\x6c\x36\x36\x6c\xd8\x00\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x00\x06\x06\x06\x06\x06\x06\x06\xc6\xc6\x7c"
-		"\x00\x00\x7c\xc6\xc0\xc0\x60\x38\x0c\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc0\x70\x1c\x06\x06\x7c\x00\x00\x00"
-		"\x00\x00\x66\x66\x00\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x38\x38\x38\x6c\x6c\x6c\x7c\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x66\x7e\xc3\x66\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xc0\xc0\xc0\xc0\xc0\xfe\x00\x00\x00"
-		"\x00\x00\xd6\xd6\x54\x7c\x38\x38\x38\x7c\x54\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xce\xde\xfe\xf6\xe6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x44\x38\xc6\xce\xde\xfe\xf6\xe6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xcc\xd8\xf0\xe0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x38\x38\x38\x6c\x6c\x6c\x6c\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x66\x3c\x00\x00\x00"
-		"\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\x7c\x10\x10\x10\x10\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x03\x06\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x06\x06\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x03\x06\x00"
-		"\x00\x00\xf0\xb0\x30\x30\x3c\x36\x36\x36\x36\x36\x3c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xf6\xde\xde\xde\xde\xde\xf6\x00\x00\x00"
-		"\x00\x00\x30\x30\x30\x30\x3c\x36\x36\x36\x36\x36\x3c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3e\x06\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\xb6\xb6\x9c\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\x66\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\x06\x7e\xc6\xc6\xc6\x7e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfc\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfc\xc6\xc6\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfc\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x3c\x66\x66\x66\x66\x66\xff\xc3\x66\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xd6\x7c\x38\x38\x38\x7c\xd6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\x06\x3c\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x44\x38\x00\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xcc\xd8\xf0\xd8\xcc\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x10\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\x00\x00\x00\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x10\x10"
-		"\x00\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x03\x06\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\x7e\x06\x06\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x03\x06\x00"
-		"\x00\x00\x00\x00\x00\x00\xf0\xb0\x30\x3c\x36\x36\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfa\xce\xce\xfa\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x60\x60\x60\x7c\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\x06\x3e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xcc\xd6\xd6\xf6\xd6\xd6\xcc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00"
-	, NULL, NULL, "Codepage 1251 Cyrillic, (swiss)", CIOLIB_CP1251}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xd6\xd6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x00\x00\x0e\x1b\x1b\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\xec\x6c\x6c\x3c\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x60\x30\x18\x0c\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x30\x18\x0c\x06\x0c\x18\x30\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xd8\xd8\xd8\x70\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x66\x66\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x7c\x82\xba\xaa\xa2\xa2\xa2\xaa\xba\x82\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x9c\xb6\xb6\xf6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xfe\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x06\x0c\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc2\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xcc\xd8\xf8\xd8\xcc\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x66\x66\x66\x66\x66\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc2\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\x7c\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xfc\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xe6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1c\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xe0\x60\x7c\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x3e\x66\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x02\x06\x04\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x0c\xda\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\x54\x7c\xd6\xd6\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xe6\xb6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x1c\x06\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x78\xcc\x06\x06\x1e\x1e\x06\x06\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\xe0\xe0\x60\x60\x7c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x86\xc6\x7c\x18\x18\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x66\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xce\xde\xf6\xe6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x0c\x78\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\x66\x3a\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\xe6\x66\x6c\x6c\x78\x6c\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xfe\x7c\x6c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x38\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x8c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xfe\x6c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x66\xfe\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x00\x00\x0e\x1b\x1b\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\xec\x6c\x3c\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x60\x30\x18\x0c\x00\x7e\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x06\x0c\x18\x30\x00\x7e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xd8\xd8\x70\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xfc\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x6c\x6c\x00\xfe\xc6\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x7c\x82\xba\xaa\xa2\xa2\xaa\xba\x82\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x9c\xb6\xb6\xf6\xb6\x9c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc0\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xfe\x06\x0c\x00"
-		"\x00\x00\x00\x00\x00\x3c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfc\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\x7c\x10\x38\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc2\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xcc\xf8\xd8\xcc\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x66\x66\x66\x66\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\x7e\x36\x66\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x7c\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\x7c\xd6\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xe6\xb6\xb6\xe6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x1c\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x1e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xe0\x60\x7c\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\x9c\x00\x00\x00"
-		"\x00\x00\x3e\x66\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x02\x06\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x0c\xda\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x82\xc6\xc6\xee\xee\xfe\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\x54\x7c\xd6\xd6\xd6\xd6\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xe6\xb6\xb6\xb6\xb6\xe6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x1c\x06\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x1e\x06\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x00\x00\x00"
-		"\x00\x00\xe0\xe0\x60\x7c\x66\x66\x66\x66\x7c\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x78\x78\x30\x30\x00\x30\x00"
-		"\x6c\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x30\x7c\xc0\x78\x0c\xf8\x30\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x60\x60\xc0\x00\x00\x00\x00\x00"
-		"\x18\x30\x60\x60\x60\x30\x18\x00"
-		"\x60\x30\x18\x18\x18\x30\x60\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x30\x30\xfc\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x60"
-		"\x00\x00\x00\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x7c\xc6\xce\xde\xf6\xe6\x7c\x00"
-		"\x30\x70\x30\x30\x30\x30\xfc\x00"
-		"\x78\xcc\x0c\x38\x60\xcc\xfc\x00"
-		"\x78\xcc\x0c\x38\x0c\xcc\x78\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\xfc\xc0\xf8\x0c\x0c\xcc\x78\x00"
-		"\x38\x60\xc0\xf8\xcc\xcc\x78\x00"
-		"\xfc\xcc\x0c\x18\x30\x30\x30\x00"
-		"\x78\xcc\xcc\x78\xcc\xcc\x78\x00"
-		"\x78\xcc\xcc\x7c\x0c\x18\x70\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x60"
-		"\x18\x30\x60\xc0\x60\x30\x18\x00"
-		"\x00\x00\xfc\x00\x00\xfc\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x78\xcc\x0c\x18\x30\x00\x30\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x30\x78\xcc\xcc\xfc\xcc\xcc\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3e\x00"
-		"\xcc\xcc\xcc\xfc\xcc\xcc\xcc\x00"
-		"\x78\x30\x30\x30\x30\x30\x78\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x38\x6c\xc6\xc6\xc6\x6c\x38\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x78\xcc\xcc\xcc\xdc\x78\x1c\x00"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x78\xcc\xe0\x70\x1c\xcc\x78\x00"
-		"\xfc\xb4\x30\x30\x30\x30\x78\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xfc\x00"
-		"\xcc\xcc\xcc\xcc\xcc\x78\x30\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc6\x44\x6c\x38\x38\x6c\xc6\x00"
-		"\xcc\xcc\xcc\x78\x30\x30\x78\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x78\x60\x60\x60\x60\x60\x78\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x78\x18\x18\x18\x18\x18\x78\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x30\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x7c\x00"
-		"\x60\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x00\x00\x78\xcc\xc0\xcc\x78\x00"
-		"\x0c\x0c\x0c\x7c\xcc\xcc\x7c\x00"
-		"\x00\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x38\x6c\x60\xf0\x60\x60\xf0\x00"
-		"\x00\x00\x7c\xcc\xcc\x7c\x0c\xf8"
-		"\x60\x60\x7c\x66\x66\x66\x66\x00"
-		"\x30\x00\x70\x30\x30\x30\x78\x00"
-		"\x0c\x00\x0c\x0c\x0c\x0c\x6c\x38"
-		"\x60\x60\x66\x6c\x78\x6c\x66\x00"
-		"\x70\x30\x30\x30\x30\x30\x78\x00"
-		"\x00\x00\xcc\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x78\x00"
-		"\x00\x00\x7c\x66\x66\x7c\x60\x60"
-		"\x00\x00\x7c\xcc\xcc\x7c\x0c\x0c"
-		"\x00\x00\xdc\x76\x66\x60\xf0\x00"
-		"\x00\x00\x7c\xc0\x78\x0c\xf8\x00"
-		"\x10\x30\x7c\x30\x30\x34\x18\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x7c\x00"
-		"\x00\x00\xcc\xcc\xcc\x78\x30\x00"
-		"\x00\x00\xc6\xd6\xfe\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\xcc\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\xfc\x98\x30\x64\xfc\x00"
-		"\x1c\x30\x30\xe0\x30\x30\x1c\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\xe0\x30\x30\x1c\x30\x30\xe0\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\xff\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x1f\x18\x18\x18\x18"
-		"\x00\x00\x00\xf8\x18\x18\x18\x18"
-		"\x18\x18\x18\x1f\x00\x00\x00\x00"
-		"\x18\x18\x18\xf8\x00\x00\x00\x00"
-		"\x18\x18\x18\x1f\x18\x18\x18\x18"
-		"\x18\x18\x18\xf8\x18\x18\x18\x18"
-		"\x00\x00\x00\xff\x18\x18\x18\x18"
-		"\x18\x18\x18\xff\x00\x00\x00\x00"
-		"\x18\x18\x18\xff\x18\x18\x18\x18"
-		"\xff\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\xff\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x0e\x1b\x1b\x18\x18\x18\x18\x18"
-		"\x00\x00\x7c\x7c\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\x18\x00\x00\x00"
-		"\x03\x02\x06\x04\xcc\x68\x38\x10"
-		"\x00\x76\xdc\x00\x76\xdc\x00\x00"
-		"\x00\x0c\x18\x30\x60\x30\x18\x0c"
-		"\x00\x30\x18\x0c\x06\x0c\x18\x30"
-		"\x00\x00\x00\x00\x00\x42\x7e\x00"
-		"\x18\x18\x18\x18\x18\xd8\xd8\x70"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00"
-		"\x30\x48\x10\x20\x78\x00\x00\x00"
-		"\x00\x00\x00\x38\x38\x00\x00\x00"
-		"\x00\x18\x18\x00\x7e\x00\x18\x18"
-		"\x00\xff\x00\xff\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x1f\x18\x1f\x18\x18\x18\x18"
-		"\x24\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x00\x00\x00\x3f\x36\x36\x36\x36"
-		"\x00\x3f\x30\x37\x36\x36\x36\x36"
-		"\x00\xf8\x18\xf8\x18\x18\x18\x18"
-		"\x00\x00\x00\xfe\x36\x36\x36\x36"
-		"\x00\xfe\x06\xf6\x36\x36\x36\x36"
-		"\x18\x1f\x18\x1f\x00\x00\x00\x00"
-		"\x36\x36\x36\x3f\x00\x00\x00\x00"
-		"\x36\x37\x30\x3f\x00\x00\x00\x00"
-		"\x18\xf8\x18\xf8\x00\x00\x00\x00"
-		"\x36\x36\x36\xfe\x00\x00\x00\x00"
-		"\x36\xf6\x06\xfe\x00\x00\x00\x00"
-		"\x18\x1f\x18\x1f\x18\x18\x18\x18"
-		"\x36\x36\x36\x37\x36\x36\x36\x36"
-		"\x36\x37\x30\x37\x36\x36\x36\x36"
-		"\x18\xf8\x18\xf8\x18\x18\x18\x18"
-		"\x66\x00\x7e\x60\x7c\x60\x7e\x00"
-		"\x36\x36\x36\xf6\x36\x36\x36\x36"
-		"\x36\xf6\x06\xf6\x36\x36\x36\x36"
-		"\x00\xff\x00\xff\x18\x18\x18\x18"
-		"\x00\x00\x00\xff\x36\x36\x36\x36"
-		"\x00\xff\x00\xf7\x36\x36\x36\x36"
-		"\x18\xff\x00\xff\x00\x00\x00\x00"
-		"\x36\x36\x36\xff\x00\x00\x00\x00"
-		"\x36\xf7\x00\xff\x00\x00\x00\x00"
-		"\x18\xff\x18\xff\x18\x18\x18\x18"
-		"\x36\x36\x36\xff\x36\x36\x36\x36"
-		"\x36\xf7\x00\xf7\x36\x36\x36\x36"
-		"\x3c\x42\x99\xa1\xa1\x99\x42\x3c"
-		"\x00\x00\xce\xdb\xfb\xdb\xce\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\x00\x3c\x60\x3c\x66\x66\x3c\x00"
-		"\x00\x00\x66\x66\x66\x66\x7f\x03"
-		"\x00\x00\x3c\x6c\x6c\x6c\xfe\xc6"
-		"\x00\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x00\x00\x7e\xdb\xdb\x7e\x18\x00"
-		"\x00\x00\x7e\x60\x60\x60\x60\x00"
-		"\x00\x00\x66\x3c\x18\x3c\x66\x00"
-		"\x00\x00\x66\x6e\x7e\x76\x66\x00"
-		"\x00\x18\x66\x6e\x7e\x76\x66\x00"
-		"\x00\x00\x66\x6c\x78\x6c\x66\x00"
-		"\x00\x00\x1e\x36\x66\x66\x66\x00"
-		"\x00\x00\xc6\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\x66\x66\x7e\x66\x66\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00"
-		"\x00\x00\x7e\x66\x66\x66\x66\x00"
-		"\x00\x00\x3e\x66\x3e\x36\x66\x00"
-		"\x00\x00\x7c\x66\x66\x7c\x60\x00"
-		"\x00\x00\x3c\x66\x60\x66\x3c\x00"
-		"\x00\x00\x7e\x18\x18\x18\x18\x00"
-		"\x00\x00\x66\x66\x3e\x06\x3c\x00"
-		"\x00\x00\xdb\x7e\x3c\x7e\xdb\x00"
-		"\x00\x00\x7c\x66\x7c\x66\x7c\x00"
-		"\x00\x00\x60\x60\x7c\x66\x7c\x00"
-		"\x00\x00\xc6\xc6\xf6\xde\xf6\x00"
-		"\x00\x00\x3c\x66\x0c\x66\x3c\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\xff\x00"
-		"\x00\x00\x7c\x06\x3e\x06\x7c\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\xff\x03"
-		"\x00\x00\x66\x66\x3e\x06\x06\x00"
-		"\x00\x00\xe0\x60\x7c\x66\x7c\x00"
-		"\xce\xdb\xdb\xfb\xdb\xdb\xce\x00"
-		"\x1e\x36\x66\x66\x7e\x66\x66\x00"
-		"\x7c\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x66\x66\x66\x66\x66\x66\x7f\x03"
-		"\x38\x6c\x6c\x6c\x6c\x6c\xfe\xc6"
-		"\x7e\x60\x60\x7c\x60\x60\x7e\x00"
-		"\x7e\xdb\xdb\xdb\x7e\x18\x18\x00"
-		"\x7e\x60\x60\x60\x60\x60\x60\x00"
-		"\x66\x66\x3c\x18\x3c\x66\x66\x00"
-		"\x66\x66\x6e\x7e\x76\x66\x66\x00"
-		"\x3c\x66\x6e\x7e\x76\x66\x66\x00"
-		"\x66\x6c\x78\x70\x78\x6c\x66\x00"
-		"\x1e\x36\x66\x66\x66\x66\x66\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\x66\x66\x66\x7e\x66\x66\x66\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3c\x00"
-		"\x7e\x66\x66\x66\x66\x66\x66\x00"
-		"\x3e\x66\x66\x66\x3e\x36\x66\x00"
-		"\x7c\x66\x66\x66\x7c\x60\x60\x00"
-		"\x3c\x66\x60\x60\x60\x66\x3c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\x66\x66\x66\x3e\x06\x66\x3c\x00"
-		"\xdb\xdb\x7e\x3c\x7e\xdb\xdb\x00"
-		"\x7c\x66\x66\x7c\x66\x66\x7c\x00"
-		"\x60\x60\x60\x7c\x66\x66\x7c\x00"
-		"\xc6\xc6\xc6\xf6\xde\xde\xf6\x00"
-		"\x3c\x66\x06\x1c\x06\x66\x3c\x00"
-		"\xdb\xdb\xdb\xdb\xdb\xdb\xff\x00"
-		"\x78\x8c\x06\x3e\x06\x8c\x78\x00"
-		"\xdb\xdb\xdb\xdb\xdb\xdb\xff\x03"
-		"\x66\x66\x66\x3e\x06\x06\x06\x00"
-		"\xe0\x60\x60\x7c\x66\x66\x7c\x00"
-	, "Russian koi8-r", CIOLIB_KOI8_R}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x18\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xd6\xd6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x36\x32\x30\x78\x30\x30\x30\x30\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\x78\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x18\x30\x1e\x00"
-		"\x00\xc6\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xf0\x64\x6c\x78\x70\xe0\xe0\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\x7c\xc6\xc6\xc6\x7c\xc6\x00\x00\x00\x00\x00"
-		"\x00\x1b\xee\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x0c\x18\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x18\x0c\x78\x00"
-		"\x36\x1c\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x0c\x18\x00\xfe\xc6\x8c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x00\xfe\xc6\x8c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x18\x18\x00\xfe\xc6\x8c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x18\x30\x1e\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x60\x3c\x00"
-		"\x00\x00\x38\x1a\x1e\x1c\x18\x38\x78\x58\x18\x3c\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x1b\xee\x60\x60\x60\x60\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x0c\x78\x00"
-		"\x00\x00\x6c\x38\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x18\x0c\x78\x00"
-		"\x6c\x38\x00\x10\x30\x30\xfc\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x36\x6c\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x38\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x0c\x18\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x0c\x18\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x38\x6c\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\xc6\x7c\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\xc6\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xf6\x6c\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x0c\x18\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x0c\x06\x7c\x00"
-		"\x6c\x38\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x0c\x18\x00\xfe\x66\x62\x60\x78\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x18\x30\x1e\x00"
-		"\x00\xc6\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00\x00"
-		"\x6c\x38\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00\x00"
-		"\x0c\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x1c\x36\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x6c\x38\x00\xf8\x6c\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\xf6\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x0c\x18\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x6c\x38\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x0c\x18\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x36\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xc6\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x6c\xc6\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x38\x6c\x38\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x0c\x18\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x36\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x0c\x18\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x18\x0c\x78\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xd8\xcc\xc6\xc6\xc6\xcc\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xc6\x7c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xcc\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe6\x6c\x60\x60\x60\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x18\x0c\x78\x00"
-		"\x00\x00\x6c\x38\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x30\x60\x3c\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x6c\x38\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x6c\x38\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x0c\x0c\x7e\x0c\x3c\x6c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x6c\x38\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x36\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x38\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x38\x6c\x38\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x36\x6c\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xcc\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x18\x0c\x78\x00"
-		"\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x86\xc6\x7c\x18\x18\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x66\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xd6\xd6\xd6\xc6\x6c\x38\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x0c\x78\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\x66\x3a\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\xe6\x66\x6c\x6c\x78\x6c\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x38\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x8c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x1c\x36\x32\x30\x78\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x66\xfe\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xce\x18\x0e\x00"
-		"\x00\xc6\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xf0\x64\x6c\x78\x70\xe0\xe2\x66\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\x7c\xc6\xc6\x7c\xc6\x00\x00\x00\x00"
-		"\x00\x1b\xee\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00"
-		"\x0c\x18\x00\x7c\xc6\xc6\x70\x1c\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0e\xc6\x7c\x00"
-		"\x00\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x00\x7c\xc6\xc6\x70\x1c\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x18\x70\x00"
-		"\x36\x1c\x00\x7e\x7e\x5a\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x0c\x18\x00\xfe\xc6\x8c\x18\x30\x62\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x00\xfe\xc6\x8c\x18\x30\x62\xc6\xfe\x00\x00\x00"
-		"\x18\x18\x00\xfe\xc6\x8c\x18\x30\x62\xc6\xfe\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x30\x1c\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x30\x1c\x00"
-		"\x00\x00\x38\x1a\x1e\x1c\x18\x38\x78\x58\x3c\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x1b\xee\x60\x60\x60\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00\x00"
-		"\x00\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x70\x00"
-		"\x00\x00\x6c\x38\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x70\x1c\xc6\x7c\x18\x70\x00"
-		"\x6c\x38\x00\x10\x30\x30\xfc\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\xfe\xcc\x18\x30\x66\xfe\x00\x00\x00"
-		"\x00\x36\x6c\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x38\x00\xfe\xcc\x18\x30\x66\xfe\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\xfe\xcc\x18\x30\x66\xfe\x00\x00\x00"
-		"\x0c\x18\x00\xfc\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x0c\x18\x00\x10\x38\x6c\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x38\x6c\x00\x10\x38\x6c\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\xc6\x7c\x00\x10\x38\x6c\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\xc6\x00\x10\x38\x6c\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xf6\x6c\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00"
-		"\x0c\x18\x00\x3c\x66\xc2\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x18\x70\x00"
-		"\x6c\x38\x00\x3c\x66\xc2\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x0c\x18\x00\xfe\x66\x62\x78\x68\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x30\x1c\x00"
-		"\x00\xc6\x00\xfe\x66\x62\x78\x68\x62\x66\xfe\x00\x00\x00"
-		"\x6c\x38\x00\xfe\x66\x62\x78\x68\x62\x66\xfe\x00\x00\x00"
-		"\x0c\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x1c\x36\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x6c\x38\x00\xf8\x6c\x66\x66\x66\x66\x6c\xf8\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\xf6\x66\x66\x6c\xf8\x00\x00\x00"
-		"\x0c\x18\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\x00\x00\x00"
-		"\x6c\x38\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\x00\x00\x00"
-		"\x0c\x18\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x36\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\xc6\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x6c\x38\x00\xfc\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x38\x6c\x38\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x0c\x18\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x36\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x0c\x18\x00\x66\x66\x66\x66\x3c\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x0c\x38\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xd8\xcc\xc6\xc6\xcc\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\xdc\x76\x66\x60\x60\xf0\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\xc6\x7c\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\xcc\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\xe6\x6c\x60\x60\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x18\x70\x00"
-		"\x00\x00\x6c\x38\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x30\x1c\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x6c\x38\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x6c\x38\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x0c\x0c\x7e\x0c\x3c\x6c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\xdc\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x6c\x38\x00\xdc\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x36\x6c\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x6c\x38\x00\xdc\x76\x66\x60\x60\xf0\x00\x00\x00"
-		"\x00\x38\x6c\x38\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x6c\xd8\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\xcc\x00\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x36\x1c\x0c\x38\x00"
-		"\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x3c\x3c\x18\x18\x00\x18\x00"
-		"\x6c\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x18\x3e\x60\x3c\x06\x7c\x18\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x18\x18\x30\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x30\x30\x18\x0c\x00"
-		"\x30\x18\x0c\x0c\x0c\x18\x30\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x18\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x30"
-		"\x00\x00\x00\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x7c\xc6\xc6\xd6\xc6\xc6\x7c\x00"
-		"\x18\x38\x18\x18\x18\x18\x7e\x00"
-		"\x3c\x66\x06\x1c\x30\x66\x7e\x00"
-		"\x3c\x66\x06\x1c\x06\x66\x3c\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\x7e\x60\x7c\x06\x06\x66\x3c\x00"
-		"\x1c\x30\x60\x7c\x66\x66\x3c\x00"
-		"\x7e\x66\x06\x0c\x18\x18\x18\x00"
-		"\x3c\x66\x66\x3c\x66\x66\x3c\x00"
-		"\x3c\x66\x66\x3e\x06\x0c\x38\x00"
-		"\x00\x18\x18\x00\x00\x18\x18\x00"
-		"\x00\x18\x18\x00\x00\x18\x18\x30"
-		"\x0c\x18\x30\x60\x30\x18\x0c\x00"
-		"\x00\x00\x7e\x00\x00\x7e\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x3c\x66\x06\x0c\x18\x00\x18\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x18\x3c\x66\x66\x7e\x66\x66\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3e\x00"
-		"\x66\x66\x66\x7e\x66\x66\x66\x00"
-		"\x3c\x18\x18\x18\x18\x18\x3c\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x38\x6c\xc6\xc6\xc6\x6c\x38\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x3c\x66\x66\x66\x6e\x3c\x0e\x00"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x3c\x66\x30\x18\x0c\x66\x3c\x00"
-		"\x7e\x5a\x18\x18\x18\x18\x3c\x00"
-		"\x66\x66\x66\x66\x66\x66\x7e\x00"
-		"\x66\x66\x66\x66\x66\x3c\x18\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc6\x6c\x38\x38\x6c\xc6\xc6\x00"
-		"\x66\x66\x66\x3c\x18\x18\x3c\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x3c\x30\x30\x30\x30\x30\x3c\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x3c\x0c\x0c\x0c\x0c\x0c\x3c\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x30\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\xe0\x60\x60\x7c\x66\x66\xdc\x00"
-		"\x00\x00\x3c\x66\x60\x66\x3c\x00"
-		"\x1c\x0c\x0c\x7c\xcc\xcc\x76\x00"
-		"\x00\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x1c\x36\x30\x78\x30\x30\x78\x00"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\xf8"
-		"\xe0\x60\x6c\x76\x66\x66\xe6\x00"
-		"\x18\x00\x38\x18\x18\x18\x3c\x00"
-		"\x06\x00\x06\x06\x06\x66\x66\x3c"
-		"\xe0\x60\x66\x6c\x78\x6c\xe6\x00"
-		"\x38\x18\x18\x18\x18\x18\x3c\x00"
-		"\x00\x00\xcc\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\x7c\x66\x66\x66\x66\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00"
-		"\x00\x00\xdc\x66\x66\x7c\x60\xf0"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\x1e"
-		"\x00\x00\xdc\x76\x66\x60\xf0\x00"
-		"\x00\x00\x3e\x60\x3c\x06\x7c\x00"
-		"\x10\x30\x7c\x30\x30\x34\x18\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x76\x00"
-		"\x00\x00\x66\x66\x66\x3c\x18\x00"
-		"\x00\x00\xc6\xd6\xfe\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\x66\x66\x66\x3e\x06\x7c"
-		"\x00\x00\x7e\x4c\x18\x32\x7e\x00"
-		"\x0e\x18\x18\x70\x18\x18\x0e\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x00"
-		"\x70\x18\x18\x0e\x18\x18\x70\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x3c\x66\x7e\x66\x6e\x18\x0e"
-		"\xc6\x7c\x00\x00\x00\x00\x00\x00"
-		"\xf0\x68\x78\xf0\xe2\x66\xfe\x00"
-		"\x00\x42\x3c\x66\x66\x3c\x42\x00"
-		"\xfb\x6e\x60\x60\x62\x66\xfe\x00"
-		"\x0c\x18\x7c\xc2\x38\x86\x7c\x00"
-		"\x3c\x66\x38\x6c\x6c\x38\xcc\x78"
-		"\x66\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x7c\xc2\x38\x86\x7c\x00"
-		"\x3c\x66\x30\x18\x0c\x66\x3c\x38"
-		"\x36\x1c\x7e\x5a\x18\x18\x3c\x00"
-		"\x0c\x18\xfe\x86\x18\x62\xfe\x00"
-		"\x00\x00\x00\x7e\x00\x00\x00\x00"
-		"\x6c\x38\xfe\x86\x18\x62\xfe\x00"
-		"\x18\x00\xfe\x86\x18\x62\xfe\x00"
-		"\x38\x6c\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x1c"
-		"\x00\x00\x00\x00\x00\x00\x30\x1c"
-		"\x38\x1a\x1e\x3c\x78\x18\x3c\x00"
-		"\x0c\x18\x00\x00\x00\x00\x00\x00"
-		"\xfb\x6e\x60\x60\x60\x60\xf0\x00"
-		"\x0c\x18\x3c\x40\x38\x04\x78\x00"
-		"\x6c\x38\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x0c\x38"
-		"\x6c\x38\x3c\x40\x38\x04\x78\x00"
-		"\x00\x00\x3e\x60\x3c\x06\x7c\x38"
-		"\x6c\x38\x30\x7c\x30\x34\x18\x00"
-		"\x0c\x18\x00\x7c\x18\x30\x7c\x00"
-		"\x36\x6c\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x00\x7c\x18\x30\x7c\x00"
-		"\x00\x18\x00\x7c\x18\x30\x7c\x00"
-		"\x0c\x18\xfc\xc6\xfc\xcc\xc6\x00"
-		"\x0c\x18\x3c\x66\x7e\x66\x66\x00"
-		"\x1c\x36\x3c\x66\x7e\x66\x66\x00"
-		"\x66\x3c\x3c\x66\x7e\x66\x66\x00"
-		"\x66\x18\x3c\x66\x7e\x66\x66\x00"
-		"\xe6\x6c\x60\x60\x62\x66\xfe\x00"
-		"\x0c\x18\x7c\xc6\xc0\xc6\x7c\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x38"
-		"\x6c\x38\x7c\xc6\xc0\xc6\x7c\x00"
-		"\x0c\x18\xfe\x60\x78\x60\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x1c"
-		"\xc6\x00\xfe\x60\x78\x60\xfe\x00"
-		"\x6c\x38\xfe\x60\x78\x60\xfe\x00"
-		"\x0c\x18\x3c\x18\x18\x18\x3c\x00"
-		"\x1c\x36\x3c\x18\x18\x18\x3c\x00"
-		"\x6c\x38\xfc\x66\x66\x66\xfc\x00"
-		"\xf8\x6c\x66\xf6\x66\x6c\xf8\x00"
-		"\x0c\x18\xe6\xf6\xde\xce\xc6\x00"
-		"\x6c\x38\xe6\xf6\xde\xce\xc6\x00"
-		"\x0c\x18\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x38\x6c\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x36\x6c\x7c\xc6\xc6\xc6\x7c\x00"
-		"\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x00\xc6\x6c\x38\x6c\xc6\x00\x00"
-		"\x6c\x38\xfc\xc6\xfc\xcc\xc6\x00"
-		"\x38\x6c\xf6\xc6\xc6\xc6\x7c\x00"
-		"\x0c\x18\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x36\x6c\xc6\xc6\xc6\xc6\x7c\x00"
-		"\xc6\x00\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x0c\x7e\x66\x66\x3c\x18\x3c\x00"
-		"\x7e\x5a\x18\x18\x18\x18\x3c\x0e"
-		"\x78\xcc\xcc\xd8\xcc\xc6\xcc\x00"
-		"\x0c\x18\xdc\x76\x66\x60\xf0\x00"
-		"\x0c\x18\x78\x0c\x7c\xcc\x76\x00"
-		"\x38\x6c\x78\x0c\x7c\xcc\x76\x00"
-		"\xc6\x7c\x78\x0c\x7c\xcc\x76\x00"
-		"\xcc\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\x73\x36\x30\x30\x30\x30\x78\x00"
-		"\x0c\x18\x00\x3c\x60\x60\x3c\x00"
-		"\x00\x00\x3c\x66\x60\x66\x3c\x38"
-		"\x36\x1c\x00\x3c\x60\x60\x3c\x00"
-		"\x0c\x18\x3c\x66\x7e\x60\x3c\x00"
-		"\x00\x00\x3c\x66\x7e\x60\x3c\x1c"
-		"\x66\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x36\x1c\x3c\x66\x7e\x60\x3c\x00"
-		"\x0c\x18\x38\x18\x18\x18\x3c\x00"
-		"\x1c\x36\x38\x18\x18\x18\x3c\x00"
-		"\x6c\x38\x0c\x0c\x7c\xcc\x76\x00"
-		"\x0c\x3e\x0c\x7c\xcc\xcc\x76\x00"
-		"\x0c\x18\x7c\x66\x66\x66\x66\x00"
-		"\x6c\x38\x7c\x66\x66\x66\x66\x00"
-		"\x0c\x18\x00\x3c\x66\x66\x3c\x00"
-		"\x1c\x36\x00\x3c\x66\x66\x3c\x00"
-		"\x36\x6c\x00\x3c\x66\x66\x3c\x00"
-		"\x66\x00\x3c\x66\x66\x66\x3c\x00"
-		"\x00\x18\x00\x7e\x00\x18\x00\x00"
-		"\x6c\x38\xdc\x76\x66\x60\xf0\x00"
-		"\x30\xcc\x30\xcc\xcc\xcc\x76\x00"
-		"\x18\x30\x00\xcc\xcc\xcc\x76\x00"
-		"\x6c\xd8\x00\xcc\xcc\xcc\x76\x00"
-		"\xcc\x00\xcc\xcc\xcc\xcc\x76\x00"
-		"\x0c\x18\x66\x66\x66\x3e\x06\x7c"
-		"\x10\x30\x7c\x30\x30\x34\x18\x0e"
-		"\x18\x00\x00\x00\x00\x00\x00\x00"
-	, "ISO-8859-2 Central European", CIOLIB_ISO_8859_2}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x3c\x18\x18\x18\x18\x00\x18\x18\x00\x00"
-		"\x00\xee\xee\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x6c\xfe\xfe\x6c\x6c\x6c\xfe\xfe\x6c\x6c\x6c\x00"
-		"\x00\x18\x7e\xdb\xdb\xe8\x78\x3c\x1e\x17\x1b\xdb\xdb\x7e\x18\x18"
-		"\x00\x00\xe6\xa6\xec\x0c\x18\x18\x30\x30\x60\x6e\xca\xce\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x6c\x38\x38\x6d\xcd\xc6\xc6\xcb\x73\x00\x00"
-		"\x00\x38\x38\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x00"
-		"\x00\x00\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x3c\xff\xff\x3c\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x7e\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x38\x18\x30"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x38\x00\x00"
-		"\x00\x00\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x00\x00"
-		"\x00\x00\x7c\xc6\xce\xce\xd6\xd6\xd6\xd6\xe6\xe6\xc6\x7c\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x18\x18\x7e\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\x03\x06\x0c\x18\x30\x60\xc3\xff\x00\x00"
-		"\x00\x00\xfe\xc6\x0c\x18\x3c\x06\x03\x03\x03\xc3\x66\x3c\x00\x00"
-		"\x00\x00\x1c\x1c\x3c\x3c\x6c\x6c\xcc\xcd\xff\x0d\x0c\x1e\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xe6\xc3\x03\x03\xc3\x66\x3c\x00\x00"
-		"\x00\x00\x3c\x66\xc6\xc0\xfc\xe6\xc3\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x0c\x0c\x18\x18\x30\x30\x30\x30\x30\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\x66\x3c\x66\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xc3\xc3\x67\x3f\x03\x63\x66\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x38\x38\x00\x00\x00\x00\x38\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x38\x38\x00\x00\x00\x00\x38\x38\x18\x30"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x7e\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\x03\x06\x0c\x18\x18\x00\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x7e\xc3\xc3\xdf\xdb\xdb\xde\xc0\xc0\x7c\x00\x00"
-		"\x00\x00\x10\x38\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\xfe\x63\x63\x63\x63\x7e\x63\x63\x63\x63\x63\xfe\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xc0\xc0\xc0\xc0\xc3\xc3\x66\x3c\x00\x00"
-		"\x00\x00\xfc\x66\x63\x63\x63\x63\x63\x63\x63\x63\x66\xfc\x00\x00"
-		"\x00\x00\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x61\x63\xff\x00\x00"
-		"\x00\x00\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x60\x60\xf8\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xc0\xc0\xcf\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x0f\x06\x06\x06\x06\x06\x06\x06\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xe3\x63\x66\x66\x6c\x7c\x6c\x66\x66\x63\x63\xe3\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x60\x60\x61\x63\xff\x00\x00"
-		"\x00\x00\xc3\xe7\xff\xff\xdb\xdb\xdb\xc3\xc3\xc3\xc3\xc3\x00\x00"
-		"\x00\x00\xc6\xc6\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x00\x00\xfe\x63\x63\x63\x63\x63\x7e\x60\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xcb\xcf\x7e\x3c\x06\x07"
-		"\x00\x00\xfe\x63\x63\x63\x63\x7e\x6c\x66\x66\x66\x66\xf7\x00\x00"
-		"\x00\x00\x7e\xc3\xc7\xc0\x60\x3c\x06\x03\xe3\xe3\xc3\x7e\x00\x00"
-		"\x00\x00\xff\xdb\x99\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x38\x10\x00\x00"
-		"\x00\x00\xc3\xc3\xc3\xc3\xdb\xdb\xdb\xdb\xdb\xff\x66\x66\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x38\x38\x6c\x6c\xc6\xc6\x00\x00"
-		"\x00\x00\xc3\xc3\xc3\xc3\xe7\x7e\x3c\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xfe\xc6\x8c\x0c\x18\x18\x30\x30\x60\x62\xc6\xfe\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00"
-		"\x00\x00\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x06\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00"
-		"\x00\x00\x18\x3c\x66\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x00\x38\x38\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\xe0\x60\x60\x60\x7e\x63\x63\x63\x63\x63\x63\xde\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x0e\x06\x06\x06\x7e\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x3c\x66\x66\x60\xf0\x60\x60\x60\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7b\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\x00\xe0\x60\x60\x60\x7e\x63\x63\x63\x63\x63\x63\xe3\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78"
-		"\x00\x00\xe0\x60\x60\x60\x66\x66\x6c\x78\x6c\x66\x66\xe6\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xe6\xff\xdb\xdb\xdb\xc3\xc3\xc3\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xde\x63\x63\x63\x63\x63\x63\x7e\x60\xf0"
-		"\x00\x00\x00\x00\x00\x00\x7b\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0f"
-		"\x00\x00\x00\x00\x00\x00\xde\x73\x63\x60\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\x70\x1c\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x30\x30\x30\xfc\x30\x30\x30\x30\x30\x36\x1c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xee\x7c\x38\x10\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc3\xc3\xdb\xdb\xdb\xdb\xff\x66\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xee\x7c\x38\x38\x7c\xee\xc6\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc3\xc3\x66\x66\x3c\x18\x18\x30\x30\xe0"
-		"\x00\x00\x00\x00\x00\x00\xfe\xc6\x0c\x18\x30\x60\xc6\xfe\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x18\x70\x70\x18\x18\x18\x18\x0e\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x18\x1e\x1e\x18\x18\x18\x18\x70\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x7c\x10\x38\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x0c\x18\x20\x38\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x38\x6c\x10\x38\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x76\xdc\x10\x38\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x6c\x6c\x10\x38\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x38\x6c\x38\x00\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x3f\x6c\xcc\xcc\xcc\xff\xcc\xcc\xcc\xcc\xcc\xcf\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x30\x1e"
-		"\x66\x3c\x3c\x66\xc3\xc3\xc0\xc0\xc0\xc0\xc3\xc3\x66\x3c\x00\x00"
-		"\x0e\x18\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x61\x63\xff\x00\x00"
-		"\x00\x00\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x61\x63\xff\x18\x0f"
-		"\x66\x24\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x61\x63\xff\x00\x00"
-		"\x18\x18\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x61\x63\xff\x00\x00"
-		"\x0e\x18\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x3c\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x7e\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xfc\x66\x63\x63\x63\xf3\xf3\x63\x63\x63\x66\xfc\x00\x00"
-		"\x00\x00\xc6\xc6\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\x0c\x78"
-		"\x7e\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x00\x00\xe3\x63\x66\x66\x6c\x7c\x6c\x66\x66\x63\x63\xe3\x06\x3c"
-		"\x3c\x66\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x76\xdc\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x66\x66\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x01\x3d\x66\xc7\xcb\xcb\xdb\xdb\xdb\xd3\xd3\x66\xbc\x80\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x19\x0e"
-		"\x18\x30\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x38\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\xc6\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x76\xdc\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\xfe\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xdc\xc6\xc3\xc3\xc3\xc3\xc6\xcc\xc0\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc3\xff\x00"
-		"\x00\x00\x10\x38\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xce\x18\x0f"
-		"\x00\x00\x00\x00\x00\x00\xe6\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\xfe\x63\x63\x63\x63\x7e\x6c\x66\x66\x66\x66\xf7\x18\xf0"
-		"\x00\x00\x00\x00\x82\xc6\x7c\xc6\xc6\xc6\xc6\x7c\xc6\x82\x00\x00"
-		"\x76\xdc\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x60\x60\x61\x63\xff\x0e\x3c"
-		"\x00\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00"
-		"\x00\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x66\x3c\x7e\xc3\xc7\xc0\x60\x3c\x06\x03\xe3\xe3\xc3\x7e\x00\x00"
-		"\x7e\x00\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x61\x63\xff\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xc0\xc0\xcf\xc3\xc3\xc3\x66\x3c\x0c\x78"
-		"\x00\x00\xff\xdb\x99\x18\x1b\x1e\x3c\x78\xd8\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x6c\x38\xfe\xc6\x8c\x0c\x18\x18\x30\x30\x60\x62\xc6\xfe\x00\x00"
-		"\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x18\x0f"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x1e"
-		"\x00\x00\x00\x00\x00\x00\xde\x73\x63\x60\x60\x60\x60\xf0\x18\xf0"
-		"\x0c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x38\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x0c\x78"
-		"\x00\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x78\x00"
-		"\x00\x00\x00\x6c\x38\x00\x7c\xc6\xc0\x70\x1c\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x7c\x00\x7c\xc6\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x3c\x60\x30\x00\x7b\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\x00\x00\x30\x30\x30\xfc\x30\x3c\x78\xf0\x30\x36\x1c\x00\x00"
-		"\x00\x00\xdc\xfe\xe6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xdc\x00\x00"
-		"\x00\x00\x00\x6c\x38\x00\xfe\xc6\x0c\x18\x30\x60\xc6\xfe\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\xfe\xe6\xc6\xc6\xc6\xc6\xc6\x06\x1c\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x6c\x6c\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x38\x6c\x38\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x6e\x1b\x1b\x7f\xd8\xd8\xd8\x6f\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x18\x3c\x30\x1c"
-		"\x00\x00\x00\x6c\x38\x00\x7c\xc6\xc0\xc0\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x7c\xc6\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc0\xc0\xc6\x7c\x30\x1e"
-		"\x00\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x10\x38\x10\x00\x7c\xc6\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x38\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\x38\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x7c\x00\x38\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x0e\x06\x7f\x06\x7e\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x66\x0c\x78"
-		"\x00\x00\x00\x00\x7c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xe0\x60\x60\x60\x66\x66\x6c\x78\x6c\x66\x66\xe6\x18\xf0"
-		"\x00\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x06\x7c\xce\xde\xd6\xd6\xf6\xe6\x7c\xc0\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x60\x3c"
-		"\x00\x00\x0c\x18\x30\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x6c\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x00\x7c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, NULL, NULL, "ISO-8859-4 Baltic wide (VGA 9bit mapped)", CIOLIB_ISO_8859_4}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7e\x81\xa5\x81\x81\xa5\x99\x81\x81\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7e\xff\xdb\xff\xff\xdb\xe7\xff\xff\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\xe7\xe7\xe7\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\xff\xff\x7e\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff\xff\xff"
-		"\x00\x00\x1e\x06\x0e\x1a\x78\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\x66\x66\x66\x3c\x18\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x3f\x33\x3f\x30\x30\x30\x30\x70\xf0\xe0\x00\x00\x00\x00"
-		"\x00\x00\x7f\x63\x7f\x63\x63\x63\x63\x67\xe7\xe6\xc0\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\xdb\x3c\xe7\x3c\xdb\x18\x18\x00\x00\x00\x00"
-		"\x00\x80\xc0\xe0\xf0\xf8\xfe\xf8\xf0\xe0\xc0\x80\x00\x00\x00\x00"
-		"\x00\x02\x06\x0e\x1e\x3e\xfe\x3e\x1e\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x66\x00\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x1b\x00\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x0c\xfe\x0c\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x60\xfe\x60\x30\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc0\xc0\xc0\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x28\x6c\xfe\x6c\x28\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xd6\xd6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x6c\xc6\xc6\xc6\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x3e\x66\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\x54\x7c\xd6\xd6\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x1c\x06\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x0c\xda\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x02\x06\x04\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\xe0\xe0\x60\x60\x7c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xe6\xb6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x78\xcc\x06\x06\x1e\x1e\x06\x06\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xfe\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xfc\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc2\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\x7c\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1c\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xcc\xd8\xf8\xd8\xcc\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x66\x66\x66\x66\x66\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x10\xfe\x66\x62\x60\x60\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc0\xc0\xe8\xd0\xc0\xc0\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x36\x24\x00\x78\x30\x30\x30\x30\x30\x78\x00\x00\x00\x00"
-		"\x00\x00\x18\x10\x00\x78\x30\x30\x30\x30\x30\x78\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x60\xf0\x60\x6c\x76\x66\x66\x66\x66\xe6\x06\x0c\x30\x00"
-		"\x00\x00\x0c\x08\x00\x3c\x18\x18\x18\x18\x18\x18\x18\xb0\x60\x00"
-		"\x00\x00\x24\x18\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00"
-		"\x00\x00\x00\x00\x02\xfe\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x18\x10\x00\xc6\xcc\xd8\xf8\xd8\xcc\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x10\x10\x38\x00"
-		"\x00\x00\x00\x00\x07\x88\xcb\xab\xa8\xab\x9b\x88\x00\x00\x00\x00"
-		"\x00\x00\x60\xf0\x60\x60\x7c\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\x7c\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xf0\x60\x60\x60\x7c\x66\x66\x66\x66\x66\xe7\x00\x00\x00\x00"
-		"\x0c\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\xb0\x60\x00\x00"
-		"\x00\x60\xf8\x60\x60\x7c\x76\x66\x66\x66\x66\xe7\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x00\x00\x00"
-		"\x6c\x38\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\x6c\x6c\x6c\x6e\x69\x69\x69\x69\xce\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xfe\xc9\xc9\xc9\xc9\xce\x00\x00\x00\x00"
-		"\x0c\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x36\x24\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xfe\xc9\xc9\xce\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x4c\x4c\x4e\x49\x49\xce\x00\x00\x00\x00"
-		"\x00\x00\x18\x10\x00\xfe\xc2\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x62\xc0\xf8\xc0\x62\x3c\x00\x00\x00\x00"
-		"\x02\x06\xfe\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x18\x10\xc6\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc2\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00"
-		"\x00\x00\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x06\x0c\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\x00\x00\x00\xe0\x60\x7c\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xe6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x9c\xb6\xb6\xf6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00\x00"
-		"\x66\x66\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x30\x18\x0c\x06\x0c\x18\x30\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x60\x30\x18\x0c\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x0e\x1b\x1b\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xd8\xd8\xd8\x70\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\xec\x6c\x6c\x3c\x1c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x10\x10\x38\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, NULL, NULL, "Codepage 866 (c) Russian", CIOLIB_CP866M}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xdb\xdb\xc3\xc3\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc3\xe7\xff\xff\xdb\xc3\xc3\xc3\xc3\xc3\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xff\xdb\x99\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\xc3\xc3\xc3\xc3\xc3\xdb\xdb\xff\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\xc3\xc3\x66\x3c\x18\x18\x3c\x66\xc3\xc3\x00\x00\x00\x00"
-		"\x00\x00\xc3\xc3\xc3\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xff\xc3\x86\x0c\x18\x30\x60\xc1\xc3\xff\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xe6\xff\xdb\xdb\xdb\xdb\xdb\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc3\xc3\xc3\xc3\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc3\xc3\xc3\xdb\xdb\xff\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc3\x66\x3c\x18\x3c\x66\xc3\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x18\x3c\x3c\x3c\x18\x00\x00\x00\x00"
-		"\x00\x18\x18\x7e\xc3\xc0\xc0\xc0\xc3\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xe6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x82\xc6\x7c\xc6\xc6\xc6\xc6\x7c\xc6\x82\x00\x00\x00"
-		"\x00\x00\xc3\x66\x3c\x18\xff\x18\xff\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x82\xba\xa2\xa2\xba\x82\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x70\x18\x78\xc8\x78\x00\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x36\x6c\xd8\x6c\x36\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\x06\x06\x06\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x82\xba\xaa\xb2\xaa\x82\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\xf8\x18\x30\x18\xd8\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x7e\x63\x60\xc0\x00\x00\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x1b\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x0c\x06\x3c\x00\x00"
-		"\x00\x60\xe0\x60\x60\x60\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\xd8\x88\xd8\x70\x00\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd8\x6c\x36\x6c\xd8\x00\x00\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xc2\xc6\xcc\x18\x30\x66\xce\x96\x3e\x06\x06\x00\x00"
-		"\x00\xc0\xc0\xc2\xc6\xcc\x18\x30\x60\xce\x9b\x06\x0c\x1f\x00\x00"
-		"\x00\xf0\x30\x72\x36\xec\x18\x30\x66\xce\x96\x3e\x06\x06\x00\x00"
-		"\x00\x00\x30\x30\x00\x30\x30\x60\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x60\x30\x18\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x10\x38\x6c\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x76\xdc\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\xc6\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x38\x6c\x38\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3e\x6c\xcc\xcc\xfe\xcc\xcc\xcc\xcc\xce\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x18\x30\x00\x00"
-		"\x30\x18\x0c\x00\xfe\x66\x60\x7c\x60\x60\x66\xfe\x00\x00\x00\x00"
-		"\x18\x30\x60\x00\xfe\x66\x60\x7c\x60\x60\x66\xfe\x00\x00\x00\x00"
-		"\x10\x38\x6c\x00\xfe\x66\x60\x7c\x60\x60\x66\xfe\x00\x00\x00\x00"
-		"\x00\xc6\x00\xfe\x66\x60\x60\x7c\x60\x60\x66\xfe\x00\x00\x00\x00"
-		"\x30\x18\x0c\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x18\x3c\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x42\x3c\x00\x3c\x66\xc2\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x76\xdc\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x60\x30\x18\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xc6\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\x6c\x38\x10\x38\x6c\xc6\x00\x00\x00\x00\x00"
-		"\x02\x06\x7c\xce\xce\xde\xd6\xd6\xf6\xe6\xe6\x7c\xc0\x80\x00\x00"
-		"\x60\x30\x18\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x10\x38\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x18\x30\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xce\xdc\xd8\xcc\xc6\xd6\xdc\xc0\x80\x00\x00"
-		"\x00\x60\x30\x18\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xcc\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x38\x6c\x38\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x6e\x3b\x1b\x7e\xd8\xdc\x77\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x18\x30\x00\x00"
-		"\x00\x60\x30\x18\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x06\x0c\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x18\x3c\x66\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x66\x00\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x44\x38\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\x76\xdc\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x02\x06\x7c\xce\xde\xd6\xf6\xe6\x7c\xc0\x80\x00\x00"
-		"\x00\x60\x30\x18\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x78\xcc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xcc\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x18\x30\x00\x00"
-		"\x00\x00\x66\x66\x00\xee\x66\x66\x66\x66\x66\x3e\x06\x0c\x38\x00"
-	, NULL, NULL, "ISO-8859-9 Turkish", CIOLIB_ISO_8859_9}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x18\x3c\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x6c\x6c\x6c\xfe\xfe\x6c\x6c\xfe\xfe\x6c\x6c\x6c\x00\x00\x00"
-		"\x18\x18\x7e\xdb\xd8\xd8\x7e\x1b\x1b\xdb\xdb\x7e\x18\x18\x00\x00"
-		"\x00\x00\xe6\xac\xec\x18\x18\x30\x30\x6e\x6a\xce\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x6c\x38\x76\xdc\xdc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x18\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x00\x00\x00"
-		"\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x30\x00\x00\x00\x00"
-		"\x00\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x38\x6c\xce\xde\xde\xd6\xf6\xf6\xe6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x38\x6c\xc6\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\xfc\x8c\x18\x30\x38\x0c\x06\x06\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x1c\x1c\x3c\x3c\x6c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\xfe\xc0\xc0\xf8\xcc\x06\x06\x06\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x38\x6c\xc0\xc0\xf8\xec\xc6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\xfe\xc6\x06\x0c\x0c\x18\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x38\x6c\xc6\xc6\x6c\x38\x6c\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x38\x6c\xc6\xc6\xc6\x6e\x3e\x06\x06\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x60\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\x00\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x3c\x66\xc3\x03\x06\x0c\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x10\x38\x7c\xee\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\xfe\x66\x62\x60\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\xfe\x66\x62\x60\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc6\xc0\xc0\xce\xc6\xc6\xce\x7a\x00\x00\x00\x00"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x1e\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\xe6\x66\x6c\x6c\x78\x78\x78\x6c\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\xf0\x60\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x82\xc6\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\xc6\xc6\xe6\xe6\xf6\xf6\xde\xce\xce\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xfc\x66\x66\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xde\xfe\x7c\x0e\x06\x00\x00"
-		"\x00\xfc\x66\x66\x66\x66\x6c\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc0\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x7e\x5a\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\xc3\xc3\xc3\xc3\xdb\xdb\xdb\xdb\xff\x66\x66\x00\x00\x00\x00"
-		"\x00\xc6\xc6\x6c\x6c\x38\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\xfe\xc6\x8c\x0c\x18\x10\x30\x60\x62\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x00\x00\x00\x00"
-		"\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x00\x30\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\xe0\x60\x60\x60\x7c\x66\x66\x66\x66\x66\xdc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x1c\x0c\x0c\x0c\x7c\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x3c\x66\x66\x60\xf0\x60\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\xcc\x78"
-		"\x00\xe0\x60\x60\x60\x7c\x66\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78"
-		"\x00\xe0\x60\x60\x60\x66\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\x60\xf0"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0c\x1e"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\x7c\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x10\x30\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xee\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\x7c\x38\x7c\xee\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x7c\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\x0c\x38\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x0e\x18\x18\x18\x18\x30\xe0\x30\x18\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x70\x18\x18\x18\x18\x0c\x07\x0c\x18\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x30\x4c\x52\xba\x94\x64\x18\x00\x00\x00\x00\x00"
-		"\x00\xe0\x60\x60\x60\x60\x60\x60\x6c\x6c\x6c\x3f\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x78\x30\x00\x00\x30\x78\x30\x00\x00\x00"
-		"\x00\x60\x30\x38\x1c\x1c\x1c\x1c\x1c\x1c\x38\x30\x60\x00\x00\x00"
-		"\x00\x0c\x18\x38\x70\x70\x70\x70\x70\x70\x38\x18\x0c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x6c\x36\x1b\x1b\x36\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x36\x6c\xd8\xd8\x6c\x36\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x78\x30\x00\x00\x00"
-		"\x00\x60\x30\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x3c\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7c\x7c\x7c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xc2\xe6\x7c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x92\x92\x00\x00\x00\x00"
-		"\x00\x03\x76\xdc\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x3c\x46\x96\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xdc\xde\xcf\x7b\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\x6a\x00\x00\x00\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xfe\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xc0\xc0\xfe\xc0\xc0\xc0\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcc\x7f\x0c\x0c\x0c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xcc\xcc\xcc\xcc\xcc\x7f\x0c\x0c\x0c\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcf\x0c\x0c\x0c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcf\x0c\x0c\x0c\x00"
-		"\x00\xc0\xc0\xfe\xc0\xc0\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xc0\xc0\xfe\xc0\xc0\xcc\xcc\xcc\x7c\x00\x00\x00\x00"
-		"\x00\x3c\x66\x66\x66\x66\x66\x3e\x06\x0c\xd8\xfe\xc3\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0f\x00"
-		"\x00\xc0\xc0\xc0\xfe\xc0\xc0\xc0\xc0\xf8\x0c\x0c\x78\x00\x00\x00"
-		"\x00\xc0\xc0\xc0\xc0\xf8\xc0\xc0\xc0\xc0\xf8\x0c\x38\x00\x00\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\xfe\x00"
-		"\x00\x7c\xc6\xc6\xc6\xcf\xd6\xd6\xd6\xd6\xd6\xcc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xcf\xd6\xd6\xd6\xcc\xc0\xc0\xc0\x00"
-		"\x00\x0c\x0c\x0c\x7f\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x0c\x0c\x0c\x0c\x7f\xcc\xcc\xcc\xcc\xcc\x7c\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xc0\xf8\xcc\xcc\xcc\xcc\xcc\xc0\xc0\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xc0\xc0\xf8\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\x00"
-		"\x00\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xfc\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x60\x60\x60\x60\x60\x60\x60\x60\x60\x7e\x00"
-		"\x00\xc0\xc0\xc0\xf6\xd6\xd6\xd6\xd6\xd6\xd6\xcc\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xc0\xc0\xf6\xd6\xd6\xd6\xd6\xd6\xce\xc0\xc0\xc0\x00"
-		"\x00\xc0\x7e\xfb\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\xc0\x78\x0c\x0c\x7f\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xc0\xc0\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0c\x00"
-		"\x00\x18\x30\x18\x0c\x18\x30\x60\xc0\xf0\x3c\x0e\x0c\x00\x00\x00"
-		"\x00\xc0\xc0\xc0\xc0\xf8\xcc\xcc\xcc\xcc\xcc\xcc\x00\x00\x00\x00"
-		"\x00\x3c\x66\x66\x66\x66\x06\x06\x06\x6c\xd8\x6e\x00\x00\x00\x00"
-		"\x00\x30\x7e\x0c\x18\x30\x70\xd8\xd8\xcc\xce\x76\x00\x00\x00\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x0c\x0c\x0f\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcc\x0c\x0c\x0f\x00"
-		"\x00\x0e\xdb\x70\x30\x78\xcc\xcc\xcc\xcc\xdc\x6c\x00\x00\x00\x00"
-		"\x00\x1c\x36\x60\x60\xf8\x6c\x66\x66\x66\x6e\x3a\x00\x00\x00\x00"
-		"\x00\xcf\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x00\x00\x00\x00"
-		"\x00\x78\xcc\x0c\x1c\x38\x6c\x0c\x0c\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x6c\xdc\x70\x00"
-		"\x00\xe0\x60\x60\x66\x66\x66\x66\x66\x66\x66\x3c\x00\x00\x00\x00"
-		"\x00\xe0\x60\x60\x60\x66\x66\x66\x66\x66\x66\x3e\x00\x00\x00\x00"
-		"\x00\xf8\x0c\x7c\xcc\xcc\xc0\xc0\xc0\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\xcc\xcc\xcc\x0c\x18\x30\x60\xc0\x7e\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcc\x00\x00\x00\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\x0c\x0c\x0c\xd8\x70\x30\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x30\x18\x0c\x18\x30\x60\xc0\xc0\x7e\x00"
-		"\x00\x7e\xdb\xdb\xdb\xdb\xdb\xdb\x1b\x1b\x03\x03\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdb\xdb\xdb\xdb\xdb\xdb\x7f\x03\x03\x03\x00"
-		"\x00\x60\xf0\xd8\xcc\xc6\x66\x36\x16\x1c\xd8\xfe\xc3\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x70\xd8\xcc\xcc\x6c\x38\x30\x60\xc0\x7e\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcf\xcc\xcc\xcc\xcc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcf\x00\x00\x00\x00"
-		"\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x00\x00\x00\x00"
-		"\x00\x0c\x0c\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0f\x00\x00\x00\x00"
-		"\x00\x0c\x0c\x0c\x0c\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0f\x00"
-		"\x00\x78\xcc\xcc\xc0\x60\x30\x18\x0c\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\xd6\xd6\xd6\xd6\xd6\x76\x00\x00\x00\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\x00"
-		"\x00\x78\xcc\xcc\xcc\x78\xcc\x0c\x0c\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\xc0\xc0\xf0\xd8\xd8\xd8\xd8\xd8\xce\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x60\x60\x60\x60\x60\x60\x7c\x00\x00\x00\x00"
-		"\x00\x10\x10\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x10\xdc\xd6\xd6\xd6\xd6\xd6\x76\x10\x10\x10\x00"
-		"\x00\x3c\x66\x66\x66\x66\x7c\x60\x60\xfe\x60\x60\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x66\x66\x66\x66\x7c\x60\xfe\x60\x60\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x70\xd0\xd0\xd0\x7c\x16\x16\xd6\xd6\xd6\x7c\x00\x00\x00\x00"
-		"\x00\x70\xd0\xd0\xd0\x7c\x16\x16\xd6\xd6\xd6\x7c\x10\x10\x10\x00"
-		"\x00\x38\x38\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x3c\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\xfe"
-		"\x66\x66\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x6c\x6c\xfe\xfe\x6c\x6c\xfe\xfe\x6c\x6c\x6c\x00\x00"
-		"\x18\x7e\xdb\xd8\xd8\x7e\x1b\x1b\xdb\xdb\x7e\x18\x18\x00"
-		"\x00\xe6\xac\xec\x18\x18\x30\x30\x6e\x6a\xce\x00\x00\x00"
-		"\x38\x6c\x6c\x6c\x38\x76\xdc\xdc\xcc\xcc\x76\x00\x00\x00"
-		"\x18\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x30\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x00\x00"
-		"\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x30\x00\x00\x00"
-		"\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x00\x00\x00"
-		"\x38\x6c\xce\xde\xde\xd6\xf6\xf6\xe6\x6c\x38\x00\x00\x00"
-		"\x18\x38\x78\x18\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x38\x6c\xc6\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\xfc\x8c\x18\x30\x38\x0c\x06\x06\xc6\x6c\x38\x00\x00\x00"
-		"\x1c\x1c\x3c\x3c\x6c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00\x00"
-		"\xfe\xc0\xc0\xf8\xcc\x06\x06\x06\xc6\x6c\x38\x00\x00\x00"
-		"\x38\x6c\xc0\xc0\xf8\xec\xc6\xc6\xc6\x6c\x38\x00\x00\x00"
-		"\xfe\xc6\x06\x0c\x0c\x18\x18\x30\x30\x30\x30\x00\x00\x00"
-		"\x38\x6c\xc6\xc6\x6c\x38\x6c\xc6\xc6\x6c\x38\x00\x00\x00"
-		"\x38\x6c\xc6\xc6\xc6\x6e\x3e\x06\x06\x6c\x38\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x60\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\x00\x00\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x3c\x66\xc3\x03\x06\x0c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00"
-		"\x10\x38\x7c\xee\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\x66\xfc\x00\x00\x00"
-		"\x7c\xc6\xc6\xc0\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00"
-		"\xf8\x6c\x66\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00"
-		"\xfe\x66\x62\x60\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00"
-		"\xfe\x66\x62\x60\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00"
-		"\x7c\xc6\xc6\xc6\xc0\xc0\xce\xc6\xc6\xce\x7a\x00\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x1e\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\xe6\x66\x6c\x6c\x78\x78\x78\x6c\x6c\x66\xe6\x00\x00\x00"
-		"\xf0\x60\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00"
-		"\x82\xc6\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\xc6\xc6\xe6\xe6\xf6\xf6\xde\xce\xce\xc6\xc6\x00\x00\x00"
-		"\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\xfc\x66\x66\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00"
-		"\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xde\xfe\x7c\x0e\x06\x00"
-		"\xfc\x66\x66\x66\x66\x6c\x78\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x7c\xc6\xc6\xc0\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x7e\x5a\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x38\x10\x00\x00\x00"
-		"\xc3\xc3\xc3\xc3\xdb\xdb\xdb\xdb\xff\x66\x66\x00\x00\x00"
-		"\xc6\xc6\x6c\x6c\x38\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00"
-		"\x66\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\xfe\xc6\x8c\x0c\x18\x10\x30\x60\x62\xc6\xfe\x00\x00\x00"
-		"\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x00\x00\x00"
-		"\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x30\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\xe0\x60\x60\x60\x7c\x66\x66\x66\x66\x66\xdc\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x1c\x0c\x0c\x0c\x7c\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00"
-		"\x3c\x66\x66\x60\xf0\x60\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\xcc"
-		"\xe0\x60\x60\x60\x7c\x66\x66\x66\x66\x66\xe6\x00\x00\x00"
-		"\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xcc\xcc"
-		"\xe0\x60\x60\x60\x66\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\x60"
-		"\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0c"
-		"\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\xc6\xc0\x7c\x06\xc6\x7c\x00\x00\x00"
-		"\x10\x30\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\xc6\xee\x7c\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\xee\x7c\x38\x7c\xee\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x7c"
-		"\x00\x00\x00\x00\xfe\xc6\x0c\x38\x60\xc6\xfe\x00\x00\x00"
-		"\x18\x18\x18\x18\x30\xe0\x30\x18\x18\x18\x18\x0e\x00\x00"
-		"\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x00\x00"
-		"\x18\x18\x18\x18\x0c\x07\x0c\x18\x18\x18\x18\x70\x00\x00"
-		"\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x30\x4c\x52\xba\x94\x64\x18\x00\x00\x00\x00"
-		"\xe0\x60\x60\x60\x60\x60\x60\x6c\x6c\x6c\x3f\x00\x00\x00"
-		"\x00\x00\x00\x00\x30\x78\x30\x00\x00\x30\x78\x30\x00\x00"
-		"\x60\x30\x38\x1c\x1c\x1c\x1c\x1c\x1c\x38\x30\x60\x00\x00"
-		"\x0c\x18\x38\x70\x70\x70\x70\x70\x70\x38\x18\x0c\x00\x00"
-		"\x00\x00\x00\x00\x00\x6c\x36\x1b\x1b\x36\x6c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x36\x6c\xd8\xd8\x6c\x36\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x78\x30\x00\x00"
-		"\x60\x30\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x3c\x18\x30\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc2\xe6\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x92\x92\x92\x00\x00\x00"
-		"\x03\x76\xdc\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x46\x96\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xdc\xde\xcf\x7b\x00\x00\x00"
-		"\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\x6a\x00\x00\x00"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xfe\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xc0\xc0\xfe\xc0\xc0\xc0"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\x7f\x0c\x0c\x0c\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\xcc\xcc\xcc\xcc\xcc\x7f\x0c\x0c\x0c"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcf\x0c\x0c\x0c\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcf\x0c\x0c\x0c"
-		"\xc0\xc0\xfe\xc0\xc0\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xfe\xc0\xc0\xcc\xcc\xcc\x7c\x00\x00\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3e\x06\x0c\xd8\xfe\xc3\x00\x00"
-		"\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0f"
-		"\xc0\xc0\xc0\xfe\xc0\xc0\xc0\xc0\xf8\x0c\x0c\x78\x00\x00"
-		"\xc0\xc0\xc0\xc0\xf8\xc0\xc0\xc0\xc0\xf8\x0c\x38\x00\x00"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\xfe"
-		"\x7c\xc6\xc6\xc6\xcf\xd6\xd6\xd6\xd6\xd6\xcc\x00\x00\x00"
-		"\x00\x00\x00\x00\xfc\xc6\xcf\xd6\xd6\xd6\xcc\xc0\xc0\xc0"
-		"\x0c\x0c\x0c\x7f\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x0c\x0c\x0c\x0c\x7f\xcc\xcc\xcc\xcc\xcc\x7c\x00\x00\x00"
-		"\xc0\xc0\xc0\xf8\xcc\xcc\xcc\xcc\xcc\xc0\xc0\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xf8\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xfc\x06\x00\x00"
-		"\x00\x00\x00\x00\x60\x60\x60\x60\x60\x60\x60\x60\x60\x7e"
-		"\xc0\xc0\xc0\xf6\xd6\xd6\xd6\xd6\xd6\xd6\xcc\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xf6\xd6\xd6\xd6\xd6\xd6\xce\xc0\xc0\xc0"
-		"\xc0\x7e\xfb\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\xc0\x78\x0c\x0c\x7f\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\xc0\xc0\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0c"
-		"\x18\x30\x18\x0c\x18\x30\x60\xc0\xf0\x3c\x0e\x0c\x00\x00"
-		"\xc0\xc0\xc0\xc0\xf8\xcc\xcc\xcc\xcc\xcc\xcc\x00\x00\x00"
-		"\x3c\x66\x66\x66\x66\x06\x06\x06\x6c\xd8\x6e\x00\x00\x00"
-		"\x30\x7e\x0c\x18\x30\x70\xd8\xd8\xcc\xce\x76\x00\x00\x00"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x0c\x0c\x0f\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcc\x0c\x0c\x0f"
-		"\x0e\xdb\x70\x30\x78\xcc\xcc\xcc\xcc\xdc\x6c\x00\x00\x00"
-		"\x1c\x36\x60\x60\xf8\x6c\x66\x66\x66\x6e\x3a\x00\x00\x00"
-		"\xcf\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x0f\x0c\x0c\x0c\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x00\x00\x00"
-		"\x78\xcc\x0c\x1c\x38\x6c\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x6c\xdc\x70"
-		"\xe0\x60\x60\x66\x66\x66\x66\x66\x66\x66\x3c\x00\x00\x00"
-		"\xe0\x60\x60\x60\x66\x66\x66\x66\x66\x66\x3e\x00\x00\x00"
-		"\xf8\x0c\x7c\xcc\xcc\xc0\xc0\xc0\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x78\xcc\xcc\xcc\x0c\x18\x30\x60\xc0\x7e"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcc\x00\x00\x00"
-		"\x78\xcc\xcc\xcc\xcc\x0c\x0c\x0c\xd8\x70\x30\x18\x00\x00"
-		"\x00\x00\x00\x00\x18\x30\x18\x0c\x18\x30\x60\xc0\xc0\x7e"
-		"\x7e\xdb\xdb\xdb\xdb\xdb\xdb\x1b\x1b\x03\x03\x00\x00\x00"
-		"\x00\x00\x00\x00\xdb\xdb\xdb\xdb\xdb\xdb\x7f\x03\x03\x03"
-		"\x60\xf0\xd8\xcc\xc6\x66\x36\x16\x1c\xd8\xfe\xc3\x00\x00"
-		"\x00\x00\x00\x00\x70\xd8\xcc\xcc\x6c\x38\x30\x60\xc0\x7e"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcf\xcc\xcc\xcc\xcc\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcf\x00\x00\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x00\x00\x00"
-		"\x0c\x0c\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0f\x00\x00\x00"
-		"\x0c\x0c\x0c\x0c\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0f"
-		"\x78\xcc\xcc\xc0\x60\x30\x18\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\xdc\xd6\xd6\xd6\xd6\xd6\x76\x00\x00\x00"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0"
-		"\x78\xcc\xcc\xcc\x78\xcc\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78"
-		"\xc0\xc0\xf0\xd8\xd8\xd8\xd8\xd8\xce\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x60\x60\x60\x60\x60\x60\x7c\x00\x00\x00"
-		"\x10\x10\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x10\x00\x00\x00"
-		"\x00\x10\x10\x10\xdc\xd6\xd6\xd6\xd6\xd6\x76\x10\x10\x10"
-		"\x3c\x66\x66\x66\x66\x7c\x60\x60\xfe\x60\x60\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x66\x66\x66\x66\x7c\x60\xfe\x60\x60"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x78\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x70\xd0\xd0\xd0\x7c\x16\x16\xd6\xd6\xd6\x7c\x00\x00\x00"
-		"\x70\xd0\xd0\xd0\x7c\x16\x16\xd6\xd6\xd6\x7c\x10\x10\x10"
-		"\x38\x38\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x78\x78\x30\x30\x00\x30\x00"
-		"\x6c\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x30\x7c\xc0\x78\x0c\xf8\x30\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x60\x60\xc0\x00\x00\x00\x00\x00"
-		"\x18\x30\x60\x60\x60\x30\x18\x00"
-		"\x60\x30\x18\x18\x18\x30\x60\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x30\x30\xfc\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x60"
-		"\x00\x00\x00\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x7c\xc6\xce\xde\xf6\xe6\x7c\x00"
-		"\x30\x70\x30\x30\x30\x30\xfc\x00"
-		"\x78\xcc\x0c\x38\x60\xcc\xfc\x00"
-		"\x78\xcc\x0c\x38\x0c\xcc\x78\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\xfc\xc0\xf8\x0c\x0c\xcc\x78\x00"
-		"\x38\x60\xc0\xf8\xcc\xcc\x78\x00"
-		"\xfc\xcc\x0c\x18\x30\x30\x30\x00"
-		"\x78\xcc\xcc\x78\xcc\xcc\x78\x00"
-		"\x78\xcc\xcc\x7c\x0c\x18\x70\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x60"
-		"\x18\x30\x60\xc0\x60\x30\x18\x00"
-		"\x00\x00\xfc\x00\x00\xfc\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x78\xcc\x0c\x18\x30\x00\x30\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x30\x78\xcc\xcc\xfc\xcc\xcc\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3e\x00"
-		"\xcc\xcc\xcc\xfc\xcc\xcc\xcc\x00"
-		"\x78\x30\x30\x30\x30\x30\x78\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x38\x6c\xc6\xc6\xc6\x6c\x38\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x78\xcc\xcc\xcc\xdc\x78\x1c\x00"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x78\xcc\xe0\x70\x1c\xcc\x78\x00"
-		"\xfc\xb4\x30\x30\x30\x30\x78\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xfc\x00"
-		"\xcc\xcc\xcc\xcc\xcc\x78\x30\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc6\x44\x6c\x38\x38\x6c\xc6\x00"
-		"\xcc\xcc\xcc\x78\x30\x30\x78\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x78\x60\x60\x60\x60\x60\x78\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x78\x18\x18\x18\x18\x18\x78\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x30\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x7c\x00"
-		"\x60\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x00\x00\x78\xcc\xc0\xcc\x78\x00"
-		"\x0c\x0c\x0c\x7c\xcc\xcc\x7c\x00"
-		"\x00\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x38\x6c\x60\xf0\x60\x60\xf0\x00"
-		"\x00\x00\x7c\xcc\xcc\x7c\x0c\xf8"
-		"\x60\x60\x7c\x66\x66\x66\x66\x00"
-		"\x30\x00\x70\x30\x30\x30\x78\x00"
-		"\x0c\x00\x0c\x0c\x0c\x0c\x6c\x38"
-		"\x60\x60\x66\x6c\x78\x6c\x66\x00"
-		"\x70\x30\x30\x30\x30\x30\x78\x00"
-		"\x00\x00\xcc\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x78\x00"
-		"\x00\x00\x7c\x66\x66\x7c\x60\x60"
-		"\x00\x00\x7c\xcc\xcc\x7c\x0c\x0c"
-		"\x00\x00\xdc\x76\x66\x60\xf0\x00"
-		"\x00\x00\x7c\xc0\x78\x0c\xf8\x00"
-		"\x10\x30\x7c\x30\x30\x34\x18\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x7c\x00"
-		"\x00\x00\xcc\xcc\xcc\x78\x30\x00"
-		"\x00\x00\xc6\xd6\xfe\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\xcc\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\xfc\x98\x30\x64\xfc\x00"
-		"\x1c\x30\x30\xe0\x30\x30\x1c\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\xe0\x30\x30\x1c\x30\x30\xe0\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x12\xca\x2c\x79\x9e\x34\x53\x48"
-		"\xc0\xc0\xc0\xd8\xd8\xd8\x76\x00"
-		"\x00\x00\x30\x30\x00\x30\x30\x00"
-		"\x60\x30\x18\x18\x18\x30\x60\x00"
-		"\x18\x30\x60\x60\x60\x30\x18\x00"
-		"\x00\x6c\x36\x1b\x36\x6c\x00\x00"
-		"\x00\x36\x6c\xd8\x6c\x36\x00\x00"
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x00\x00\x00\x00\x30\x30\x00\x00"
-		"\x30\x18\x0c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x60"
-		"\x00\x00\x00\x00\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\x70\x3f\x00\x00"
-		"\x00\x00\x00\x00\xdb\xdb\x00\x00"
-		"\x01\x0e\x70\x80\x00\x00\x00\x00"
-		"\x1c\x30\x40\x00\x00\x00\x00\x00"
-		"\x1e\x35\x26\x00\x00\x00\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\x6f\x3b\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\xff\x00"
-		"\x7c\xc6\xc6\xc0\xc0\xf8\xc0\x00"
-		"\x00\x00\x78\xcc\xc0\xc0\xf0\xc0"
-		"\x7c\xc6\xc6\xc6\xc6\x7f\x06\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x7e\x0c"
-		"\x7c\xc6\xc6\xc6\xc6\x07\x06\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x0e\x0c"
-		"\xc0\xc0\xfe\xc0\xc6\xc6\x7c\x00"
-		"\xc0\xc0\xfc\xc0\xcc\xcc\x78\x00"
-		"\x3e\x63\x36\x1c\xb8\xfe\x83\x00"
-		"\x00\x00\x78\xcc\xcc\x7c\x0c\x0e"
-		"\xc0\xc0\xfc\xc0\xc0\xfe\x03\x00"
-		"\x00\xc0\xc0\xf8\xc0\xc0\xf8\x0c"
-		"\x7c\xc6\xc6\xc6\xc0\xc0\xfe\x00"
-		"\x00\x00\x78\xcc\xcc\xc0\xc0\xfc"
-		"\x7c\xc6\xdf\xd6\xde\xc0\xc0\x00"
-		"\x00\x00\x7c\xc6\xcf\xd6\xdc\xc0"
-		"\x06\x06\x7f\xc6\xc6\xc6\x7c\x00"
-		"\x00\x0c\x0c\x7e\xcc\xcc\x78\x00"
-		"\xc0\xfc\xc6\xc6\xc0\xc0\xc0\x00"
-		"\x00\xc0\xc0\xf8\xcc\xcc\xc0\xc0"
-		"\xc0\xc0\xc0\xc0\xc0\xfc\x06\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xc0\xf8"
-		"\xc0\xc0\xf3\xdb\xdb\xce\xc0\x00"
-		"\x00\xc0\xc0\xc0\xf3\xdb\xce\xc0"
-		"\xe7\x3c\x66\xc3\xc3\x66\x3c\x00"
-		"\xc0\x37\x0c\x66\xc3\xc6\x7c\x00"
-		"\xc0\xc0\xc6\xc6\x7e\x06\x06\x00"
-		"\xc0\xc0\xcc\xcc\xcc\xcc\x7c\x0c"
-		"\xfc\xfe\x06\xfc\xfe\x06\x06\x00"
-		"\xc0\xc0\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x7c\xc6\xc6\x0c\x68\x9a\x66\x00"
-		"\x00\x10\x30\x78\xcc\xcc\x7a\x00"
-		"\x7c\xc6\xc6\xc6\xc6\x06\x07\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x0c\x0e"
-		"\x0f\xf0\x6c\x66\xc3\xc3\xff\x00"
-		"\x1c\xe0\x30\xc8\xcc\xcc\xfc\x00"
-		"\xc7\xc6\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x0e\x0c\x0c\xcc\xcc\xcc\x78\x00"
-		"\x38\x7e\x06\xf8\x06\x7e\x38\x00"
-		"\x00\x38\x7e\x06\xfc\x06\x7e\x38"
-		"\xe0\x60\x60\x63\x63\x63\x3e\x00"
-		"\xe0\x60\x66\x66\x66\x66\x3c\x00"
-		"\xe0\x7e\x1e\x30\x60\x33\x1e\x00"
-		"\x00\x78\xcc\x0c\x30\x60\xc0\xfc"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xcc\x00"
-		"\x7c\xc6\x06\xcc\x70\x18\x0c\x00"
-		"\x00\x30\x60\x30\x18\x30\x62\x3c"
-		"\x7e\xdb\xdb\xdb\x1b\x03\x03\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\x6f\x03"
-		"\x3c\x66\x66\x1c\xb8\xfe\x83\x00"
-		"\x00\x3c\x66\x66\x66\x1c\x70\xfe"
-		"\x7c\xc6\xc6\xc6\xc7\xc6\xc6\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xce\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x78\x00"
-		"\x06\x06\xc6\xc6\x7e\x06\x07\x00"
-		"\x0c\x0c\xcc\xcc\xcc\xfc\x0c\x0e"
-		"\x7e\xe7\x30\x18\x0c\xe7\x7e\x00"
-		"\x00\x00\xd6\xdb\xdb\xdb\x6b\x00"
-		"\x7c\xc6\xc6\xc6\xc0\xc0\xc0\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xc0\xc0"
-		"\x7c\xc6\x7c\xfc\x03\x83\x7e\x00"
-		"\x00\x00\x78\xcc\x78\x0c\xcc\x78"
-		"\xc0\xc0\xc0\xf0\xc0\xc0\xc0\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xe0\x00"
-		"\x18\x7e\xdb\xdb\xdb\x7e\x18\x00"
-		"\x18\x18\xde\xdb\xdb\xdb\x7b\x18"
-		"\x3e\x63\x63\x7e\x60\xff\x60\x00"
-		"\x00\x3c\x66\x66\x7c\x60\xfc\x60"
-		"\x3c\x66\xc3\xc3\xc3\x66\x3c\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00"
-		"\x38\x58\x3e\x1b\x1b\xdb\x7e\x00"
-		"\x38\x58\x3e\x1b\x1b\xdb\x7e\x18"
-		"\x30\x30\x60\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "haik8 codepage (use only with armscii8 screenmap)", CIOLIB_HAIK8}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xd6\xd6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x00\x30\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\xdc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x36\x32\x30\x78\x30\x30\x30\x30\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x18\x18\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x18\x18\x00\x00\x00\x00"
-		"\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xe6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\x7c\xc6\xc6\xc6\xc6\x7c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x3c\x18\x7e\x18\x7e\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x9a\xa2\xa2\xa2\x9a\x82\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x36\x6c\xd8\x6c\x36\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\x06\x06\x06\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\xba\xaa\xb2\xaa\xaa\x82\x7c\x00\x00\x00\x00\x00"
-		"\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x3c\x66\x0c\x18\x32\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x7c\x06\x3c\x06\x06\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x7c\x60\x60\xc0\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x1b\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x0c\x78\x00\x00"
-		"\x00\x18\x38\x18\x18\x18\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x00\x7e\x00\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd8\x6c\x36\x6c\xd8\x00\x00\x00\x00\x00\x00"
-		"\x00\x60\xe0\x62\x66\x6c\x18\x30\x66\xce\x9a\x3f\x06\x06\x00\x00"
-		"\x00\x60\xe0\x62\x66\x6c\x18\x30\x60\xdc\x86\x0c\x18\x3e\x00\x00"
-		"\x00\xe0\x30\x62\x36\xec\x18\x30\x66\xce\x9a\x3f\x06\x06\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\xff\x00"
-		"\x00\x00\x00\x00\xc6\xc6\x66\x76\xdc\xcc\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\x0c\x0c\x0c\x0c\x0c\x0c\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x38\x0c\x0c\x0c\x0c\x1c\x36\xe6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfc\x06\x06\x06\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x70\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfc\x30\x30\x30\x18\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfc\x66\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xcc\xd6\xd6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x70\x18\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfc\x06\x06\x06\x0c\x0c\x0c\x0c\x0c\x0c\x0e\x00"
-		"\x00\x00\x00\x00\xfc\x06\x06\x06\x06\x06\x06\xfc\x00\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xfc\x06\x06\x06\x06\x0c\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfc\x66\xc6\xc6\xc6\xc6\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xdc\x76\x66\xc6\xc6\xc6\xc6\xde\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x38\x0c\x0c\x18\x18\x18\x18\x18\x18\x18\x1c\x00"
-		"\x00\x00\x00\x00\x38\x0c\x0c\x0c\x0c\x0c\x0c\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfc\x66\xc6\xc6\xc6\xc6\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xee\x66\x66\x66\x66\x66\x2c\xf8\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\x4c\xcc\xcc\xec\x0c\x0c\x0c\x0c\x0c\x0e\x00"
-		"\x00\x00\x00\x00\xfc\x46\xc6\xc6\xe6\x06\x06\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xee\x66\x66\x6c\x78\x60\x60\x60\x60\x60\x70\x00"
-		"\x00\x00\x00\x00\xee\x66\x66\x34\x18\x0c\x06\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfc\x06\x06\x66\x64\x6c\x6e\x60\x60\x60\x60\x00"
-		"\x00\x00\x00\x00\xfc\x06\x06\x06\x06\x06\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xf6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfc\x66\x66\x66\x66\x66\xe6\xe6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x63\x63\x63\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x36\x36\x7f\x36\x36\x36\x7f\x36\x36\x00\x00\x00"
-		"\x0c\x0c\x3e\x63\x61\x60\x3e\x03\x43\x63\x3e\x0c\x0c\x00"
-		"\x00\x00\x00\x00\x61\x63\x06\x0c\x18\x33\x63\x00\x00\x00"
-		"\x00\x00\x1c\x36\x36\x1c\x3b\x6e\x66\x66\x3b\x00\x00\x00"
-		"\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x18\x0c\x06\x06\x06\x06\x06\x0c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x01\x03\x06\x0c\x18\x30\x60\x40\x00\x00\x00\x00"
-		"\x00\x00\x1c\x36\x63\x63\x6b\x63\x63\x36\x1c\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x0c\x0c\x0c\x0c\x0c\x3f\x00\x00\x00"
-		"\x00\x00\x3e\x63\x03\x06\x0c\x18\x30\x63\x7f\x00\x00\x00"
-		"\x00\x00\x3e\x63\x03\x03\x1e\x03\x03\x63\x3e\x00\x00\x00"
-		"\x00\x00\x06\x0e\x1e\x36\x66\x7f\x06\x06\x0f\x00\x00\x00"
-		"\x00\x00\x7f\x60\x60\x60\x7e\x03\x03\x63\x3e\x00\x00\x00"
-		"\x00\x00\x1c\x30\x60\x60\x7e\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x7f\x63\x03\x06\x0c\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x63\x3e\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x63\x3f\x03\x03\x06\x3c\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x06\x0c\x0c\x00\x0c\x0c\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x6f\x6f\x6f\x6c\x60\x3e\x00\x00\x00"
-		"\x00\x00\x08\x1c\x36\x63\x63\x7f\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x7e\x33\x33\x33\x3e\x33\x33\x33\x7e\x00\x00\x00"
-		"\x00\x00\x1e\x33\x61\x60\x60\x60\x61\x33\x1e\x00\x00\x00"
-		"\x00\x00\x7c\x36\x33\x33\x33\x33\x33\x36\x7c\x00\x00\x00"
-		"\x00\x00\x7f\x33\x31\x34\x3c\x34\x31\x33\x7f\x00\x00\x00"
-		"\x00\x00\x7f\x33\x31\x34\x3c\x34\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x1e\x33\x61\x60\x60\x6f\x63\x33\x1d\x00\x00\x00"
-		"\x00\x00\x63\x63\x63\x63\x7f\x63\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x0f\x06\x06\x06\x06\x06\x66\x66\x3c\x00\x00\x00"
-		"\x00\x00\x73\x33\x36\x36\x3c\x36\x36\x33\x73\x00\x00\x00"
-		"\x00\x00\x78\x30\x30\x30\x30\x30\x31\x33\x7f\x00\x00\x00"
-		"\x00\x00\x63\x77\x7f\x6b\x63\x63\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x63\x73\x7b\x7f\x6f\x67\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x63\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x7e\x33\x33\x33\x3e\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x63\x63\x63\x6b\x6f\x3e\x07\x00\x00"
-		"\x00\x00\x7e\x33\x33\x33\x3e\x36\x33\x33\x73\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x30\x1c\x06\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x63\x63\x63\x63\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x63\x63\x63\x63\x63\x63\x36\x1c\x08\x00\x00\x00"
-		"\x00\x00\x63\x63\x63\x63\x6b\x6b\x7f\x36\x36\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x3c\x18\x3c\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x7f\x63\x46\x0c\x18\x30\x61\x63\x7f\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\x00\x40\x60\x70\x38\x1c\x0e\x07\x03\x01\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x08\x1c\x36\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x30\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x70\x30\x30\x3c\x36\x33\x33\x33\x3e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\x60\x60\x63\x3e\x00\x00\x00"
-		"\x00\x00\x0e\x06\x06\x1e\x36\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\x7f\x60\x63\x3e\x00\x00\x00"
-		"\x00\x00\x1c\x36\x32\x30\x7c\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3b\x66\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x00\x00\x70\x30\x30\x36\x3b\x33\x33\x33\x73\x00\x00\x00"
-		"\x00\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\x70\x30\x30\x33\x36\x3c\x36\x33\x73\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\x7f\x6b\x6b\x6b\x6b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x6e\x33\x33\x33\x33\x33\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x6e\x33\x33\x33\x3e\x30\x30\x78\x00"
-		"\x00\x00\x00\x00\x00\x3b\x66\x66\x66\x3e\x06\x06\x0f\x00"
-		"\x00\x00\x00\x00\x00\x6e\x3b\x33\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\x38\x0e\x63\x3e\x00\x00\x00"
-		"\x00\x00\x08\x18\x18\x7e\x18\x18\x18\x1b\x0e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x63\x63\x63\x63\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x63\x63\x6b\x6b\x7f\x36\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x63\x36\x1c\x1c\x36\x63\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x63\x63\x63\x63\x3f\x03\x06\x3c\x00"
-		"\x00\x00\x00\x00\x00\x7f\x66\x0c\x18\x33\x7f\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x3b\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x18\x18\x7e\xc3\xc0\xc0\xc3\x7e\x18\x18\x00\x00\x00"
-		"\x00\x1c\x36\x32\x30\x78\x30\x30\x30\x73\x7e\x00\x00\x00"
-		"\x00\x00\x00\xc6\x7c\xc6\xc6\xc6\x7c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x3c\x18\x7e\x18\x7e\x18\x18\x00\x00\x00"
-		"\x00\x18\x18\x18\x18\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x00\x3e\x63\x30\x1c\x36\x63\x63\x36\x1c\x06\x63\x3e\x00"
-		"\x00\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x38\x44\x9a\xa2\xa2\xa2\x9a\x44\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x1b\x36\x6c\x36\x1b\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7f\x03\x03\x03\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x38\x44\xba\xaa\xb2\xaa\xaa\x44\x38\x00\x00"
-		"\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x7e\x00\x00\x00"
-		"\x00\x3c\x66\x0c\x18\x32\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x78\x0c\x38\x0c\x0c\x78\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x33\x33\x33\x33\x33\x3e\x30\x60\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x0c\x78"
-		"\x00\x18\x38\x18\x18\x18\x3c\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x00\x7e\x00\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x6c\x36\x1b\x36\x6c\x00\x00\x00\x00\x00"
-		"\x00\x60\xe0\x63\x66\x6c\x18\x36\x6e\xda\x3f\x06\x06\x00"
-		"\x00\x60\xe0\x63\x66\x6c\x18\x30\x6e\xc3\x06\x0c\x1f\x00"
-		"\x00\xe0\x30\x63\x36\xec\x18\x36\x6e\xda\x3f\x06\x06\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\xff\x00"
-		"\x00\x00\x00\x63\x63\x33\x3b\x6e\x66\x63\x63\x00\x00\x00"
-		"\x00\x00\x00\x7c\x06\x06\x06\x06\x06\x06\x7f\x00\x00\x00"
-		"\x00\x00\x00\x1c\x06\x06\x06\x06\x1e\x36\x63\x00\x00\x00"
-		"\x00\x00\x00\x7f\x06\x06\x06\x06\x06\x06\x06\x00\x00\x00"
-		"\x00\x00\x00\x7e\x03\x03\x03\x63\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x00\x38\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x00\x00\x00"
-		"\x00\x00\x00\x7e\x18\x18\x18\x0c\x0c\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x7e\x33\x63\x63\x63\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x00\x66\x6b\x6b\x63\x63\x63\x66\x3c\x00\x00\x00"
-		"\x00\x00\x00\x3c\x06\x06\x06\x0c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x7e\x03\x03\x06\x06\x06\x06\x06\x06\x07\x00"
-		"\x00\x00\x00\x7e\x03\x03\x03\x03\x03\x06\x7c\x00\x00\x00"
-		"\x00\x60\x60\x7e\x03\x03\x03\x06\x0c\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x7e\x63\x63\x63\x63\x63\x63\x7f\x00\x00\x00"
-		"\x00\x00\x00\x6e\x7b\x33\x63\x63\x63\x63\x6f\x00\x00\x00"
-		"\x00\x00\x00\x1c\x06\x06\x0c\x0c\x0c\x0c\x0c\x0c\x0e\x00"
-		"\x00\x00\x00\x1c\x06\x06\x06\x06\x06\x06\x3e\x00\x00\x00"
-		"\x00\x00\x00\x7e\x33\x63\x63\x63\x63\x66\x3c\x00\x00\x00"
-		"\x00\x00\x00\x33\x33\x33\x33\x33\x1b\x0e\x7c\x00\x00\x00"
-		"\x00\x00\x00\x7c\x26\x66\x76\x06\x06\x06\x06\x06\x07\x00"
-		"\x00\x00\x00\x7e\x23\x63\x73\x03\x03\x03\x7f\x00\x00\x00"
-		"\x00\x00\x00\x66\x66\x66\x66\x6c\x78\x60\x60\x60\x70\x00"
-		"\x00\x00\x00\x63\x63\x33\x1e\x0c\x06\x03\x7f\x00\x00\x00"
-		"\x00\x00\x00\x7e\x03\x03\x33\x36\x36\x37\x30\x30\x30\x00"
-		"\x00\x00\x00\x7e\x03\x03\x03\x03\x03\x03\x03\x00\x00\x00"
-		"\x00\x00\x00\x6b\x6b\x6b\x6b\x6b\x7b\x63\x3e\x00\x00\x00"
-		"\x00\x00\x00\x7e\x33\x33\x33\x33\x33\x33\x73\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x3c\x3c\x18\x18\x00\x18\x00"
-		"\x6c\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x18\x3e\x60\x3c\x06\x7c\x18\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x30\x30\x60\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x30\x30\x18\x0c\x00"
-		"\x30\x18\x0c\x0c\x0c\x18\x30\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x18\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x30"
-		"\x00\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x38\x6c\xc6\xd6\xc6\x6c\x38\x00"
-		"\x18\x38\x18\x18\x18\x18\x7e\x00"
-		"\x3c\x66\x06\x1c\x30\x66\x7e\x00"
-		"\x3c\x66\x06\x1c\x06\x66\x3c\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\x7e\x60\x7c\x06\x06\x66\x3c\x00"
-		"\x1c\x30\x60\x7c\x66\x66\x3c\x00"
-		"\x7e\x66\x06\x0c\x18\x18\x18\x00"
-		"\x3c\x66\x66\x3c\x66\x66\x3c\x00"
-		"\x3c\x66\x66\x3e\x06\x0c\x38\x00"
-		"\x00\x18\x18\x00\x00\x18\x18\x00"
-		"\x00\x18\x18\x00\x00\x18\x18\x30"
-		"\x0c\x18\x30\x60\x30\x18\x0c\x00"
-		"\x00\x00\x7e\x00\x00\x7e\x00\x00"
-		"\x30\x18\x0c\x06\x0c\x18\x30\x00"
-		"\x3c\x66\x06\x0c\x18\x00\x18\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x18\x3c\x66\x66\x7e\x66\x66\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3e\x00"
-		"\x66\x66\x66\x7e\x66\x66\x66\x00"
-		"\x3c\x18\x18\x18\x18\x18\x3c\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x7c\xc6\xc6\xc6\xc6\xce\x7c\x0e"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x3c\x66\x70\x38\x0e\x66\x3c\x00"
-		"\x7e\x5a\x18\x18\x18\x18\x3c\x00"
-		"\x66\x66\x66\x66\x66\x66\x7e\x00"
-		"\x66\x66\x66\x66\x66\x3c\x18\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc6\xc6\x6c\x38\x38\x6c\xc6\x00"
-		"\x66\x66\x66\x3c\x18\x18\x3c\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x3c\x30\x30\x30\x30\x30\x3c\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x3c\x0c\x0c\x0c\x0c\x0c\x3c\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x30\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\xe0\x60\x60\x7c\x66\x66\xdc\x00"
-		"\x00\x00\x3c\x66\x60\x66\x3c\x00"
-		"\x1c\x0c\x0c\x7c\xcc\xcc\x76\x00"
-		"\x00\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x1c\x36\x30\x78\x30\x30\x78\x00"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\xf8"
-		"\xe0\x60\x6c\x76\x66\x66\xe6\x00"
-		"\x18\x00\x38\x18\x18\x18\x3c\x00"
-		"\x06\x00\x06\x06\x06\x66\x66\x3c"
-		"\xe0\x60\x66\x6c\x78\x6c\xe6\x00"
-		"\x38\x18\x18\x18\x18\x18\x3c\x00"
-		"\x00\x00\xcc\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\xdc\x66\x66\x66\x66\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00"
-		"\x00\x00\xdc\x66\x66\x7c\x60\xf0"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\x1e"
-		"\x00\x00\xdc\x76\x66\x60\xf0\x00"
-		"\x00\x00\x3e\x60\x3c\x06\x7c\x00"
-		"\x10\x30\x7c\x30\x30\x34\x18\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x76\x00"
-		"\x00\x00\x66\x66\x66\x3c\x18\x00"
-		"\x00\x00\xc6\xd6\xfe\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\x66\x66\x66\x3e\x06\x7c"
-		"\x00\x00\x7e\x4c\x18\x32\x7e\x00"
-		"\x0e\x18\x18\x70\x18\x18\x0e\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\x70\x18\x18\x0e\x18\x18\x70\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x7e\xc0\xc0\x7e\x18\x18"
-		"\x38\x6c\x64\xf0\x60\xe6\xfc\x00"
-		"\x00\xc6\x7c\xc6\xc6\x7c\xc6\x00"
-		"\x66\x66\x3c\x7e\x18\x7e\x18\x18"
-		"\x18\x18\x18\x00\x00\x18\x18\x18"
-		"\x3e\x63\x3c\x66\x66\x3c\xc6\x7c"
-		"\x00\xc6\x00\x00\x00\x00\x00\x00"
-		"\x7e\x81\x9d\xa1\xa1\x9d\x81\x7e"
-		"\x00\xc6\x6c\x38\x6c\xc6\x00\x00"
-		"\x00\x33\x66\xcc\x66\x33\x00\x00"
-		"\x00\x00\x00\x7e\x06\x06\x00\x00"
-		"\x00\x00\x00\x7e\x00\x00\x00\x00"
-		"\x7e\x81\xb9\xa5\xb9\xa5\x81\x7e"
-		"\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x38\x6c\x6c\x38\x00\x00\x00\x00"
-		"\x18\x18\x7e\x18\x18\x00\x7e\x00"
-		"\x78\x0c\x18\x30\x7c\x00\x00\x00"
-		"\x78\x0c\x38\x0c\x78\x00\x00\x00"
-		"\x0c\x18\x30\x00\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x7c\xc0"
-		"\x7f\xdb\xdb\x7b\x1b\x1b\x1b\x00"
-		"\x00\x00\x00\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x0c\x38"
-		"\x18\x38\x18\x18\x3c\x00\x00\x00"
-		"\x00\x18\x00\x7e\x00\x18\x00\x00"
-		"\x00\xcc\x66\x33\x66\xcc\x00\x00"
-		"\xc3\xc6\xcc\xda\x36\x6e\xdf\x06"
-		"\xc3\xc6\xcc\xde\x33\x66\xcc\x0f"
-		"\xe1\x32\xe4\x3a\xf6\x2a\x5f\x86"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff"
-		"\x00\xc6\x66\x76\xdc\xcc\xc6\x00"
-		"\x00\xf8\x0c\x0c\x0c\x0c\xfe\x00"
-		"\x00\x38\x0c\x0c\x1c\x34\xe6\x00"
-		"\x00\xfe\x0c\x0c\x0c\x0c\x0c\x00"
-		"\x00\xfc\x06\x06\xc6\xc6\xc6\x00"
-		"\x00\x70\x18\x18\x18\x18\x18\x00"
-		"\x00\x3c\x18\x18\x0c\x18\x30\x00"
-		"\x00\xfc\x66\xc6\xc6\xc6\xc6\x00"
-		"\x00\xcc\xd6\xd6\xc6\xcc\x78\x00"
-		"\x00\x38\x0c\x0c\x18\x00\x00\x00"
-		"\x00\xfc\x06\x06\x0c\x0c\x0c\x0e"
-		"\x00\xfc\x06\x06\x06\x06\xfc\x00"
-		"\xc0\xfc\x06\x06\x0c\x18\x18\x00"
-		"\x00\xfc\x66\xc6\xc6\xc6\xfe\x00"
-		"\x00\xdc\x76\x66\xc6\xc6\xde\x00"
-		"\x00\x38\x0c\x18\x18\x18\x18\x1c"
-		"\x00\x38\x0c\x0c\x0c\x0c\x7c\x00"
-		"\x00\xfc\x66\xc6\xc6\xcc\x78\x00"
-		"\x00\x66\x66\x66\x66\x36\xfc\x00"
-		"\x00\xf8\x4c\xcc\xec\x0c\x0c\x0e"
-		"\x00\xfc\x46\xc6\xe6\x06\xfe\x00"
-		"\x00\x66\x66\x66\x7c\x60\x60\x70"
-		"\x00\x66\x36\x1c\x0c\x06\x7e\x00"
-		"\x00\xfc\x06\x66\x6c\x6e\x60\x60"
-		"\x00\xfc\x06\x06\x06\x06\x06\x00"
-		"\x00\xd6\xd6\xd6\xf6\xc6\x7c\x00"
-		"\x00\xfc\x66\x66\x66\xe6\xe6\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "ISO-8859-8 Hebrew", CIOLIB_ISO_8859_8}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xd6\xd6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x00\x00\x0e\x1b\x1b\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\xec\x6c\x6c\x3c\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x60\x30\x18\x0c\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x30\x18\x0c\x06\x0c\x18\x30\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xd8\xd8\xd8\x70\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xf0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x10\x10\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x28\x28\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x06\xfe\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x66\x66\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc0\xc0\xf8\xc0\xc0\xc0\x66\x3c\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x06\xfe\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x7c\x82\xba\xaa\xa2\xa2\xa2\xaa\xba\x82\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x9c\xb6\xb6\xf6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xfe\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x06\x0c\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc2\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xcc\xd8\xf8\xd8\xcc\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x66\x66\x66\x66\x66\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc2\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\x7c\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xfc\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xe6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1c\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xe0\x60\x7c\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x3e\x66\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x02\x06\x04\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x0c\xda\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\x54\x7c\xd6\xd6\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xe6\xb6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x1c\x06\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x78\xcc\x06\x06\x1e\x1e\x06\x06\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\xe0\xe0\x60\x60\x7c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x86\xc6\x7c\x18\x18\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x66\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xce\xde\xf6\xe6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x0c\x78\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\x66\x3a\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\xe6\x66\x6c\x6c\x78\x6c\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xfe\x7c\x6c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x38\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x8c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xfe\x6c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x66\xfe\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x00\x00\x0e\x1b\x1b\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\xec\x6c\x3c\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x60\x30\x18\x0c\x00\x7e\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x06\x0c\x18\x30\x00\x7e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xd8\xd8\x70\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xfc\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xf0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x10\x10\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x28\x28\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x06\xfe\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x6c\x6c\x00\xfe\xc6\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc0\xc0\xf8\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36"
-		"\x00\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18"
-		"\x00\x06\xfe\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x7c\x82\xba\xaa\xa2\xa2\xaa\xba\x82\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x9c\xb6\xb6\xf6\xb6\x9c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc0\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xfe\x06\x0c\x00"
-		"\x00\x00\x00\x00\x00\x3c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfc\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\x7c\x10\x38\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc2\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xcc\xf8\xd8\xcc\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x66\x66\x66\x66\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\x7e\x36\x66\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x7c\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\x7c\xd6\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xe6\xb6\xb6\xe6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x1c\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x1e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xe0\x60\x7c\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\x9c\x00\x00\x00"
-		"\x00\x00\x3e\x66\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x02\x06\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x0c\xda\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x82\xc6\xc6\xee\xee\xfe\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\x54\x7c\xd6\xd6\xd6\xd6\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xe6\xb6\xb6\xb6\xb6\xe6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x1c\x06\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x1e\x06\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x00\x00\x00"
-		"\x00\x00\xe0\xe0\x60\x7c\x66\x66\x66\x66\x7c\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x78\x78\x30\x30\x00\x30\x00"
-		"\x6c\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x30\x7c\xc0\x78\x0c\xf8\x30\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x60\x60\xc0\x00\x00\x00\x00\x00"
-		"\x18\x30\x60\x60\x60\x30\x18\x00"
-		"\x60\x30\x18\x18\x18\x30\x60\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x30\x30\xfc\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x60"
-		"\x00\x00\x00\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x7c\xc6\xce\xde\xf6\xe6\x7c\x00"
-		"\x30\x70\x30\x30\x30\x30\xfc\x00"
-		"\x78\xcc\x0c\x38\x60\xcc\xfc\x00"
-		"\x78\xcc\x0c\x38\x0c\xcc\x78\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\xfc\xc0\xf8\x0c\x0c\xcc\x78\x00"
-		"\x38\x60\xc0\xf8\xcc\xcc\x78\x00"
-		"\xfc\xcc\x0c\x18\x30\x30\x30\x00"
-		"\x78\xcc\xcc\x78\xcc\xcc\x78\x00"
-		"\x78\xcc\xcc\x7c\x0c\x18\x70\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x60"
-		"\x18\x30\x60\xc0\x60\x30\x18\x00"
-		"\x00\x00\xfc\x00\x00\xfc\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x78\xcc\x0c\x18\x30\x00\x30\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x30\x78\xcc\xcc\xfc\xcc\xcc\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3e\x00"
-		"\xcc\xcc\xcc\xfc\xcc\xcc\xcc\x00"
-		"\x78\x30\x30\x30\x30\x30\x78\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x38\x6c\xc6\xc6\xc6\x6c\x38\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x78\xcc\xcc\xcc\xdc\x78\x1c\x00"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x78\xcc\xe0\x70\x1c\xcc\x78\x00"
-		"\xfc\xb4\x30\x30\x30\x30\x78\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xfc\x00"
-		"\xcc\xcc\xcc\xcc\xcc\x78\x30\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc6\x44\x6c\x38\x38\x6c\xc6\x00"
-		"\xcc\xcc\xcc\x78\x30\x30\x78\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x78\x60\x60\x60\x60\x60\x78\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x78\x18\x18\x18\x18\x18\x78\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x30\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x7c\x00"
-		"\x60\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x00\x00\x78\xcc\xc0\xcc\x78\x00"
-		"\x0c\x0c\x0c\x7c\xcc\xcc\x7c\x00"
-		"\x00\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x38\x6c\x60\xf0\x60\x60\xf0\x00"
-		"\x00\x00\x7c\xcc\xcc\x7c\x0c\xf8"
-		"\x60\x60\x7c\x66\x66\x66\x66\x00"
-		"\x30\x00\x70\x30\x30\x30\x78\x00"
-		"\x0c\x00\x0c\x0c\x0c\x0c\x6c\x38"
-		"\x60\x60\x66\x6c\x78\x6c\x66\x00"
-		"\x70\x30\x30\x30\x30\x30\x78\x00"
-		"\x00\x00\xcc\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x78\x00"
-		"\x00\x00\x7c\x66\x66\x7c\x60\x60"
-		"\x00\x00\x7c\xcc\xcc\x7c\x0c\x0c"
-		"\x00\x00\xdc\x76\x66\x60\xf0\x00"
-		"\x00\x00\x7c\xc0\x78\x0c\xf8\x00"
-		"\x10\x30\x7c\x30\x30\x34\x18\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x7c\x00"
-		"\x00\x00\xcc\xcc\xcc\x78\x30\x00"
-		"\x00\x00\xc6\xd6\xfe\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\xcc\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\xfc\x98\x30\x64\xfc\x00"
-		"\x1c\x30\x30\xe0\x30\x30\x1c\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\xe0\x30\x30\x1c\x30\x30\xe0\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\xff\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x1f\x18\x18\x18\x18"
-		"\x00\x00\x00\xf8\x18\x18\x18\x18"
-		"\x18\x18\x18\x1f\x00\x00\x00\x00"
-		"\x18\x18\x18\xf8\x00\x00\x00\x00"
-		"\x18\x18\x18\x1f\x18\x18\x18\x18"
-		"\x18\x18\x18\xf8\x18\x18\x18\x18"
-		"\x00\x00\x00\xff\x18\x18\x18\x18"
-		"\x18\x18\x18\xff\x00\x00\x00\x00"
-		"\x18\x18\x18\xff\x18\x18\x18\x18"
-		"\xff\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\xff\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x0e\x1b\x1b\x18\x18\x18\x18\x18"
-		"\x00\x00\x7c\x7c\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\x18\x00\x00\x00"
-		"\x03\x02\x06\x04\xcc\x68\x38\x10"
-		"\x00\x76\xdc\x00\x76\xdc\x00\x00"
-		"\x00\x0c\x18\x30\x60\x30\x18\x0c"
-		"\x00\x30\x18\x0c\x06\x0c\x18\x30"
-		"\x00\x00\x00\x00\x00\x42\x7e\x00"
-		"\x18\x18\x18\x18\x18\xd8\xd8\x70"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00"
-		"\x30\x48\x10\x20\x78\x00\x00\x00"
-		"\x00\x00\x00\x38\x38\x00\x00\x00"
-		"\x00\x18\x18\x00\x7e\x00\x18\x18"
-		"\x00\xff\x00\xff\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x1f\x18\x1f\x18\x18\x18\x18"
-		"\x24\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x00\x00\x7c\xc0\xf8\xc0\x7c\x00"
-		"\x00\x3f\x30\x37\x36\x36\x36\x36"
-		"\x20\x00\x70\x30\x30\x30\x78\x00"
-		"\x50\x00\x70\x30\x30\x30\x78\x00"
-		"\x00\xfe\x06\xf6\x36\x36\x36\x36"
-		"\x18\x1f\x18\x1f\x00\x00\x00\x00"
-		"\x36\x36\x36\x3f\x00\x00\x00\x00"
-		"\x36\x37\x30\x3f\x00\x00\x00\x00"
-		"\x18\xf8\x18\xf8\x00\x00\x00\x00"
-		"\x00\x06\x7e\x60\x60\x60\x60\x00"
-		"\x36\xf6\x06\xfe\x00\x00\x00\x00"
-		"\x18\x1f\x18\x1f\x18\x18\x18\x18"
-		"\x36\x36\x36\x37\x36\x36\x36\x36"
-		"\x36\x37\x30\x37\x36\x36\x36\x36"
-		"\x18\xf8\x18\xf8\x18\x18\x18\x18"
-		"\x66\x00\x7e\x60\x7c\x60\x7e\x00"
-		"\x3c\x66\xc0\xf8\xc0\x66\x3c\x00"
-		"\x36\xf6\x06\xf6\x36\x36\x36\x36"
-		"\x30\x78\x30\x30\x30\x30\x78\x00"
-		"\x48\x78\x30\x30\x30\x30\x78\x00"
-		"\x00\xff\x00\xf7\x36\x36\x36\x36"
-		"\x18\xff\x00\xff\x00\x00\x00\x00"
-		"\x36\x36\x36\xff\x00\x00\x00\x00"
-		"\x36\xf7\x00\xff\x00\x00\x00\x00"
-		"\x18\xff\x18\xff\x18\x18\x18\x18"
-		"\x06\x7e\x60\x60\x60\x60\x60\x00"
-		"\x36\xf7\x00\xf7\x36\x36\x36\x36"
-		"\x3c\x42\x99\xa1\xa1\x99\x42\x3c"
-		"\x00\x00\xce\xdb\xfb\xdb\xce\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\x00\x3c\x60\x3c\x66\x66\x3c\x00"
-		"\x00\x00\x66\x66\x66\x66\x7f\x03"
-		"\x00\x00\x3c\x6c\x6c\x6c\xfe\xc6"
-		"\x00\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x00\x00\x7e\xdb\xdb\x7e\x18\x00"
-		"\x00\x00\x7e\x60\x60\x60\x60\x00"
-		"\x00\x00\x66\x3c\x18\x3c\x66\x00"
-		"\x00\x00\x66\x6e\x7e\x76\x66\x00"
-		"\x00\x18\x66\x6e\x7e\x76\x66\x00"
-		"\x00\x00\x66\x6c\x78\x6c\x66\x00"
-		"\x00\x00\x1e\x36\x66\x66\x66\x00"
-		"\x00\x00\xc6\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\x66\x66\x7e\x66\x66\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00"
-		"\x00\x00\x7e\x66\x66\x66\x66\x00"
-		"\x00\x00\x3e\x66\x3e\x36\x66\x00"
-		"\x00\x00\x7c\x66\x66\x7c\x60\x00"
-		"\x00\x00\x3c\x66\x60\x66\x3c\x00"
-		"\x00\x00\x7e\x18\x18\x18\x18\x00"
-		"\x00\x00\x66\x66\x3e\x06\x3c\x00"
-		"\x00\x00\xdb\x7e\x3c\x7e\xdb\x00"
-		"\x00\x00\x7c\x66\x7c\x66\x7c\x00"
-		"\x00\x00\x60\x60\x7c\x66\x7c\x00"
-		"\x00\x00\xc6\xc6\xf6\xde\xf6\x00"
-		"\x00\x00\x3c\x66\x0c\x66\x3c\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\xff\x00"
-		"\x00\x00\x7c\x06\x3e\x06\x7c\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\xff\x03"
-		"\x00\x00\x66\x66\x3e\x06\x06\x00"
-		"\x00\x00\xe0\x60\x7c\x66\x7c\x00"
-		"\xce\xdb\xdb\xfb\xdb\xdb\xce\x00"
-		"\x1e\x36\x66\x66\x7e\x66\x66\x00"
-		"\x7c\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x66\x66\x66\x66\x66\x66\x7f\x03"
-		"\x38\x6c\x6c\x6c\x6c\x6c\xfe\xc6"
-		"\x7e\x60\x60\x7c\x60\x60\x7e\x00"
-		"\x7e\xdb\xdb\xdb\x7e\x18\x18\x00"
-		"\x7e\x60\x60\x60\x60\x60\x60\x00"
-		"\x66\x66\x3c\x18\x3c\x66\x66\x00"
-		"\x66\x66\x6e\x7e\x76\x66\x66\x00"
-		"\x3c\x66\x6e\x7e\x76\x66\x66\x00"
-		"\x66\x6c\x78\x70\x78\x6c\x66\x00"
-		"\x1e\x36\x66\x66\x66\x66\x66\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\x66\x66\x66\x7e\x66\x66\x66\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3c\x00"
-		"\x7e\x66\x66\x66\x66\x66\x66\x00"
-		"\x3e\x66\x66\x66\x3e\x36\x66\x00"
-		"\x7c\x66\x66\x66\x7c\x60\x60\x00"
-		"\x3c\x66\x60\x60\x60\x66\x3c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\x66\x66\x66\x3e\x06\x66\x3c\x00"
-		"\xdb\xdb\x7e\x3c\x7e\xdb\xdb\x00"
-		"\x7c\x66\x66\x7c\x66\x66\x7c\x00"
-		"\x60\x60\x60\x7c\x66\x66\x7c\x00"
-		"\xc6\xc6\xc6\xf6\xde\xde\xf6\x00"
-		"\x3c\x66\x06\x1c\x06\x66\x3c\x00"
-		"\xdb\xdb\xdb\xdb\xdb\xdb\xff\x00"
-		"\x78\x8c\x06\x3e\x06\x8c\x78\x00"
-		"\xdb\xdb\xdb\xdb\xdb\xdb\xff\x03"
-		"\x66\x66\x66\x3e\x06\x06\x06\x00"
-		"\xe0\x60\x60\x7c\x66\x66\x7c\x00"
-	, "Ukrainian font koi8-u", CIOLIB_KOI8_U}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x10\x10\x10\x10\x10\x00\x00\x10\x10\x00\x00\x00"
-		"\x00\x00\x24\x24\x24\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x24\x24\x24\x7e\x24\x24\x24\x7e\x24\x24\x24\x00\x00\x00"
-		"\x00\x00\x08\x3f\x48\x48\x48\x3e\x09\x09\x09\x7e\x08\x00\x00\x00"
-		"\x00\x00\x00\x30\x49\x32\x04\x08\x10\x26\x49\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x24\x24\x18\x25\x22\x22\x22\x1d\x00\x00\x00\x00"
-		"\x00\x18\x08\x08\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x04\x08\x10\x10\x10\x10\x10\x10\x08\x04\x00\x00\x00\x00"
-		"\x00\x00\x10\x08\x04\x04\x04\x04\x04\x04\x08\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x24\x18\x7e\x18\x24\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x08\x08\x08\x7f\x08\x08\x08\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x08\x10\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x01\x02\x04\x08\x10\x20\x40\x80\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x24\x42\x42\x42\x42\x42\x42\x24\x18\x00\x00\x00\x00"
-		"\x00\x00\x08\x18\x08\x08\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x02\x02\x04\x08\x10\x20\x40\x7e\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x02\x02\x1c\x02\x02\x02\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x02\x06\x0a\x12\x22\x42\x7f\x02\x02\x02\x00\x00\x00\x00"
-		"\x00\x00\x7e\x40\x40\x40\x7c\x02\x02\x02\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x40\x40\x40\x7c\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x02\x02\x04\x04\x08\x08\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x42\x42\x3c\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x42\x42\x42\x3e\x02\x02\x02\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x08\x08\x10\x00"
-		"\x00\x00\x00\x04\x08\x10\x20\x40\x20\x10\x08\x04\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x20\x10\x08\x04\x02\x04\x08\x10\x20\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x02\x02\x04\x08\x10\x00\x00\x10\x10\x00\x00\x00"
-		"\x00\x00\x00\x1c\x22\x49\x55\x55\x56\x4c\x20\x1e\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x42\x42\x42\x7e\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x7c\x42\x42\x42\x7c\x42\x42\x42\x42\x7c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x40\x40\x40\x40\x40\x40\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x78\x44\x42\x42\x42\x42\x42\x42\x44\x78\x00\x00\x00\x00"
-		"\x00\x00\x7e\x40\x40\x40\x7c\x40\x40\x40\x40\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7e\x40\x40\x40\x7c\x40\x40\x40\x40\x40\x00\x00\x00\x00"
-		"\x00\x00\x3e\x40\x40\x40\x4e\x42\x42\x42\x42\x3e\x00\x00\x00\x00"
-		"\x00\x00\x42\x42\x42\x42\x7e\x42\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x1c\x08\x08\x08\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x00\x0e\x02\x02\x02\x02\x02\x02\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x42\x44\x48\x50\x60\x60\x50\x48\x44\x42\x00\x00\x00\x00"
-		"\x00\x00\x40\x40\x40\x40\x40\x40\x40\x40\x40\x7e\x00\x00\x00\x00"
-		"\x00\x00\x41\x63\x55\x49\x41\x41\x41\x41\x41\x41\x00\x00\x00\x00"
-		"\x00\x00\x42\x62\x52\x52\x4a\x4a\x46\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x7c\x42\x42\x42\x42\x7c\x40\x40\x40\x40\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x42\x42\x42\x42\x42\x42\x4a\x3c\x04\x02\x00\x00"
-		"\x00\x00\x7c\x42\x42\x42\x42\x7c\x50\x48\x44\x42\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x40\x40\x3c\x02\x02\x02\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x7f\x08\x08\x08\x08\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x42\x42\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x41\x41\x41\x41\x41\x22\x22\x14\x14\x08\x00\x00\x00\x00"
-		"\x00\x00\x41\x41\x41\x41\x41\x41\x49\x55\x63\x41\x00\x00\x00\x00"
-		"\x00\x00\x41\x41\x22\x14\x08\x08\x14\x22\x41\x41\x00\x00\x00\x00"
-		"\x00\x00\x41\x41\x41\x22\x14\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x7e\x02\x02\x04\x08\x10\x20\x40\x40\x7e\x00\x00\x00\x00"
-		"\x00\x00\x3c\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\x40\x20\x10\x08\x04\x02\x01\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x04\x04\x04\x04\x04\x04\x04\x04\x3c\x00\x00\x00\x00"
-		"\x00\x00\x08\x14\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x00\x18\x10\x10\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x42\x02\x3e\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x00\x40\x40\x40\x7c\x42\x42\x42\x42\x42\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x42\x40\x40\x40\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x02\x02\x02\x3e\x42\x42\x42\x42\x42\x3e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x42\x42\x7e\x40\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x0e\x10\x10\x7e\x10\x10\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x42\x42\x42\x42\x42\x3e\x02\x02\x3c\x00"
-		"\x00\x00\x40\x40\x40\x7c\x42\x42\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x08\x08\x00\x38\x08\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x02\x02\x00\x0e\x02\x02\x02\x02\x02\x02\x02\x42\x3c\x00"
-		"\x00\x00\x40\x40\x40\x42\x44\x48\x70\x48\x44\x42\x00\x00\x00\x00"
-		"\x00\x00\x70\x10\x10\x10\x10\x10\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\x49\x49\x49\x49\x49\x49\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x42\x42\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x42\x42\x42\x42\x42\x7c\x40\x40\x40\x00"
-		"\x00\x00\x00\x00\x00\x3e\x42\x42\x42\x42\x42\x3e\x02\x02\x02\x00"
-		"\x00\x00\x00\x00\x00\x5c\x62\x40\x40\x40\x40\x40\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x42\x40\x3c\x02\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x10\x7c\x10\x10\x10\x10\x10\x0e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x42\x42\x42\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x42\x42\x42\x42\x24\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x49\x49\x49\x49\x49\x49\x36\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x42\x24\x18\x24\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x42\x42\x42\x42\x42\x3e\x02\x02\x3c\x00"
-		"\x00\x00\x00\x00\x00\x7e\x04\x08\x10\x20\x40\x7e\x00\x00\x00\x00"
-		"\x00\x0c\x10\x10\x10\x10\x20\x10\x10\x10\x10\x0c\x00\x00\x00\x00"
-		"\x00\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x00\x00\x00"
-		"\x00\x30\x08\x08\x08\x08\x04\x08\x08\x08\x08\x30\x00\x00\x00\x00"
-		"\x00\x00\x32\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x10\x10\x00\x00\x10\x10\x10\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x08\x08\x3c\x4a\x48\x48\x4a\x3c\x08\x08\x00\x00\x00"
-		"\x00\x00\x1c\x22\x22\x20\x78\x20\x20\x20\x21\x7e\x00\x00\x00\x00"
-		"\x00\x00\x1e\x21\x20\x7e\x20\x7e\x20\x21\x1e\x00\x00\x00\x00\x00"
-		"\x00\x00\x41\x22\x14\x08\x08\x3e\x08\x3e\x08\x08\x00\x00\x00\x00"
-		"\x24\x18\x00\x3c\x42\x40\x40\x3c\x02\x02\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x20\x3c\x42\x42\x42\x3c\x04\x42\x3c\x00\x00\x00"
-		"\x00\x00\x24\x18\x00\x3c\x42\x40\x3c\x02\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x3e\x41\x41\x5d\x51\x51\x5d\x41\x41\x3e\x00\x00\x00\x00"
-		"\x00\x00\x00\x38\x44\x44\x3e\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x09\x12\x24\x48\x90\x48\x24\x12\x09\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x02\x02\x02\x00\x00\x00\x00\x00\x00"
-		"\x00\x10\x10\x00\x00\x10\x10\x10\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x3e\x41\x5d\x55\x5d\x59\x55\x55\x41\x3e\x00\x00\x00\x00\x00"
-		"\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x24\x24\x24\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x08\x08\x3e\x08\x08\x00\x3e\x00\x00\x00\x00"
-		"\x00\x00\x30\x48\x10\x20\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x70\x08\x30\x08\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x24\x18\x00\x7e\x02\x04\x08\x10\x20\x40\x40\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x42\x42\x42\x42\x7e\x41\x40\x40\x80\x00"
-		"\x00\x00\x3e\x4a\x4a\x4a\x3a\x0a\x0a\x0a\x0a\x0a\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x24\x18\x00\x7e\x04\x08\x10\x20\x40\x7e\x00\x00\x00\x00"
-		"\x00\x00\x10\x70\x10\x10\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x24\x18\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x90\x48\x24\x12\x09\x12\x24\x48\x90\x00\x00\x00\x00"
-		"\x00\x00\x7f\x88\x88\x88\x8e\x88\x88\x88\x88\x7f\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x6e\x91\x91\x9f\x90\x91\x6e\x00\x00\x00\x00"
-		"\x14\x14\x00\x41\x41\x22\x14\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x00\x10\x10\x00\x10\x10\x10\x20\x40\x40\x42\x3c\x00\x00"
-		"\x30\x0c\x00\x3c\x42\x42\x42\x7e\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x0c\x30\x00\x3c\x42\x42\x42\x7e\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x18\x24\x00\x3c\x42\x42\x42\x7e\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x32\x4c\x00\x3c\x42\x42\x42\x7e\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x24\x00\x3c\x42\x42\x42\x7e\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x18\x24\x18\x3c\x42\x42\x42\x7e\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x3f\x48\x48\x48\x7e\x48\x48\x48\x48\x4f\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x40\x40\x40\x40\x40\x40\x42\x3c\x04\x02\x3c\x00"
-		"\x18\x06\x00\x3e\x20\x20\x20\x3c\x20\x20\x20\x3e\x00\x00\x00\x00"
-		"\x06\x18\x00\x3e\x20\x20\x20\x3c\x20\x20\x20\x3e\x00\x00\x00\x00"
-		"\x0c\x12\x00\x3e\x20\x20\x20\x3c\x20\x20\x20\x3e\x00\x00\x00\x00"
-		"\x14\x14\x00\x3e\x20\x20\x20\x3c\x20\x20\x20\x3e\x00\x00\x00\x00"
-		"\x18\x06\x00\x1c\x08\x08\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x06\x18\x00\x1c\x08\x08\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x08\x14\x00\x1c\x08\x08\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x14\x14\x00\x1c\x08\x08\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x00\x78\x44\x42\x42\xf2\x42\x42\x42\x44\x78\x00\x00\x00\x00"
-		"\x00\x19\x26\x00\x41\x61\x51\x49\x45\x43\x41\x41\x00\x00\x00\x00"
-		"\x30\x0c\x00\x3c\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x0c\x30\x00\x3c\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x18\x24\x00\x3c\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x32\x4c\x00\x3c\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x66\x00\x3c\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x82\x44\x28\x10\x28\x44\x82\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x19\x26\x44\x4a\x4a\x52\x52\x22\x64\x98\x00\x00\x00\x00"
-		"\x30\x0c\x00\x42\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x0c\x30\x00\x42\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x18\x24\x00\x42\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x66\x00\x42\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x04\x08\x10\x41\x41\x22\x14\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x20\x20\x20\x3e\x21\x21\x21\x31\x2e\x20\x20\x20\x20\x00\x00"
-		"\x00\x00\x1e\x21\x21\x21\x3e\x21\x21\x21\x31\x2e\x20\x00\x00\x00"
-		"\x00\x10\x08\x04\x00\x3c\x42\x02\x3e\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x04\x08\x10\x00\x3c\x42\x02\x3e\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x10\x28\x44\x00\x3c\x42\x02\x3e\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x00\x32\x4c\x00\x3c\x42\x02\x3e\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x00\x24\x24\x00\x3c\x42\x02\x3e\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x1c\x22\x1c\x00\x3c\x42\x02\x3e\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x36\x09\x09\x3e\x48\x48\x3e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x42\x40\x40\x40\x42\x3c\x08\x04\x78\x00"
-		"\x00\x20\x10\x08\x00\x3c\x42\x42\x7e\x40\x42\x3c\x00\x00\x00\x00"
-		"\x00\x04\x08\x10\x00\x3c\x42\x42\x7e\x40\x42\x3c\x00\x00\x00\x00"
-		"\x00\x18\x24\x42\x00\x3c\x42\x42\x7e\x40\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x24\x24\x00\x3c\x42\x42\x7e\x40\x42\x3c\x00\x00\x00\x00"
-		"\x00\x10\x08\x04\x00\x38\x08\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x04\x08\x10\x00\x38\x08\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x08\x14\x22\x00\x38\x08\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x22\x22\x00\x38\x08\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x30\x4c\x04\x3c\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x32\x4c\x00\x7c\x42\x42\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x20\x10\x08\x00\x3c\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x08\x10\x20\x00\x3c\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x18\x24\x00\x3c\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x32\x4c\x00\x3c\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x24\x00\x00\x3c\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\xff\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x1d\x22\x45\x49\x51\x22\x5c\x00\x00\x00\x00"
-		"\x00\x20\x10\x08\x00\x42\x42\x42\x42\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x08\x10\x20\x00\x42\x42\x42\x42\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x18\x24\x42\x00\x42\x42\x42\x42\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x00\x24\x24\x00\x42\x42\x42\x42\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x00\x04\x08\x10\x00\x42\x42\x42\x42\x42\x3e\x02\x02\x3c\x00"
-		"\x00\x20\x20\x20\x3e\x21\x21\x21\x21\x31\x2e\x20\x20\x20\x00\x00"
-		"\x00\x00\x24\x24\x00\x00\x42\x42\x42\x42\x42\x3e\x02\x02\x3c\x00"
-	, NULL, NULL, "ISO-8859-15 West European, (thin)", CIOLIB_ISO_8859_15}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\xee\xee\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\x6c\xfe\x6c\x6c\xfe\x6c\x6c\x6c\x00\x00\x00"
-		"\x00\x18\x18\x7e\xdb\xd8\x58\x38\x1c\x1e\xdb\xdb\x7e\x18\x18\x00"
-		"\x00\x00\x00\xe2\xa6\xec\x18\x18\x30\x60\x6e\xca\x8e\x00\x00\x00"
-		"\x00\x00\x00\x38\x6c\x38\x30\x76\x7e\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x38\x38\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x6c\x38\xfe\x38\x6c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x38\x18\x30\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x38\x00\x00\x00"
-		"\x00\x00\x00\x02\x06\x0c\x18\x18\x30\x60\x60\xc0\x80\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xce\xd6\xd6\xd6\xd6\xe6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x18\x78\x18\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x0c\x1c\x3c\x6c\xcc\xcc\xfe\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x30\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\x7e\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x38\x38\x00\x00\x00\x38\x38\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x38\x38\x00\x00\x00\x38\x38\x18\x30\x00"
-		"\x00\x00\x00\x00\x0c\x18\x30\x60\x60\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x60\x30\x18\x0c\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xde\xde\xde\xdc\xc0\x7e\x00\x00\x00"
-		"\x00\x00\x00\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x00\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00"
-		"\x00\x00\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00\x00"
-		"\x00\x00\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc0\xc0\xce\xce\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x3c\x18\x18\x18\x18\x18\x18\xd8\xd8\x70\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xee\xee\xfe\xd6\xd6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xe6\xe6\xf6\xde\xce\xce\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x06\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x78\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc0\xc0\x70\x1c\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xff\xdb\x99\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x7c\x60\x60\x60\x60\x60\x60\x60\x60\x7c\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\x60\x60\x30\x18\x0c\x0c\x06\x02\x00\x00\x00"
-		"\x00\x00\x00\x7c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x7c\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x00\x00\x38\x38\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\xe0\x60\x60\x7c\x66\x66\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x1c\x0c\x0c\x7c\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x1c\x36\x30\xfc\x30\x30\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x76\xce\xc6\xc6\xc6\xce\x76\x06\xfc\x00"
-		"\x00\x00\x00\xe0\x60\x60\x7c\x66\x66\x66\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\x00\x00\x00\xe0\x60\x60\x66\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x30\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\x6c\x38\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\x6c\x6c\x38\x30\x30\x60\xc0\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x7c\x00\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x0c\x18\x20\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x38\x6c\x00\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x76\xdc\x00\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x6c\x6c\x00\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x38\x6c\x38\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x3f\x6c\xcc\xcc\xff\xcc\xcc\xcc\xcc\xcf\x00\x00\x00"
-		"\x00\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x30\x1e\x00"
-		"\x66\x3c\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x18\x30\x40\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00\x00"
-		"\x00\x00\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x30\x1e\x00"
-		"\x6c\x6c\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00\x00"
-		"\x18\x18\x00\xfe\x66\x60\x60\x78\x60\x60\x60\x66\xfe\x00\x00\x00"
-		"\x0c\x18\x20\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x3c\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x3c\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\xf8\x6c\x66\x66\xf6\xf6\x66\x66\x6c\xf8\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x0c\x78\x00"
-		"\x00\x7c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x0c\x78\x00"
-		"\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\xc6\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\x6c\x38\x6c\xc6\x00\x00\x00\x00\x00"
-		"\x00\x02\x06\x7c\xce\xde\xd6\xd6\xd6\xd6\xf6\xe6\x7c\xc0\x80\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x60\x3c\x00"
-		"\x0c\x18\x20\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x38\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x76\xdc\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x7c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xd8\xcc\xc6\xc6\xc6\xcc\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc6\xfe\x00\x00"
-		"\x00\x00\x00\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xce\x18\x0e\x00"
-		"\x00\x00\x00\x00\x00\x00\xe6\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x78\x6c\x66\x66\xf6\x18\xf0\x00"
-		"\x00\x00\x00\x00\x00\xc6\x7c\xc6\xc6\xc6\x7c\xc6\x00\x00\x00\x00"
-		"\x76\xdc\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x0c\x78\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x00\x7c\xc6\xc0\xc0\x70\x1c\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x7c\x00\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc0\xc0\xce\xce\xc6\xc6\x7c\x0c\x78\x00"
-		"\x00\x00\x00\xff\xdb\x99\x18\x1e\x3c\x78\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00"
-		"\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x30\x1e\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x1e\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x60\x60\x60\x60\xf0\x18\xf0\x00"
-		"\x0c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x0c\x78\x00"
-		"\x00\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x78\x00\x00"
-		"\x00\x00\x00\x6c\x38\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x3c\x60\x30\x00\x76\xce\xc6\xc6\xc6\xce\x76\x06\xfc\x00"
-		"\x00\x00\x00\x30\x30\x30\xfc\x30\x3c\x78\xf0\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\xdc\xfe\xe6\xc6\xc6\xc6\xc6\xc6\xc6\xdc\x00\x00\x00"
-		"\x00\x00\x00\x6c\x38\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\xfe\xe6\xc6\xc6\xc6\x06\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x18\x30\x60\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\xcc\xcc\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x38\x6c\x38\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x6e\x19\x7f\xd8\xd8\xd8\x6f\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x30\x1c\x00"
-		"\x00\x00\x00\x6c\x38\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x30\x1e\x00"
-		"\x00\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x38\x10\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x0c\x7e\x0c\x7c\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x0c\x78\x00"
-		"\x00\x00\x00\x00\x7c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xe0\x60\x60\x66\x66\x6c\x78\x6c\x66\xe6\x18\xf0\x00"
-		"\x00\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x06\x7c\xce\xde\xd6\xf6\xe6\x7c\xc0\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x60\x3c\x00"
-		"\x00\x00\x18\x30\x60\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\xcc\xcc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\xfc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00"
-		"\x00\xee\xee\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x6c\xfe\x6c\x6c\xfe\x6c\x6c\x6c\x00\x00"
-		"\x00\x18\x7e\xdb\xdb\xd8\x78\x1c\x1e\x9b\xdb\x7e\x18\x18"
-		"\x00\x00\xe6\xa6\xec\x1c\x18\x30\x70\x6e\xca\xce\x00\x00"
-		"\x00\x00\x38\x6c\x38\x30\x76\x7e\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x38\x38\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x6c\x38\xfe\x38\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x38\x18\x30"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x38\x00\x00"
-		"\x00\x00\x06\x06\x0c\x0c\x18\x30\x30\x60\xc0\xc0\x00\x00"
-		"\x00\x00\x7c\xc6\xce\xd6\xd6\xd6\xd6\xe6\xc6\x7c\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xcc\xfe\x0c\x0c\x1e\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x7c\xc6\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x30\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\x7e\x06\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x38\x38\x00\x00\x00\x38\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\x38\x38\x00\x00\x00\x38\x38\x18\x30"
-		"\x00\x00\x00\x0c\x18\x30\x60\x60\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xde\xde\xde\xdc\xc0\x7e\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00"
-		"\x00\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00"
-		"\x00\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xce\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\xd8\xd8\x70\x00\x00"
-		"\x00\x00\xc6\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00"
-		"\x00\x00\xc6\xc6\xee\xee\xfe\xd6\xd6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\xc6\xc6\xe6\xe6\xf6\xde\xce\xce\xc6\xc6\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x06\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x78\x6c\x66\x66\xe6\x00\x00"
-		"\x00\x00\x7c\xc6\xc0\xc0\x70\x1c\x06\x06\xc6\x7c\x00\x00"
-		"\x00\x00\xff\xdb\x99\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\xc6\xc6\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00"
-		"\x00\x00\x7c\x60\x60\x60\x60\x60\x60\x60\x60\x7c\x00\x00"
-		"\x00\x00\xc0\xc0\x60\x60\x30\x18\x18\x0c\x06\x06\x00\x00"
-		"\x00\x00\x7c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x7c\x00\x00"
-		"\x00\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x00\x38\x38\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\xe0\x60\x60\x7c\x66\x66\x66\x66\x66\xfc\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x7c\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x1c\x36\x30\x30\xfc\x30\x30\x30\x30\x78\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xce\xc6\xc6\xc6\xce\x76\x06\xfc"
-		"\x00\x00\xe0\x60\x60\x7c\x66\x66\x66\x66\x66\xe6\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78"
-		"\x00\x00\xe0\x60\x60\x66\x66\x6c\x78\x6c\x66\xe6\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\xf0"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0e"
-		"\x00\x00\x00\x00\x00\xdc\x66\x60\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\x7c\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x30\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\x6c\x38\x6c\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\x6c\x6c\x38\x30\x30\x60\xc0"
-		"\x00\x00\x00\x00\x00\xfe\x86\x0c\x18\x30\x62\xfe\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00"
-		"\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7c\x00\x38\x7c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x0c\x18\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x38\x6c\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x76\xdc\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\xc6\xc6\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x38\x6c\x38\x10\x38\x6c\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x3f\x6c\xcc\xcc\xff\xcc\xcc\xcc\xcc\xcf\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x30\x1e"
-		"\x66\x3c\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00"
-		"\x0e\x18\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00"
-		"\x00\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x30\x1e"
-		"\x6c\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00"
-		"\x18\x18\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00"
-		"\x0c\x18\x20\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x3c\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x7e\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\xf6\xf6\x66\x66\x6c\xf8\x00\x00"
-		"\x00\x00\xc6\xc6\xe6\xe6\xf6\xde\xce\xce\xc6\xc6\x0c\x78"
-		"\x7c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xc6\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x0c\x78"
-		"\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x6c\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\x18\x3c\x66\x00\x00\x00\x00"
-		"\x02\x04\x7c\xce\xce\xd6\xd6\xd6\xd6\xe6\xe6\x7c\x40\x80"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x30\x1c"
-		"\x0c\x18\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x38\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\xc6\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x76\xdc\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x7c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xd8\xcc\xc6\xc6\xc6\xcc\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc6\xfe\x00"
-		"\x00\x00\x38\x7c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xce\x18\x0e"
-		"\x00\x00\x00\x00\x00\xe6\x6c\x78\x78\x6c\x66\xe6\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x78\x6c\x66\x66\xe6\x0c\x78"
-		"\x00\x00\x00\x00\x00\xc6\x7c\xc6\xc6\xc6\x7c\xc6\x00\x00"
-		"\x76\xdc\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x0c\x78"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\xce\xc6\x7c\x00"
-		"\x00\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\x7c\x00\x00"
-		"\x7c\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xce\xc6\xc6\xc6\x7c\x0c\x78"
-		"\x00\x00\xff\xdb\x99\x18\x1e\x3c\x78\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00"
-		"\x66\x3c\x00\xfe\xc6\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00"
-		"\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x18\x0e"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x0e"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x30\xe0"
-		"\x00\x0c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x18\xf0"
-		"\x00\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x70"
-		"\x00\x00\x6c\x38\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x7c\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x3c\x60\x38\x00\x76\xce\xc6\xc6\xc6\xce\x76\x06\xfc\x00"
-		"\x00\x00\x30\x30\x30\xfc\x30\x3c\x78\xf0\x36\x1c\x00\x00"
-		"\x00\x00\xdc\xfe\xf6\xe6\xc6\xc6\xc6\xc6\xc6\xdc\x00\x00"
-		"\x00\x00\x6c\x38\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00"
-		"\x00\x00\x00\x00\xdc\xfe\xf6\xe6\xc6\xc6\x06\x1c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x18\x30\x60\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x76\xdc\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\xcc\xcc\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x38\x6c\x38\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\x00\x00\x6e\x19\x7f\xd8\xd8\xd8\x6f\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x30\x1e"
-		"\x00\x00\x6c\x38\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x18\x1e"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x18\x18\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x0c\x18\x30\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x18\x3c\x66\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x7c\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x0c\x7e\x0c\x7c\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x0c\x78"
-		"\x00\x00\x00\x7c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xe0\x60\x60\x66\x66\x6c\x78\x6c\x66\xe6\x0c\x78"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x06\x7c\xce\xd6\xd6\xd6\xe6\x7c\xc0\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x30\x1e"
-		"\x00\x0c\x18\x30\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x10\x38\x6c\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\xcc\xcc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x76\xdc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\xfc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x18\x3c\x3c\x18\x18\x00\x18"
-		"\x00\xee\x66\xcc\x00\x00\x00\x00"
-		"\x00\x6c\xfe\x6c\x6c\x6c\xfe\x6c"
-		"\x18\x7e\xdb\xd8\x7e\x1b\xdb\x7e"
-		"\x00\x00\xc6\xcc\x18\x30\x66\xc6"
-		"\x00\x38\x6c\x3a\x7e\xcc\xcc\x76"
-		"\x00\x38\x18\x70\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x30\x30\x18\x0c"
-		"\x00\x30\x18\x0c\x0c\x0c\x18\x30"
-		"\x00\x00\x6c\x38\xfe\x38\x6c\x00"
-		"\x00\x00\x18\x18\x7e\x18\x18\x00"
-		"\x00\x00\x00\x00\x00\x38\x18\x70"
-		"\x00\x00\x00\x00\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18"
-		"\x00\x06\x0c\x18\x18\x30\x60\xc0"
-		"\x00\x7c\xc6\xce\xd6\xe6\xc6\x7c"
-		"\x00\x18\x78\x18\x18\x18\x18\x7e"
-		"\x00\x7c\xc6\x8c\x38\x60\xc2\xfe"
-		"\x00\x7c\xc6\x06\x3c\x06\xc6\x7c"
-		"\x00\x1c\x3c\x6c\xcc\xfe\x0c\x1e"
-		"\x00\xfe\xc0\xfc\x06\x06\xc6\x7c"
-		"\x00\x7c\xc6\xc0\xfc\xc6\xc6\x7c"
-		"\x00\xfe\xc6\x06\x0c\x18\x30\x30"
-		"\x00\x7c\xc6\xc6\x7c\xc6\xc6\x7c"
-		"\x00\x7c\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\x00\x18\x18\x00\x18\x18\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x70"
-		"\x00\x00\x18\x30\x60\x30\x18\x00"
-		"\x00\x00\x00\xfe\x00\xfe\x00\x00"
-		"\x00\x00\x30\x18\x0c\x18\x30\x00"
-		"\x00\x7c\xc6\xcc\x18\x18\x00\x18"
-		"\x00\x7c\xc6\xc6\xde\xdc\xc0\x7e"
-		"\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6"
-		"\x00\xfc\x66\x66\x7c\x66\x66\xfc"
-		"\x00\x3c\x66\xc2\xc0\xc2\x66\x3c"
-		"\x00\xf8\x6c\x66\x66\x66\x6c\xf8"
-		"\x00\xfe\x66\x60\x7c\x60\x66\xfe"
-		"\x00\xfe\x66\x60\x7c\x60\x60\xf0"
-		"\x00\x7c\xc6\xc0\xce\xc6\xc6\x7c"
-		"\x00\xc6\xc6\xc6\xfe\xc6\xc6\xc6"
-		"\x00\x3c\x18\x18\x18\x18\x18\x3c"
-		"\x00\x3c\x18\x18\x18\xd8\xd8\x70"
-		"\x00\xc6\xcc\xd8\xf0\xd8\xcc\xc6"
-		"\x00\xf0\x60\x60\x60\x62\x66\xfe"
-		"\x00\xc6\xc6\xee\xfe\xd6\xc6\xc6"
-		"\x00\xc6\xe6\xf6\xde\xce\xc6\xc6"
-		"\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c"
-		"\x00\xfc\x66\x66\x7c\x60\x60\xf0"
-		"\x00\x7c\xc6\xc6\xd6\xd6\x7c\x06"
-		"\x00\xfc\x66\x66\x7c\x78\x66\xe6"
-		"\x00\x7c\xc6\xc0\x7c\x06\xc6\x7c"
-		"\x00\xff\xdb\x99\x18\x18\x18\x3c"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7c"
-		"\x00\xc6\xc6\xc6\xc6\x6c\x38\x10"
-		"\x00\xc6\xc6\xd6\xd6\xfe\xee\x6c"
-		"\x00\xc6\xc6\x6c\x38\x6c\xc6\xc6"
-		"\x00\x66\x66\x66\x3c\x18\x18\x3c"
-		"\x00\xfe\xc6\x8c\x38\x62\xc6\xfe"
-		"\x00\x7c\x60\x60\x60\x60\x60\x7c"
-		"\x00\xc0\x60\x30\x30\x18\x0c\x06"
-		"\x00\x7c\x0c\x0c\x0c\x0c\x0c\x7c"
-		"\x00\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x00\x38\x30\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x78\x0c\x7c\xcc\x76"
-		"\x00\xe0\x60\x7c\x66\x66\x66\xfc"
-		"\x00\x00\x00\x78\xcc\xc0\xcc\x78"
-		"\x00\x0e\x0c\x7c\xcc\xcc\xcc\x7e"
-		"\x00\x00\x00\x7c\xc6\xfe\xc0\x7c"
-		"\x00\x1c\x36\x30\xfc\x30\x30\x78"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\xe0\x60\x7c\x66\x66\xe6"
-		"\x18\x18\x00\x38\x18\x18\x18\x3c"
-		"\x0c\x0c\x00\x1c\x0c\x0c\xcc\x78"
-		"\x00\xe0\x60\x66\x6c\x78\x6c\xe6"
-		"\x00\x38\x18\x18\x18\x18\x18\x3c"
-		"\x00\x00\x00\xec\xfe\xd6\xd6\xc6"
-		"\x00\x00\x00\xdc\x66\x66\x66\x66"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\x7c"
-		"\x00\x00\xdc\x66\x66\x7c\x60\xf0"
-		"\x00\x00\x76\xcc\xcc\x7c\x0e\x0e"
-		"\x00\x00\x00\xdc\x66\x60\x60\xf0"
-		"\x00\x00\x00\x7c\xc0\x7c\x06\xfc"
-		"\x00\x30\x30\xfc\x30\x30\x36\x1c"
-		"\x00\x00\x00\xcc\xcc\xcc\xcc\x76"
-		"\x00\x00\x00\xc6\xc6\x6c\x38\x10"
-		"\x00\x00\x00\xc6\xd6\xd6\xfe\x6c"
-		"\x00\x00\x00\xc6\x6c\x38\x6c\xc6"
-		"\x00\x00\x00\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\x00\xfe\x8c\x38\x62\xfe"
-		"\x00\x0e\x18\x18\x70\x18\x18\x0e"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x70\x18\x18\x0e\x18\x18\x70"
-		"\x00\x76\xdc\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7c\x00\x7c\xc6\xc6\xfe\xc6\xc6"
-		"\x0c\x18\x7c\xc6\xc6\xfe\xc6\xc6"
-		"\x7c\x82\x7c\xc6\xc6\xfe\xc6\xc6"
-		"\xc6\x7c\x7c\xc6\xc6\xfe\xc6\xc6"
-		"\xc6\x38\x6c\xc6\xc6\xfe\xc6\xc6"
-		"\x38\x6c\x38\x6c\xc6\xfe\xc6\xc6"
-		"\x00\x3e\x78\xd8\xfe\xd8\xd8\xde"
-		"\x78\x30\x30\x30\x30\x78\x30\x1c"
-		"\x6c\x38\x7c\xc6\xc0\xc0\xc6\x7c"
-		"\x0e\x18\xfe\x62\x78\x60\x66\xfe"
-		"\xfe\x66\x60\x78\x60\x66\xfe\x1c"
-		"\x6c\xfe\x66\x60\x7c\x60\x66\xfe"
-		"\x18\xfe\x66\x60\x7c\x60\x66\xfe"
-		"\x0c\x18\x3c\x18\x18\x18\x18\x3c"
-		"\x3c\x42\x3c\x18\x18\x18\x18\x3c"
-		"\x3c\x00\x3c\x18\x18\x18\x18\x3c"
-		"\x00\xf8\x6c\x66\xf6\xf6\x6c\xf8"
-		"\xc6\xe6\xf6\xde\xce\xc6\x0c\x38"
-		"\x7c\x00\x7c\xc6\xc6\xc6\xc6\x7c"
-		"\xc6\xcc\xf8\xd8\xcc\xc6\x0c\x38"
-		"\x7c\x82\x7c\xc6\xc6\xc6\xc6\x7c"
-		"\x76\xdc\x7c\xc6\xc6\xc6\xc6\x7c"
-		"\xc6\x7c\xc6\xc6\xc6\xc6\xc6\x7c"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x03\x7e\xce\xde\xd6\xf6\xe6\xfc"
-		"\xc6\xc6\xc6\xc6\xc6\x7c\x30\x1e"
-		"\x1c\x30\xc6\xc6\xc6\xc6\xc6\x7c"
-		"\x38\x6c\x00\xc6\xc6\xc6\xc6\x7c"
-		"\xc6\x00\xc6\xc6\xc6\xc6\xc6\x7c"
-		"\x76\xdc\x00\xc6\xc6\xc6\xc6\x7c"
-		"\x7c\x00\xc6\xc6\xc6\xc6\xc6\x7c"
-		"\x00\x7c\xc6\xfc\xc6\xc6\xfc\xc0"
-		"\x00\x00\x00\x00\x00\x00\xc6\xfe"
-		"\x38\x6c\xc6\xfe\xc6\xce\x18\x0e"
-		"\x00\x00\x00\xe6\x6c\x78\x6c\xe6"
-		"\xfc\x66\x7e\x6c\x66\xe6\x18\x70"
-		"\x00\x42\x3c\x66\x66\x3c\x42\x00"
-		"\x76\xdc\x38\x18\x18\x18\x18\x3c"
-		"\xf0\x60\x60\x62\x66\xfe\x18\x70"
-		"\x3c\x66\x38\x6c\x6c\x38\xcc\x78"
-		"\x66\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x7c\xc0\x7c\x06\xc6\x7c"
-		"\x7c\x00\xfe\x60\x7c\x60\x66\xfe"
-		"\x3c\x66\xc0\xce\x66\x3e\x18\x70"
-		"\x00\xff\x99\x1e\x3c\x78\x18\x3c"
-		"\x00\x00\x00\x00\x00\x3c\x00\x00"
-		"\x6c\x38\xfe\x8c\x18\x32\x66\xfe"
-		"\x7c\x00\x00\x00\x00\x00\x00\x00"
-		"\x38\x6c\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x0f"
-		"\x00\x00\x00\x00\x00\x00\x10\x1c"
-		"\x00\x00\xdc\x76\x66\xf0\x30\xe0"
-		"\x18\x30\x00\x00\x00\x00\x00\x00"
-		"\x00\x76\xdc\x00\x38\x18\x18\x3c"
-		"\x38\x18\x18\x18\x18\x3c\x18\x70"
-		"\x6c\x38\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x04\x1c"
-		"\x00\x6c\x38\x7c\xc0\x7c\x06\xfc"
-		"\x00\x7c\x00\x7c\xc6\xfe\xc0\x7c"
-		"\x38\x60\x30\x7e\xcc\x7c\x0c\xf8"
-		"\x00\x30\x30\xfc\x30\x38\x76\x1c"
-		"\x00\xdc\xfe\xf6\xc6\xc6\xc6\xdc"
-		"\x6c\x38\x00\xfe\x8c\x38\x62\xfe"
-		"\x00\x00\xdc\xfe\xf6\xc6\x06\x1c"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x7c\x00\x78\x0c\x7c\xcc\x76"
-		"\x0c\x18\x20\x78\x0c\x7c\xcc\x76"
-		"\x00\x78\x84\x78\x0c\x7c\xcc\x76"
-		"\x6c\x38\x00\x78\x0c\x7c\xcc\x76"
-		"\x00\xcc\x00\x78\x0c\x7c\xcc\x76"
-		"\x00\x38\x6c\x78\x0c\x7c\xcc\x76"
-		"\x00\x00\x00\x6e\x3b\x7e\xd8\x7e"
-		"\x18\x00\x38\x18\x18\x3c\x18\x0e"
-		"\x00\xcc\x78\x78\xcc\xc0\xcc\x78"
-		"\x0c\x18\x00\x7c\xc6\xfe\xc0\x7c"
-		"\x00\x00\x7c\xc6\xfe\xc0\x7a\x1e"
-		"\x00\x6c\x00\x7c\xc6\xfe\xc0\x7c"
-		"\x00\x38\x00\x7c\xc6\xfe\xc0\x7c"
-		"\x0c\x18\x20\x38\x18\x18\x18\x3c"
-		"\x00\x3c\x42\x38\x18\x18\x18\x3c"
-		"\x00\x3c\x00\x38\x18\x18\x18\x3c"
-		"\x00\x0c\x3e\x0c\x7c\xcc\xcc\x76"
-		"\x00\x00\xdc\xe6\xc6\xc6\x18\x70"
-		"\x00\x7c\x00\x7c\xc6\xc6\xc6\x7c"
-		"\x00\xe0\x66\x6c\x78\x6c\xe6\x1c"
-		"\x7c\xc6\x00\x7c\xc6\xc6\xc6\x7c"
-		"\x76\xdc\x00\x7c\xc6\xc6\xc6\x7c"
-		"\x00\x6c\x00\x7c\xc6\xc6\xc6\x7c"
-		"\x00\x00\x18\x00\x7e\x00\x18\x00"
-		"\x00\x06\x7c\xce\xd6\xe6\x7c\xc0"
-		"\x00\x00\xcc\xcc\xcc\x7e\x30\x1c"
-		"\x0c\x18\x20\xcc\xcc\xcc\xcc\x76"
-		"\x78\xcc\x00\xcc\xcc\xcc\xcc\x76"
-		"\x00\xcc\x00\xcc\xcc\xcc\xcc\x76"
-		"\x76\xdc\x00\xcc\xcc\xcc\xcc\x76"
-		"\x00\x78\x00\xcc\xcc\xcc\xcc\x76"
-		"\x18\x00\x00\x00\x00\x00\x00\x00"
-	, "ISO-8859-4 Baltic (VGA 9bit mapped)", CIOLIB_ISO_8859_4}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x18\x3c\x3c\x3c\x3c\x18\x18\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x63\x63\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x6c\x6c\x6c\xfe\xfe\x6c\x6c\x6c\xfe\xfe\x6c\x6c\x6c\x00\x00"
-		"\x00\x18\x7e\xdb\xdb\xe8\x78\x3c\x1e\x17\xdb\xdb\x7e\x18\x18\x00"
-		"\x00\xe6\xa6\xec\x0c\x18\x18\x30\x30\x60\x6e\xca\xce\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x6c\x38\x38\x6d\xcd\xc6\xc6\xcb\x73\x00\x00\x00"
-		"\x00\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x00\x00"
-		"\x00\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x3c\xff\xff\x3c\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\x03\x06\x0c\x18\x30\x60\xc3\xff\x00\x00\x00"
-		"\x00\xfe\xc6\x0c\x18\x3c\x06\x03\x03\x03\xc3\x66\x3c\x00\x00\x00"
-		"\x00\x1c\x1c\x3c\x3c\x6c\x6c\xcc\xcd\xff\x0d\x0c\x1e\x00\x00\x00"
-		"\x00\xfe\xc0\xc0\xc0\xfc\xe6\xc3\x03\x03\xc3\x66\x3c\x00\x00\x00"
-		"\x00\x3c\x66\xc6\xc0\xfc\xe6\xc3\xc3\xc3\xc3\x66\x3c\x00\x00\x00"
-		"\x00\xfe\xc6\x06\x0c\x0c\x18\x18\x30\x30\x30\x30\x30\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\x66\x3c\x66\xc3\xc3\xc3\x66\x3c\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\xc3\xc3\x67\x3f\x03\x63\x66\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x18\x18\x30\x00\x00"
-		"\x00\x00\x03\x06\x0c\x18\x30\x70\x30\x18\x0c\x06\x03\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x7e\x00\x7e\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xc0\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\xc0\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\x03\x06\x0c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x7e\xc3\xc3\xdf\xdb\xdb\xde\xc0\xc0\x7c\x00\x00\x00"
-		"\x00\x10\x38\x7c\xee\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\xfe\x63\x63\x63\x63\x7e\x63\x63\x63\x63\x63\xfe\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\xc0\xc0\xc0\xc0\xc3\xc3\x66\x3c\x00\x00\x00"
-		"\x00\xfc\x66\x63\x63\x63\x63\x63\x63\x63\x63\x66\xfc\x00\x00\x00"
-		"\x00\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x61\x63\xff\x00\x00\x00"
-		"\x00\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x60\x60\xf8\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\xc0\xc0\xcf\xc3\xc3\xc3\x67\x3d\x00\x00\x00"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x0f\x06\x06\x06\x06\x06\x06\x06\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\xe3\x63\x66\x66\x6c\x7c\x6c\x66\x66\x63\x63\xe3\x00\x00\x00"
-		"\x00\xf0\x60\x60\x60\x60\x60\x60\x60\x60\x61\x63\xff\x00\x00\x00"
-		"\x00\xc3\xe7\xff\xff\xdb\xdb\xdb\xc3\xc3\xc3\xc3\xc3\x00\x00\x00"
-		"\x00\xc6\xc6\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x00\x00\x00"
-		"\x00\xfe\x63\x63\x63\x63\x63\x7e\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xcb\xcf\x7e\x3c\x06\x07\x00"
-		"\x00\xfe\x63\x63\x63\x63\x63\x7e\x6c\x66\x66\x66\xf7\x00\x00\x00"
-		"\x00\x7e\xc3\xc3\xc0\xc0\x7e\x03\x03\x03\xc3\xc3\x7e\x00\x00\x00"
-		"\x00\xff\xdb\x99\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x38\x10\x00\x00\x00"
-		"\x00\xc3\xc3\xc3\xc3\xdb\xdb\xdb\xdb\xdb\xff\x66\x66\x00\x00\x00"
-		"\x00\xc6\xc6\x6c\x6c\x38\x38\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\xc3\xc3\xc3\xc3\xe7\x7e\x3c\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\xfe\xc6\x8c\x0c\x18\x18\x30\x30\x60\x62\xc6\xfe\x00\x00\x00"
-		"\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x06\x00\x00\x00"
-		"\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x00\x18\x3c\x66\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x00\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x06\x3e\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\xe0\x60\x60\x60\x7e\x63\x63\x63\x63\x63\x63\xde\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x0e\x06\x06\x06\x7e\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x3c\x66\x66\x60\xf0\x60\x60\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7b\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\xe0\x60\x60\x60\x7c\x66\x66\x66\x66\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x06\x66\x66\x3c"
-		"\x00\xe0\x60\x60\x60\x66\x66\x6c\x78\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xe6\xff\xdb\xdb\xdb\xc3\xc3\xc3\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xde\x63\x63\x63\x63\x63\x63\x7e\x60\x60\xf0"
-		"\x00\x00\x00\x00\x00\x7b\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x0f"
-		"\x00\x00\x00\x00\x00\xde\x73\x63\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\x70\x1c\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xee\x7c\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc3\xc3\xdb\xdb\xdb\xdb\xff\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\x7c\x38\x38\x7c\xee\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x0c\x18\x70"
-		"\x00\x00\x00\x00\x00\xfe\xc6\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x0e\x18\x18\x18\x18\x70\x70\x18\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x70\x18\x18\x18\x18\x1e\x1e\x18\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x82\x10\x82\x10\x82\x10\x82\x10\x82\x10\x82\x10\x82\x10\x82\x10"
-		"\xc3\x18\xc3\x18\xc3\x18\xc3\x18\xc3\x18\xc3\x18\xc3\x18\xc3\x18"
-		"\xd8\x83\xda\x13\xd8\x83\xda\x13\xd8\x83\xda\x13\xd8\x83\xda\x13"
-		"\x00\x00\x0e\x1b\x1b\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xec\x6c\x3c\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x60\xc0\x60\x30\x18\x0c\x00\x7c\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x7e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x42\x7e\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\xd8\xf8\x70\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\x88\x10\x60\x88\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x7e\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\xc6\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x6c\x6c\x00\xfe\x66\x60\x7c\x60\x60\x66\xfe\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x3c\x42\x99\xa1\xa1\x99\x42\x3c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xce\xdb\xdb\xfb\xdb\xdb\xce\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x02\x06\x3c\x60\x60\x7c\x66\x66\x66\x66\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x06\x06\x00"
-		"\x00\x00\x00\x00\x00\x00\x1e\x36\x36\x66\x66\x66\xff\xc3\xc3\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x18\x7e\xdb\xdb\xdb\xdb\x7e\x18\x18\x3c"
-		"\x00\x00\x00\x00\x00\x00\x7e\x32\x32\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xce\xd6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x38\x38\xc6\xc6\xce\xd6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xe6\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x1e\x36\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xee\xfe\xfe\xd6\xd6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\xcc\xcc\xfc\x6c\xcc\xce\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\xc6\x7c"
-		"\x00\x00\x00\x00\x00\x00\xd6\xd6\x54\x7c\x54\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfc\x66\x66\x7c\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xf0\x60\x60\x7c\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xf6\xde\xde\xf6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x3c\x66\x06\x0c\x06\x66\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x3e\x67\x03\x1f\x03\x67\x3e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x03\x03\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xf8\xb0\x30\x3e\x33\x33\x7e\x00\x00\x00"
-		"\x00\x00\x00\xce\xdb\xdb\xdb\xfb\xdb\xdb\xdb\xdb\xce\x00\x00\x00"
-		"\x00\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xfe\x62\x62\x60\x7c\x66\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x06\x06\x00"
-		"\x00\x00\x00\x1e\x36\x66\x66\x66\x66\x66\x66\x66\xff\xc3\x81\x00"
-		"\x00\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\x3c\x18\x7e\xdb\xdb\xdb\xdb\xdb\x7e\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\xfe\x62\x62\x60\x60\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xce\xce\xd6\xe6\xe6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x38\x38\xc6\xc6\xce\xce\xd6\xe6\xe6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xe6\x66\x6c\x6c\x78\x78\x6c\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x3f\x66\x66\x66\x3e\x3e\x66\x66\x66\xe7\x00\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xd6\xd6\x54\x54\x7c\x7c\x54\xd6\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x00\xf0\x60\x60\x60\x7c\x66\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x00\xc3\xc3\xc3\xc3\xf3\xdb\xdb\xdb\xdb\xf3\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xff\x00\x00\x00"
-		"\x00\x00\x00\x78\xcc\x06\x26\x3e\x26\x06\x06\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xff\x03\x03\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x06\x00\x00\x00"
-		"\x00\x00\x00\xf8\xb0\x30\x30\x3c\x36\x36\x36\x36\x7c\x00\x00\x00"
-	, NULL, NULL, "Russian koi8-r (b)", CIOLIB_KOI8_R}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x3c\x18\x18\x18\x18\x00\x18\x18\x00\x00"
-		"\x00\xee\xee\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x6c\xfe\xfe\x6c\x6c\x6c\xfe\xfe\x6c\x6c\x6c\x00"
-		"\x00\x18\x7e\xdb\xdb\xe8\x78\x3c\x1e\x17\x1b\xdb\xdb\x7e\x18\x18"
-		"\x00\x00\xe6\xa6\xec\x0c\x18\x18\x30\x30\x60\x6e\xca\xce\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x6c\x38\x38\x6d\xcd\xc6\xc6\xcb\x73\x00\x00"
-		"\x00\x38\x38\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x00"
-		"\x00\x00\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x3c\xff\xff\x3c\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x7e\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x38\x18\x30"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x38\x00\x00"
-		"\x00\x00\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x00\x00"
-		"\x00\x00\x7c\xc6\xce\xce\xd6\xd6\xd6\xd6\xe6\xe6\xc6\x7c\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x18\x18\x7e\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\x03\x06\x0c\x18\x30\x60\xc3\xff\x00\x00"
-		"\x00\x00\xfe\xc6\x0c\x18\x3c\x06\x03\x03\x03\xc3\x66\x3c\x00\x00"
-		"\x00\x00\x1c\x1c\x3c\x3c\x6c\x6c\xcc\xcd\xff\x0d\x0c\x1e\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xe6\xc3\x03\x03\xc3\x66\x3c\x00\x00"
-		"\x00\x00\x3c\x66\xc6\xc0\xfc\xe6\xc3\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x0c\x0c\x18\x18\x30\x30\x30\x30\x30\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\x66\x3c\x66\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xc3\xc3\x67\x3f\x03\x63\x66\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x38\x38\x00\x00\x00\x00\x38\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x38\x38\x00\x00\x00\x00\x38\x38\x18\x30"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x7e\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\x03\x06\x0c\x18\x18\x00\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x7e\xc3\xc3\xdf\xdb\xdb\xde\xc0\xc0\x7c\x00\x00"
-		"\x00\x00\x10\x38\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\xfe\x63\x63\x63\x63\x7e\x63\x63\x63\x63\x63\xfe\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xc0\xc0\xc0\xc0\xc3\xc3\x66\x3c\x00\x00"
-		"\x00\x00\xfc\x66\x63\x63\x63\x63\x63\x63\x63\x63\x66\xfc\x00\x00"
-		"\x00\x00\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x61\x63\xff\x00\x00"
-		"\x00\x00\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x60\x60\xf8\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xc0\xc0\xcf\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x0f\x06\x06\x06\x06\x06\x06\x06\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xe3\x63\x66\x66\x6c\x7c\x6c\x66\x66\x63\x63\xe3\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x60\x60\x61\x63\xff\x00\x00"
-		"\x00\x00\xc3\xe7\xff\xff\xdb\xdb\xdb\xc3\xc3\xc3\xc3\xc3\x00\x00"
-		"\x00\x00\xc6\xc6\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x00\x00\xfe\x63\x63\x63\x63\x63\x7e\x60\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xcb\xcf\x7e\x3c\x06\x07"
-		"\x00\x00\xfe\x63\x63\x63\x63\x7e\x6c\x66\x66\x66\x66\xf7\x00\x00"
-		"\x00\x00\x7e\xc3\xc7\xc0\x60\x3c\x06\x03\xe3\xe3\xc3\x7e\x00\x00"
-		"\x00\x00\xff\xdb\x99\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x38\x10\x00\x00"
-		"\x00\x00\xc3\xc3\xc3\xc3\xdb\xdb\xdb\xdb\xdb\xff\x66\x66\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x38\x38\x6c\x6c\xc6\xc6\x00\x00"
-		"\x00\x00\xc3\xc3\xc3\xc3\xe7\x7e\x3c\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xfe\xc6\x8c\x0c\x18\x18\x30\x30\x60\x62\xc6\xfe\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00"
-		"\x00\x00\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x06\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00"
-		"\x00\x00\x18\x3c\x66\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x00\x38\x38\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\xe0\x60\x60\x60\x7e\x63\x63\x63\x63\x63\x63\xde\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x0e\x06\x06\x06\x7e\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x3c\x66\x66\x60\xf0\x60\x60\x60\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7b\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\x00\xe0\x60\x60\x60\x7e\x63\x63\x63\x63\x63\x63\xe3\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78"
-		"\x00\x00\xe0\x60\x60\x60\x66\x66\x6c\x78\x6c\x66\x66\xe6\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xe6\xff\xdb\xdb\xdb\xc3\xc3\xc3\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xde\x63\x63\x63\x63\x63\x63\x7e\x60\xf0"
-		"\x00\x00\x00\x00\x00\x00\x7b\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0f"
-		"\x00\x00\x00\x00\x00\x00\xde\x73\x63\x60\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\x70\x1c\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x30\x30\x30\xfc\x30\x30\x30\x30\x30\x36\x1c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xee\x7c\x38\x10\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc3\xc3\xdb\xdb\xdb\xdb\xff\x66\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc3\xc3\x66\x66\x3c\x18\x18\x30\x30\xe0"
-		"\x00\x00\x00\x00\x00\x00\xfe\xc6\x0c\x18\x30\x60\xc6\xfe\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x18\x70\x70\x18\x18\x18\x18\x0e\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x18\x1e\x1e\x18\x18\x18\x18\x70\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc3\xff\x00"
-		"\x00\x00\x10\x38\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xce\x18\x0f"
-		"\x00\x00\x00\x00\x00\x00\xe6\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\xfe\x63\x63\x63\x63\x7e\x6c\x66\x66\x66\x66\xf7\x18\xf0"
-		"\x00\x00\x00\x00\x82\xc6\x7c\xc6\xc6\xc6\xc6\x7c\xc6\x82\x00\x00"
-		"\x76\xdc\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x60\x60\x61\x63\xff\x0e\x3c"
-		"\x00\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00"
-		"\x00\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x66\x3c\x7e\xc3\xc7\xc0\x60\x3c\x06\x03\xe3\xe3\xc3\x7e\x00\x00"
-		"\x7e\x00\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x61\x63\xff\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xc0\xc0\xcf\xc3\xc3\xc3\x66\x3c\x0c\x78"
-		"\x00\x00\xff\xdb\x99\x18\x1b\x1e\x3c\x78\xd8\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x6c\x38\xfe\xc6\x8c\x0c\x18\x18\x30\x30\x60\x62\xc6\xfe\x00\x00"
-		"\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x18\x0f"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x1e"
-		"\x00\x00\x00\x00\x00\x00\xde\x73\x63\x60\x60\x60\x60\xf0\x18\xf0"
-		"\x0c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x38\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x0c\x78"
-		"\x00\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x78\x00"
-		"\x00\x00\x00\x6c\x38\x00\x7c\xc6\xc0\x70\x1c\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x7c\x00\x7c\xc6\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x3c\x60\x30\x00\x7b\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\x00\x00\x30\x30\x30\xfc\x30\x3c\x78\xf0\x30\x36\x1c\x00\x00"
-		"\x00\x00\xdc\xfe\xe6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xdc\x00\x00"
-		"\x00\x00\x00\x6c\x38\x00\xfe\xc6\x0c\x18\x30\x60\xc6\xfe\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\xfe\xe6\xc6\xc6\xc6\xc6\xc6\x06\x1c\x00"
-		"\x00\x7c\x10\x38\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x0c\x18\x20\x38\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x38\x6c\x10\x38\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x76\xdc\x10\x38\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x6c\x6c\x10\x38\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x38\x6c\x38\x00\x7c\xee\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x3f\x6c\xcc\xcc\xcc\xff\xcc\xcc\xcc\xcc\xcc\xcf\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x30\x1e"
-		"\x66\x3c\x3c\x66\xc3\xc3\xc0\xc0\xc0\xc0\xc3\xc3\x66\x3c\x00\x00"
-		"\x0e\x18\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x61\x63\xff\x00\x00"
-		"\x00\x00\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x61\x63\xff\x18\x0f"
-		"\x66\x24\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x61\x63\xff\x00\x00"
-		"\x18\x18\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x61\x63\xff\x00\x00"
-		"\x0e\x18\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x3c\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x7e\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xfc\x66\x63\x63\x63\xf3\xf3\x63\x63\x63\x66\xfc\x00\x00"
-		"\x00\x00\xc6\xc6\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\x0c\x78"
-		"\x7e\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x00\x00\xe3\x63\x66\x66\x6c\x7c\x6c\x66\x66\x63\x63\xe3\x06\x3c"
-		"\x3c\x66\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x76\xdc\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x66\x66\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x01\x3d\x66\xc7\xcb\xcb\xdb\xdb\xdb\xd3\xd3\x66\xbc\x80\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x19\x0e"
-		"\x18\x30\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x38\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\xc6\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x76\xdc\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\xfe\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xdc\xc6\xc3\xc3\xc3\xc3\xc6\xcc\xc0\x00"
-		"\x00\x00\x00\x00\x7c\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x6c\x6c\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x38\x6c\x38\x00\x7c\x06\x7e\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x6e\x1b\x1b\x7f\xd8\xd8\xd8\x6f\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x18\x3c\x30\x1c"
-		"\x00\x00\x00\x6c\x38\x00\x7c\xc6\xc0\xc0\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x7c\xc6\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc0\xc0\xc6\x7c\x30\x1e"
-		"\x00\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x10\x38\x10\x00\x7c\xc6\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x38\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\x38\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x7c\x00\x38\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x0e\x06\x7f\x06\x7e\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x66\x0c\x78"
-		"\x00\x00\x00\x00\x7c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xe0\x60\x60\x60\x66\x66\x6c\x78\x6c\x66\x66\xe6\x18\xf0"
-		"\x00\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x06\x7c\xce\xde\xd6\xd6\xf6\xe6\x7c\xc0\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x60\x3c"
-		"\x00\x00\x0c\x18\x30\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x6c\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x00\x00\x00\x7c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00"
-		"\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, NULL, NULL, "ISO-8859-4 Baltic wide", CIOLIB_ISO_8859_4}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xd6\xd6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x66\x66\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\xf8\x60\x60\x60\x7c\x66\x66\x66\x66\x6c\x00\x00\x00\x00"
-		"\x18\x30\x00\x7e\x60\x60\x60\x60\x60\x60\x60\x60\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc0\xc0\xf8\xc0\xc0\xc0\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\xd8\xd8\xde\xdb\xdb\xdb\xde\x00\x00\x00\x00"
-		"\x00\x00\xd8\xd8\xd8\xd8\xd8\xfe\xdb\xdb\xdb\xde\x00\x00\x00\x00"
-		"\x00\x00\xfc\x30\x30\x30\x3c\x36\x36\x36\x36\x36\x00\x00\x00\x00"
-		"\x18\x30\x00\xc6\xcc\xd8\xf0\xf8\xcc\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x28\x10\x00\xc6\xc6\xc6\xc6\x7e\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x38\x38\x00\x00\x00\x00"
-		"\x00\x00\x3e\x66\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\x54\x7c\xd6\xd6\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x1c\x06\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x0c\xda\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x02\x06\x04\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\xe0\xe0\x60\x60\x7c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xe6\xb6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x78\xcc\x06\x06\x1e\x1e\x06\x06\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xfe\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xfc\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc2\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\x7c\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1c\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xcc\xd8\xf8\xd8\xcc\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x66\x66\x66\x66\x66\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc2\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00"
-		"\x00\x00\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x06\x0c\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\x00\x00\x00\xe0\x60\x7c\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xe6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x9c\xb6\xb6\xf6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00\x00"
-		"\x00\x00\x88\x8a\xcd\xea\xb8\x98\x8b\x88\x8b\x88\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x60\x60\x60\xf8\x60\x7c\x66\x66\x66\x66\x0c\x00\x00\x00"
-		"\x00\x00\x18\x30\x00\x7c\x60\x60\x60\x60\x60\x60\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xf0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x28\x28\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x04\x04\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\x00\x00\x00\x18\x38\x78\xde\xdb\xdb\xde\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd8\xd8\xd8\xfe\xdb\xdb\xde\x00\x00\x00\x00"
-		"\x00\x00\x30\x30\x30\xfc\x30\x3c\x36\x36\x36\x36\x00\x00\x00\x00"
-		"\x00\x00\x18\x30\x00\xc4\xcc\xd8\xf0\xd8\xcc\xcc\x00\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x28\x10\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xfe\x38\x38\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x86\xc6\x7c\x18\x18\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x66\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xce\xde\xf6\xe6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x0c\x78\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\x66\x3a\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\xe6\x66\x6c\x6c\x78\x6c\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xfe\x7c\x6c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x38\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x8c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xfe\x6c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x66\xfe\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x6c\x00\xfe\xc6\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00"
-		"\x00\x00\xf8\x60\x60\x60\x7c\x66\x66\x66\x6c\x00\x00\x00"
-		"\x18\x30\x00\x7e\x60\x60\x60\x60\x60\x60\x60\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc0\xc0\xf8\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\xd8\xde\xdb\xdb\xdb\xde\x00\x00\x00"
-		"\x00\x00\xd8\xd8\xd8\xd8\xfe\xdb\xdb\xdb\xde\x00\x00\x00"
-		"\x00\x00\xfc\x30\x30\x30\x3c\x36\x36\x36\x36\x00\x00\x00"
-		"\x18\x30\x00\xcc\xd8\xf0\xf0\xd8\xcc\xcc\xcc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00"
-		"\x28\x10\x00\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x38\x38\x00\x00\x00"
-		"\x00\x00\x3e\x66\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\x54\x7c\xd6\xd6\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x1c\x06\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x0c\xda\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x82\xc6\xc6\xee\xee\xfe\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x02\x06\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x00\x00\x00"
-		"\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x00"
-		"\x00\x00\xe0\xe0\x60\x7c\x66\x66\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xe6\xb6\xb6\xb6\xb6\xe6\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x1e\x06\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\x9c\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc0\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc2\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfc\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\x7c\xd6\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x1c\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xcc\xf8\xd8\xcc\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x66\x66\x66\x66\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x7c\x00"
-		"\x00\x00\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\x7c\x10\x38\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xfe\x06\x0c\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x00"
-		"\x00\x00\x00\x00\x00\xe0\x60\x7c\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xe6\xb6\xb6\xe6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x1e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x9c\xb6\xb6\xf6\xb6\x9c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\x7e\x36\x66\xc6\x00\x00\x00"
-		"\x00\x00\x88\x8a\xcd\xea\xb8\x98\x8b\x88\x8b\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xfc\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x60\x60\xf8\x60\x7c\x66\x66\x66\x66\x0c\x00\x00"
-		"\x00\x00\x18\x30\x00\x7c\x60\x60\x60\x60\x60\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xf0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x10\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x28\x28\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x04\x04\x00\x0e\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\x00\x00\x00\x38\x78\xde\xdb\xdb\xde\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd8\xd8\xfe\xdb\xdb\xde\x00\x00\x00"
-		"\x00\x00\x30\x30\xfc\x30\x3c\x36\x36\x36\x36\x00\x00\x00"
-		"\x00\x00\x18\x30\x00\xcc\xd8\xf0\xd8\xcc\xcc\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00"
-		"\x00\x00\x28\x10\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x7c\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\x38\x38\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x78\x78\x30\x30\x00\x30\x00"
-		"\x6c\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x30\x7c\xc0\x78\x0c\xf8\x30\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x60\x60\xc0\x00\x00\x00\x00\x00"
-		"\x18\x30\x60\x60\x60\x30\x18\x00"
-		"\x60\x30\x18\x18\x18\x30\x60\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x30\x30\xfc\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x60"
-		"\x00\x00\x00\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x7c\xc6\xce\xde\xf6\xe6\x7c\x00"
-		"\x30\x70\x30\x30\x30\x30\xfc\x00"
-		"\x78\xcc\x0c\x38\x60\xcc\xfc\x00"
-		"\x78\xcc\x0c\x38\x0c\xcc\x78\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\xfc\xc0\xf8\x0c\x0c\xcc\x78\x00"
-		"\x38\x60\xc0\xf8\xcc\xcc\x78\x00"
-		"\xfc\xcc\x0c\x18\x30\x30\x30\x00"
-		"\x78\xcc\xcc\x78\xcc\xcc\x78\x00"
-		"\x78\xcc\xcc\x7c\x0c\x18\x70\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x60"
-		"\x18\x30\x60\xc0\x60\x30\x18\x00"
-		"\x00\x00\xfc\x00\x00\xfc\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x78\xcc\x0c\x18\x30\x00\x30\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x30\x78\xcc\xcc\xfc\xcc\xcc\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3e\x00"
-		"\xcc\xcc\xcc\xfc\xcc\xcc\xcc\x00"
-		"\x78\x30\x30\x30\x30\x30\x78\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x38\x6c\xc6\xc6\xc6\x6c\x38\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x78\xcc\xcc\xcc\xdc\x78\x1c\x00"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x78\xcc\xe0\x70\x1c\xcc\x78\x00"
-		"\xfc\xb4\x30\x30\x30\x30\x78\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xfc\x00"
-		"\xcc\xcc\xcc\xcc\xcc\x78\x30\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc6\x44\x6c\x38\x38\x6c\xc6\x00"
-		"\xcc\xcc\xcc\x78\x30\x30\x78\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x78\x60\x60\x60\x60\x60\x78\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x78\x18\x18\x18\x18\x18\x78\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x30\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x7c\x00"
-		"\x60\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x00\x00\x78\xcc\xc0\xcc\x78\x00"
-		"\x0c\x0c\x0c\x7c\xcc\xcc\x7c\x00"
-		"\x00\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x38\x6c\x60\xf0\x60\x60\xf0\x00"
-		"\x00\x00\x7c\xcc\xcc\x7c\x0c\xf8"
-		"\x60\x60\x7c\x66\x66\x66\x66\x00"
-		"\x30\x00\x70\x30\x30\x30\x78\x00"
-		"\x0c\x00\x0c\x0c\x0c\x0c\x6c\x38"
-		"\x60\x60\x66\x6c\x78\x6c\x66\x00"
-		"\x70\x30\x30\x30\x30\x30\x78\x00"
-		"\x00\x00\xcc\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x78\x00"
-		"\x00\x00\x7c\x66\x66\x7c\x60\x60"
-		"\x00\x00\x7c\xcc\xcc\x7c\x0c\x0c"
-		"\x00\x00\xdc\x76\x66\x60\xf0\x00"
-		"\x00\x00\x7c\xc0\x78\x0c\xf8\x00"
-		"\x10\x30\x7c\x30\x30\x34\x18\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x7c\x00"
-		"\x00\x00\xcc\xcc\xcc\x78\x30\x00"
-		"\x00\x00\xc6\xd6\xfe\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\xcc\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\xfc\x98\x30\x64\xfc\x00"
-		"\x1c\x30\x30\xe0\x30\x30\x1c\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\xe0\x30\x30\x1c\x30\x30\xe0\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x66\x00\x7e\x60\x7c\x60\x7e\x00"
-		"\xf8\x60\x60\x7c\x66\x66\x6c\x00"
-		"\x18\x7e\x60\x60\x60\x60\x60\x00"
-		"\x3c\x66\xc0\xf8\xc0\x66\x3c\x00"
-		"\x78\xcc\xe0\x70\x1c\xcc\x78\x00"
-		"\x30\x78\x30\x30\x30\x30\x78\x00"
-		"\x48\x78\x30\x30\x30\x30\x78\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\x38\x78\xd8\xde\xdb\xdb\xde\x00"
-		"\xd8\xd8\xd8\xfe\xdb\xdb\xde\x00"
-		"\xfc\x30\x30\x3c\x36\x36\x36\x00"
-		"\x18\xd6\xcc\xf8\xf8\xcc\xc6\x00"
-		"\x00\x00\x00\x78\x00\x00\x00\x00"
-		"\x18\x66\x66\x3e\x06\x66\x3c\x00"
-		"\xc6\xc6\xc6\xc6\xfe\x38\x38\x00"
-		"\x1e\x36\x66\x66\x7e\x66\x66\x00"
-		"\x7c\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x7c\x66\x66\x7c\x66\x66\x7c\x00"
-		"\x7e\x60\x60\x60\x60\x60\x60\x00"
-		"\x38\x6c\x6c\x6c\x6c\x6c\xfe\xc6"
-		"\x7e\x60\x60\x7c\x60\x60\x7e\x00"
-		"\xdb\xdb\x7e\x3c\x7e\xdb\xdb\x00"
-		"\x3c\x66\x06\x1c\x06\x66\x3c\x00"
-		"\x66\x66\x6e\x7e\x76\x66\x66\x00"
-		"\x3c\x66\x6e\x7e\x76\x66\x66\x00"
-		"\x66\x6c\x78\x70\x78\x6c\x66\x00"
-		"\x1e\x36\x66\x66\x66\x66\x66\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\x66\x66\x66\x7e\x66\x66\x66\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3c\x00"
-		"\x7e\x66\x66\x66\x66\x66\x66\x00"
-		"\x7c\x66\x66\x66\x7c\x60\x60\x00"
-		"\x3c\x66\x60\x60\x60\x66\x3c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\x66\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x7e\xdb\xdb\xdb\x7e\x18\x18\x00"
-		"\x66\x66\x3c\x18\x3c\x66\x66\x00"
-		"\x66\x66\x66\x66\x66\x66\x7f\x03"
-		"\x66\x66\x66\x3e\x06\x06\x06\x00"
-		"\xdb\xdb\xdb\xdb\xdb\xdb\xff\x00"
-		"\xdb\xdb\xdb\xdb\xdb\xdb\xff\x03"
-		"\xe0\x60\x60\x7c\x66\x66\x7c\x00"
-		"\xc6\xc6\xc6\xf6\xde\xde\xf6\x00"
-		"\x60\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x78\x8c\x06\x3e\x06\x8c\x78\x00"
-		"\xce\xdb\xdb\xfb\xdb\xdb\xce\x00"
-		"\x3e\x66\x66\x66\x3e\x36\x66\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\x00\x3c\x60\x3c\x66\x66\x3c\x00"
-		"\x00\x00\x7c\x66\x7c\x66\x7c\x00"
-		"\x00\x00\x7e\x60\x60\x60\x60\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\xfe\xc6"
-		"\x00\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x00\x00\xdb\x7e\x3c\x7e\xdb\x00"
-		"\x00\x00\x3c\x66\x0c\x66\x3c\x00"
-		"\x00\x00\x66\x6e\x7e\x76\x66\x00"
-		"\x00\x18\x66\x6e\x7e\x76\x66\x00"
-		"\x00\x00\x66\x6c\x78\x6c\x66\x00"
-		"\x00\x00\x1e\x36\x66\x66\x66\x00"
-		"\x00\x00\xc6\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\x66\x66\x7e\x66\x66\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00"
-		"\x00\x00\x7e\x66\x66\x66\x66\x00"
-		"\x00\x00\x7c\x66\x66\x7c\x60\x00"
-		"\x00\x00\x3c\x66\x60\x66\x3c\x00"
-		"\x00\x00\x7e\x18\x18\x18\x18\x00"
-		"\x00\x00\x66\x66\x3e\x06\x3c\x00"
-		"\x00\x00\x7e\xdb\xdb\x7e\x18\x00"
-		"\x00\x00\x66\x3c\x18\x3c\x66\x00"
-		"\x00\x00\x66\x66\x66\x66\x7f\x03"
-		"\x00\x00\x66\x66\x3e\x06\x06\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\xff\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\xff\x03"
-		"\x00\x00\xe0\x60\x7c\x66\x7c\x00"
-		"\x00\x00\xc6\xc6\xf6\xde\xf6\x00"
-		"\x00\x00\x60\x60\x7c\x66\x7c\x00"
-		"\x00\x00\x7c\x06\x3e\x06\x7c\x00"
-		"\x00\x00\xce\xdb\xfb\xdb\xce\x00"
-		"\x00\x00\x3e\x66\x3e\x36\x66\x00"
-		"\x8a\xcd\xea\xb8\x9b\x88\x8b\x00"
-		"\x24\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x60\x60\xf8\x60\x7c\x66\x66\x0c"
-		"\x18\x00\x7e\x60\x60\x60\x60\x00"
-		"\x00\x00\x7c\xc0\xf8\xc0\x7c\x00"
-		"\x00\x00\x7c\xc0\x78\x0c\xf8\x00"
-		"\x20\x00\x70\x30\x30\x30\x78\x00"
-		"\x50\x00\x70\x30\x30\x30\x78\x00"
-		"\x08\x00\x1c\x0c\x0c\xcc\xcc\x78"
-		"\x00\x00\x38\x78\xde\xdb\xde\x00"
-		"\x00\x00\xd8\xd8\xfe\xdb\xde\x00"
-		"\x30\x30\xfc\x30\x3c\x36\x36\x00"
-		"\x18\x10\xcc\xd8\xf0\xd8\xcc\x00"
-		"\x7e\xc0\x7c\xc6\x7c\x06\xfc\x00"
-		"\x18\x00\x66\x66\x3e\x06\x3c\x00"
-		"\x00\x00\xc6\xc6\xfe\x38\x38\x00"
-	, "ISO-8859-5 Cyrillic", CIOLIB_ISO_8859_5}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x18\x3c\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x6c\x6c\x6c\xfe\xfe\x6c\x6c\xfe\xfe\x6c\x6c\x6c\x00\x00\x00"
-		"\x18\x18\x7e\xdb\xd8\xd8\x7e\x1b\x1b\xdb\xdb\x7e\x18\x18\x00\x00"
-		"\x00\x00\xe6\xac\xec\x18\x18\x30\x30\x6e\x6a\xce\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x6c\x38\x76\xdc\xdc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x18\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x00\x00\x00"
-		"\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x30\x00\x00\x00\x00"
-		"\x00\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x38\x6c\xce\xde\xde\xd6\xf6\xf6\xe6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x38\x6c\xc6\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\xfc\x8c\x18\x30\x38\x0c\x06\x06\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x1c\x1c\x3c\x3c\x6c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\xfe\xc0\xc0\xf8\xcc\x06\x06\x06\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x38\x6c\xc0\xc0\xf8\xec\xc6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\xfe\xc6\x06\x0c\x0c\x18\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x38\x6c\xc6\xc6\x6c\x38\x6c\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x38\x6c\xc6\xc6\xc6\x6e\x3e\x06\x06\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x60\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\x00\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x3c\x66\xc3\x03\x06\x0c\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x10\x38\x7c\xee\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\xfe\x66\x62\x60\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\xfe\x66\x62\x60\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc6\xc0\xc0\xce\xc6\xc6\xce\x7a\x00\x00\x00\x00"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x1e\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\xe6\x66\x6c\x6c\x78\x78\x78\x6c\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\xf0\x60\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x82\xc6\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\xc6\xc6\xe6\xe6\xf6\xf6\xde\xce\xce\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xfc\x66\x66\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xde\xfe\x7c\x0e\x06\x00\x00"
-		"\x00\xfc\x66\x66\x66\x66\x6c\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc0\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x7e\x5a\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\xc3\xc3\xc3\xc3\xdb\xdb\xdb\xdb\xff\x66\x66\x00\x00\x00\x00"
-		"\x00\xc6\xc6\x6c\x6c\x38\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\xfe\xc6\x8c\x0c\x18\x10\x30\x60\x62\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x00\x00\x00\x00"
-		"\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x00\x30\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\xe0\x60\x60\x60\x7c\x66\x66\x66\x66\x66\xdc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x1c\x0c\x0c\x0c\x7c\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x3c\x66\x66\x60\xf0\x60\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\xcc\x78"
-		"\x00\xe0\x60\x60\x60\x7c\x66\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78"
-		"\x00\xe0\x60\x60\x60\x66\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\x60\xf0"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0c\x1e"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\x7c\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x10\x30\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xee\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\x7c\x38\x7c\xee\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x7c\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\x0c\x38\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x0e\x18\x18\x18\x18\x30\xe0\x30\x18\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x70\x18\x18\x18\x18\x0c\x07\x0c\x18\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x30\x4c\x52\xba\x94\x64\x18\x00\x00\x00\x00\x00"
-		"\x00\xe0\x60\x60\x60\x60\x60\x60\x6c\x6c\x6c\x3f\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x78\x30\x00\x00\x30\x78\x30\x00\x00\x00"
-		"\x00\x60\x30\x38\x1c\x1c\x1c\x1c\x1c\x1c\x38\x30\x60\x00\x00\x00"
-		"\x00\x0c\x18\x38\x70\x70\x70\x70\x70\x70\x38\x18\x0c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x6c\x36\x1b\x1b\x36\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x36\x6c\xd8\xd8\x6c\x36\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x78\x30\x00\x00\x00"
-		"\x00\x60\x30\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x3c\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7c\x7c\x7c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xc2\xe6\x7c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x92\x92\x00\x00\x00\x00"
-		"\x00\x03\x76\xdc\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x3c\x46\x96\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xdc\xde\xcf\x7b\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\x6a\x00\x00\x00\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xfe\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xc0\xc0\xfe\xc0\xc0\xc0\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcc\x7f\x0c\x0c\x0c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xcc\xcc\xcc\xcc\xcc\x7f\x0c\x0c\x0c\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcf\x0c\x0c\x0c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcf\x0c\x0c\x0c\x00"
-		"\x00\xc0\xc0\xfe\xc0\xc0\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xc0\xc0\xfe\xc0\xc0\xcc\xcc\xcc\x7c\x00\x00\x00\x00"
-		"\x00\x3c\x66\x66\x66\x66\x66\x3e\x06\x0c\xd8\xfe\xc3\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0f\x00"
-		"\x00\xc0\xc0\xc0\xfe\xc0\xc0\xc0\xc0\xf8\x0c\x0c\x78\x00\x00\x00"
-		"\x00\xc0\xc0\xc0\xc0\xf8\xc0\xc0\xc0\xc0\xf8\x0c\x38\x00\x00\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\xfe\x00"
-		"\x00\x7c\xc6\xc6\xc6\xcf\xd6\xd6\xd6\xd6\xd6\xcc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xcf\xd6\xd6\xd6\xcc\xc0\xc0\xc0\x00"
-		"\x00\x0c\x0c\x0c\x7f\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x0c\x0c\x0c\x0c\x7f\xcc\xcc\xcc\xcc\xcc\x7c\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xc0\xf8\xcc\xcc\xcc\xcc\xcc\xc0\xc0\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xc0\xc0\xf8\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\x00"
-		"\x00\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xfc\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x60\x60\x60\x60\x60\x60\x60\x60\x60\x7e\x00"
-		"\x00\xc0\xc0\xc0\xf6\xd6\xd6\xd6\xd6\xd6\xd6\xcc\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xc0\xc0\xf6\xd6\xd6\xd6\xd6\xd6\xce\xc0\xc0\xc0\x00"
-		"\x00\xc0\x7e\xfb\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\xc0\x78\x0c\x0c\x7f\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xc0\xc0\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0c\x00"
-		"\x00\x18\x30\x18\x0c\x18\x30\x60\xc0\xf0\x3c\x0e\x0c\x00\x00\x00"
-		"\x00\xc0\xc0\xc0\xc0\xf8\xcc\xcc\xcc\xcc\xcc\xcc\x00\x00\x00\x00"
-		"\x00\x3c\x66\x66\x66\x66\x06\x06\x06\x6c\xd8\x6e\x00\x00\x00\x00"
-		"\x00\x30\x7e\x0c\x18\x30\x70\xd8\xd8\xcc\xce\x76\x00\x00\x00\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x0c\x0c\x0f\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcc\x0c\x0c\x0f\x00"
-		"\x00\x0e\xdb\x70\x30\x78\xcc\xcc\xcc\xcc\xdc\x6c\x00\x00\x00\x00"
-		"\x00\x1c\x36\x60\x60\xf8\x6c\x66\x66\x66\x6e\x3a\x00\x00\x00\x00"
-		"\x00\xcf\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x00\x00\x00\x00"
-		"\x00\x78\xcc\x0c\x1c\x38\x6c\x0c\x0c\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x6c\xdc\x70\x00"
-		"\x00\xe0\x60\x60\x66\x66\x66\x66\x66\x66\x66\x3c\x00\x00\x00\x00"
-		"\x00\xe0\x60\x60\x60\x66\x66\x66\x66\x66\x66\x3e\x00\x00\x00\x00"
-		"\x00\xf8\x0c\x7c\xcc\xcc\xc0\xc0\xc0\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\xcc\xcc\xcc\x0c\x18\x30\x60\xc0\x7e\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcc\x00\x00\x00\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\x0c\x0c\x0c\xd8\x70\x30\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x30\x18\x0c\x18\x30\x60\xc0\xc0\x7e\x00"
-		"\x00\x7e\xdb\xdb\xdb\xdb\xdb\xdb\x1b\x1b\x03\x03\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdb\xdb\xdb\xdb\xdb\xdb\x7f\x03\x03\x03\x00"
-		"\x00\x60\xf0\xd8\xcc\xc6\x66\x36\x16\x1c\xd8\xfe\xc3\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x70\xd8\xcc\xcc\x6c\x38\x30\x60\xc0\x7e\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcf\xcc\xcc\xcc\xcc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcf\x00\x00\x00\x00"
-		"\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x00\x00\x00\x00"
-		"\x00\x0c\x0c\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0f\x00\x00\x00\x00"
-		"\x00\x0c\x0c\x0c\x0c\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0f\x00"
-		"\x00\x78\xcc\xcc\xc0\x60\x30\x18\x0c\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\xd6\xd6\xd6\xd6\xd6\x76\x00\x00\x00\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\x00"
-		"\x00\x78\xcc\xcc\xcc\x78\xcc\x0c\x0c\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\xc0\xc0\xf0\xd8\xd8\xd8\xd8\xd8\xce\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x60\x60\x60\x60\x60\x60\x7c\x00\x00\x00\x00"
-		"\x00\x10\x10\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x10\xdc\xd6\xd6\xd6\xd6\xd6\x76\x10\x10\x10\x00"
-		"\x00\x3c\x66\x66\x66\x66\x7c\x60\x60\xfe\x60\x60\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x66\x66\x66\x66\x7c\x60\xfe\x60\x60\x00"
-		"\x00\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x70\xd0\xd0\xd0\x7c\x16\x16\xd6\xd6\xd6\x7c\x00\x00\x00\x00"
-		"\x00\x70\xd0\xd0\xd0\x7c\x16\x16\xd6\xd6\xd6\x7c\x10\x10\x10\x00"
-		"\x00\x38\x38\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x3c\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\xfe"
-		"\x66\x66\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x6c\x6c\xfe\xfe\x6c\x6c\xfe\xfe\x6c\x6c\x6c\x00\x00"
-		"\x18\x7e\xdb\xd8\xd8\x7e\x1b\x1b\xdb\xdb\x7e\x18\x18\x00"
-		"\x00\xe6\xac\xec\x18\x18\x30\x30\x6e\x6a\xce\x00\x00\x00"
-		"\x38\x6c\x6c\x6c\x38\x76\xdc\xdc\xcc\xcc\x76\x00\x00\x00"
-		"\x18\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x30\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x00\x00"
-		"\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x30\x00\x00\x00"
-		"\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x00\x00\x00"
-		"\x38\x6c\xce\xde\xde\xd6\xf6\xf6\xe6\x6c\x38\x00\x00\x00"
-		"\x18\x38\x78\x18\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x38\x6c\xc6\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\xfc\x8c\x18\x30\x38\x0c\x06\x06\xc6\x6c\x38\x00\x00\x00"
-		"\x1c\x1c\x3c\x3c\x6c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00\x00"
-		"\xfe\xc0\xc0\xf8\xcc\x06\x06\x06\xc6\x6c\x38\x00\x00\x00"
-		"\x38\x6c\xc0\xc0\xf8\xec\xc6\xc6\xc6\x6c\x38\x00\x00\x00"
-		"\xfe\xc6\x06\x0c\x0c\x18\x18\x30\x30\x30\x30\x00\x00\x00"
-		"\x38\x6c\xc6\xc6\x6c\x38\x6c\xc6\xc6\x6c\x38\x00\x00\x00"
-		"\x38\x6c\xc6\xc6\xc6\x6e\x3e\x06\x06\x6c\x38\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x60\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\x00\x00\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x3c\x66\xc3\x03\x06\x0c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00"
-		"\x10\x38\x7c\xee\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\x66\xfc\x00\x00\x00"
-		"\x7c\xc6\xc6\xc0\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00"
-		"\xf8\x6c\x66\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00"
-		"\xfe\x66\x62\x60\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00"
-		"\xfe\x66\x62\x60\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00"
-		"\x7c\xc6\xc6\xc6\xc0\xc0\xce\xc6\xc6\xce\x7a\x00\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x1e\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\xe6\x66\x6c\x6c\x78\x78\x78\x6c\x6c\x66\xe6\x00\x00\x00"
-		"\xf0\x60\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00"
-		"\x82\xc6\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\xc6\xc6\xe6\xe6\xf6\xf6\xde\xce\xce\xc6\xc6\x00\x00\x00"
-		"\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\xfc\x66\x66\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00"
-		"\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xde\xfe\x7c\x0e\x06\x00"
-		"\xfc\x66\x66\x66\x66\x6c\x78\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x7c\xc6\xc6\xc0\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x7e\x5a\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x38\x10\x00\x00\x00"
-		"\xc3\xc3\xc3\xc3\xdb\xdb\xdb\xdb\xff\x66\x66\x00\x00\x00"
-		"\xc6\xc6\x6c\x6c\x38\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00"
-		"\x66\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\xfe\xc6\x8c\x0c\x18\x10\x30\x60\x62\xc6\xfe\x00\x00\x00"
-		"\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x00\x00\x00"
-		"\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x30\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\xe0\x60\x60\x60\x7c\x66\x66\x66\x66\x66\xdc\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x1c\x0c\x0c\x0c\x7c\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00"
-		"\x3c\x66\x66\x60\xf0\x60\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\xcc"
-		"\xe0\x60\x60\x60\x7c\x66\x66\x66\x66\x66\xe6\x00\x00\x00"
-		"\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xcc\xcc"
-		"\xe0\x60\x60\x60\x66\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\x60"
-		"\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0c"
-		"\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\xc6\xc0\x7c\x06\xc6\x7c\x00\x00\x00"
-		"\x10\x30\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\xc6\xee\x7c\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\xee\x7c\x38\x7c\xee\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x7c"
-		"\x00\x00\x00\x00\xfe\xc6\x0c\x38\x60\xc6\xfe\x00\x00\x00"
-		"\x18\x18\x18\x18\x30\xe0\x30\x18\x18\x18\x18\x0e\x00\x00"
-		"\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x00\x00"
-		"\x18\x18\x18\x18\x0c\x07\x0c\x18\x18\x18\x18\x70\x00\x00"
-		"\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x30\x4c\x52\xba\x94\x64\x18\x00\x00\x00\x00"
-		"\xe0\x60\x60\x60\x60\x60\x60\x6c\x6c\x6c\x3f\x00\x00\x00"
-		"\x00\x00\x00\x00\x30\x78\x30\x00\x00\x30\x78\x30\x00\x00"
-		"\x60\x30\x38\x1c\x1c\x1c\x1c\x1c\x1c\x38\x30\x60\x00\x00"
-		"\x0c\x18\x38\x70\x70\x70\x70\x70\x70\x38\x18\x0c\x00\x00"
-		"\x00\x00\x00\x00\x00\x6c\x36\x1b\x1b\x36\x6c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x36\x6c\xd8\xd8\x6c\x36\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x78\x30\x00\x00"
-		"\x60\x30\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x3c\x18\x30\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc2\xe6\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x92\x92\x92\x00\x00\x00"
-		"\x03\x76\xdc\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x46\x96\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xdc\xde\xcf\x7b\x00\x00\x00"
-		"\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\x6a\x00\x00\x00"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xfe\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xc0\xc0\xfe\xc0\xc0\xc0"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\x7f\x0c\x0c\x0c\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\xcc\xcc\xcc\xcc\xcc\x7f\x0c\x0c\x0c"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcf\x0c\x0c\x0c\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcf\x0c\x0c\x0c"
-		"\xc0\xc0\xfe\xc0\xc0\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xfe\xc0\xc0\xcc\xcc\xcc\x7c\x00\x00\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3e\x06\x0c\xd8\xfe\xc3\x00\x00"
-		"\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0f"
-		"\xc0\xc0\xc0\xfe\xc0\xc0\xc0\xc0\xf8\x0c\x0c\x78\x00\x00"
-		"\xc0\xc0\xc0\xc0\xf8\xc0\xc0\xc0\xc0\xf8\x0c\x38\x00\x00"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\xfe"
-		"\x7c\xc6\xc6\xc6\xcf\xd6\xd6\xd6\xd6\xd6\xcc\x00\x00\x00"
-		"\x00\x00\x00\x00\xfc\xc6\xcf\xd6\xd6\xd6\xcc\xc0\xc0\xc0"
-		"\x0c\x0c\x0c\x7f\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x0c\x0c\x0c\x0c\x7f\xcc\xcc\xcc\xcc\xcc\x7c\x00\x00\x00"
-		"\xc0\xc0\xc0\xf8\xcc\xcc\xcc\xcc\xcc\xc0\xc0\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xf8\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xfc\x06\x00\x00"
-		"\x00\x00\x00\x00\x60\x60\x60\x60\x60\x60\x60\x60\x60\x7e"
-		"\xc0\xc0\xc0\xf6\xd6\xd6\xd6\xd6\xd6\xd6\xcc\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xf6\xd6\xd6\xd6\xd6\xd6\xce\xc0\xc0\xc0"
-		"\xc0\x7e\xfb\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\xc0\x78\x0c\x0c\x7f\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\xc0\xc0\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0c"
-		"\x18\x30\x18\x0c\x18\x30\x60\xc0\xf0\x3c\x0e\x0c\x00\x00"
-		"\xc0\xc0\xc0\xc0\xf8\xcc\xcc\xcc\xcc\xcc\xcc\x00\x00\x00"
-		"\x3c\x66\x66\x66\x66\x06\x06\x06\x6c\xd8\x6e\x00\x00\x00"
-		"\x30\x7e\x0c\x18\x30\x70\xd8\xd8\xcc\xce\x76\x00\x00\x00"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x0c\x0c\x0f\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcc\x0c\x0c\x0f"
-		"\x0e\xdb\x70\x30\x78\xcc\xcc\xcc\xcc\xdc\x6c\x00\x00\x00"
-		"\x1c\x36\x60\x60\xf8\x6c\x66\x66\x66\x6e\x3a\x00\x00\x00"
-		"\xcf\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x0f\x0c\x0c\x0c\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x00\x00\x00"
-		"\x78\xcc\x0c\x1c\x38\x6c\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x6c\xdc\x70"
-		"\xe0\x60\x60\x66\x66\x66\x66\x66\x66\x66\x3c\x00\x00\x00"
-		"\xe0\x60\x60\x60\x66\x66\x66\x66\x66\x66\x3e\x00\x00\x00"
-		"\xf8\x0c\x7c\xcc\xcc\xc0\xc0\xc0\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x78\xcc\xcc\xcc\x0c\x18\x30\x60\xc0\x7e"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcc\x00\x00\x00"
-		"\x78\xcc\xcc\xcc\xcc\x0c\x0c\x0c\xd8\x70\x30\x18\x00\x00"
-		"\x00\x00\x00\x00\x18\x30\x18\x0c\x18\x30\x60\xc0\xc0\x7e"
-		"\x7e\xdb\xdb\xdb\xdb\xdb\xdb\x1b\x1b\x03\x03\x00\x00\x00"
-		"\x00\x00\x00\x00\xdb\xdb\xdb\xdb\xdb\xdb\x7f\x03\x03\x03"
-		"\x60\xf0\xd8\xcc\xc6\x66\x36\x16\x1c\xd8\xfe\xc3\x00\x00"
-		"\x00\x00\x00\x00\x70\xd8\xcc\xcc\x6c\x38\x30\x60\xc0\x7e"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcf\xcc\xcc\xcc\xcc\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcf\x00\x00\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x00\x00\x00"
-		"\x0c\x0c\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0f\x00\x00\x00"
-		"\x0c\x0c\x0c\x0c\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0f"
-		"\x78\xcc\xcc\xc0\x60\x30\x18\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\xdc\xd6\xd6\xd6\xd6\xd6\x76\x00\x00\x00"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\xcc\xcc\xcc\xcc\xcc\xcc\xc0\xc0\xc0"
-		"\x78\xcc\xcc\xcc\x78\xcc\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78"
-		"\xc0\xc0\xf0\xd8\xd8\xd8\xd8\xd8\xce\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x60\x60\x60\x60\x60\x60\x7c\x00\x00\x00"
-		"\x10\x10\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x10\x00\x00\x00"
-		"\x00\x10\x10\x10\xdc\xd6\xd6\xd6\xd6\xd6\x76\x10\x10\x10"
-		"\x3c\x66\x66\x66\x66\x7c\x60\x60\xfe\x60\x60\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x66\x66\x66\x66\x7c\x60\xfe\x60\x60"
-		"\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x78\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x70\xd0\xd0\xd0\x7c\x16\x16\xd6\xd6\xd6\x7c\x00\x00\x00"
-		"\x70\xd0\xd0\xd0\x7c\x16\x16\xd6\xd6\xd6\x7c\x10\x10\x10"
-		"\x38\x38\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x78\x78\x30\x30\x00\x30\x00"
-		"\x6c\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x30\x7c\xc0\x78\x0c\xf8\x30\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x60\x60\xc0\x00\x00\x00\x00\x00"
-		"\x18\x30\x60\x60\x60\x30\x18\x00"
-		"\x60\x30\x18\x18\x18\x30\x60\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x30\x30\xfc\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x60"
-		"\x00\x00\x00\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x7c\xc6\xce\xde\xf6\xe6\x7c\x00"
-		"\x30\x70\x30\x30\x30\x30\xfc\x00"
-		"\x78\xcc\x0c\x38\x60\xcc\xfc\x00"
-		"\x78\xcc\x0c\x38\x0c\xcc\x78\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\xfc\xc0\xf8\x0c\x0c\xcc\x78\x00"
-		"\x38\x60\xc0\xf8\xcc\xcc\x78\x00"
-		"\xfc\xcc\x0c\x18\x30\x30\x30\x00"
-		"\x78\xcc\xcc\x78\xcc\xcc\x78\x00"
-		"\x78\xcc\xcc\x7c\x0c\x18\x70\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x60"
-		"\x18\x30\x60\xc0\x60\x30\x18\x00"
-		"\x00\x00\xfc\x00\x00\xfc\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x78\xcc\x0c\x18\x30\x00\x30\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x30\x78\xcc\xcc\xfc\xcc\xcc\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3e\x00"
-		"\xcc\xcc\xcc\xfc\xcc\xcc\xcc\x00"
-		"\x78\x30\x30\x30\x30\x30\x78\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x38\x6c\xc6\xc6\xc6\x6c\x38\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x78\xcc\xcc\xcc\xdc\x78\x1c\x00"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x78\xcc\xe0\x70\x1c\xcc\x78\x00"
-		"\xfc\xb4\x30\x30\x30\x30\x78\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xfc\x00"
-		"\xcc\xcc\xcc\xcc\xcc\x78\x30\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc6\x44\x6c\x38\x38\x6c\xc6\x00"
-		"\xcc\xcc\xcc\x78\x30\x30\x78\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x78\x60\x60\x60\x60\x60\x78\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x78\x18\x18\x18\x18\x18\x78\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x30\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x7c\x00"
-		"\x60\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x00\x00\x78\xcc\xc0\xcc\x78\x00"
-		"\x0c\x0c\x0c\x7c\xcc\xcc\x7c\x00"
-		"\x00\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x38\x6c\x60\xf0\x60\x60\xf0\x00"
-		"\x00\x00\x7c\xcc\xcc\x7c\x0c\xf8"
-		"\x60\x60\x7c\x66\x66\x66\x66\x00"
-		"\x30\x00\x70\x30\x30\x30\x78\x00"
-		"\x0c\x00\x0c\x0c\x0c\x0c\x6c\x38"
-		"\x60\x60\x66\x6c\x78\x6c\x66\x00"
-		"\x70\x30\x30\x30\x30\x30\x78\x00"
-		"\x00\x00\xcc\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x78\x00"
-		"\x00\x00\x7c\x66\x66\x7c\x60\x60"
-		"\x00\x00\x7c\xcc\xcc\x7c\x0c\x0c"
-		"\x00\x00\xdc\x76\x66\x60\xf0\x00"
-		"\x00\x00\x7c\xc0\x78\x0c\xf8\x00"
-		"\x10\x30\x7c\x30\x30\x34\x18\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x7c\x00"
-		"\x00\x00\xcc\xcc\xcc\x78\x30\x00"
-		"\x00\x00\xc6\xd6\xfe\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\xcc\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\xfc\x98\x30\x64\xfc\x00"
-		"\x1c\x30\x30\xe0\x30\x30\x1c\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\xe0\x30\x30\x1c\x30\x30\xe0\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x12\xca\x2c\x79\x9e\x34\x53\x48"
-		"\xc0\xc0\xc0\xd8\xd8\xd8\x76\x00"
-		"\x00\x00\x30\x30\x00\x30\x30\x00"
-		"\x60\x30\x18\x18\x18\x30\x60\x00"
-		"\x18\x30\x60\x60\x60\x30\x18\x00"
-		"\x00\x6c\x36\x1b\x36\x6c\x00\x00"
-		"\x00\x36\x6c\xd8\x6c\x36\x00\x00"
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x00\x00\x00\x00\x30\x30\x00\x00"
-		"\x30\x18\x0c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x60"
-		"\x00\x00\x00\x00\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\x70\x3f\x00\x00"
-		"\x00\x00\x00\x00\xdb\xdb\x00\x00"
-		"\x01\x0e\x70\x80\x00\x00\x00\x00"
-		"\x1c\x30\x40\x00\x00\x00\x00\x00"
-		"\x1e\x35\x26\x00\x00\x00\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\x6f\x3b\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\xff\x00"
-		"\x7c\xc6\xc6\xc0\xc0\xf8\xc0\x00"
-		"\x00\x00\x78\xcc\xc0\xc0\xf0\xc0"
-		"\x7c\xc6\xc6\xc6\xc6\x7f\x06\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x7e\x0c"
-		"\x7c\xc6\xc6\xc6\xc6\x07\x06\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x0e\x0c"
-		"\xc0\xc0\xfe\xc0\xc6\xc6\x7c\x00"
-		"\xc0\xc0\xfc\xc0\xcc\xcc\x78\x00"
-		"\x3e\x63\x36\x1c\xb8\xfe\x83\x00"
-		"\x00\x00\x78\xcc\xcc\x7c\x0c\x0e"
-		"\xc0\xc0\xfc\xc0\xc0\xfe\x03\x00"
-		"\x00\xc0\xc0\xf8\xc0\xc0\xf8\x0c"
-		"\x7c\xc6\xc6\xc6\xc0\xc0\xfe\x00"
-		"\x00\x00\x78\xcc\xcc\xc0\xc0\xfc"
-		"\x7c\xc6\xdf\xd6\xde\xc0\xc0\x00"
-		"\x00\x00\x7c\xc6\xcf\xd6\xdc\xc0"
-		"\x06\x06\x7f\xc6\xc6\xc6\x7c\x00"
-		"\x00\x0c\x0c\x7e\xcc\xcc\x78\x00"
-		"\xc0\xfc\xc6\xc6\xc0\xc0\xc0\x00"
-		"\x00\xc0\xc0\xf8\xcc\xcc\xc0\xc0"
-		"\xc0\xc0\xc0\xc0\xc0\xfc\x06\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xc0\xf8"
-		"\xc0\xc0\xf3\xdb\xdb\xce\xc0\x00"
-		"\x00\xc0\xc0\xc0\xf3\xdb\xce\xc0"
-		"\xe7\x3c\x66\xc3\xc3\x66\x3c\x00"
-		"\xc0\x37\x0c\x66\xc3\xc6\x7c\x00"
-		"\xc0\xc0\xc6\xc6\x7e\x06\x06\x00"
-		"\xc0\xc0\xcc\xcc\xcc\xcc\x7c\x0c"
-		"\xfc\xfe\x06\xfc\xfe\x06\x06\x00"
-		"\xc0\xc0\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x7c\xc6\xc6\x0c\x68\x9a\x66\x00"
-		"\x00\x10\x30\x78\xcc\xcc\x7a\x00"
-		"\x7c\xc6\xc6\xc6\xc6\x06\x07\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x0c\x0e"
-		"\x0f\xf0\x6c\x66\xc3\xc3\xff\x00"
-		"\x1c\xe0\x30\xc8\xcc\xcc\xfc\x00"
-		"\xc7\xc6\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x0e\x0c\x0c\xcc\xcc\xcc\x78\x00"
-		"\x38\x7e\x06\xf8\x06\x7e\x38\x00"
-		"\x00\x38\x7e\x06\xfc\x06\x7e\x38"
-		"\xe0\x60\x60\x63\x63\x63\x3e\x00"
-		"\xe0\x60\x66\x66\x66\x66\x3c\x00"
-		"\xe0\x7e\x1e\x30\x60\x33\x1e\x00"
-		"\x00\x78\xcc\x0c\x30\x60\xc0\xfc"
-		"\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xcc\x00"
-		"\x7c\xc6\x06\xcc\x70\x18\x0c\x00"
-		"\x00\x30\x60\x30\x18\x30\x62\x3c"
-		"\x7e\xdb\xdb\xdb\x1b\x03\x03\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\x6f\x03"
-		"\x3c\x66\x66\x1c\xb8\xfe\x83\x00"
-		"\x00\x3c\x66\x66\x66\x1c\x70\xfe"
-		"\x7c\xc6\xc6\xc6\xc7\xc6\xc6\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xce\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x78\x00"
-		"\x06\x06\xc6\xc6\x7e\x06\x07\x00"
-		"\x0c\x0c\xcc\xcc\xcc\xfc\x0c\x0e"
-		"\x7e\xe7\x30\x18\x0c\xe7\x7e\x00"
-		"\x00\x00\xd6\xdb\xdb\xdb\x6b\x00"
-		"\x7c\xc6\xc6\xc6\xc0\xc0\xc0\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xc0\xc0"
-		"\x7c\xc6\x7c\xfc\x03\x83\x7e\x00"
-		"\x00\x00\x78\xcc\x78\x0c\xcc\x78"
-		"\xc0\xc0\xc0\xf0\xc0\xc0\xc0\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xe0\x00"
-		"\x18\x7e\xdb\xdb\xdb\x7e\x18\x00"
-		"\x18\x18\xde\xdb\xdb\xdb\x7b\x18"
-		"\x3e\x63\x63\x7e\x60\xff\x60\x00"
-		"\x00\x3c\x66\x66\x7c\x60\xfc\x60"
-		"\x3c\x66\xc3\xc3\xc3\x66\x3c\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00"
-		"\x38\x58\x3e\x1b\x1b\xdb\x7e\x00"
-		"\x38\x58\x3e\x1b\x1b\xdb\x7e\x18"
-		"\x30\x30\x60\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "ARMSCII-8 Character set", CIOLIB_ARMSCII8}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xdb\xdb\xc3\xc3\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc3\xe7\xff\xff\xdb\xc3\xc3\xc3\xc3\xc3\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xff\xdb\x99\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\xc3\xc3\xc3\xc3\xc3\xdb\xdb\xff\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\xc3\xc3\x66\x3c\x18\x18\x3c\x66\xc3\xc3\x00\x00\x00\x00"
-		"\x00\x00\xc3\xc3\xc3\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xff\xc3\x86\x0c\x18\x30\x60\xc1\xc3\xff\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xe6\xff\xdb\xdb\xdb\xdb\xdb\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc3\xc3\xc3\xc3\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc3\xc3\xc3\xdb\xdb\xff\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc3\x66\x3c\x18\x3c\x66\xc3\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x18\x3c\x3c\x3c\x18\x00\x00\x00\x00"
-		"\x00\x18\x18\x7e\xc3\xc0\xc0\xc0\xc3\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xe6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x1e\x31\x60\x60\xfe\x60\xfc\x60\x31\x1e\x00\x00\x00\x00"
-		"\x00\x00\xc3\x66\x3c\x18\xff\x18\xff\x18\x18\x18\x00\x00\x00\x00"
-		"\x6c\x38\x10\x00\x7c\xc6\x60\x30\x18\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x6c\x38\x10\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x82\xba\xa2\xa2\xba\x82\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x70\x18\x78\xc8\x78\x00\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x36\x6c\xd8\x6c\x36\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\x06\x06\x06\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x82\xba\xaa\xb2\xaa\x82\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\xf8\x18\x30\x18\xd8\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x10\x00\xfe\xc6\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x7e\x63\x60\xc0\x00\x00\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x1b\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x6c\x38\x10\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x60\xe0\x60\x60\x60\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\xd8\x88\xd8\x70\x00\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd8\x6c\x36\x6c\xd8\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7e\xcc\xcc\xcc\xce\xcc\xcc\xcc\xcc\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x6e\xdb\xdb\xde\xd8\xdc\x67\x00\x00\x00\x00"
-		"\x00\xc3\x00\xc3\xc3\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x30\x30\x00\x30\x30\x60\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x60\x30\x18\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x10\x38\x6c\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x76\xdc\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\xc6\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x38\x6c\x38\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3e\x6c\xcc\xcc\xfe\xcc\xcc\xcc\xcc\xce\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x0c\x06\x7c\x00\x00"
-		"\x30\x18\x0c\x00\xfe\x66\x60\x7c\x60\x60\x66\xfe\x00\x00\x00\x00"
-		"\x18\x30\x60\x00\xfe\x66\x60\x7c\x60\x60\x66\xfe\x00\x00\x00\x00"
-		"\x10\x38\x6c\x00\xfe\x66\x60\x7c\x60\x60\x66\xfe\x00\x00\x00\x00"
-		"\x00\xc6\x00\xfe\x66\x60\x60\x7c\x60\x60\x66\xfe\x00\x00\x00\x00"
-		"\x30\x18\x0c\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x18\x3c\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x78\x6c\x66\x66\x66\xf6\x66\x66\x6c\x78\x00\x00\x00\x00"
-		"\x76\xdc\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x60\x30\x18\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xc6\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\x6c\x38\x10\x38\x6c\xc6\x00\x00\x00\x00\x00"
-		"\x02\x06\x7c\xce\xce\xde\xd6\xd6\xf6\xe6\xe6\x7c\xc0\x80\x00\x00"
-		"\x60\x30\x18\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x10\x38\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\xc3\xc3\x66\x3c\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\xf0\x60\x7c\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xce\xdc\xd8\xcc\xc6\xd6\xdc\xc0\x80\x00\x00"
-		"\x00\x60\x30\x18\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xcc\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x38\x6c\x38\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x6e\x3b\x1b\x7e\xd8\xdc\x77\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x3c\x66\x60\x60\x66\x3c\x0c\x06\x3c\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x06\x0c\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x18\x3c\x66\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x66\x00\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x6c\x38\x38\x6c\x0c\x3c\x6c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x02\x06\x7c\xce\xde\xd6\xf6\xe6\x7c\xc0\x80\x00\x00"
-		"\x00\x60\x30\x18\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x78\xcc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xcc\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\xf0\x60\x7c\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x66\x66\x00\xee\x66\x66\x66\x66\x66\x3e\x06\x0c\x38\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x36\x36\x7f\x36\x36\x36\x7f\x36\x36\x00\x00\x00"
-		"\x08\x08\x3e\x63\x60\x60\x3e\x03\x03\x63\x3e\x08\x08\x00"
-		"\x00\x00\x00\x61\x63\x06\x0c\x18\x30\x63\x43\x00\x00\x00"
-		"\x00\x00\x1c\x36\x36\x1c\x3b\x6e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x3c\x7e\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x01\x03\x06\x0c\x18\x30\x60\x40\x00\x00\x00\x00"
-		"\x00\x00\x3e\x63\x67\x6f\x7b\x73\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x0c\x0c\x0c\x0c\x0c\x3f\x00\x00\x00"
-		"\x00\x00\x3e\x63\x03\x06\x0c\x18\x30\x63\x7f\x00\x00\x00"
-		"\x00\x00\x3e\x63\x03\x03\x1e\x03\x03\x63\x3e\x00\x00\x00"
-		"\x00\x00\x06\x0e\x1e\x36\x66\x7f\x06\x06\x0f\x00\x00\x00"
-		"\x00\x00\x7e\x60\x60\x60\x7e\x03\x03\x63\x3e\x00\x00\x00"
-		"\x00\x00\x1c\x30\x60\x60\x7e\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x7f\x63\x03\x06\x0c\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x63\x3e\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x63\x3f\x03\x03\x06\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x7e\x00\x00\x00\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x06\x0c\x0c\x00\x0c\x0c\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x6f\x6f\x6f\x6e\x60\x3e\x00\x00\x00"
-		"\x00\x00\x08\x1c\x36\x63\x63\x7f\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x7e\x33\x33\x33\x3e\x33\x33\x33\x7e\x00\x00\x00"
-		"\x00\x00\x1e\x33\x60\x60\x60\x60\x60\x33\x1e\x00\x00\x00"
-		"\x00\x00\x7c\x36\x33\x33\x33\x33\x33\x36\x7c\x00\x00\x00"
-		"\x00\x00\x7f\x33\x30\x34\x3c\x34\x30\x33\x7f\x00\x00\x00"
-		"\x00\x00\x7f\x33\x30\x34\x3c\x34\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x1e\x33\x60\x60\x60\x6f\x63\x33\x1d\x00\x00\x00"
-		"\x00\x00\x63\x63\x63\x63\x7f\x63\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x0f\x06\x06\x06\x06\x06\x66\x66\x3c\x00\x00\x00"
-		"\x00\x00\x73\x33\x36\x36\x3c\x36\x36\x33\x73\x00\x00\x00"
-		"\x00\x00\x78\x30\x30\x30\x30\x30\x30\x33\x7f\x00\x00\x00"
-		"\x00\x00\x63\x77\x7f\x6b\x63\x63\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x63\x73\x7b\x7f\x6f\x67\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x1c\x36\x63\x63\x63\x63\x63\x36\x1c\x00\x00\x00"
-		"\x00\x00\x7e\x33\x33\x33\x3e\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x1c\x36\x63\x63\x63\x63\x6b\x3e\x1c\x06\x03\x00"
-		"\x00\x00\x7e\x33\x33\x33\x3e\x36\x33\x33\x73\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x30\x1c\x06\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x63\x63\x63\x63\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x63\x63\x63\x63\x63\x63\x36\x1c\x08\x00\x00\x00"
-		"\x00\x00\x63\x63\x63\x63\x63\x6b\x6b\x7f\x36\x00\x00\x00"
-		"\x00\x00\x63\x63\x63\x36\x1c\x36\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x7f\x63\x06\x0c\x18\x30\x60\x63\x7f\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\x00\x40\x60\x30\x18\x0c\x06\x03\x01\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x08\x1c\x36\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x18\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x70\x30\x30\x3e\x33\x33\x33\x33\x6e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\x60\x60\x63\x3e\x00\x00\x00"
-		"\x00\x00\x0e\x06\x06\x3e\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\x7f\x60\x63\x3e\x00\x00\x00"
-		"\x00\x00\x1e\x33\x30\x7c\x30\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3b\x66\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x00\x00\x70\x30\x30\x36\x3b\x33\x33\x33\x73\x00\x00\x00"
-		"\x00\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x0c\xcc\x78\x00"
-		"\x00\x00\x70\x30\x30\x33\x36\x3c\x36\x33\x73\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x7f\x6b\x6b\x6b\x6b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x6e\x33\x33\x33\x33\x33\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x6e\x33\x33\x33\x3e\x30\x30\x78\x00"
-		"\x00\x00\x00\x00\x00\x3b\x66\x66\x66\x3e\x06\x06\x0f\x00"
-		"\x00\x00\x00\x00\x00\x6e\x33\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\x38\x0e\x63\x3e\x00\x00\x00"
-		"\x00\x00\x00\x08\x18\x7e\x18\x18\x18\x1b\x0e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x63\x63\x63\x36\x1c\x08\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x63\x63\x6b\x6b\x7f\x36\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x63\x36\x1c\x1c\x36\x63\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x63\x66\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x00\x00\x00\x00\x00\x7f\x66\x0c\x18\x33\x7f\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x3b\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x3c\x3c\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x08\x08\x3e\x63\x60\x60\x63\x3e\x08\x08\x00"
-		"\x00\x00\x1c\x36\x30\x30\x7c\x30\x30\x73\x7e\x00\x00\x00"
-		"\x00\x1e\x31\x60\xfe\x60\xfc\x60\x33\x1e\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x3c\x18\x7e\x18\x7e\x18\x00\x00\x00"
-		"\x1c\x08\x00\x3e\x63\x30\x1c\x06\x63\x3e\x00\x00\x00\x00"
-		"\x00\x3e\x63\x30\x1c\x36\x63\x63\x36\x1c\x06\x63\x3e\x00"
-		"\x36\x1c\x08\x00\x3e\x63\x38\x0e\x63\x3e\x00\x00\x00\x00"
-		"\x00\x00\x00\x3e\x41\x5d\x51\x51\x5d\x41\x3e\x00\x00\x00"
-		"\x00\x38\x04\x3c\x44\x3c\x00\x7c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x1b\x36\x6c\x36\x1b\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7f\x03\x03\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x3e\x41\x5d\x55\x59\x55\x41\x3e\x00\x00\x00"
-		"\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x7e\x00\x00\x00"
-		"\x00\x38\x6c\x18\x30\x64\x7c\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x7c\x0c\x38\x0c\x6c\x38\x00\x00\x00\x00\x00\x00\x00"
-		"\x1c\x08\x00\x7f\x66\x0c\x18\x30\x63\x7f\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x3b\x60\xc0\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x1c\x08\x00\x7f\x66\x0c\x18\x33\x7f\x00\x00\x00\x00"
-		"\x00\x30\x70\x30\x30\x30\x78\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x44\x44\x44\x38\x00\x7c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x6c\x36\x1b\x36\x6c\x00\x00\x00\x00\x00"
-		"\x00\x1f\x36\x66\x66\x67\x66\x66\x36\x1f\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x36\x6b\x6b\x6e\x68\x37\x00\x00\x00\x00"
-		"\x66\x00\x66\x66\x66\x66\x3c\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x30\x63\x63\x3e\x00\x00\x00"
-		"\x60\x30\x18\x00\x1c\x36\x63\x63\x7f\x63\x63\x00\x00\x00"
-		"\x03\x06\x0c\x00\x1c\x36\x63\x63\x7f\x63\x63\x00\x00\x00"
-		"\x08\x1c\x36\x00\x1c\x36\x63\x63\x7f\x63\x63\x00\x00\x00"
-		"\x3b\x6e\x00\x08\x1c\x36\x63\x63\x7f\x63\x63\x00\x00\x00"
-		"\x00\x63\x63\x08\x1c\x36\x63\x63\x7f\x63\x63\x00\x00\x00"
-		"\x1c\x36\x1c\x00\x1c\x36\x63\x63\x7f\x63\x63\x00\x00\x00"
-		"\x00\x00\x1f\x36\x66\x66\x67\x7e\x66\x66\x67\x00\x00\x00"
-		"\x00\x00\x1e\x33\x60\x60\x60\x60\x60\x33\x1e\x0c\x06\x1c"
-		"\x60\x30\x18\x00\x7f\x33\x30\x3e\x30\x33\x7f\x00\x00\x00"
-		"\x06\x0c\x18\x00\x7f\x33\x30\x3e\x30\x33\x7f\x00\x00\x00"
-		"\x08\x1c\x36\x00\x7f\x33\x30\x3e\x30\x33\x7f\x00\x00\x00"
-		"\x00\x63\x63\x00\x7f\x33\x30\x3e\x30\x33\x7f\x00\x00\x00"
-		"\x60\x30\x18\x00\x3c\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x06\x0c\x18\x00\x3c\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x18\x3c\x66\x00\x3c\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x66\x66\x00\x3c\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x3c\x36\x33\x33\x7b\x33\x33\x36\x3c\x00\x00\x00"
-		"\x3b\x6e\x00\x63\x73\x7b\x7f\x6f\x67\x63\x63\x00\x00\x00"
-		"\x60\x30\x18\x00\x1c\x36\x63\x63\x63\x36\x1c\x00\x00\x00"
-		"\x03\x06\x0c\x00\x1c\x36\x63\x63\x63\x36\x1c\x00\x00\x00"
-		"\x08\x1c\x36\x00\x1c\x36\x63\x63\x63\x36\x1c\x00\x00\x00"
-		"\x00\x3b\x6e\x00\x1c\x36\x63\x63\x63\x36\x1c\x00\x00\x00"
-		"\x00\x63\x63\x00\x1c\x36\x63\x63\x63\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x63\x36\x1c\x08\x1c\x36\x63\x00\x00\x00\x00"
-		"\x00\x03\x1e\x36\x67\x6f\x6b\x7b\x73\x36\x3c\x60\x00\x00"
-		"\x60\x30\x18\x00\x63\x63\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x03\x06\x0c\x00\x63\x63\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x08\x1c\x36\x00\x63\x63\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x63\x63\x00\x63\x63\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x06\x0c\x18\x00\x66\x66\x66\x3c\x18\x18\x3c\x00\x00\x00"
-		"\x00\x78\x30\x3e\x33\x33\x3e\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x1c\x36\x63\x66\x6c\x67\x63\x6b\x6e\x60\x60\x00"
-		"\x00\x60\x30\x18\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x06\x0c\x18\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x08\x1c\x36\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x3b\x6e\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x66\x66\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x1c\x36\x1c\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\x0b\x3b\x6e\x68\x37\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\x60\x60\x63\x3e\x0c\x06\x1c"
-		"\x00\x30\x18\x0c\x00\x3e\x63\x7f\x60\x63\x3e\x00\x00\x00"
-		"\x00\x03\x06\x0c\x00\x3e\x63\x7f\x60\x63\x3e\x00\x00\x00"
-		"\x00\x08\x1c\x36\x00\x3e\x63\x7f\x60\x63\x3e\x00\x00\x00"
-		"\x00\x00\x63\x63\x00\x3e\x63\x7f\x60\x63\x3e\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x06\x0c\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x18\x3c\x66\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x66\x66\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x36\x1c\x36\x06\x3e\x66\x66\x66\x3c\x00\x00\x00"
-		"\x00\x00\x3b\x6e\x00\x6e\x33\x33\x33\x33\x33\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x3e\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x06\x0c\x18\x00\x3e\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x08\x1c\x36\x00\x3e\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x3b\x6e\x00\x3e\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x63\x63\x00\x3e\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x7e\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x03\x3e\x67\x6f\x7b\x73\x3e\x60\x00\x00"
-		"\x00\x60\x30\x18\x00\x66\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\x06\x0c\x18\x00\x66\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\x18\x3c\x66\x00\x66\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x66\x66\x00\x66\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\x06\x0c\x18\x00\x63\x66\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x00\x00\x00\x78\x30\x3e\x33\x33\x33\x33\x3e\x30\x78\x00"
-		"\x00\x00\x66\x66\x00\x66\x66\x66\x66\x3e\x06\x66\x3c\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x78\x78\x30\x30\x00\x30\x00"
-		"\x6c\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x30\x7c\xc0\x78\x0c\xf8\x30\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x60\x60\xc0\x00\x00\x00\x00\x00"
-		"\x18\x30\x60\x60\x60\x30\x18\x00"
-		"\x60\x30\x18\x18\x18\x30\x60\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x30\x30\xfc\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x60"
-		"\x00\x00\x00\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x7c\xc6\xce\xde\xf6\xe6\x7c\x00"
-		"\x30\x70\x30\x30\x30\x30\xfc\x00"
-		"\x78\xcc\x0c\x38\x60\xcc\xfc\x00"
-		"\x78\xcc\x0c\x38\x0c\xcc\x78\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\xfc\xc0\xf8\x0c\x0c\xcc\x78\x00"
-		"\x38\x60\xc0\xf8\xcc\xcc\x78\x00"
-		"\xfc\xcc\x0c\x18\x30\x30\x30\x00"
-		"\x78\xcc\xcc\x78\xcc\xcc\x78\x00"
-		"\x78\xcc\xcc\x7c\x0c\x18\x70\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x60"
-		"\x18\x30\x60\xc0\x60\x30\x18\x00"
-		"\x00\x00\xfc\x00\x00\xfc\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x78\xcc\x0c\x18\x30\x00\x30\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x30\x78\xcc\xcc\xfc\xcc\xcc\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3e\x00"
-		"\xcc\xcc\xcc\xfc\xcc\xcc\xcc\x00"
-		"\x78\x30\x30\x30\x30\x30\x78\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x38\x6c\xc6\xc6\xc6\x6c\x38\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x78\xcc\xcc\xcc\xdc\x78\x1c\x00"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x78\xcc\xe0\x70\x1c\xcc\x78\x00"
-		"\xfc\xb4\x30\x30\x30\x30\x78\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xfc\x00"
-		"\xcc\xcc\xcc\xcc\xcc\x78\x30\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc6\xc6\x6c\x38\x38\x6c\xc6\x00"
-		"\xcc\xcc\xcc\x78\x30\x30\x78\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x78\x60\x60\x60\x60\x60\x78\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x78\x18\x18\x18\x18\x18\x78\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x30\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\xe0\x60\x60\x7c\x66\x66\xdc\x00"
-		"\x00\x00\x78\xcc\xc0\xcc\x78\x00"
-		"\x1c\x0c\x0c\x7c\xcc\xcc\x76\x00"
-		"\x00\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x38\x6c\x60\xf0\x60\x60\xf0\x00"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\xf8"
-		"\xe0\x60\x6c\x76\x66\x66\xe6\x00"
-		"\x30\x00\x70\x30\x30\x30\x78\x00"
-		"\x0c\x00\x0c\x0c\x0c\xcc\xcc\x78"
-		"\xe0\x60\x66\x6c\x78\x6c\xe6\x00"
-		"\x70\x30\x30\x30\x30\x30\x78\x00"
-		"\x00\x00\xcc\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x78\x00"
-		"\x00\x00\xdc\x66\x66\x7c\x60\xf0"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\x1e"
-		"\x00\x00\xdc\x76\x66\x60\xf0\x00"
-		"\x00\x00\x7c\xc0\x78\x0c\xf8\x00"
-		"\x10\x30\x7c\x30\x30\x34\x18\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x76\x00"
-		"\x00\x00\xcc\xcc\xcc\x78\x30\x00"
-		"\x00\x00\xc6\xd6\xfe\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\xcc\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\xfc\x98\x30\x64\xfc\x00"
-		"\x1c\x30\x30\xe0\x30\x30\x1c\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\xe0\x30\x30\x1c\x30\x30\xe0\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x00\x30\x30\x78\x78\x30\x00"
-		"\x00\x00\x10\x7c\xc0\xc0\x7c\x10"
-		"\x00\x38\x60\x60\xf0\x60\xfc\x00"
-		"\x0e\x19\x30\x7e\x30\x19\x0e\x00"
-		"\x00\xcc\xcc\x78\x30\xfc\x30\x00"
-		"\x30\x7c\xc0\x78\x0c\xf8\x00\x00"
-		"\x7e\xc0\x7c\xc6\x7c\x06\xfc\x00"
-		"\x30\x7c\xc0\x78\x0c\xf8\x00\x00"
-		"\x7c\x82\xba\xa2\xba\x82\x7c\x00"
-		"\x1c\x06\x1e\x22\x1f\x3f\x00\x00"
-		"\x00\x33\x66\xcc\x66\x33\x00\x00"
-		"\x00\xfe\x06\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7c\x82\xba\xb2\xaa\x82\x7c\x00"
-		"\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x38\x6c\x38\x00\x00\x00\x00\x00"
-		"\x00\x10\x7c\x10\x00\x7c\x00\x00"
-		"\x1c\x36\x06\x18\x3e\x00\x00\x00"
-		"\x1e\x02\x0e\x02\x1e\x00\x00\x00"
-		"\x30\xfc\x98\x30\x64\xfc\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x76\xc0"
-		"\x7e\xca\xca\x7e\x0a\x0a\x0a\x00"
-		"\x00\x00\x00\x18\x00\x00\x00\x00"
-		"\x30\xfc\x98\x30\x64\xfc\x00\x00"
-		"\x06\x0e\x06\x06\x06\x00\x00\x00"
-		"\x0e\x11\x11\x11\x0e\x1f\x00\x00"
-		"\x00\xcc\x66\x33\x66\xcc\x00\x00"
-		"\x58\xd8\xdc\xd8\x58\x3e\x00\x00"
-		"\x00\x6c\xd2\xde\xd0\x6e\x00\x00"
-		"\x00\xcc\xcc\x78\x30\x78\x00\x00"
-		"\x30\x00\x30\x60\xc0\xcc\x78\x00"
-		"\x18\x0c\x30\x78\xcc\xfc\xcc\x00"
-		"\x60\xc0\x30\x78\xcc\xfc\xcc\x00"
-		"\x78\x84\x30\x78\xcc\xfc\xcc\x00"
-		"\x66\x98\x30\x78\xcc\xfc\xcc\x00"
-		"\xcc\x00\x30\x78\xcc\xfc\xcc\x00"
-		"\x30\x48\x30\x78\xcc\xfc\xcc\x00"
-		"\x3e\x78\x98\x9c\xf8\x98\x9e\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x1c\x30"
-		"\x30\x18\xfe\x62\x78\x62\xfe\x00"
-		"\x18\x30\xfe\x62\x78\x62\xfe\x00"
-		"\x38\x44\xfe\x62\x78\x62\xfe\x00"
-		"\x66\x00\xfe\x62\x78\x62\xfe\x00"
-		"\x60\x30\x78\x30\x30\x30\x78\x00"
-		"\x18\x30\x78\x30\x30\x30\x78\x00"
-		"\x78\x84\x78\x30\x30\x30\x78\x00"
-		"\xcc\x00\x78\x30\x30\x30\x78\x00"
-		"\x78\x6c\x66\xf6\x66\x6c\x78\x00"
-		"\x66\x98\xe6\xf6\xde\xce\xc6\x00"
-		"\x30\x18\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x18\x30\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x38\x44\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x66\x98\x7c\xc6\xc6\xc6\x7c\x00"
-		"\xc6\x00\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x00\xc6\x6c\x38\x38\x6c\xc6\x00"
-		"\x06\x7c\xce\x9a\xb2\xe6\x78\xc0"
-		"\x60\x30\xcc\xcc\xcc\xcc\xfc\x00"
-		"\x18\x30\xcc\xcc\xcc\xcc\xfc\x00"
-		"\x78\x84\xcc\xcc\xcc\xcc\xfc\x00"
-		"\xcc\x00\xcc\xcc\xcc\xcc\xfc\x00"
-		"\x18\x30\xcc\xcc\x78\x30\x78\x00"
-		"\x60\x78\x6c\x78\x60\x60\x60\x00"
-		"\x78\xcc\xc4\xdc\xc6\xc6\xdc\xc0"
-		"\x30\x18\x78\x0c\x7c\xcc\x76\x00"
-		"\x18\x30\x78\x0c\x7c\xcc\x76\x00"
-		"\x78\x84\x78\x0c\x7c\xcc\x76\x00"
-		"\x66\x98\x78\x0c\x7c\xcc\x76\x00"
-		"\xcc\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\x30\x48\x38\x0c\x7c\xcc\x76\x00"
-		"\x00\x00\xec\x32\x7e\xb0\x6e\x00"
-		"\x00\x00\x3c\x66\xc0\x66\x1c\x30"
-		"\x30\x18\x78\xcc\xfc\xc0\x78\x00"
-		"\x18\x30\x78\xcc\xfc\xc0\x78\x00"
-		"\x78\x84\x78\xcc\xfc\xc0\x78\x00"
-		"\xcc\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x60\x30\x00\x70\x30\x30\x78\x00"
-		"\x18\x30\x00\x70\x30\x30\x78\x00"
-		"\x70\x88\x00\x70\x30\x30\x78\x00"
-		"\xcc\x00\x00\x70\x30\x30\x78\x00"
-		"\x6c\x38\x6c\x0c\x6c\xcc\x78\x00"
-		"\x66\x98\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x60\x30\x00\x7c\xc6\xc6\x7c\x00"
-		"\x18\x30\x00\x7c\xc6\xc6\x7c\x00"
-		"\x38\x44\x00\x7c\xc6\xc6\x7c\x00"
-		"\x66\x98\x00\x7c\xc6\xc6\x7c\x00"
-		"\xc6\x00\x00\x7c\xc6\xc6\x7c\x00"
-		"\x00\x00\x18\x00\x7e\x00\x18\x00"
-		"\x00\x00\x06\x7c\xde\xf6\x7c\xc0"
-		"\x60\x30\x00\xcc\xcc\xcc\x76\x00"
-		"\x18\x30\x00\xcc\xcc\xcc\x76\x00"
-		"\x30\x48\x00\xcc\xcc\xcc\x76\x00"
-		"\xcc\x00\x00\xcc\xcc\xcc\x76\x00"
-		"\x18\x30\xcc\xcc\xcc\x7c\x0c\xf8"
-		"\xe0\x78\x6c\x66\x6c\x78\xe0\x00"
-		"\xcc\x00\xcc\xcc\xcc\x7c\x0c\xf8"
-	, "ISO-8859-15 West European", CIOLIB_ISO_8859_15}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7e\x81\xa5\x81\x81\xbd\x99\x81\x81\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7e\xff\xdb\xff\xff\xc3\xe7\xff\xff\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\xe7\xe7\xe7\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\xff\xff\x7e\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff\xff\xff"
-		"\x00\x00\x3e\x0a\x12\x22\x78\x84\x84\x84\x84\x78\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x44\x44\x44\x38\x10\x7c\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x3f\x21\x3f\x20\x20\x20\x20\x60\xe0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x3f\x21\x3f\x21\x21\x21\x21\x23\x67\xe6\xc0\x00\x00\x00"
-		"\x00\x00\x00\x10\x10\xd6\x38\xee\x38\xd6\x10\x10\x00\x00\x00\x00"
-		"\x00\x80\xc0\xe0\xf0\xf8\xfe\xf8\xf0\xe0\xc0\x80\x00\x00\x00\x00"
-		"\x00\x02\x06\x0e\x1e\x3e\xfe\x3e\x1e\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x7c\x10\x10\x10\x7c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x42\x42\x42\x42\x42\x42\x42\x00\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x7f\x89\x89\x89\x79\x09\x09\x09\x09\x09\x00\x00\x00\x00"
-		"\x00\x7c\x86\x40\x38\x44\x82\x82\x44\x38\x04\xc2\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x7c\x10\x10\x10\x7c\x38\x10\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x7c\x10\x10\x10\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x10\x10\x10\x10\x10\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x08\x04\xfe\x04\x08\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x20\x40\xfe\x40\x20\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x80\x80\x80\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x28\x6c\xfe\x6c\x28\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x38\x38\x10\x10\x10\x00\x10\x10\x00\x00\x00\x00"
-		"\x00\x42\x42\x42\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x44\x44\xfe\x44\x44\x44\xfe\x44\x44\x00\x00\x00\x00"
-		"\x10\x10\x7c\x82\x82\x40\x30\x0c\x04\x82\x82\x7c\x10\x10\x00\x00"
-		"\x00\x00\x00\x00\x00\x82\x84\x08\x10\x20\x42\x82\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x44\x38\x38\x47\x44\x44\x44\x3b\x00\x00\x00\x00"
-		"\x00\x20\x20\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x04\x08\x10\x10\x10\x10\x10\x10\x08\x04\x00\x00\x00\x00"
-		"\x00\x00\x20\x10\x08\x08\x08\x08\x08\x08\x10\x20\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x24\x18\xff\x18\x24\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x10\x10\x7c\x10\x10\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x10\x20\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x02\x04\x08\x10\x20\x40\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x82\x82\x92\x92\x82\x82\x44\x38\x00\x00\x00\x00"
-		"\x00\x00\x08\x18\x38\x08\x08\x08\x08\x08\x08\x3e\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x02\x04\x08\x10\x20\x40\x82\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x02\x02\x3c\x02\x02\x02\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x14\x24\x44\x84\xfe\x04\x04\x04\x0e\x00\x00\x00\x00"
-		"\x00\x00\xfe\x80\x80\x80\xfc\x02\x02\x02\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x40\x80\x80\xfc\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\x82\x02\x02\x04\x08\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x82\x7c\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x82\x7e\x02\x02\x02\x04\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x10\x00\x00\x00\x10\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x10\x00\x00\x00\x10\x10\x20\x00\x00\x00\x00"
-		"\x00\x00\x00\x04\x08\x10\x20\x40\x20\x10\x08\x04\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x40\x20\x10\x08\x04\x08\x10\x20\x40\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x02\x04\x08\x08\x00\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\x82\x82\x9e\x92\x92\x8c\x80\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x28\x44\x82\x82\xfe\x82\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\xfc\x42\x42\x42\x7c\x42\x42\x42\x42\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x82\x80\x80\x80\x80\x82\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x44\x42\x42\x42\x42\x42\x42\x44\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x42\x42\x48\x78\x48\x40\x42\x42\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x42\x42\x48\x78\x48\x40\x40\x40\xe0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x82\x80\x80\x9e\x82\x82\x46\x3a\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x82\xfe\x82\x82\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x38\x10\x10\x10\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\x0e\x04\x04\x04\x04\x04\x84\x84\x84\x78\x00\x00\x00\x00"
-		"\x00\x00\xc2\x42\x42\x44\x48\x78\x44\x42\x42\xc2\x00\x00\x00\x00"
-		"\x00\x00\xe0\x40\x40\x40\x40\x40\x40\x42\x42\xfe\x00\x00\x00\x00"
-		"\x00\x00\x82\xc6\xaa\x92\x82\x82\x82\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\xc2\xa2\x92\x8a\x86\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x82\x82\x82\x82\x82\x82\x44\x38\x00\x00\x00\x00"
-		"\x00\x00\xfc\x42\x42\x42\x7c\x40\x40\x40\x40\xe0\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x82\x82\x82\x82\x92\x8a\x7c\x04\x02\x00\x00"
-		"\x00\x00\xfc\x42\x42\x42\x7c\x44\x42\x42\x42\xc2\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x40\x30\x0c\x04\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\x92\x92\x10\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x82\x82\x82\x82\x44\x28\x10\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x82\x82\x82\x92\xaa\xc6\x82\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x44\x28\x10\x28\x44\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x44\x38\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\xfe\x82\x82\x04\x18\x20\x40\x82\x82\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\x40\x20\x10\x08\x04\x02\x01\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x04\x04\x04\x04\x04\x04\x04\x04\x3c\x00\x00\x00\x00"
-		"\x10\x28\x44\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x10\x10\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\xc0\x40\x40\x78\x44\x42\x42\x42\x42\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x82\x80\x80\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x04\x04\x3c\x44\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x44\x40\xe0\x40\x40\x40\x40\xe0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\x8c\x84\x84\x84\x84\x7c\x04\x84\x78\x00"
-		"\x00\x00\xc0\x40\x40\x7c\x42\x42\x42\x42\x42\xc2\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x00\x30\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\x02\x02\x00\x06\x02\x02\x02\x02\x02\x02\x42\x42\x3c\x00"
-		"\x00\x00\xc0\x40\x40\x42\x44\x48\x78\x44\x42\xc2\x00\x00\x00\x00"
-		"\x00\x00\x30\x10\x10\x10\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\x92\x92\x92\x92\x92\x92\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x62\x42\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x62\x42\x42\x42\x42\x7c\x40\x40\xe0\x00"
-		"\x00\x00\x00\x00\x00\x76\x8c\x84\x84\x84\x84\x7c\x04\x04\x0e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x62\x42\x40\x40\x40\xe0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x82\x80\x7c\x02\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x20\x20\x20\xf8\x20\x20\x20\x20\x22\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x42\x42\x42\x42\x24\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x82\x82\x82\x92\xaa\xc6\x82\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x82\x44\x28\x10\x28\x44\x82\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x82\x82\x82\x82\x82\x7e\x02\x04\x78\x00"
-		"\x00\x00\x00\x00\x00\xfe\x84\x08\x10\x20\x42\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x10\x10\x10\x60\x10\x10\x10\x10\x0e\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x10\x10\x00\x10\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x70\x08\x08\x08\x06\x08\x08\x08\x08\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x28\x44\x82\x82\x82\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x82\x80\x80\x80\x82\x42\x3c\x04\x02\x7c\x00\x00"
-		"\x00\x00\x84\x00\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x04\x08\x10\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x10\x28\x44\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x84\x84\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x38\x44\x38\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x3c\x42\x40\x40\x42\x3c\x04\x02\x3c\x00\x00\x00"
-		"\x00\x10\x28\x44\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x84\x00\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x44\x44\x00\x18\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x18\x24\x42\x00\x18\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x18\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x82\x00\x10\x28\x44\x82\x82\xfe\x82\x82\x82\x00\x00\x00\x00"
-		"\x38\x44\x38\x10\x28\x44\x82\x82\xfe\x82\x82\x82\x00\x00\x00\x00"
-		"\x08\x10\x20\xfe\x42\x40\x40\x7c\x40\x40\x42\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x8c\x52\x32\x7e\x88\x98\x6e\x00\x00\x00\x00"
-		"\x00\x00\x3e\x44\x84\x84\xfe\x84\x84\x84\x84\x86\x00\x00\x00\x00"
-		"\x00\x10\x28\x44\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x44\x00\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x30\x48\x84\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x82\x00\x00\x82\x82\x82\x82\x82\x7e\x02\x04\x78\x00"
-		"\x00\x82\x00\x7c\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x82\x00\x82\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x86\x8a\x92\xa2\xc2\x7c\x00\x00\x00\x00"
-		"\x00\x38\x44\x44\x40\xe0\x40\x40\x40\x40\x42\xfc\x00\x00\x00\x00"
-		"\x00\x02\x3c\x4c\x8a\x92\x92\xa2\xa2\xc2\xc4\xb8\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x82\x44\x28\x10\x28\x44\x82\x00\x00\x00\x00"
-		"\x00\x06\x09\x08\x08\x08\x3e\x08\x08\x08\x08\x08\x48\x30\x00\x00"
-		"\x00\x08\x10\x20\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x04\x08\x10\x00\x18\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x08\x10\x20\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x08\x10\x20\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\xdc\x62\x42\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x76\xdc\x00\x82\xc2\xa2\x92\x8a\x86\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x3c\x44\x44\x3e\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x44\x44\x38\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x20\x20\x00\x20\x20\x40\x80\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\xb2\xaa\xb2\xaa\xaa\x82\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\x06\x06\x06\x00\x00\x00\x00\x00"
-		"\x00\x80\x80\x82\x84\x88\x10\x20\x40\x9c\x02\x04\x08\x1e\x00\x00"
-		"\x00\x80\x80\x82\x84\x88\x10\x20\x46\x8a\x12\x3e\x02\x02\x00\x00"
-		"\x00\x00\x10\x10\x00\x10\x10\x10\x38\x38\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x24\x48\x90\x48\x24\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x88\x44\x22\x44\x88\x00\x00\x00\x00\x00\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x08\x10\x20\x10\x28\x44\x82\x82\xfe\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x7c\x82\x10\x28\x44\x82\x82\xfe\x82\x82\x82\x00\x00\x00\x00"
-		"\x20\x10\x08\x10\x28\x44\x82\x82\xfe\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x9a\xa2\xa2\xa2\x9a\x82\x7c\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x10\x10\x38\x44\x40\x40\x40\x48\x38\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x44\x44\x28\x10\x7c\x10\x7c\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x76\xdc\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x76\xdc\x10\x28\x44\x82\x82\xfe\x82\x82\x82\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x82\x7c\x82\x82\x82\x82\x7c\x82\x00\x00\x00\x00"
-		"\x00\x00\x34\x18\x2c\x06\x3e\x66\x66\x66\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x44\x42\x42\xf2\x42\x42\x42\x44\xf8\x00\x00\x00\x00"
-		"\x7c\x82\x00\xfe\x42\x40\x40\x7c\x40\x40\x42\xfe\x00\x00\x00\x00"
-		"\x00\x44\x00\xfe\x42\x40\x40\x7c\x40\x40\x42\xfe\x00\x00\x00\x00"
-		"\x20\x10\x08\xfe\x42\x40\x40\x7c\x40\x40\x42\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x08\x08\x08\x08\x08\x18\x00\x00\x00\x00"
-		"\x08\x10\x20\x3c\x10\x10\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x38\x44\x00\x38\x10\x10\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x44\x00\x38\x10\x10\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x10\x10\x10\x10\x00\x10\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x20\x10\x08\x3c\x10\x10\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x08\x10\x20\x7c\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x78\x84\x84\x84\xb8\x84\x82\x82\x82\xbc\x80\x00\x00\x00"
-		"\x7c\x82\x00\x7c\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x10\x08\x04\x7c\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x76\xdc\x00\x7c\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x42\x42\x42\x42\x42\x7c\x40\x40\xc0\x00\x00\x00"
-		"\x00\x00\xc0\x40\x40\x7c\x42\x42\x42\x42\x42\x7c\x40\x40\xe0\x00"
-		"\x00\x00\xe0\x40\x7c\x42\x42\x42\x42\x7c\x40\xe0\x00\x00\x00\x00"
-		"\x04\x08\x10\x82\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x7c\x82\x00\x82\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x20\x10\x08\x82\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x04\x08\x10\x00\x82\x82\x82\x82\x82\x7e\x02\x04\x78\x00"
-		"\x04\x08\x10\x82\x82\x82\x44\x38\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x04\x08\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x10\x7c\x10\x10\x00\x00\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xe0\x31\x62\x34\xe8\x10\x2c\x54\xa4\xef\x04\x04\x00\x00"
-		"\x00\x00\x7e\x8a\x8a\x8a\x7a\x0a\x0a\x0a\x0a\x0a\x00\x00\x00\x00"
-		"\x00\x7c\x82\x40\x38\x44\x82\x82\x44\x38\x04\x82\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x10\x00\x7c\x00\x10\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x02\x3c\x00\x00\x00"
-		"\x00\x38\x44\x44\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x08\x08\x08\x08\x08\x18\x00\x00\x00\x00"
-		"\x00\x7c\x02\x3c\x02\x02\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\x88\x10\x20\x48\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, NULL, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x81\xa5\x81\xbd\x99\x81\x7e"
-		"\x7e\xff\xdb\xff\xc3\xe7\xff\x7e"
-		"\x6c\xfe\xfe\xfe\x7c\x38\x10\x00"
-		"\x10\x38\x7c\xfe\x7c\x38\x10\x00"
-		"\x38\x7c\x38\xfe\xd6\x10\x10\x7c"
-		"\x10\x10\x38\xec\xfe\x7c\x10\x7c"
-		"\x00\x00\x18\x3c\x3c\x18\x00\x00"
-		"\xff\xff\xe7\xc3\xc3\xe7\xff\xff"
-		"\x00\x3c\x66\x42\x42\x66\x3c\x00"
-		"\xff\xc3\x99\xbd\xbd\x99\xc3\xff"
-		"\x1f\x03\x05\x7d\x84\x84\x84\x78"
-		"\x3e\x41\x41\x41\x3e\x08\x3e\x08"
-		"\x3f\x21\x3f\x20\x20\x20\x60\xc0"
-		"\x3f\x21\x3f\x21\x21\x23\x66\xc0"
-		"\x99\x5a\x3c\xe7\xe7\x3c\x5a\x99"
-		"\x80\xe0\xf8\xfe\xf8\xe0\x80\x00"
-		"\x02\x0e\x3e\xfe\x3e\x0e\x02\x00"
-		"\x10\x38\x7c\x10\x10\x7c\x38\x10"
-		"\x24\x24\x24\x24\x24\x00\x24\x00"
-		"\x7f\x92\x92\x72\x12\x12\x12\x00"
-		"\x3e\x61\x38\x44\x44\x38\x8c\x78"
-		"\x00\x00\x00\x00\x7e\x7e\x7e\x00"
-		"\x10\x38\x7c\x10\x7c\x38\x10\xfe"
-		"\x10\x38\x7c\x10\x10\x10\x10\x00"
-		"\x10\x10\x10\x10\x7c\x38\x10\x00"
-		"\x00\x08\x04\xfe\x04\x08\x00\x00"
-		"\x00\x20\x40\xfe\x40\x20\x00\x00"
-		"\x00\x00\x80\x80\x80\xfe\x00\x00"
-		"\x00\x24\x66\xff\x66\x24\x00\x00"
-		"\x00\x18\x3c\x7e\xff\xff\x00\x00"
-		"\x00\xff\xff\x7e\x3c\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x10\x38\x38\x10\x10\x00\x10\x00"
-		"\x24\x24\x24\x00\x00\x00\x00\x00"
-		"\x24\x24\xff\x24\xff\x24\x24\x00"
-		"\x10\x7c\x80\x78\x04\xf8\x10\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x44\x38\x56\x84\x84\x76\x00"
-		"\x20\x20\x40\x00\x00\x00\x00\x00"
-		"\x10\x20\x40\x40\x40\x20\x10\x00"
-		"\x20\x10\x08\x08\x08\x10\x20\x00"
-		"\x00\x44\x38\xfe\x38\x44\x00\x00"
-		"\x00\x10\x10\xfe\x10\x10\x00\x00"
-		"\x00\x00\x00\x00\x00\x10\x10\x20"
-		"\x00\x00\x00\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x10\x10\x00"
-		"\x02\x04\x08\x10\x20\x40\x80\x00"
-		"\x7c\x82\x86\x8a\x92\xa2\x7c\x00"
-		"\x10\x30\x10\x10\x10\x10\x7c\x00"
-		"\x78\x84\x04\x10\x40\x84\xfc\x00"
-		"\x78\x84\x04\x38\x04\x84\x78\x00"
-		"\x08\x18\x28\x48\xfe\x08\x1c\x00"
-		"\xfc\x80\xf8\x04\x04\x84\x78\x00"
-		"\x38\x40\x80\xf8\x84\x84\x78\x00"
-		"\xfc\x84\x08\x10\x20\x20\x20\x00"
-		"\x78\x84\x84\x78\x84\x84\x78\x00"
-		"\x78\x84\x84\x7c\x04\x08\x70\x00"
-		"\x00\x10\x10\x00\x00\x10\x10\x00"
-		"\x00\x10\x10\x00\x00\x10\x10\x20"
-		"\x10\x20\x40\x80\x40\x20\x10\x00"
-		"\x00\x00\xfc\x00\x00\xfc\x00\x00"
-		"\x20\x10\x08\x04\x08\x10\x20\x00"
-		"\x78\x84\x04\x08\x10\x00\x10\x00"
-		"\x7c\x82\x9e\x92\x9e\x80\x78\x00"
-		"\x30\x48\x84\x84\xfc\x84\x84\x00"
-		"\xfc\x42\x42\x7c\x42\x42\xfc\x00"
-		"\x3c\x42\x80\x80\x80\x42\x3c\x00"
-		"\xf8\x44\x42\x42\x42\x44\xf8\x00"
-		"\xfe\x42\x48\x78\x48\x42\xfe\x00"
-		"\xfe\x42\x48\x78\x48\x40\xe0\x00"
-		"\x3c\x42\x80\x80\x8e\x42\x3e\x00"
-		"\x84\x84\x84\xfc\x84\x84\x84\x00"
-		"\x38\x10\x10\x10\x10\x10\x38\x00"
-		"\x0e\x04\x04\x04\x44\x44\x38\x00"
-		"\xc2\x44\x48\x70\x44\x42\xc2\x00"
-		"\xe0\x40\x40\x40\x40\x42\xfe\x00"
-		"\x82\xc6\xaa\x92\x82\x82\x82\x00"
-		"\x82\xc2\xa2\x92\x8a\x86\x82\x00"
-		"\x38\x44\x82\x82\x82\x44\x38\x00"
-		"\xfc\x42\x42\x7c\x40\x40\xe0\x00"
-		"\x38\x44\x82\x82\x82\x54\x38\x04"
-		"\xfc\x42\x42\x7c\x44\x42\xc2\x00"
-		"\x38\x84\x80\x78\x04\x84\x74\x00"
-		"\xfe\x92\x10\x10\x10\x10\x38\x00"
-		"\x84\x84\x84\x84\x84\x84\xfc\x00"
-		"\x84\x84\x84\x84\x84\x48\x30\x00"
-		"\x82\x82\x82\x92\xaa\xc6\x82\x00"
-		"\x82\x44\x28\x10\x28\x44\x82\x00"
-		"\x82\x44\x28\x10\x10\x10\x38\x00"
-		"\xfe\x84\x88\x10\x22\x42\xfe\x00"
-		"\x78\x40\x40\x40\x40\x40\x78\x00"
-		"\x80\x40\x20\x10\x08\x04\x02\x00"
-		"\x78\x08\x08\x08\x08\x08\x78\x00"
-		"\x10\x28\x44\x82\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x20\x20\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x04\x7c\x84\x76\x00"
-		"\xc0\x40\x7c\x42\x42\x42\xdc\x00"
-		"\x00\x00\x78\x84\x80\x84\x78\x00"
-		"\x0c\x04\x7c\x84\x84\x84\x76\x00"
-		"\x00\x00\x78\x84\xfc\x80\x78\x00"
-		"\x38\x44\x40\xe0\x40\x40\xe0\x00"
-		"\x00\x00\x76\x84\x84\x7c\x04\xf8"
-		"\xc0\x40\x4c\x62\x42\x42\xc2\x00"
-		"\x10\x00\x30\x10\x10\x10\x38\x00"
-		"\x04\x00\x04\x04\x04\x84\x84\x78"
-		"\xc0\x40\x42\x44\x78\x44\xc2\x00"
-		"\x30\x10\x10\x10\x10\x10\x38\x00"
-		"\x00\x00\xec\x92\x92\x92\x82\x00"
-		"\x00\x00\xf8\x84\x84\x84\x84\x00"
-		"\x00\x00\x78\x84\x84\x84\x78\x00"
-		"\x00\x00\xdc\x42\x42\x7c\x40\xe0"
-		"\x00\x00\x76\x84\x84\x7c\x04\x0e"
-		"\x00\x00\xdc\x62\x40\x40\xe0\x00"
-		"\x00\x00\x7c\x80\x78\x04\xf8\x00"
-		"\x10\x10\x7c\x10\x10\x12\x0c\x00"
-		"\x00\x00\x84\x84\x84\x84\x76\x00"
-		"\x00\x00\x84\x84\x84\x48\x30\x00"
-		"\x00\x00\x82\x92\xaa\xc6\x82\x00"
-		"\x00\x00\x84\x48\x30\x48\x84\x00"
-		"\x00\x00\x84\x84\x84\x7c\x04\xf8"
-		"\x00\x00\xfc\x88\x30\x44\xfc\x00"
-		"\x18\x20\x20\xc0\x20\x20\x18\x00"
-		"\x10\x10\x10\x00\x10\x10\x10\x00"
-		"\x60\x10\x10\x0c\x10\x10\x60\x00"
-		"\x64\x98\x00\x00\x00\x00\x00\x00"
-		"\x00\x10\x28\x44\x82\x82\xfe\x00"
-		"\x78\x84\x80\x84\x78\x18\x04\x78"
-		"\x00\x84\x00\x84\x84\x84\x7a\x00"
-		"\x0c\x00\x78\x84\xfc\x80\x78\x00"
-		"\x7e\x81\x3c\x02\x3e\x42\x3d\x00"
-		"\x84\x00\x78\x04\x7c\x84\x7a\x00"
-		"\xc0\x00\x78\x04\x7c\x84\x7a\x00"
-		"\x20\x20\x78\x04\x7c\x84\x7a\x00"
-		"\x00\x00\x78\x80\x80\x78\x04\x38"
-		"\x7e\x81\x3c\x42\x7e\x40\x3c\x00"
-		"\x84\x00\x78\x84\xfc\x80\x78\x00"
-		"\x60\x00\x78\x84\xfc\x80\x78\x00"
-		"\x48\x00\x30\x10\x10\x10\x38\x00"
-		"\x7c\x82\x30\x10\x10\x10\x38\x00"
-		"\x60\x00\x30\x10\x10\x10\x38\x00"
-		"\x82\x38\x44\x82\xfe\x82\x82\x00"
-		"\x30\x10\x44\x82\xfe\x82\x82\x00"
-		"\x0c\xfc\x40\x78\x40\x40\xfc\x00"
-		"\x00\x00\x67\x19\x7f\x98\x77\x00"
-		"\x3f\x48\x88\xff\x88\x88\x8f\x00"
-		"\x78\x84\x78\x84\x84\x84\x78\x00"
-		"\x84\x00\x78\x84\x84\x84\x78\x00"
-		"\xc0\x00\x78\x84\x84\x84\x78\x00"
-		"\x7e\x81\x42\x42\x42\x42\x3c\x00"
-		"\x20\x10\x42\x42\x42\x42\x3c\x00"
-		"\x84\x00\x84\x84\x84\x7c\x04\xf8"
-		"\x42\x18\x24\x42\x42\x24\x18\x00"
-		"\x84\x00\x84\x84\x84\x84\x78\x00"
-		"\x00\x02\x7c\x8a\x82\xa2\x7c\x80"
-		"\x38\x44\x44\xe0\x40\x82\xfc\x00"
-		"\x3a\x44\x8a\x92\xa2\x44\xb8\x00"
-		"\x00\x42\x24\x18\x18\x24\x42\x00"
-		"\x0c\x12\x10\x38\x10\x10\x90\x60"
-		"\x1c\x00\x78\x04\x7c\x84\x7a\x00"
-		"\x18\x00\x30\x10\x10\x10\x38\x00"
-		"\x08\x10\x78\x84\x84\x84\x78\x00"
-		"\x08\x10\x84\x84\x84\x84\x7a\x00"
-		"\x64\x98\xb8\xc4\x84\x84\x84\x00"
-		"\x64\x98\x84\xa4\x94\x84\x84\x00"
-		"\x3c\x44\x44\x3a\x00\x7e\x00\x00"
-		"\x38\x44\x44\x38\x00\x7c\x00\x00"
-		"\x20\x00\x20\x40\x80\x84\x78\x00"
-		"\x7e\x81\xb9\xa5\xb9\xa5\x81\x7e"
-		"\x00\x00\x00\xfc\x0c\x0c\x00\x00"
-		"\x42\x44\x48\x56\x69\x42\x84\x0f"
-		"\x42\x44\x48\x53\x65\x49\x8f\x01"
-		"\x10\x10\x00\x10\x38\x38\x10\x00"
-		"\x00\x22\x44\x88\x44\x22\x00\x00"
-		"\x00\x44\x22\x11\x22\x44\x00\x00"
-		"\x22\x88\x22\x88\x22\x88\x22\x88"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\x77\xdd\x77\xdd\x77\xdd\x77\xdd"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\xf8\x18\x18\x18"
-		"\x0c\x10\x44\x82\xfe\x82\x82\x00"
-		"\x7e\x10\x44\x82\xfe\x82\x82\x00"
-		"\x30\x10\x44\x82\xfe\x82\x82\x00"
-		"\x7e\x81\x9d\xa1\xa1\x9d\x81\x7e"
-		"\x36\x36\xf6\x06\xf6\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\xfe\x06\xf6\x36\x36\x36"
-		"\x36\x36\xf6\x06\xfe\x00\x00\x00"
-		"\x10\x10\x7c\x80\x80\x7c\x10\x10"
-		"\x82\x44\x38\x7c\x10\x7c\x10\x10"
-		"\x00\x00\x00\x00\xf8\x18\x18\x18"
-		"\x18\x18\x18\x18\x1f\x00\x00\x00"
-		"\x18\x18\x18\x18\xff\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\x18\x18\x18"
-		"\x18\x18\x18\x18\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\xff\x00\x00\x00"
-		"\x18\x18\x18\x18\xff\x18\x18\x18"
-		"\x64\x98\x3c\x02\x3e\x42\x3d\x00"
-		"\x64\x98\x38\x44\x82\xfe\x82\x82"
-		"\x36\x36\x37\x30\x3f\x00\x00\x00"
-		"\x00\x00\x3f\x30\x37\x36\x36\x36"
-		"\x36\x36\xf7\x00\xff\x00\x00\x00"
-		"\x00\x00\xff\x00\xf7\x36\x36\x36"
-		"\x36\x36\x37\x30\x37\x36\x36\x36"
-		"\x00\x00\xff\x00\xff\x00\x00\x00"
-		"\x36\x36\xf7\x00\xf7\x36\x36\x36"
-		"\x00\x82\x7c\x82\x82\x7c\x82\x00"
-		"\x20\x7e\x04\x7c\x84\x84\x78\x00"
-		"\xf8\x44\x42\xf2\x42\x44\xf8\x00"
-		"\x78\xfc\x40\x78\x40\x40\xfc\x00"
-		"\x44\xfc\x40\x78\x40\x40\xfc\x00"
-		"\x60\xfc\x40\x78\x40\x40\xfc\x00"
-		"\x00\x00\x18\x08\x08\x08\x1c\x00"
-		"\x08\x10\x38\x10\x10\x10\x38\x00"
-		"\x38\x44\x38\x10\x10\x10\x38\x00"
-		"\x28\x00\x38\x10\x10\x10\x38\x00"
-		"\x18\x18\x18\x18\xf8\x00\x00\x00"
-		"\x00\x00\x00\x00\x1f\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\x10\x10\x10\x00\x00\x10\x10\x10"
-		"\x10\x08\x38\x10\x10\x10\x38\x00"
-		"\xff\xff\xff\xff\x00\x00\x00\x00"
-		"\x0c\x18\x24\x42\x42\x24\x18\x00"
-		"\x00\x78\x84\xf8\x84\xf8\x80\x80"
-		"\x3c\x18\x24\x42\x42\x24\x18\x00"
-		"\x30\x18\x24\x42\x42\x24\x18\x00"
-		"\x64\x98\x78\x84\x84\x84\x78\x00"
-		"\x64\x98\x18\x24\x42\x42\x24\x18"
-		"\x00\x42\x42\x42\x42\x7c\x40\x80"
-		"\xc0\x40\x78\x44\x44\x78\x40\xe0"
-		"\xe0\x40\x78\x44\x78\x40\xe0\x00"
-		"\x04\x08\x84\x84\x84\x84\x78\x00"
-		"\x78\x00\x84\x84\x84\x84\x78\x00"
-		"\x20\x80\x84\x84\x84\x84\x78\x00"
-		"\x04\x08\x84\x84\x84\x7c\x04\xf8"
-		"\x04\x08\x42\x24\x10\x10\x38\x00"
-		"\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x08\x10\x20\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x7e\x00\x00\x00\x00"
-		"\x20\x20\xfc\x20\x20\x00\xfc\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff"
-		"\xe1\x12\xe4\x1a\xf6\x2a\x5f\x82"
-		"\x3e\x4a\x4a\x3a\x0a\x0a\x0a\x00"
-		"\x3e\x41\x3c\x42\x42\x3c\x82\x7c"
-		"\x20\x20\x00\xf8\x00\x20\x20\x00"
-		"\x00\x00\x00\x00\x00\x08\x04\x38"
-		"\x38\x44\x44\x38\x00\x00\x00\x00"
-		"\x00\x44\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x00\x00\x00\x00"
-		"\x08\x18\x08\x08\x1c\x00\x00\x00"
-		"\x78\x04\x38\x04\x78\x00\x00\x00"
-		"\x30\x48\x10\x20\x78\x00\x00\x00"
-		"\x00\x00\x3c\x3c\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "Codepage 850 Multilingual Latin I, (thin)", CIOLIB_CP850}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7e\x81\xa5\x81\x81\xbd\x99\x81\x81\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7e\xff\xdb\xff\xff\xc3\xe7\xff\xff\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\xe7\xe7\xe7\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\xff\xff\x7e\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff\xff\xff"
-		"\x00\x00\x1e\x0e\x1a\x32\x78\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\x66\x66\x66\x3c\x18\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x3f\x33\x3f\x30\x30\x30\x30\x70\xf0\xe0\x00\x00\x00\x00"
-		"\x00\x00\x7f\x63\x7f\x63\x63\x63\x63\x67\xe7\xe6\xc0\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\xdb\x3c\xe7\x3c\xdb\x18\x18\x00\x00\x00\x00"
-		"\x00\x80\xc0\xe0\xf0\xf8\xfe\xf8\xf0\xe0\xc0\x80\x00\x00\x00\x00"
-		"\x00\x02\x06\x0e\x1e\x3e\xfe\x3e\x1e\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x66\x00\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x1b\x00\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x0c\xfe\x0c\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x60\xfe\x60\x30\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc0\xc0\xc0\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x28\x6c\xfe\x6c\x28\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xd6\xd6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x00\x30\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x36\x32\x30\x78\x30\x30\x30\x30\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x6c\xc6\xc6\xc6\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x18\x70\x00\x00"
-		"\x00\x00\xcc\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xcc\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x38\x6c\x38\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x18\x70\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x66\x00\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x18\x3c\x66\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\xc6\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x38\x6c\x38\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x0c\x18\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\x36\x36\x7e\xd8\xd8\x6e\x00\x00\x00\x00"
-		"\x00\x00\x3e\x6c\xcc\xcc\xfe\xcc\xcc\xcc\xcc\xce\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x30\x78\xcc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\x78\x00"
-		"\x00\xc6\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xce\xde\xf6\xe6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xe6\xfc\x00\x00\x00\x00"
-		"\x00\x04\x7c\xce\xce\xd6\xd6\xd6\xd6\xe6\xe6\x7c\x40\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00\x00\x00"
-		"\x00\x0e\x1b\x18\x18\x18\x7e\x18\x18\x18\xd8\x70\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x76\xdc\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x6c\x6c\x3e\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x30\x30\x00\x30\x30\x60\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\xb2\xaa\xb2\xaa\xaa\x82\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\x06\x06\x06\x00\x00\x00\x00\x00"
-		"\x00\x60\xe0\x62\x66\x6c\x18\x30\x60\xdc\x86\x0c\x18\x3e\x00\x00"
-		"\x00\x60\xe0\x62\x66\x6c\x18\x30\x66\xce\x9a\x3f\x06\x06\x00\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x18\x3c\x3c\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x36\x6c\xd8\x6c\x36\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd8\x6c\x36\x6c\xd8\x00\x00\x00\x00\x00\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x60\xc0\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x7c\xc6\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x0c\x06\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x9a\xa2\xa2\xa2\x9a\x82\x7c\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x7c\xc6\xc0\xc0\xc6\x7c\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x66\x66\x3c\x18\x7e\x18\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x76\xdc\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x76\xdc\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\xc6\x7c\xc6\xc6\xc6\xc6\x7c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x34\x18\x2c\x06\x3e\x66\x66\x66\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\xf6\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x38\x6c\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\xc6\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00\x00"
-		"\x30\x18\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x0c\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x3c\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x30\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x30\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xd8\xcc\xc6\xc6\xc6\xcc\x00\x00\x00\x00"
-		"\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x30\x18\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x7c\x60\x60\xc0\x00"
-		"\x00\x00\xe0\x60\x60\x7c\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\xf0\x60\x7c\x66\x66\x66\x66\x7c\x60\xf0\x00\x00\x00\x00"
-		"\x18\x30\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x38\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x30\x18\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x0c\x18\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\xff\x00"
-		"\x00\xe0\x30\x62\x36\xec\x18\x30\x66\xce\x9a\x3f\x06\x06\x00\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x1b\x00\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x00\x7e\x00\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x0c\x78\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x18\x38\x18\x18\x18\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x7c\x06\x3c\x06\x06\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x3c\x66\x0c\x18\x32\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x7e\x7e\x7e\x7e\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x7e\x81\xa5\x81\x81\xbd\x99\x81\x7e\x00\x00"
-		"\x00\x00\x00\x7e\xff\xdb\xff\xff\xc3\xe7\xff\x7e\x00\x00"
-		"\x00\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\xe7\xe7\xe7\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\xff\xff\x7e\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff"
-		"\x00\x00\x00\x1e\x0e\x1a\x32\x78\xcc\xcc\xcc\x78\x00\x00"
-		"\x00\x00\x00\x3c\x66\x66\x66\x3c\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x3f\x33\x3f\x30\x30\x30\x70\xf0\xe0\x00\x00"
-		"\x00\x00\x00\x7f\x63\x7f\x63\x63\x63\x67\xe7\xe6\xc0\x00"
-		"\x00\x00\x00\x18\x18\xdb\x3c\xe7\x3c\xdb\x18\x18\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\xf8\xfe\xf8\xe0\xc0\x80\x00\x00"
-		"\x00\x00\x00\x02\x06\x0e\x3e\xfe\x3e\x0e\x06\x02\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x00\x00"
-		"\x00\x00\x00\x66\x66\x66\x66\x66\x66\x00\x66\x66\x00\x00"
-		"\x00\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x00\x00"
-		"\x00\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x7e\x00"
-		"\x00\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x00\x18\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x0c\xfe\x0c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x60\xfe\x60\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc0\xc0\xc0\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x28\x6c\xfe\x6c\x28\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00"
-		"\x00\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x86\xc6\x7c\x18\x18"
-		"\x00\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x66\xc6\x00\x00"
-		"\x00\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\x76\x00\x00"
-		"\x00\x18\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00"
-		"\x00\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00"
-		"\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00"
-		"\x00\x00\x00\x38\x6c\xc6\xc6\xd6\xc6\xc6\x6c\x38\x00\x00"
-		"\x00\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x7e\x00\x00"
-		"\x00\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00"
-		"\x00\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00"
-		"\x00\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x0c\x78\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x60\xc0\x60\x30\x18\x0c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x00\x18\x18\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00"
-		"\x00\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\xfc\x00\x00"
-		"\x00\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x00\x00"
-		"\x00\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x6c\xf8\x00\x00"
-		"\x00\x00\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00"
-		"\x00\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\x66\x3a\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00"
-		"\x00\x00\x00\xe6\x66\x6c\x6c\x78\x6c\x6c\x66\xe6\x00\x00"
-		"\x00\x00\x00\xf0\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00"
-		"\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0e\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xfe\x6c\x6c\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\x7c\x38\x7c\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\xfe\xc6\x8c\x18\x30\x60\xc2\xc6\xfe\x00\x00"
-		"\x00\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00"
-		"\x00\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x00\x30\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x1c\x36\x32\x30\x7c\x30\x30\x30\x78\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\xcc\x78"
-		"\x00\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\xe6\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x66\x66\x3c"
-		"\x00\x00\x00\xe0\x60\x60\x66\x6c\x78\x6c\x66\xe6\x00\x00"
-		"\x00\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x7c\x60\x60\xf0"
-		"\x00\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\x0c\x1e"
-		"\x00\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x36\x1c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\x6c\x38\x10\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xfe\x6c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\x78"
-		"\x00\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x66\xfe\x00\x00"
-		"\x00\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00"
-		"\x00\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00"
-		"\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x10\x38\x6c\xc6\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x0c\x78"
-		"\x00\x00\x00\xcc\x00\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\xc6\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x60\x30\x18\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x38\x6c\x38\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x0c\x78"
-		"\x00\x00\x10\x38\x6c\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\xc6\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x60\x30\x18\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x66\x00\x00\x38\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x18\x3c\x66\x00\x38\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x60\x30\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\xc6\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00"
-		"\x38\x6c\x38\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00"
-		"\x0c\x18\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xec\x36\x76\xdc\xd8\x6e\x00\x00"
-		"\x00\x00\x00\x3e\x6c\xcc\xcc\xfe\xcc\xcc\xcc\xce\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\xc6\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x60\x30\x18\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x30\x78\xcc\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x60\x30\x18\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\xc6\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\x78"
-		"\x00\xc6\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xce\xde\xf6\xe6\x7c\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\xe6\xfc\x00\x00"
-		"\x00\x00\x04\x7c\xce\xce\xd6\xd6\xd6\xe6\xe6\x7c\x40\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x0e\x1b\x18\x18\x18\x7e\x18\x18\x18\xd8\x70\x00"
-		"\x00\x00\x0c\x18\x30\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x38\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\xdc\x66\x66\x66\x66\x66\x00\x00"
-		"\x76\xdc\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x3c\x6c\x6c\x3e\x00\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x00\x7c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x30\x30\x00\x30\x30\x60\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x38\x44\xba\xaa\xb2\xaa\xaa\x44\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x06\x06\x06\x00\x00\x00"
-		"\x00\x00\x60\xe0\x63\x66\x6c\x18\x30\x6e\xc3\x06\x0c\x1f"
-		"\x00\x00\x60\xe0\x63\x66\x6c\x1a\x36\x6e\xda\x3f\x06\x06"
-		"\x00\x00\x00\x18\x18\x00\x18\x18\x3c\x3c\x3c\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x36\x6c\xd8\x6c\x36\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd8\x6c\x36\x6c\xd8\x00\x00\x00\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x30\x60\xc0\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00"
-		"\x38\x6c\xc6\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00"
-		"\x18\x0c\x06\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x38\x44\x9a\xa2\xa2\xa2\x9a\x44\x38\x00\x00"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x7c\xc6\xc0\xc0\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x66\x66\x3c\x18\x7e\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x76\xdc\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00"
-		"\x76\xdc\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xc6\x7c\xc6\xc6\xc6\x7c\xc6\x00\x00"
-		"\x00\x00\x00\x34\x18\x2c\x06\x3e\x66\x66\x66\x3c\x00\x00"
-		"\x00\x00\x00\xf8\x6c\x66\x66\xf6\x66\x66\x6c\xf8\x00\x00"
-		"\x38\x6c\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00"
-		"\x00\xc6\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00"
-		"\x30\x18\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x38\x18\x18\x18\x18\x3c\x00\x00"
-		"\x0c\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x3c\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x18\x18\x18\x18\x00\x00\x00\x18\x18\x18\x18\x00"
-		"\x30\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x30\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x78\xcc\xcc\xcc\xd8\xcc\xc6\xc6\xcc\x00\x00"
-		"\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x30\x18\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x7c\x60\xc0"
-		"\x00\x00\x00\xe0\x60\x60\x7c\x66\x66\x66\x66\x7c\x60\xf0"
-		"\x00\x00\x00\xf0\x60\x7c\x66\x66\x66\x7c\x60\xf0\x00\x00"
-		"\x18\x30\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x38\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x30\x18\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8"
-		"\x0c\x18\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00"
-		"\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x7e\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\xff"
-		"\x00\xe0\x30\x63\x36\xec\x18\x36\x6e\xda\x3f\x06\x06\x00"
-		"\x00\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x00\x00"
-		"\x00\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c"
-		"\x00\x00\x00\x00\x00\x18\x00\x7e\x00\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x0c\x78"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x18\x38\x18\x18\x18\x3c\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x78\x0c\x38\x0c\x0c\x78\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x3c\x66\x0c\x18\x32\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x7e\x7e\x7e\x7e\x7e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x81\xa5\x81\xbd\x99\x81\x7e"
-		"\x7e\xff\xdb\xff\xc3\xe7\xff\x7e"
-		"\x6c\xfe\xfe\xfe\x7c\x38\x10\x00"
-		"\x10\x38\x7c\xfe\x7c\x38\x10\x00"
-		"\x38\x7c\x38\xfe\xfe\xd6\x10\x38"
-		"\x10\x38\x7c\xfe\xfe\x7c\x10\x38"
-		"\x00\x00\x18\x3c\x3c\x18\x00\x00"
-		"\xff\xff\xe7\xc3\xc3\xe7\xff\xff"
-		"\x00\x3c\x66\x42\x42\x66\x3c\x00"
-		"\xff\xc3\x99\xbd\xbd\x99\xc3\xff"
-		"\x0f\x07\x0f\x7d\xcc\xcc\xcc\x78"
-		"\x3c\x66\x66\x66\x3c\x18\x7e\x18"
-		"\x3f\x33\x3f\x30\x30\x70\xf0\xe0"
-		"\x7f\x63\x7f\x63\x63\x67\xe6\xc0"
-		"\x18\xdb\x3c\xe7\xe7\x3c\xdb\x18"
-		"\x80\xe0\xf8\xfe\xf8\xe0\x80\x00"
-		"\x02\x0e\x3e\xfe\x3e\x0e\x02\x00"
-		"\x18\x3c\x7e\x18\x18\x7e\x3c\x18"
-		"\x66\x66\x66\x66\x66\x00\x66\x00"
-		"\x7f\xdb\xdb\x7b\x1b\x1b\x1b\x00"
-		"\x3e\x61\x3c\x66\x66\x3c\x86\x7c"
-		"\x00\x00\x00\x00\x7e\x7e\x7e\x00"
-		"\x18\x3c\x7e\x18\x7e\x3c\x18\xff"
-		"\x18\x3c\x7e\x18\x18\x18\x18\x00"
-		"\x18\x18\x18\x18\x7e\x3c\x18\x00"
-		"\x00\x18\x0c\xfe\x0c\x18\x00\x00"
-		"\x00\x30\x60\xfe\x60\x30\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xfe\x00\x00"
-		"\x00\x24\x66\xff\x66\x24\x00\x00"
-		"\x00\x18\x3c\x7e\xff\xff\x00\x00"
-		"\x00\xff\xff\x7e\x3c\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x3c\x3c\x18\x18\x00\x18\x00"
-		"\x66\x66\x24\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x18\x3e\x60\x3c\x06\x7c\x18\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x18\x18\x30\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x30\x30\x18\x0c\x00"
-		"\x30\x18\x0c\x0c\x0c\x18\x30\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x18\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x30"
-		"\x00\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x38\x6c\xc6\xd6\xc6\x6c\x38\x00"
-		"\x18\x38\x18\x18\x18\x18\x7e\x00"
-		"\x7c\xc6\x06\x1c\x30\x66\xfe\x00"
-		"\x7c\xc6\x06\x3c\x06\xc6\x7c\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\xfe\xc0\xc0\xfc\x06\xc6\x7c\x00"
-		"\x38\x60\xc0\xfc\xc6\xc6\x7c\x00"
-		"\xfe\xc6\x0c\x18\x30\x30\x30\x00"
-		"\x7c\xc6\xc6\x7c\xc6\xc6\x7c\x00"
-		"\x7c\xc6\xc6\x7e\x06\x0c\x78\x00"
-		"\x00\x18\x18\x00\x00\x18\x18\x00"
-		"\x00\x18\x18\x00\x00\x18\x18\x30"
-		"\x06\x0c\x18\x30\x18\x0c\x06\x00"
-		"\x00\x00\x7e\x00\x00\x7e\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x7c\xc6\x0c\x18\x18\x00\x18\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x38\x6c\xc6\xfe\xc6\xc6\xc6\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3a\x00"
-		"\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00"
-		"\x3c\x18\x18\x18\x18\x18\x3c\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x7c\xc6\xc6\xc6\xc6\xce\x7c\x0e"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x3c\x66\x30\x18\x0c\x66\x3c\x00"
-		"\x7e\x7e\x5a\x18\x18\x18\x3c\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00"
-		"\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00"
-		"\xc6\xc6\xc6\xd6\xd6\xfe\x6c\x00"
-		"\xc6\xc6\x6c\x38\x6c\xc6\xc6\x00"
-		"\x66\x66\x66\x3c\x18\x18\x3c\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x3c\x30\x30\x30\x30\x30\x3c\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x3c\x0c\x0c\x0c\x0c\x0c\x3c\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x18\x0c\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\xe0\x60\x7c\x66\x66\x66\xdc\x00"
-		"\x00\x00\x7c\xc6\xc0\xc6\x7c\x00"
-		"\x1c\x0c\x7c\xcc\xcc\xcc\x76\x00"
-		"\x00\x00\x7c\xc6\xfe\xc0\x7c\x00"
-		"\x3c\x66\x60\xf8\x60\x60\xf0\x00"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\xf8"
-		"\xe0\x60\x6c\x76\x66\x66\xe6\x00"
-		"\x18\x00\x38\x18\x18\x18\x3c\x00"
-		"\x06\x00\x06\x06\x06\x66\x66\x3c"
-		"\xe0\x60\x66\x6c\x78\x6c\xe6\x00"
-		"\x38\x18\x18\x18\x18\x18\x3c\x00"
-		"\x00\x00\xec\xfe\xd6\xd6\xd6\x00"
-		"\x00\x00\xdc\x66\x66\x66\x66\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x00\x00\xdc\x66\x66\x7c\x60\xf0"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\x1e"
-		"\x00\x00\xdc\x76\x60\x60\xf0\x00"
-		"\x00\x00\x7e\xc0\x7c\x06\xfc\x00"
-		"\x30\x30\xfc\x30\x30\x36\x1c\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x76\x00"
-		"\x00\x00\xc6\xc6\xc6\x6c\x38\x00"
-		"\x00\x00\xc6\xd6\xd6\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\xc6\xc6\xc6\x7e\x06\xfc"
-		"\x00\x00\x7e\x4c\x18\x32\x7e\x00"
-		"\x0e\x18\x18\x70\x18\x18\x0e\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x00"
-		"\x70\x18\x18\x0e\x18\x18\x70\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\xc6\xc6\xfe\x00"
-		"\x7c\xc6\xc0\xc0\xc6\x7c\x0c\x78"
-		"\xcc\x00\xcc\xcc\xcc\xcc\x76\x00"
-		"\x0c\x18\x7c\xc6\xfe\xc0\x7c\x00"
-		"\x7c\x82\x78\x0c\x7c\xcc\x76\x00"
-		"\xc6\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\x30\x18\x78\x0c\x7c\xcc\x76\x00"
-		"\x30\x30\x78\x0c\x7c\xcc\x76\x00"
-		"\x00\x00\x7e\xc0\xc0\x7e\x0c\x38"
-		"\x7c\x82\x7c\xc6\xfe\xc0\x7c\x00"
-		"\xc6\x00\x7c\xc6\xfe\xc0\x7c\x00"
-		"\x30\x18\x7c\xc6\xfe\xc0\x7c\x00"
-		"\x66\x00\x38\x18\x18\x18\x3c\x00"
-		"\x7c\x82\x38\x18\x18\x18\x3c\x00"
-		"\x30\x18\x00\x38\x18\x18\x3c\x00"
-		"\xc6\x38\x6c\xc6\xfe\xc6\xc6\x00"
-		"\x38\x6c\x7c\xc6\xfe\xc6\xc6\x00"
-		"\x18\x30\xfe\xc0\xf8\xc0\xfe\x00"
-		"\x00\x00\x7e\x12\xfe\x90\xfe\x00"
-		"\x3e\x6c\xcc\xfe\xcc\xcc\xce\x00"
-		"\x7c\x82\x7c\xc6\xc6\xc6\x7c\x00"
-		"\xc6\x00\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x30\x18\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x78\x84\x00\xcc\xcc\xcc\x76\x00"
-		"\x60\x30\xcc\xcc\xcc\xcc\x76\x00"
-		"\xc6\x00\xc6\xc6\xc6\x7e\x06\xfc"
-		"\xc6\x38\x6c\xc6\xc6\x6c\x38\x00"
-		"\xc6\x00\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x00\x02\x7c\xce\xd6\xe6\x7c\x80"
-		"\x38\x6c\x64\xf0\x60\x66\xfc\x00"
-		"\x3a\x6c\xce\xd6\xe6\x6c\xb8\x00"
-		"\x00\xc6\x6c\x38\x6c\xc6\x00\x00"
-		"\x0e\x1b\x18\x3c\x18\xd8\x70\x00"
-		"\x18\x30\x78\x0c\x7c\xcc\x76\x00"
-		"\x0c\x18\x00\x38\x18\x18\x3c\x00"
-		"\x0c\x18\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x18\x30\xcc\xcc\xcc\xcc\x76\x00"
-		"\x76\xdc\x00\xdc\x66\x66\x66\x00"
-		"\x76\xdc\x00\xe6\xf6\xde\xce\x00"
-		"\x3c\x6c\x6c\x3e\x00\x7e\x00\x00"
-		"\x38\x6c\x6c\x38\x00\x7c\x00\x00"
-		"\x18\x00\x18\x18\x30\x63\x3e\x00"
-		"\x7e\x81\xb9\xa5\xb9\xa5\x81\x7e"
-		"\x00\x00\x00\xfe\x06\x06\x00\x00"
-		"\x63\xe6\x6c\x7e\x33\x66\xcc\x0f"
-		"\x63\xe6\x6c\x7a\x36\x6a\xdf\x06"
-		"\x18\x00\x18\x18\x3c\x3c\x18\x00"
-		"\x00\x33\x66\xcc\x66\x33\x00\x00"
-		"\x00\xcc\x66\x33\x66\xcc\x00\x00"
-		"\x22\x88\x22\x88\x22\x88\x22\x88"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\x77\xdd\x77\xdd\x77\xdd\x77\xdd"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\xf8\x18\x18\x18"
-		"\x30\x60\x38\x6c\xc6\xfe\xc6\x00"
-		"\x7c\x82\x38\x6c\xc6\xfe\xc6\x00"
-		"\x18\x0c\x38\x6c\xc6\xfe\xc6\x00"
-		"\x7e\x81\x9d\xa1\xa1\x9d\x81\x7e"
-		"\x36\x36\xf6\x06\xf6\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\xfe\x06\xf6\x36\x36\x36"
-		"\x36\x36\xf6\x06\xfe\x00\x00\x00"
-		"\x18\x18\x7e\xc0\xc0\x7e\x18\x18"
-		"\x66\x66\x3c\x7e\x18\x7e\x18\x18"
-		"\x00\x00\x00\x00\xf8\x18\x18\x18"
-		"\x18\x18\x18\x18\x1f\x00\x00\x00"
-		"\x18\x18\x18\x18\xff\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\x18\x18\x18"
-		"\x18\x18\x18\x18\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\xff\x00\x00\x00"
-		"\x18\x18\x18\x18\xff\x18\x18\x18"
-		"\x76\xdc\x7c\x06\x7e\xc6\x7e\x00"
-		"\x76\xdc\x38\x6c\xc6\xfe\xc6\x00"
-		"\x36\x36\x37\x30\x3f\x00\x00\x00"
-		"\x00\x00\x3f\x30\x37\x36\x36\x36"
-		"\x36\x36\xf7\x00\xff\x00\x00\x00"
-		"\x00\x00\xff\x00\xf7\x36\x36\x36"
-		"\x36\x36\x37\x30\x37\x36\x36\x36"
-		"\x00\x00\xff\x00\xff\x00\x00\x00"
-		"\x36\x36\xf7\x00\xf7\x36\x36\x36"
-		"\x00\xc6\x7c\xc6\xc6\x7c\xc6\x00"
-		"\x30\x7e\x0c\x7c\xcc\xcc\x78\x00"
-		"\xf8\x6c\x66\xf6\x66\x6c\xf8\x00"
-		"\x7c\x82\xfe\xc0\xfc\xc0\xfe\x00"
-		"\xc6\x00\xfe\xc0\xfc\xc0\xfe\x00"
-		"\x30\x18\xfe\xc0\xfc\xc0\xfe\x00"
-		"\x00\x00\x38\x18\x18\x18\x3c\x00"
-		"\x0c\x18\x3c\x18\x18\x18\x3c\x00"
-		"\x3c\x42\x3c\x18\x18\x18\x3c\x00"
-		"\x66\x00\x3c\x18\x18\x18\x3c\x00"
-		"\x18\x18\x18\x18\xf8\x00\x00\x00"
-		"\x00\x00\x00\x00\x1f\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\x18\x18\x18\x00\x00\x18\x18\x18"
-		"\x30\x18\x3c\x18\x18\x18\x3c\x00"
-		"\xff\xff\xff\xff\x00\x00\x00\x00"
-		"\x30\x60\x38\x6c\xc6\x6c\x38\x00"
-		"\x78\xcc\xcc\xd8\xcc\xc6\xcc\x00"
-		"\x7c\x82\x38\x6c\xc6\x6c\x38\x00"
-		"\x0c\x06\x38\x6c\xc6\x6c\x38\x00"
-		"\x76\xdc\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x76\xdc\x38\x6c\xc6\x6c\x38\x00"
-		"\x00\x00\x66\x66\x66\x66\x7c\xc0"
-		"\xe0\x60\x7c\x66\x66\x7c\x60\xf0"
-		"\xf0\x60\x7c\x66\x7c\x60\xf0\x00"
-		"\x18\x30\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x7c\x82\x00\xc6\xc6\xc6\x7c\x00"
-		"\x60\x30\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x18\x30\xc6\xc6\xc6\x7e\x06\xfc"
-		"\x0c\x18\x66\x66\x3c\x18\x3c\x00"
-		"\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x7e\x00\x00\x00\x00"
-		"\x18\x18\x7e\x18\x18\x00\x7e\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff"
-		"\xe1\x32\xe4\x3a\xf6\x2a\x5f\x86"
-		"\x7f\xdb\xdb\x7b\x1b\x1b\x1b\x00"
-		"\x3e\x61\x3c\x66\x66\x3c\x86\x7c"
-		"\x00\x18\x00\x7e\x00\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x0c\x38"
-		"\x38\x6c\x6c\x38\x00\x00\x00\x00"
-		"\x00\xc6\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x00\x00\x00\x00"
-		"\x18\x38\x18\x18\x3c\x00\x00\x00"
-		"\x78\x0c\x38\x0c\x78\x00\x00\x00"
-		"\x78\x0c\x18\x30\x7c\x00\x00\x00"
-		"\x00\x00\x3c\x3c\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "Codepage 850 Multilingual Latin I", CIOLIB_CP850}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7e\x81\xa5\x81\x81\xbd\x99\x81\x81\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7e\xff\xdb\xff\xff\xc3\xe7\xff\xff\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\xe7\xe7\xe7\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\xff\xff\x7e\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff\xff\xff"
-		"\x00\x00\x3e\x0a\x12\x22\x78\x84\x84\x84\x84\x78\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x44\x44\x44\x38\x10\x7c\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x3f\x21\x3f\x20\x20\x20\x20\x60\xe0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x3f\x21\x3f\x21\x21\x21\x21\x23\x67\xe6\xc0\x00\x00\x00"
-		"\x00\x00\x00\x10\x10\xd6\x38\xee\x38\xd6\x10\x10\x00\x00\x00\x00"
-		"\x00\x80\xc0\xe0\xf0\xf8\xfe\xf8\xf0\xe0\xc0\x80\x00\x00\x00\x00"
-		"\x00\x02\x06\x0e\x1e\x3e\xfe\x3e\x1e\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x7c\x10\x10\x10\x7c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x42\x42\x42\x42\x42\x42\x42\x00\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x7f\x89\x89\x89\x79\x09\x09\x09\x09\x09\x00\x00\x00\x00"
-		"\x00\x7c\x86\x40\x38\x44\x82\x82\x44\x38\x04\xc2\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x7c\x10\x10\x10\x7c\x38\x10\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x7c\x10\x10\x10\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x10\x10\x10\x10\x10\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x08\x04\xfe\x04\x08\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x20\x40\xfe\x40\x20\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x80\x80\x80\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x28\x6c\xfe\x6c\x28\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x38\x38\x10\x10\x10\x00\x10\x10\x00\x00\x00\x00"
-		"\x00\x42\x42\x42\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x44\x44\xfe\x44\x44\x44\xfe\x44\x44\x00\x00\x00\x00"
-		"\x10\x10\x7c\x82\x82\x40\x30\x0c\x04\x82\x82\x7c\x10\x10\x00\x00"
-		"\x00\x00\x00\x00\x00\x82\x84\x08\x10\x20\x42\x82\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x44\x38\x38\x47\x44\x44\x44\x3b\x00\x00\x00\x00"
-		"\x00\x20\x20\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x04\x08\x10\x10\x10\x10\x10\x10\x08\x04\x00\x00\x00\x00"
-		"\x00\x00\x20\x10\x08\x08\x08\x08\x08\x08\x10\x20\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x24\x18\xff\x18\x24\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x10\x10\x7c\x10\x10\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x10\x20\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x02\x04\x08\x10\x20\x40\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x82\x82\x92\x92\x82\x82\x44\x38\x00\x00\x00\x00"
-		"\x00\x00\x08\x18\x38\x08\x08\x08\x08\x08\x08\x3e\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x02\x04\x08\x10\x20\x40\x82\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x02\x02\x3c\x02\x02\x02\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x14\x24\x44\x84\xfe\x04\x04\x04\x0e\x00\x00\x00\x00"
-		"\x00\x00\xfe\x80\x80\x80\xfc\x02\x02\x02\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x40\x80\x80\xfc\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\x82\x02\x02\x04\x08\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x82\x7c\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x82\x7e\x02\x02\x02\x04\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x10\x00\x00\x00\x10\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x10\x00\x00\x00\x10\x10\x20\x00\x00\x00\x00"
-		"\x00\x00\x00\x04\x08\x10\x20\x40\x20\x10\x08\x04\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x40\x20\x10\x08\x04\x08\x10\x20\x40\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x02\x04\x08\x08\x00\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\x82\x82\x9e\x92\x92\x8c\x80\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x28\x44\x82\x82\xfe\x82\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\xfc\x42\x42\x42\x7c\x42\x42\x42\x42\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x82\x80\x80\x80\x80\x82\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x44\x42\x42\x42\x42\x42\x42\x44\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x42\x42\x48\x78\x48\x40\x42\x42\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x42\x42\x48\x78\x48\x40\x40\x40\xe0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x82\x80\x80\x9e\x82\x82\x46\x3a\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x82\xfe\x82\x82\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x38\x10\x10\x10\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\x0e\x04\x04\x04\x04\x04\x84\x84\x84\x78\x00\x00\x00\x00"
-		"\x00\x00\xc2\x42\x42\x44\x48\x78\x44\x42\x42\xc2\x00\x00\x00\x00"
-		"\x00\x00\xe0\x40\x40\x40\x40\x40\x40\x42\x42\xfe\x00\x00\x00\x00"
-		"\x00\x00\x82\xc6\xaa\x92\x82\x82\x82\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\xc2\xa2\x92\x8a\x86\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x82\x82\x82\x82\x82\x82\x44\x38\x00\x00\x00\x00"
-		"\x00\x00\xfc\x42\x42\x42\x7c\x40\x40\x40\x40\xe0\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x82\x82\x82\x82\x92\x8a\x7c\x04\x02\x00\x00"
-		"\x00\x00\xfc\x42\x42\x42\x7c\x44\x42\x42\x42\xc2\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x40\x30\x0c\x04\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\x92\x92\x10\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x82\x82\x82\x82\x44\x28\x10\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x82\x82\x82\x92\xaa\xc6\x82\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x44\x28\x10\x28\x44\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x44\x38\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\xfe\x82\x82\x04\x18\x20\x40\x82\x82\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\x40\x20\x10\x08\x04\x02\x01\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x04\x04\x04\x04\x04\x04\x04\x04\x3c\x00\x00\x00\x00"
-		"\x10\x28\x44\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x10\x10\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\xc0\x40\x40\x78\x44\x42\x42\x42\x42\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x82\x80\x80\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x04\x04\x3c\x44\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x44\x40\xe0\x40\x40\x40\x40\xe0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\x8c\x84\x84\x84\x84\x7c\x04\x84\x78\x00"
-		"\x00\x00\xc0\x40\x40\x7c\x42\x42\x42\x42\x42\xc2\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x00\x30\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\x02\x02\x00\x06\x02\x02\x02\x02\x02\x02\x42\x42\x3c\x00"
-		"\x00\x00\xc0\x40\x40\x42\x44\x48\x78\x44\x42\xc2\x00\x00\x00\x00"
-		"\x00\x00\x30\x10\x10\x10\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\x92\x92\x92\x92\x92\x92\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x62\x42\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x62\x42\x42\x42\x42\x7c\x40\x40\xe0\x00"
-		"\x00\x00\x00\x00\x00\x76\x8c\x84\x84\x84\x84\x7c\x04\x04\x0e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x62\x42\x40\x40\x40\xe0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x82\x80\x7c\x02\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x20\x20\x20\xf8\x20\x20\x20\x20\x22\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x42\x42\x42\x42\x24\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x82\x82\x82\x92\xaa\xc6\x82\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x82\x44\x28\x10\x28\x44\x82\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x82\x82\x82\x82\x82\x82\x7e\x02\x04\x78\x00"
-		"\x00\x00\x00\x00\x00\xfe\x84\x08\x10\x20\x42\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x10\x10\x10\x60\x10\x10\x10\x10\x0e\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x10\x10\x00\x10\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x70\x08\x08\x08\x06\x08\x08\x08\x08\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x28\x44\x82\x82\x82\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x82\x80\x80\x80\x82\x42\x3c\x04\x02\x7c\x00\x00"
-		"\x00\x00\x84\x00\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x04\x08\x10\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x10\x28\x44\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x84\x84\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x38\x44\x38\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x3c\x42\x40\x40\x42\x3c\x04\x02\x3c\x00\x00\x00"
-		"\x00\x10\x28\x44\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x84\x00\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x44\x44\x00\x18\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x18\x24\x42\x00\x18\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x18\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x82\x00\x10\x28\x44\x82\x82\xfe\x82\x82\x82\x00\x00\x00\x00"
-		"\x38\x44\x38\x10\x28\x44\x82\x82\xfe\x82\x82\x82\x00\x00\x00\x00"
-		"\x08\x10\x20\xfe\x42\x40\x40\x7c\x40\x40\x42\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x8c\x52\x32\x7e\x88\x98\x6e\x00\x00\x00\x00"
-		"\x00\x00\x3e\x44\x84\x84\xfe\x84\x84\x84\x84\x86\x00\x00\x00\x00"
-		"\x00\x10\x28\x44\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x44\x00\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x30\x48\x84\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x82\x00\x00\x00\x82\x82\x82\x82\x82\x7e\x02\x04\x78\x00"
-		"\x00\x82\x00\x7c\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x82\x00\x82\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x86\x8a\x92\xa2\xc2\x7c\x00\x00\x00\x00"
-		"\x00\x38\x44\x44\x40\xe0\x40\x40\x40\x40\x42\xfc\x00\x00\x00\x00"
-		"\x00\x02\x3c\x4c\x8a\x92\x92\xa2\xa2\xc2\xc4\xb8\x00\x00\x00\x00"
-		"\x00\xf8\x84\x84\xf8\x84\x84\x9e\x84\x84\x84\x86\x00\x00\x00\x00"
-		"\x00\x06\x09\x08\x08\x08\x3e\x08\x08\x08\x08\x08\x48\x30\x00\x00"
-		"\x00\x08\x10\x20\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x04\x08\x10\x00\x18\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x08\x10\x20\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x08\x10\x20\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\xdc\x62\x42\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x76\xdc\x00\x82\xc2\xa2\x92\x8a\x86\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x3c\x44\x44\x3e\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x44\x44\x38\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x20\x20\x00\x20\x20\x40\x80\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xc0\xc0\xc0\xc0\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\x06\x06\x06\x00\x00\x00\x00\x00"
-		"\x00\x80\x80\x82\x84\x88\x10\x20\x40\x9c\x02\x04\x08\x1e\x00\x00"
-		"\x00\x80\x80\x82\x84\x88\x10\x20\x46\x8a\x12\x3e\x02\x02\x00\x00"
-		"\x00\x00\x10\x10\x00\x10\x10\x10\x38\x38\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x24\x48\x90\x48\x24\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x82\x7c\x82\x82\x82\x82\x7c\x82\x00\x00\x00\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x62\x94\x98\x88\x98\x94\x62\x00\x00\x00\x00"
-		"\x00\x00\x78\x84\x84\x84\xb8\x84\x82\x82\x82\xbc\x80\x00\x00\x00"
-		"\x00\x00\xfe\x82\x82\x80\x80\x80\x80\x80\x80\x80\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\x44\x44\x44\x44\x44\x44\x44\x00\x00\x00\x00"
-		"\x00\x00\x00\xfe\x82\x40\x20\x10\x20\x40\x82\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x88\x88\x88\x88\x88\x70\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x42\x42\x42\x42\x42\x7c\x40\x40\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x72\xd4\x08\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\x10\x38\x44\x44\x44\x38\x10\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x38\x44\x82\x82\xfe\x82\x82\x44\x38\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x82\x82\x82\x44\x28\x28\x28\xee\x00\x00\x00\x00"
-		"\x00\x00\x1e\x10\x08\x04\x3e\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x99\x99\x99\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x01\x02\x7e\x89\x91\xa1\x7e\x40\x80\x00\x00\x00\x00"
-		"\x00\x00\x1c\x20\x40\x40\x78\x40\x40\x40\x20\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\x82\x82\x82\x82\x82\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\x00\x00\xfe\x00\x00\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x10\x7c\x10\x10\x00\x00\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x10\x08\x04\x02\x04\x08\x10\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x08\x10\x20\x40\x20\x10\x08\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x0e\x11\x11\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10"
-		"\x08\x08\x08\x08\x08\x08\x08\x08\x08\x88\x88\x70\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x10\x00\x7c\x00\x10\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x44\x44\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x08\x08\x08\x08\x08\xe8\x28\x28\x28\x18\x00\x00\x00\x00"
-		"\x00\xd8\x64\x44\x44\x44\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\x88\x10\x20\x48\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, NULL, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x81\xa5\x81\xbd\x99\x81\x7e"
-		"\x7e\xff\xdb\xff\xc3\xe7\xff\x7e"
-		"\x6c\xfe\xfe\xfe\x7c\x38\x10\x00"
-		"\x10\x38\x7c\xfe\x7c\x38\x10\x00"
-		"\x38\x7c\x38\xfe\xd6\x10\x10\x7c"
-		"\x10\x10\x38\xec\xfe\x7c\x10\x7c"
-		"\x00\x00\x18\x3c\x3c\x18\x00\x00"
-		"\xff\xff\xe7\xc3\xc3\xe7\xff\xff"
-		"\x00\x3c\x66\x42\x42\x66\x3c\x00"
-		"\xff\xc3\x99\xbd\xbd\x99\xc3\xff"
-		"\x1f\x03\x05\x7d\x84\x84\x84\x78"
-		"\x3e\x41\x41\x41\x3e\x08\x3e\x08"
-		"\x3f\x21\x3f\x20\x20\x20\x60\xc0"
-		"\x3f\x21\x3f\x21\x21\x23\x66\xc0"
-		"\x99\x5a\x3c\xe7\xe7\x3c\x5a\x99"
-		"\x80\xe0\xf8\xfe\xf8\xe0\x80\x00"
-		"\x02\x0e\x3e\xfe\x3e\x0e\x02\x00"
-		"\x10\x38\x7c\x10\x10\x7c\x38\x10"
-		"\x24\x24\x24\x24\x24\x00\x24\x00"
-		"\x7f\x92\x92\x72\x12\x12\x12\x00"
-		"\x3e\x61\x38\x44\x44\x38\x8c\x78"
-		"\x00\x00\x00\x00\x7e\x7e\x7e\x00"
-		"\x10\x38\x7c\x10\x7c\x38\x10\xfe"
-		"\x10\x38\x7c\x10\x10\x10\x10\x00"
-		"\x10\x10\x10\x10\x7c\x38\x10\x00"
-		"\x00\x08\x04\xfe\x04\x08\x00\x00"
-		"\x00\x20\x40\xfe\x40\x20\x00\x00"
-		"\x00\x00\x80\x80\x80\xfe\x00\x00"
-		"\x00\x24\x66\xff\x66\x24\x00\x00"
-		"\x00\x18\x3c\x7e\xff\xff\x00\x00"
-		"\x00\xff\xff\x7e\x3c\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x10\x38\x38\x10\x10\x00\x10\x00"
-		"\x24\x24\x24\x00\x00\x00\x00\x00"
-		"\x24\x24\xff\x24\xff\x24\x24\x00"
-		"\x10\x7c\x80\x78\x04\xf8\x10\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x44\x38\x56\x84\x84\x76\x00"
-		"\x20\x20\x40\x00\x00\x00\x00\x00"
-		"\x10\x20\x40\x40\x40\x20\x10\x00"
-		"\x20\x10\x08\x08\x08\x10\x20\x00"
-		"\x00\x44\x38\xfe\x38\x44\x00\x00"
-		"\x00\x10\x10\xfe\x10\x10\x00\x00"
-		"\x00\x00\x00\x00\x00\x10\x10\x20"
-		"\x00\x00\x00\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x10\x10\x00"
-		"\x02\x04\x08\x10\x20\x40\x80\x00"
-		"\x7c\x82\x86\x8a\x92\xa2\x7c\x00"
-		"\x10\x30\x10\x10\x10\x10\x7c\x00"
-		"\x78\x84\x04\x10\x40\x84\xfc\x00"
-		"\x78\x84\x04\x38\x04\x84\x78\x00"
-		"\x08\x18\x28\x48\xfe\x08\x1c\x00"
-		"\xfc\x80\xf8\x04\x04\x84\x78\x00"
-		"\x38\x40\x80\xf8\x84\x84\x78\x00"
-		"\xfc\x84\x08\x10\x20\x20\x20\x00"
-		"\x78\x84\x84\x78\x84\x84\x78\x00"
-		"\x78\x84\x84\x7c\x04\x08\x70\x00"
-		"\x00\x10\x10\x00\x00\x10\x10\x00"
-		"\x00\x10\x10\x00\x00\x10\x10\x20"
-		"\x10\x20\x40\x80\x40\x20\x10\x00"
-		"\x00\x00\xfc\x00\x00\xfc\x00\x00"
-		"\x20\x10\x08\x04\x08\x10\x20\x00"
-		"\x78\x84\x04\x08\x10\x00\x10\x00"
-		"\x7c\x82\x9e\x92\x9e\x80\x78\x00"
-		"\x30\x48\x84\x84\xfc\x84\x84\x00"
-		"\xfc\x42\x42\x7c\x42\x42\xfc\x00"
-		"\x3c\x42\x80\x80\x80\x42\x3c\x00"
-		"\xf8\x44\x42\x42\x42\x44\xf8\x00"
-		"\xfe\x42\x48\x78\x48\x42\xfe\x00"
-		"\xfe\x42\x48\x78\x48\x40\xe0\x00"
-		"\x3c\x42\x80\x80\x8e\x42\x3e\x00"
-		"\x84\x84\x84\xfc\x84\x84\x84\x00"
-		"\x38\x10\x10\x10\x10\x10\x38\x00"
-		"\x0e\x04\x04\x04\x44\x44\x38\x00"
-		"\xc2\x44\x48\x70\x44\x42\xc2\x00"
-		"\xe0\x40\x40\x40\x40\x42\xfe\x00"
-		"\x82\xc6\xaa\x92\x82\x82\x82\x00"
-		"\x82\xc2\xa2\x92\x8a\x86\x82\x00"
-		"\x38\x44\x82\x82\x82\x44\x38\x00"
-		"\xfc\x42\x42\x7c\x40\x40\xe0\x00"
-		"\x38\x44\x82\x82\x82\x54\x38\x04"
-		"\xfc\x42\x42\x7c\x44\x42\xc2\x00"
-		"\x38\x84\x80\x78\x04\x84\x74\x00"
-		"\xfe\x92\x10\x10\x10\x10\x38\x00"
-		"\x84\x84\x84\x84\x84\x84\xfc\x00"
-		"\x84\x84\x84\x84\x84\x48\x30\x00"
-		"\x82\x82\x82\x92\xaa\xc6\x82\x00"
-		"\x82\x44\x28\x10\x28\x44\x82\x00"
-		"\x82\x44\x28\x10\x10\x10\x38\x00"
-		"\xfe\x84\x88\x10\x22\x42\xfe\x00"
-		"\x78\x40\x40\x40\x40\x40\x78\x00"
-		"\x80\x40\x20\x10\x08\x04\x02\x00"
-		"\x78\x08\x08\x08\x08\x08\x78\x00"
-		"\x10\x28\x44\x82\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x20\x20\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x04\x7c\x84\x76\x00"
-		"\xc0\x40\x7c\x42\x42\x42\xdc\x00"
-		"\x00\x00\x78\x84\x80\x84\x78\x00"
-		"\x0c\x04\x7c\x84\x84\x84\x76\x00"
-		"\x00\x00\x78\x84\xfc\x80\x78\x00"
-		"\x38\x44\x40\xe0\x40\x40\xe0\x00"
-		"\x00\x00\x76\x84\x84\x7c\x04\xf8"
-		"\xc0\x40\x4c\x62\x42\x42\xc2\x00"
-		"\x10\x00\x30\x10\x10\x10\x38\x00"
-		"\x04\x00\x04\x04\x04\x84\x84\x78"
-		"\xc0\x40\x42\x44\x78\x44\xc2\x00"
-		"\x30\x10\x10\x10\x10\x10\x38\x00"
-		"\x00\x00\xec\x92\x92\x92\x82\x00"
-		"\x00\x00\xf8\x84\x84\x84\x84\x00"
-		"\x00\x00\x78\x84\x84\x84\x78\x00"
-		"\x00\x00\xdc\x42\x42\x7c\x40\xe0"
-		"\x00\x00\x76\x84\x84\x7c\x04\x0e"
-		"\x00\x00\xdc\x62\x40\x40\xe0\x00"
-		"\x00\x00\x7c\x80\x78\x04\xf8\x00"
-		"\x10\x10\x7c\x10\x10\x12\x0c\x00"
-		"\x00\x00\x84\x84\x84\x84\x76\x00"
-		"\x00\x00\x84\x84\x84\x48\x30\x00"
-		"\x00\x00\x82\x92\xaa\xc6\x82\x00"
-		"\x00\x00\x84\x48\x30\x48\x84\x00"
-		"\x00\x00\x84\x84\x84\x7c\x04\xf8"
-		"\x00\x00\xfc\x88\x30\x44\xfc\x00"
-		"\x18\x20\x20\xc0\x20\x20\x18\x00"
-		"\x10\x10\x10\x00\x10\x10\x10\x00"
-		"\x60\x10\x10\x0c\x10\x10\x60\x00"
-		"\x64\x98\x00\x00\x00\x00\x00\x00"
-		"\x00\x10\x28\x44\x82\x82\xfe\x00"
-		"\x78\x84\x80\x84\x78\x18\x04\x78"
-		"\x00\x84\x00\x84\x84\x84\x7a\x00"
-		"\x0c\x00\x78\x84\xfc\x80\x78\x00"
-		"\x7e\x81\x3c\x02\x3e\x42\x3d\x00"
-		"\x84\x00\x78\x04\x7c\x84\x7a\x00"
-		"\xc0\x00\x78\x04\x7c\x84\x7a\x00"
-		"\x20\x20\x78\x04\x7c\x84\x7a\x00"
-		"\x00\x00\x78\x80\x80\x78\x04\x38"
-		"\x7e\x81\x3c\x42\x7e\x40\x3c\x00"
-		"\x84\x00\x78\x84\xfc\x80\x78\x00"
-		"\x60\x00\x78\x84\xfc\x80\x78\x00"
-		"\x48\x00\x30\x10\x10\x10\x38\x00"
-		"\x7c\x82\x30\x10\x10\x10\x38\x00"
-		"\x60\x00\x30\x10\x10\x10\x38\x00"
-		"\x82\x38\x44\x82\xfe\x82\x82\x00"
-		"\x30\x10\x44\x82\xfe\x82\x82\x00"
-		"\x0c\xfc\x40\x78\x40\x40\xfc\x00"
-		"\x00\x00\x67\x19\x7f\x98\x77\x00"
-		"\x3f\x48\x88\xff\x88\x88\x8f\x00"
-		"\x78\x84\x78\x84\x84\x84\x78\x00"
-		"\x84\x00\x78\x84\x84\x84\x78\x00"
-		"\xc0\x00\x78\x84\x84\x84\x78\x00"
-		"\x7e\x81\x42\x42\x42\x42\x3c\x00"
-		"\x20\x10\x42\x42\x42\x42\x3c\x00"
-		"\x84\x00\x84\x84\x84\x7c\x04\xf8"
-		"\x42\x18\x24\x42\x42\x24\x18\x00"
-		"\x84\x00\x84\x84\x84\x84\x78\x00"
-		"\x00\x02\x7c\x8a\x82\xa2\x7c\x80"
-		"\x38\x44\x44\xe0\x40\x82\xfc\x00"
-		"\x3a\x44\x8a\x92\xa2\x44\xb8\x00"
-		"\xf8\x84\x84\xf8\x82\x87\x82\x83"
-		"\x0c\x12\x10\x38\x10\x10\x90\x60"
-		"\x1c\x00\x78\x04\x7c\x84\x7a\x00"
-		"\x18\x00\x30\x10\x10\x10\x38\x00"
-		"\x08\x10\x78\x84\x84\x84\x78\x00"
-		"\x08\x10\x84\x84\x84\x84\x7a\x00"
-		"\x64\x98\xb8\xc4\x84\x84\x84\x00"
-		"\x64\x98\x84\xa4\x94\x84\x84\x00"
-		"\x3c\x44\x44\x3a\x00\x7e\x00\x00"
-		"\x38\x44\x44\x38\x00\x7c\x00\x00"
-		"\x20\x00\x20\x40\x80\x84\x78\x00"
-		"\x00\x00\x00\xfc\xc0\xc0\x00\x00"
-		"\x00\x00\x00\xfc\x0c\x0c\x00\x00"
-		"\x42\x44\x48\x56\x69\x42\x84\x0f"
-		"\x42\x44\x48\x53\x65\x49\x8f\x01"
-		"\x10\x10\x00\x10\x38\x38\x10\x00"
-		"\x00\x22\x44\x88\x44\x22\x00\x00"
-		"\x00\x82\x7c\x82\x82\x7c\x82\x00"
-		"\x22\x88\x22\x88\x22\x88\x22\x88"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\x77\xdd\x77\xdd\x77\xdd\x77\xdd"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\xf8\x18\x18\x18"
-		"\x18\x18\xf8\x18\xf8\x18\x18\x18"
-		"\x36\x36\x36\x36\xf6\x36\x36\x36"
-		"\x00\x00\x00\x00\xfe\x36\x36\x36"
-		"\x00\x00\xf8\x18\xf8\x18\x18\x18"
-		"\x36\x36\xf6\x06\xf6\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\xfe\x06\xf6\x36\x36\x36"
-		"\x36\x36\xf6\x06\xfe\x00\x00\x00"
-		"\x36\x36\x36\x36\xfe\x00\x00\x00"
-		"\x18\x18\xf8\x18\xf8\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\x18\x18\x18"
-		"\x18\x18\x18\x18\x1f\x00\x00\x00"
-		"\x18\x18\x18\x18\xff\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\x18\x18\x18"
-		"\x18\x18\x18\x18\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\xff\x00\x00\x00"
-		"\x18\x18\x18\x18\xff\x18\x18\x18"
-		"\x18\x18\x1f\x18\x1f\x18\x18\x18"
-		"\x36\x36\x36\x36\x37\x36\x36\x36"
-		"\x36\x36\x37\x30\x3f\x00\x00\x00"
-		"\x00\x00\x3f\x30\x37\x36\x36\x36"
-		"\x36\x36\xf7\x00\xff\x00\x00\x00"
-		"\x00\x00\xff\x00\xf7\x36\x36\x36"
-		"\x36\x36\x37\x30\x37\x36\x36\x36"
-		"\x00\x00\xff\x00\xff\x00\x00\x00"
-		"\x36\x36\xf7\x00\xf7\x36\x36\x36"
-		"\x18\x18\xff\x00\xff\x00\x00\x00"
-		"\x36\x36\x36\x36\xff\x00\x00\x00"
-		"\x00\x00\xff\x00\xff\x18\x18\x18"
-		"\x00\x00\x00\x00\xff\x36\x36\x36"
-		"\x36\x36\x36\x36\x3f\x00\x00\x00"
-		"\x18\x18\x1f\x18\x1f\x00\x00\x00"
-		"\x00\x00\x1f\x18\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\x3f\x36\x36\x36"
-		"\x36\x36\x36\x36\xff\x36\x36\x36"
-		"\x18\x18\xff\x18\xff\x18\x18\x18"
-		"\x18\x18\x18\x18\xf8\x00\x00\x00"
-		"\x00\x00\x00\x00\x1f\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\x00\x00\x00\x00"
-		"\x00\x00\x62\x94\x88\x94\x62\x00"
-		"\x00\x78\x84\xf8\x84\xf8\x80\x80"
-		"\x00\xfc\x84\x80\x80\x80\x80\x00"
-		"\x00\xfe\x28\x28\x28\x28\x28\x00"
-		"\xfc\x84\x40\x20\x40\x84\xfc\x00"
-		"\x00\x00\x7e\x88\x88\x88\x70\x00"
-		"\x00\x42\x42\x42\x42\x7c\x40\x80"
-		"\x00\x76\x88\x08\x08\x08\x08\x00"
-		"\xf8\x20\x70\x88\x88\x70\x20\xf8"
-		"\x38\x44\x82\xfe\x82\x44\x38\x00"
-		"\x38\x44\x82\x82\x28\x28\x6c\x00"
-		"\x1c\x10\x08\x7c\x84\x84\x78\x00"
-		"\x00\x00\x7c\x92\x92\x7c\x00\x00"
-		"\x02\x04\x7e\x89\x91\x7e\x40\x80"
-		"\x38\x40\x80\xf8\x80\x40\x38\x00"
-		"\x78\x84\x84\x84\x84\x84\x84\x00"
-		"\x00\xfc\x00\xfc\x00\xfc\x00\x00"
-		"\x20\x20\xfc\x20\x20\x00\xfc\x00"
-		"\x40\x20\x10\x20\x40\x00\xfc\x00"
-		"\x10\x20\x40\x20\x10\x00\xfc\x00"
-		"\x0e\x11\x11\x10\x10\x10\x10\x10"
-		"\x08\x08\x08\x08\x08\x88\x88\x70"
-		"\x20\x20\x00\xf8\x00\x20\x20\x00"
-		"\x00\x64\x98\x00\x64\x98\x00\x00"
-		"\x38\x44\x44\x38\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x00\x00\x00"
-		"\x07\x04\x04\x04\x64\x24\x1c\x0c"
-		"\x58\x44\x44\x44\x44\x00\x00\x00"
-		"\x30\x48\x10\x20\x78\x00\x00\x00"
-		"\x00\x00\x3c\x3c\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "Codepage 865 Norwegian, (thin)", CIOLIB_CP865}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xd6\xd6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xf8\xf8\x60\x60\x7c\x7e\x66\x66\x6e\x6c\x00\x00\x00\x00"
-		"\x18\x10\x7e\x7e\x60\x60\x60\x60\x60\x60\x60\x60\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x60\x60\xc0\x00\x00\x00"
-		"\x00\x00\x00\x18\x10\x7c\x7c\x60\x60\x60\x60\x60\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x66\x66\xcc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\xdb\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\xfe\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\xfe\x18\x18\xfe\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc0\xf8\xc0\xc0\xf8\xc0\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x86\x8c\x18\x30\x6a\xca\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\xd8\xd8\xde\xdb\xdb\xdb\xde\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x60\xc0\xc0\x60\x30\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\xd8\xd8\xd8\xd8\xfe\xdb\xd9\xdb\xde\x00\x00\x00\x00"
-		"\x18\x10\xc2\xc6\xcc\xd8\xf0\xf8\xcc\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\xfc\x30\x30\x3c\x3e\x36\x36\x36\x36\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xfe\xfe\x38\x38\x00\x00\x00\x00"
-		"\x00\x00\x60\x60\x60\xf8\x60\x7c\x7e\x66\x66\x66\x0c\x0c\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\xc0\xc0\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xcc\x66\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xf1\x5b\x55\x51\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x38\x78\x78\xde\xd9\xd9\xde\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\x60\x30\x30\x60\xc0\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd8\xd8\xd8\xfe\xd9\xd9\xde\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x10\xc4\xcc\xd8\xf0\xd8\xcc\xcc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xfc\x30\x3c\x36\x36\x36\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xfe\x38\x38\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x28\x10\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x28\x10\xc6\xc6\xc6\xc6\xc6\x7e\x06\x7c\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x5a\x3c\x66\x66\x3c\x5a\x00\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x7e\x7e\x60\x60\x60\x60\x60\x60\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x30\x40\x40\x30\x48\x48\x30\x08\x08\x30\x00\x00\x00\x00"
-		"\x6c\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x7c\x82\x9a\xa2\x9a\x82\x7c\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc0\xc0\xf0\xf0\xc0\xc0\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x33\x66\xcc\xcc\x66\x33\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\x02\x02\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\xf8\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x7c\x92\xaa\xb2\xaa\x82\x7c\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x28\x28\x10\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x00\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x06\x7e\x7e\x60\x60\x60\x60\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x84\xcc\xfc\xcc\xc6\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x7c\xe8\xe8\xe8\x68\x28\x28\x28\x28\x28\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x8a\xcd\xea\xb8\x9b\x88\x8b\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xf0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\x66\x33\x33\x66\xcc\x00\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x66\x66\x3c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x66\x00\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x3e\x66\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\x54\x7c\xd6\xd6\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x1c\x06\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x0c\xda\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x02\x06\x04\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\xe0\xe0\x60\x60\x7c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xe6\xb6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x78\xcc\x06\x06\x1e\x1e\x06\x06\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xfe\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xfc\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc2\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\x7c\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1c\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xcc\xd8\xf8\xd8\xcc\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x66\x66\x66\x66\x66\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc2\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00"
-		"\x00\x00\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x06\x0c\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\x00\x00\x00\xe0\x60\x7c\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xe6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x9c\xb6\xb6\xf6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x86\xc6\x7c\x18\x18\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x66\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xce\xde\xf6\xe6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x0c\x78\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\x66\x3a\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\xe6\x66\x6c\x6c\x78\x6c\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xfe\x7c\x6c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x38\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x8c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xfe\x6c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x66\xfe\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xf8\xf8\x60\x60\x7c\x7e\x66\x6e\x6c\x00\x00\x00"
-		"\x18\x10\x7e\x7e\x60\x60\x60\x60\x60\x60\x60\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x60\x60\x60\xc0\x00\x00"
-		"\x00\x00\x00\x18\x10\x7c\x7c\x60\x60\x60\x60\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x66\x66\x66\xcc\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\xdb\x00\x00\x00"
-		"\x00\x00\x18\x18\xfe\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x18\x18\xfe\x18\x18\x18\xfe\x18\x18\x00\x00\x00"
-		"\x00\x00\x3c\x62\x60\xfe\xc0\xfe\x60\x62\x3c\x00\x00\x00"
-		"\x00\x00\x00\x86\x8c\x18\x30\x6a\xca\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\xd8\xd8\xde\xdb\xdb\xde\x00\x00\x00"
-		"\x00\x00\x00\x00\x30\x60\xc0\xc0\x60\x30\x00\x00\x00\x00"
-		"\x00\x00\xd8\xd8\xd8\xd8\xfe\xdb\xd9\xdb\xde\x00\x00\x00"
-		"\x18\x10\xc6\xcc\xd8\xe0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\xfc\x30\x30\x3c\x3e\x36\x36\x36\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x38\x38\x00\x00"
-		"\x00\x00\x60\x60\xf8\x60\x7c\x7e\x66\x66\x66\x0e\x0c\x00"
-		"\x00\x00\x00\xc0\xc0\xc0\x60\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\xc0\x60\x60\x60\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\x66\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xcc\x66\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\xf1\x5b\x55\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x38\x78\xd8\xde\xd9\xde\x00\x00\x00"
-		"\x00\x00\x00\x00\xc0\x60\x30\x30\x60\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd8\xd8\xfe\xd9\xd9\xde\x00\x00\x00"
-		"\x00\x00\x00\x18\x10\xcc\xd8\xf0\xd8\xcc\xcc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xfc\x30\x3c\x36\x36\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\x38\x38\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x28\x10\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x28\x10\xc6\xc6\xc6\xc6\xc6\x7e\x06\x7c\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x5a\x3c\x66\x66\x3c\x5a\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x7e\x7e\x60\x60\x60\x60\x60\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x30\x40\x40\x30\x48\x48\x30\x08\x08\x30\x00\x00"
-		"\x6c\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc6\xfc\x00\x00\x00"
-		"\x00\x7c\x82\x9a\xa2\x9a\x82\x7c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc0\xf0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x33\x66\xcc\xcc\x66\x33\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xfe\x02\x02\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xf8\xf8\x00\x00\x00\x00\x00\x00"
-		"\x00\x7c\x92\xaa\xb2\xaa\x82\x7c\x00\x00\x00\x00\x00\x00"
-		"\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x28\x28\x10\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x00\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x06\x7e\x7e\x60\x60\x60\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x84\xcc\xfc\xcc\xc6\xc0\xc0\xc0\x00"
-		"\x00\x00\x7c\xe8\xe8\xe8\x68\x28\x28\x28\x28\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x00\x7c\xc6\xfc\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x8a\xcd\xea\xb8\x9b\x88\x8b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xf0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\xcc\x66\x33\x33\x66\xcc\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x00\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x3e\x66\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\x54\x7c\xd6\xd6\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x1c\x06\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x0c\xda\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x82\xc6\xc6\xee\xee\xfe\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x02\x06\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x00\x00\x00"
-		"\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x00"
-		"\x00\x00\xe0\xe0\x60\x7c\x66\x66\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xe6\xb6\xb6\xb6\xb6\xe6\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x1e\x06\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\x9c\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc0\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc2\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfc\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\x7c\xd6\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x1c\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\xc6\xce\xde\xf6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xcc\xf8\xd8\xcc\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x66\x66\x66\x66\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xce\xfe\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x7c\x00"
-		"\x00\x00\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\x7c\x10\x38\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xfe\x06\x0c\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x00"
-		"\x00\x00\x00\x00\x00\xe0\x60\x7c\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xe6\xb6\xb6\xe6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x1e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x9c\xb6\xb6\xf6\xb6\x9c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\x7e\x36\x66\xc6\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x78\x78\x30\x30\x00\x30\x00"
-		"\x6c\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x30\x7c\xc0\x78\x0c\xf8\x30\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x60\x60\xc0\x00\x00\x00\x00\x00"
-		"\x18\x30\x60\x60\x60\x30\x18\x00"
-		"\x60\x30\x18\x18\x18\x30\x60\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x30\x30\xfc\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x60"
-		"\x00\x00\x00\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x7c\xc6\xce\xde\xf6\xe6\x7c\x00"
-		"\x30\x70\x30\x30\x30\x30\xfc\x00"
-		"\x78\xcc\x0c\x38\x60\xcc\xfc\x00"
-		"\x78\xcc\x0c\x38\x0c\xcc\x78\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\xfc\xc0\xf8\x0c\x0c\xcc\x78\x00"
-		"\x38\x60\xc0\xf8\xcc\xcc\x78\x00"
-		"\xfc\xcc\x0c\x18\x30\x30\x30\x00"
-		"\x78\xcc\xcc\x78\xcc\xcc\x78\x00"
-		"\x78\xcc\xcc\x7c\x0c\x18\x70\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x60"
-		"\x18\x30\x60\xc0\x60\x30\x18\x00"
-		"\x00\x00\xfc\x00\x00\xfc\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x78\xcc\x0c\x18\x30\x00\x30\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x30\x78\xcc\xcc\xfc\xcc\xcc\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3e\x00"
-		"\xcc\xcc\xcc\xfc\xcc\xcc\xcc\x00"
-		"\x78\x30\x30\x30\x30\x30\x78\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x38\x6c\xc6\xc6\xc6\x6c\x38\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x78\xcc\xcc\xcc\xdc\x78\x1c\x00"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x78\xcc\xe0\x70\x1c\xcc\x78\x00"
-		"\xfc\xb4\x30\x30\x30\x30\x78\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xfc\x00"
-		"\xcc\xcc\xcc\xcc\xcc\x78\x30\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc6\xc6\x6c\x38\x38\x6c\xc6\x00"
-		"\xcc\xcc\xcc\x78\x30\x30\x78\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x78\x60\x60\x60\x60\x60\x78\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x78\x18\x18\x18\x18\x18\x78\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x30\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\xe0\x60\x60\x7c\x66\x66\xdc\x00"
-		"\x00\x00\x78\xcc\xc0\xcc\x78\x00"
-		"\x1c\x0c\x0c\x7c\xcc\xcc\x76\x00"
-		"\x00\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x38\x6c\x60\xf0\x60\x60\xf0\x00"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\xf8"
-		"\xe0\x60\x6c\x76\x66\x66\xe6\x00"
-		"\x30\x00\x70\x30\x30\x30\x78\x00"
-		"\x0c\x00\x0c\x0c\x0c\xcc\xcc\x78"
-		"\xe0\x60\x66\x6c\x78\x6c\xe6\x00"
-		"\x70\x30\x30\x30\x30\x30\x78\x00"
-		"\x00\x00\xcc\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x78\x00"
-		"\x00\x00\xdc\x66\x66\x7c\x60\xf0"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\x1e"
-		"\x00\x00\xdc\x76\x66\x60\xf0\x00"
-		"\x00\x00\x7c\xc0\x78\x0c\xf8\x00"
-		"\x10\x30\x7c\x30\x30\x34\x18\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x76\x00"
-		"\x00\x00\xcc\xcc\xcc\x78\x30\x00"
-		"\x00\x00\xc6\xd6\xfe\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\xcc\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\xfc\x98\x30\x64\xfc\x00"
-		"\x1c\x30\x30\xe0\x30\x30\x1c\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\xe0\x30\x30\x1c\x30\x30\xe0\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xfc\xfc\x30\x3c\x36\x33\x36\x00"
-		"\x10\x7e\x60\x60\x60\x60\x60\x00"
-		"\x00\x00\x00\x00\x00\x60\x30\x30"
-		"\x00\x00\x10\x7e\x60\x60\x60\x00"
-		"\x00\x00\x00\x00\x00\xcc\x66\x66"
-		"\x00\x00\x00\x00\x00\xdb\xdb\x00"
-		"\x00\x18\xfe\x18\x18\x18\x18\x00"
-		"\x00\x18\xfe\x18\x18\xfe\x18\x00"
-		"\x3c\x62\xf8\xc0\xf8\x62\x3c\x00"
-		"\x00\x86\x8c\x18\x30\x6a\xca\x00"
-		"\x38\x78\xd8\xde\xdb\xdb\xde\x00"
-		"\x00\x30\x60\xc0\xc0\x60\x30\x00"
-		"\xd8\xd8\xd8\xfe\xd9\xd9\xde\x00"
-		"\x18\xd6\xcc\xf8\xf8\xcc\xc6\x00"
-		"\xfc\xfc\x30\x3c\x36\x36\x36\x00"
-		"\xc6\xc6\xc6\xc6\xfe\x38\x38\x00"
-		"\x60\xf8\x60\x7c\x7e\x66\x66\x0c"
-		"\xc0\xc0\x60\x00\x00\x00\x00\x00"
-		"\xc0\x60\x60\x00\x00\x00\x00\x00"
-		"\xcc\xcc\x66\x00\x00\x00\x00\x00"
-		"\xcc\x66\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x18\x00\x00"
-		"\x00\x00\x00\x00\xfe\xfe\x00\x00"
-		"\x00\x00\x00\x00\xff\xff\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf1\x5b\x55\x51\x00\x00\x00\x00"
-		"\x00\x00\x38\x78\xde\xd9\xde\x00"
-		"\x00\xc0\x60\x30\x30\x60\xc0\x00"
-		"\x00\x00\xd8\xd8\xfe\xd9\xde\x00"
-		"\x18\x10\xcc\xd8\xf0\xd8\xcc\x00"
-		"\x00\x00\xfc\x30\x3c\x36\x36\x00"
-		"\x00\x00\xc6\xc6\xfe\x38\x38\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6b\x63\x63\x3f\x03\x63\x3e\x00"
-		"\x00\x10\xcc\xcc\xcc\x7c\x0c\xf8"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\x00\x5a\x3c\x66\x66\x3c\x5a\x00"
-		"\x06\x7e\x7e\x60\x60\x60\x60\x00"
-		"\x00\x18\x18\x00\x00\x18\x18\x00"
-		"\x30\x40\x30\x48\x30\x08\x30\x00"
-		"\x66\x00\x7e\x60\x7c\x60\x7e\x00"
-		"\x7c\x82\x9a\xa2\x9a\x82\x7c\x00"
-		"\x3c\x62\xc0\xf8\xc0\x62\x3c\x00"
-		"\x00\x33\x66\xcc\xcc\x66\x33\x00"
-		"\x00\x00\x00\x00\xfe\xfe\x02\x00"
-		"\x00\x00\x00\x00\xf8\xf8\x00\x00"
-		"\x7c\x92\xaa\xb2\xaa\x82\x7c\x00"
-		"\x66\x00\x18\x18\x18\x18\x18\x00"
-		"\x00\x10\x28\x28\x10\x00\x00\x00"
-		"\x00\x00\x18\x7e\x18\x00\x7e\x00"
-		"\x3c\x18\x18\x18\x18\x18\x3c\x00"
-		"\x18\x00\x18\x18\x18\x18\x18\x00"
-		"\x00\x00\x06\x7e\x60\x60\x60\x00"
-		"\x00\x84\xcc\xfc\xcc\xc6\xc0\xc0"
-		"\x7c\xe8\xe8\x68\x28\x28\x28\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x6c\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x8a\xcd\xea\xb8\x9b\x88\x8b\x00"
-		"\x00\x00\x3e\x60\x7c\x60\x3e\x00"
-		"\x00\xcc\x66\x33\x33\x66\xcc\x00"
-		"\x0c\x00\x0c\x0c\x0c\xcc\xcc\x78"
-		"\x78\xcc\xe0\x70\x1c\xcc\x78\x00"
-		"\x00\x00\x7c\xc0\x78\x0c\xf8\x00"
-		"\x00\x66\x00\x18\x18\x18\x18\x00"
-		"\x1e\x36\x66\x66\x7e\x66\x66\x00"
-		"\x7c\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x7c\x66\x66\x7c\x66\x66\x7c\x00"
-		"\x7e\x60\x60\x60\x60\x60\x60\x00"
-		"\x38\x6c\x6c\x6c\x6c\x6c\xfe\xc6"
-		"\x7e\x60\x60\x7c\x60\x60\x7e\x00"
-		"\xdb\xdb\x7e\x3c\x7e\xdb\xdb\x00"
-		"\x3c\x66\x06\x1c\x06\x66\x3c\x00"
-		"\x66\x66\x6e\x7e\x76\x66\x66\x00"
-		"\x3c\x66\x6e\x7e\x76\x66\x66\x00"
-		"\x66\x6c\x78\x70\x78\x6c\x66\x00"
-		"\x1e\x36\x66\x66\x66\x66\x66\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\x66\x66\x66\x7e\x66\x66\x66\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3c\x00"
-		"\x7e\x66\x66\x66\x66\x66\x66\x00"
-		"\x7c\x66\x66\x66\x7c\x60\x60\x00"
-		"\x3c\x66\x60\x60\x60\x66\x3c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\x66\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x7e\xdb\xdb\xdb\x7e\x18\x18\x00"
-		"\x66\x66\x3c\x18\x3c\x66\x66\x00"
-		"\x66\x66\x66\x66\x66\x66\x7f\x03"
-		"\x66\x66\x66\x3e\x06\x06\x06\x00"
-		"\xdb\xdb\xdb\xdb\xdb\xdb\xff\x00"
-		"\xdb\xdb\xdb\xdb\xdb\xdb\xff\x03"
-		"\xe0\x60\x60\x7c\x66\x66\x7c\x00"
-		"\xc6\xc6\xc6\xf6\xde\xde\xf6\x00"
-		"\x60\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x78\x8c\x06\x3e\x06\x8c\x78\x00"
-		"\xce\xdb\xdb\xfb\xdb\xdb\xce\x00"
-		"\x3e\x66\x66\x66\x3e\x36\x66\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\x00\x3c\x60\x3c\x66\x66\x3c\x00"
-		"\x00\x00\x7c\x66\x7c\x66\x7c\x00"
-		"\x00\x00\x7e\x60\x60\x60\x60\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\xfe\xc6"
-		"\x00\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x00\x00\xdb\x7e\x3c\x7e\xdb\x00"
-		"\x00\x00\x3c\x66\x0c\x66\x3c\x00"
-		"\x00\x00\x66\x6e\x7e\x76\x66\x00"
-		"\x00\x18\x66\x6e\x7e\x76\x66\x00"
-		"\x00\x00\x66\x6c\x78\x6c\x66\x00"
-		"\x00\x00\x1e\x36\x66\x66\x66\x00"
-		"\x00\x00\xc6\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\x66\x66\x7e\x66\x66\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00"
-		"\x00\x00\x7e\x66\x66\x66\x66\x00"
-		"\x00\x00\x7c\x66\x66\x7c\x60\x00"
-		"\x00\x00\x3c\x66\x60\x66\x3c\x00"
-		"\x00\x00\x7e\x18\x18\x18\x18\x00"
-		"\x00\x00\x66\x66\x3e\x06\x3c\x00"
-		"\x00\x00\x7e\xdb\xdb\x7e\x18\x00"
-		"\x00\x00\x66\x3c\x18\x3c\x66\x00"
-		"\x00\x00\x66\x66\x66\x66\x7f\x03"
-		"\x00\x00\x66\x66\x3e\x06\x06\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\xff\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\xff\x03"
-		"\x00\x00\xe0\x60\x7c\x66\x7c\x00"
-		"\x00\x00\xc6\xc6\xf6\xde\xf6\x00"
-		"\x00\x00\x60\x60\x7c\x66\x7c\x00"
-		"\x00\x00\x7c\x06\x3e\x06\x7c\x00"
-		"\x00\x00\xce\xdb\xfb\xdb\xce\x00"
-		"\x00\x00\x3e\x66\x3e\x36\x66\x00"
-	, "Codepage 1251 Cyrillic", CIOLIB_CP1251}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xd6\xd6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x00\x30\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x36\x32\x30\x78\x30\x30\x30\x30\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x30\x60\x60\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0c\x06\x06\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xec\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00"
-		"\x00\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x66\xc3\x99\xa1\xa1\x99\xc3\x66\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x36\x6c\xd8\x6c\x36\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x03\x03\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x7e\x18\x18\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x3c\x66\x0c\x18\x32\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x66\x06\x1e\x06\x66\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x06\x0c\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x06\x0c\x18\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\xc0\x90\xb8\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xbf\xb1\x30\x30\x3e\x30\x30\x31\x31\x3f\x00\x00\x00\x00"
-		"\x00\x00\xb3\xb3\x33\x33\x3f\x33\x33\x33\x33\x00\x00\x00\x00\x00"
-		"\x00\x00\xbc\x98\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xd8\x6c\x36\x6c\xd8\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x9e\xb3\x33\x33\x33\x33\x33\x33\x1e\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\xe0\x62\x66\x6c\x18\x30\x60\xdc\x86\x0c\x18\x1e\x00"
-		"\x00\x00\xb3\xb3\x33\x33\x1e\x0c\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\x9e\xb3\x21\x21\x21\x21\x21\x33\x12\x33\x00\x00\x00\x00"
-		"\x0c\x08\x00\x66\x00\x18\x18\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfe\x62\x60\x60\x60\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfe\x82\x00\x00\x7c\x00\x00\x00\x82\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\x60\x30\x18\x18\x30\x60\xc0\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x7e\x99\x99\x99\x7e\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x18\xdb\xdb\xdb\xdb\xdb\x7e\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\x66\x24\xe7\x00\x00\x00\x00"
-		"\x00\xc3\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\xc3\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x38\x10\x00\x7b\xce\xcc\xcc\xcc\xcc\x7b\x00\x00\x00\x00"
-		"\x00\x00\x38\x10\x00\x7c\xc6\xc0\x78\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x10\x00\xdc\x66\x66\x66\x66\x66\x66\x06\x06\x06\x00"
-		"\x00\x00\x38\x10\x00\x18\x18\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x18\xc3\x00\x00\xe7\x66\x66\x66\x66\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7b\xce\xcc\xcc\xcc\xcc\x7b\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\xc3\x66\x3c\x18\x3c\x66\x42\x66\x3c\x00\x00"
-		"\x00\x7c\x60\x30\x18\x78\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\x78\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x0c\x18\x30\x60\xc0\xc0\xc0\xc0\x78\x0c\x0c\x78\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x06\x06\x06\x00"
-		"\x00\x00\x3e\x63\x63\x63\x7f\x63\x63\x63\x63\x3e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xe6\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x0c\x0c\x0c\x36\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x7f\x60\x60\x60\x00"
-		"\x00\x00\x00\x00\x00\x82\xc6\xc6\x6c\x6c\x38\x38\x00\x00\x00\x00"
-		"\x00\x00\xfc\x60\xc0\x78\x30\x60\xc0\xc0\xc0\x7c\x06\x06\x3c\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x66\x66\x66\x66\x66\x7c\x60\x60\x60\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\xc0\xc0\x60\x38\x0c\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x7f\xcc\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xe7\x66\x66\x66\x66\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x5c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x10\x10\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\x7c\x10\x10\x10\x00"
-		"\x00\x00\x00\x00\x00\x66\xc3\xc3\xc3\xdb\xff\x66\x00\x00\x00\x00"
-		"\x00\x00\xc3\x00\x00\x18\x18\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\xc3\x00\x00\xe7\x66\x66\x66\x66\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x38\x10\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x10\x00\xe7\x66\x66\x66\x66\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x38\x10\x00\x66\xc3\xc3\xc3\xdb\xff\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00"
-		"\x00\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\xfe\x6c\x6c\x00\x00"
-		"\x00\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x86\xc6\x7c\x18\x18"
-		"\x00\x00\x00\x00\xc2\xc6\x1c\x38\x60\xc6\x86\x00\x00\x00"
-		"\x00\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00"
-		"\x00\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00"
-		"\x00\x00\x00\x38\x6c\xc6\xc6\xd6\xc6\xc6\x6c\x38\x00\x00"
-		"\x00\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x7e\x00\x00"
-		"\x00\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00"
-		"\x00\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00"
-		"\x00\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x0c\x78\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x00\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x06\x0c\x18\x30\x30\x18\x0c\x06\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x60\x30\x18\x0c\x0c\x18\x30\x60\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x00\x18\x18\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xde\xde\xdc\xc0\x7c\x00\x00"
-		"\x00\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\xfc\x00\x00"
-		"\x00\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x00\x00"
-		"\x00\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x6c\xf8\x00\x00"
-		"\x00\x00\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00"
-		"\x00\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\x66\x3a\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x1e\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00"
-		"\x00\x00\x00\xe6\x66\x66\x6c\x78\x6c\x66\x66\xe6\x00\x00"
-		"\x00\x00\x00\xf0\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00"
-		"\x00\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00"
-		"\x00\x00\x00\xc6\xc6\x6c\x7c\x38\x7c\x6c\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\xfe\xc6\x86\x0c\x18\x30\x62\xc6\xfe\x00\x00"
-		"\x00\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00"
-		"\x00\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x60\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x1c\x36\x32\x30\x78\x30\x30\x30\x78\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78"
-		"\x00\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\xe6\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x66\x66\x3c"
-		"\x00\x00\x00\xe0\x60\x60\x66\x6c\x78\x6c\x66\xe6\x00\x00"
-		"\x00\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xc6\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x7c\x60\x60\x60"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x0c"
-		"\x00\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x36\x1c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x6c\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xfe\x6c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8"
-		"\x00\x00\x00\x00\x00\x00\xfe\x8c\x38\x70\xc6\xfe\x00\x00"
-		"\x00\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00"
-		"\x00\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00"
-		"\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x30\x60\x60\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0c\x06\x06\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\xec\xfc\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x18\x18\x18\x00\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x7c\xc6\x60\x38\x6c\xc6\x6c\x38\x0c\xc6\x7c"
-		"\x00\x00\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x66\xc3\x99\xa1\xa1\x99\xc3\x66\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x36\x6c\xd8\x6c\x36\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x03\x03\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x7e\x00\x00\x00\x00"
-		"\x00\x3c\x66\x0c\x18\x32\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x66\x06\x1e\x06\x66\x3c\x00\x00\x00\x00\x00\x00\x00"
-		"\x06\x0c\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x06\x0c\x18\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xc0\x90\xb8\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00"
-		"\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\xbf\xb1\x30\x30\x3e\x30\x31\x31\x3f\x00\x00"
-		"\x00\x00\x00\xb3\xb3\x33\x33\x3f\x33\x33\x33\x33\x00\x00"
-		"\x00\x00\x00\xbc\x98\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\xd8\x6c\x36\x6c\xd8\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x9e\xb3\x33\x33\x33\x33\x33\x33\x1e\x00\x00"
-		"\x00\x60\xe0\x62\x66\x6c\x18\x30\x60\xdc\x86\x0c\x18\x3e"
-		"\x00\x00\x00\xb3\xb3\x33\x33\x1e\x0c\x0c\x0c\x1e\x00\x00"
-		"\x00\x00\x00\x9e\xb3\x21\x21\x21\x21\x33\x12\x33\x00\x00"
-		"\x00\x0c\x08\x00\x66\x00\x18\x18\x18\x18\x18\x0e\x00\x00"
-		"\x00\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\xfc\x00\x00"
-		"\x00\x00\x00\xfe\x62\x60\x60\x60\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x10\x38\x6c\xc6\xc6\xc6\xc6\xc6\xfe\x00\x00"
-		"\x00\x00\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00"
-		"\x00\x00\x00\xfe\xc6\x86\x0c\x18\x30\x62\xc6\xfe\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\xe6\x66\x66\x6c\x78\x6c\x66\x66\xe6\x00\x00"
-		"\x00\x00\x00\x10\x38\x6c\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\xfe\x82\x00\x00\x7c\x00\x00\x82\xfe\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\xfe\xc0\x60\x30\x18\x30\x60\xc0\xfe\x00\x00"
-		"\x00\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x3c\x18\x7e\x99\x99\x7e\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\xc6\xc6\x6c\x7c\x38\x7c\x6c\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x18\xdb\xdb\xdb\xdb\x7e\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x3c\x66\xc3\xc3\xc3\xc3\x66\x24\xe7\x00\x00"
-		"\x00\x00\xc3\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\xc3\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x38\x10\x00\x7b\xce\xcc\xcc\xcc\x7b\x00\x00"
-		"\x00\x00\x38\x10\x00\x7c\xc6\xc0\x78\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x38\x10\x00\xdc\x66\x66\x66\x66\x66\x06\x06"
-		"\x00\x00\x00\x38\x10\x00\x18\x18\x18\x18\x18\x0e\x00\x00"
-		"\x00\x00\x18\xc3\x00\x00\xe7\x66\x66\x66\x66\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7b\xce\xcc\xcc\xcc\x7b\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xfc\xc0\xc0"
-		"\x00\x00\x00\x00\x00\xc3\x66\x3c\x18\x3c\x66\x42\x66\x3c"
-		"\x00\x00\x7c\x60\x30\x18\x78\xcc\xcc\xcc\xcc\x78\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\x78\xc0\xc6\x7c\x00\x00"
-		"\x00\xfc\x0c\x18\x30\x60\xc0\xc0\xc0\xc0\x78\x0c\x0c\x78"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x06\x06"
-		"\x00\x00\x00\x3e\x63\x63\x63\x7f\x63\x63\x63\x3e\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x18\x0e\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xe6\x6c\x78\x6c\x66\xe6\x00\x00"
-		"\x00\x00\x00\x38\x6c\x0c\x0c\x0c\x36\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x7f\x60\x60"
-		"\x00\x00\x00\x00\x00\x00\x82\xc6\xc6\x6c\x6c\x38\x00\x00"
-		"\x00\xfc\x60\xc0\x78\x30\x60\xc0\xc0\xc0\x7c\x06\x06\x7c"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x3c\x66\x66\x66\x66\x7c\x60\x60"
-		"\x00\x00\x00\x00\x00\x00\x3e\x63\xc0\x60\x38\x0c\xc6\x7c"
-		"\x00\x00\x00\x00\x00\x00\x7f\xcc\xcc\xcc\xcc\x78\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\x30\x30\x30\x36\x1c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xe7\x66\x66\x66\x66\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x5c\xd6\xd6\xd6\xd6\x7c\x10\x10"
-		"\x00\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\x7c\x10\x10"
-		"\x00\x00\x00\x00\x00\x00\x66\xc3\xc3\xdb\xff\x66\x00\x00"
-		"\x00\x00\x00\xc3\x00\x00\x18\x18\x18\x18\x18\x0e\x00\x00"
-		"\x00\x00\x00\xc3\x00\x00\xe7\x66\x66\x66\x66\x3c\x00\x00"
-		"\x00\x00\x00\x38\x10\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x38\x10\x00\xe7\x66\x66\x66\x66\x3c\x00\x00"
-		"\x00\x00\x00\x38\x10\x00\x66\xc3\xc3\xdb\xff\x66\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x3c\x3c\x18\x18\x00\x18\x00"
-		"\x66\x66\x24\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x18\x3e\x60\x3c\x06\x7c\x18\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x18\x18\x30\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x30\x30\x18\x0c\x00"
-		"\x30\x18\x0c\x0c\x0c\x18\x30\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x18\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x30"
-		"\x00\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x38\x6c\xc6\xd6\xc6\x6c\x38\x00"
-		"\x18\x38\x18\x18\x18\x18\x7e\x00"
-		"\x7c\xc6\x06\x1c\x30\x66\xfe\x00"
-		"\x7c\xc6\x06\x3c\x06\xc6\x7c\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\xfe\xc0\xc0\xfc\x06\xc6\x7c\x00"
-		"\x3c\x60\xc0\xfc\xc6\xc6\x7c\x00"
-		"\xfe\xc6\x06\x0c\x18\x30\x30\x00"
-		"\x7c\xc6\xc6\x7c\xc6\xc6\x7c\x00"
-		"\x7c\xc6\xc6\x7e\x06\x0c\x78\x00"
-		"\x00\x18\x18\x00\x00\x18\x18\x00"
-		"\x00\x18\x18\x00\x00\x18\x18\x30"
-		"\x06\x0c\x18\x30\x18\x0c\x06\x00"
-		"\x00\x00\x7e\x00\x00\x7e\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x7c\xc6\x0c\x18\x18\x00\x18\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x38\x6c\xc6\xfe\xc6\xc6\xc6\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3a\x00"
-		"\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00"
-		"\x3c\x18\x18\x18\x18\x18\x3c\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x7c\xc6\xc6\xc6\xc6\xce\x7c\x0e"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x3c\x66\x30\x18\x0c\x66\x3c\x00"
-		"\x7e\x5a\x18\x18\x18\x18\x3c\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00"
-		"\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00"
-		"\xc6\xc6\xc6\xd6\xd6\xfe\x6c\x00"
-		"\xc6\xc6\x6c\x38\x6c\xc6\xc6\x00"
-		"\x66\x66\x66\x3c\x18\x18\x3c\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x3c\x30\x30\x30\x30\x30\x3c\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x3c\x0c\x0c\x0c\x0c\x0c\x3c\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x18\x0c\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\xe0\x60\x60\x7c\x66\x66\xdc\x00"
-		"\x00\x00\x7c\xc6\xc0\xc6\x7c\x00"
-		"\x1c\x0c\x0c\x7c\xcc\xcc\x76\x00"
-		"\x00\x00\x7c\xc6\xfe\xc0\x7c\x00"
-		"\x3c\x66\x60\xf8\x60\x60\xf0\x00"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\xf8"
-		"\xe0\x60\x6c\x76\x66\x66\xe6\x00"
-		"\x18\x00\x38\x18\x18\x18\x3c\x00"
-		"\x06\x00\x06\x06\x06\x66\x66\x3c"
-		"\xe0\x60\x66\x6c\x78\x6c\xe6\x00"
-		"\x38\x18\x18\x18\x18\x18\x3c\x00"
-		"\x00\x00\xec\xfe\xd6\xd6\xc6\x00"
-		"\x00\x00\xdc\x66\x66\x66\x66\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x00\x00\xdc\x66\x66\x7c\x60\xf0"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\x1e"
-		"\x00\x00\xdc\x76\x60\x60\xf0\x00"
-		"\x00\x00\x7e\xc0\x7c\x06\xfc\x00"
-		"\x30\x30\xfc\x30\x30\x36\x1c\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x76\x00"
-		"\x00\x00\xc6\xc6\xc6\x6c\x38\x00"
-		"\x00\x00\xc6\xd6\xd6\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\xc6\xc6\xc6\x7e\x06\xfc"
-		"\x00\x00\x7e\x4c\x18\x32\x7e\x00"
-		"\x0e\x18\x18\x70\x18\x18\x0e\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x00"
-		"\x70\x18\x18\x0e\x18\x18\x70\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x40\x30\x00\x00\x00\x00\x00"
-		"\x0c\x02\x0c\x00\x00\x00\x00\x00"
-		"\x3c\x66\x60\xf8\x60\x66\xfe\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\x7e\xc0\x7c\xc6\x7c\x06\xfc\x00"
-		"\x66\x00\x00\x00\x00\x00\x00\x00"
-		"\x38\x44\xba\xa2\xba\x44\x38\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x33\x66\xcc\x66\x33\x00"
-		"\x00\x00\x00\xff\x03\x00\x00\x00"
-		"\x00\x00\x00\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\xff\x00\x00\x00\x00"
-		"\x38\x6c\x38\x00\x00\x00\x00\x00"
-		"\x30\x30\xfc\x30\x30\x00\xfc\x00"
-		"\x30\x48\x10\x20\x78\x00\x00\x00"
-		"\x70\x08\x30\x08\x70\x00\x00\x00"
-		"\x08\x10\x00\x00\x00\x00\x00\x00"
-		"\x08\xd3\x00\x00\x00\x00\x00\x00"
-		"\x5c\xb6\x63\x7f\x63\x63\x63\x00"
-		"\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x5f\x90\x10\x1e\x10\x10\x1f\x00"
-		"\xb3\xb3\x33\x3f\x33\x33\x33\x00"
-		"\x5e\x8c\x0c\x0c\x0c\x0c\x1e\x00"
-		"\x00\xcc\x66\x33\x66\xcc\x00\x00"
-		"\x5c\xb6\x63\x63\x63\x36\x1c\x00"
-		"\x40\xc0\x4c\x52\x04\x08\x1e\x00"
-		"\xb3\xb3\x33\x1e\x0c\x0c\x1e\x00"
-		"\x5c\xb6\x63\x63\x36\x14\x77\x00"
-		"\x08\xd3\x00\x30\x30\x30\x3c\x00"
-		"\x38\x6c\xc6\xfe\xc6\xc6\xc6\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\xfe\xc0\xc0\xc0\xc0\xc0\xc0\x00"
-		"\x10\x38\x6c\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc0\xc0\xfc\xc0\xc0\xfe\x00"
-		"\xfe\x06\x0c\x18\x30\x60\xfe\x00"
-		"\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00"
-		"\x7c\xc6\xc6\xfe\xc6\xc6\x7c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x7e\x00"
-		"\xc6\xcc\xd8\xf0\xd8\xcc\xc6\x00"
-		"\x10\x38\x6c\xc6\xc6\xc6\xc6\x00"
-		"\xc6\xee\xfe\xd6\xc6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\xfe\xc6\x00\x38\x00\xc6\xfe\x00"
-		"\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00"
-		"\xff\x66\x66\x66\x66\x66\x66\x00"
-		"\xfc\xc6\xc6\xfc\xc0\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xfe\xc0\x60\x30\x60\xc0\xfe\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\x66\x66\x66\x3c\x18\x18\x18\x00"
-		"\x10\x7c\xd6\xd6\x7c\x10\x38\x00"
-		"\xc6\xc6\x6c\x38\x6c\xc6\xc6\x00"
-		"\x10\xd6\xd6\xd6\x7c\x10\x38\x00"
-		"\x38\x6c\xc6\xc6\x6c\x28\xee\x00"
-		"\xc3\x3c\x18\x18\x18\x18\x3c\x00"
-		"\x66\x00\x66\x66\x3c\x18\x3c\x00"
-		"\x08\x10\x76\xcc\xcc\xcc\x76\x00"
-		"\x08\x10\x7e\xc0\x7c\xc0\x7e\x00"
-		"\x08\x10\xbc\x66\x66\x66\x66\x06"
-		"\x08\x10\x30\x30\x30\x30\x3c\x00"
-		"\x08\xd3\x00\xe6\x66\x66\x3c\x00"
-		"\x00\x00\x7a\xcc\xcc\xcc\x7a\x00"
-		"\x78\xcc\xd8\xfc\xc6\xc6\xfc\x80"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x7c"
-		"\x7e\x30\x18\x7c\xc6\xc6\x7c\x00"
-		"\x00\x00\x7e\xc0\x7c\xc0\x7e\x00"
-		"\x7e\x06\x1c\x30\x60\x3e\x02\x1c"
-		"\x00\x00\xbc\x66\x66\x66\x66\x06"
-		"\x7c\xc6\xe6\x3e\x86\xc6\x7c\x00"
-		"\x00\x00\x30\x30\x30\x30\x1c\x00"
-		"\x00\x00\xc6\xdc\xf0\xdc\xc6\x00"
-		"\x7c\xc6\x06\x1e\x36\x66\xc6\x00"
-		"\x00\x00\xc6\xc6\xc6\xe6\xdd\xc0"
-		"\x00\x00\x82\xc6\xc6\x6c\x38\x00"
-		"\x7e\x18\x30\x3c\x60\x3e\x02\x1c"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x00\x00\xff\x66\x66\x66\x66\x00"
-		"\x00\x00\x7c\xc6\xc6\xfc\xc0\xc0"
-		"\x00\x00\x7e\xc0\xc0\x7c\x06\x1c"
-		"\x00\x00\x7e\xd8\xcc\xcc\x78\x00"
-		"\x00\x00\xfc\x30\x30\x36\x1c\x00"
-		"\x00\x00\xe6\x66\x66\x66\x3c\x00"
-		"\x00\x00\x1c\x56\xd6\xd6\x7c\x10"
-		"\x00\x00\xc2\x6c\x38\x6c\x86\x00"
-		"\x00\x00\x10\xd6\xd6\xd6\x7c\x10"
-		"\x00\x00\x44\xd6\xd6\xd6\x6c\x00"
-		"\xcc\x00\x30\x30\x30\x30\x3c\x00"
-		"\x66\x00\xe6\x66\x66\x66\x3c\x00"
-		"\x08\x10\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x08\x10\xe6\x66\x66\x66\x3c\x00"
-		"\x08\x10\x44\xd6\xd6\xd6\x6c\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "ISO-8859-7 Greek", CIOLIB_ISO_8859_7}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xd6\xd6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x00\x00\x0e\x1b\x1b\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\xec\x6c\x6c\x3c\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x60\x30\x18\x0c\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x30\x18\x0c\x06\x0c\x18\x30\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xd8\xd8\xd8\x70\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x60\xf0\x60\x6c\x76\x66\x66\x66\x66\xe6\x06\x0c\x30\x00"
-		"\x00\x00\x18\x10\x00\xfe\xc2\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x62\xc0\xf8\xc0\x62\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\x7c\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x18\x10\x00\x78\x30\x30\x30\x30\x30\x78\x00\x00\x00\x00"
-		"\x00\x00\x36\x24\x00\x78\x30\x30\x30\x30\x30\x78\x00\x00\x00\x00"
-		"\x00\x00\x0c\x08\x00\x3c\x18\x18\x18\x18\x18\x18\x18\xb0\x60\x00"
-		"\x00\x00\x00\x00\x00\x3c\x4c\x4c\x4e\x49\x49\xce\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xfe\xc9\xc9\xce\x00\x00\x00\x00"
-		"\x00\x00\x60\xf0\x60\x60\x7c\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x10\x00\xc6\xcc\xd8\xf8\xd8\xcc\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\xfe\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x24\x18\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x10\x10\x38\x00"
-		"\x00\x00\x00\x00\x07\x88\xcb\xab\xa8\xab\x9b\x88\x00\x00\x00\x00"
-		"\x00\x60\xf8\x60\x60\x7c\x76\x66\x66\x66\x66\xe7\x00\x00\x00\x00"
-		"\x18\x10\xfe\x66\x62\x60\x60\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x66\x66\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc0\xc0\xe8\xd0\xc0\xc0\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x0c\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x36\x24\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x0c\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\xb0\x60\x00\x00"
-		"\x00\x00\x7c\x6c\x6c\x6c\x6e\x69\x69\x69\x69\xce\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xfe\xc9\xc9\xc9\xc9\xce\x00\x00\x00\x00"
-		"\x00\xf0\x60\x60\x60\x7c\x66\x66\x66\x66\x66\xe7\x00\x00\x00\x00"
-		"\x18\x10\xc6\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00\x00"
-		"\x02\x06\xfe\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x6c\x38\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x10\x10\x38\x00"
-		"\x00\x00\x00\x00\x00\x9c\xb6\xb6\xf6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xfe\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x06\x0c\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc2\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xcc\xd8\xf8\xd8\xcc\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x66\x66\x66\x66\x66\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc2\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\x7c\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xfc\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xe6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1c\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xe0\x60\x7c\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x3e\x66\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x02\x06\x04\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x0c\xda\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\x54\x7c\xd6\xd6\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xe6\xb6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x1c\x06\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x78\xcc\x06\x06\x1e\x1e\x06\x06\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\xe0\xe0\x60\x60\x7c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-	, NULL, NULL, "Russian koi8-r (c)", CIOLIB_KOI8_R}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\xee\xee\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\x6c\xfe\x6c\x6c\xfe\x6c\x6c\x6c\x00\x00\x00"
-		"\x00\x18\x18\x7e\xdb\xd8\x58\x38\x1c\x1e\xdb\xdb\x7e\x18\x18\x00"
-		"\x00\x00\x00\xe2\xa6\xec\x18\x18\x30\x60\x6e\xca\x8e\x00\x00\x00"
-		"\x00\x00\x00\x38\x6c\x38\x30\x76\x7e\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x38\x38\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x6c\x38\xfe\x38\x6c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x38\x18\x30\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x38\x00\x00\x00"
-		"\x00\x00\x00\x02\x06\x0c\x18\x18\x30\x60\x60\xc0\x80\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xce\xd6\xd6\xd6\xd6\xe6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x18\x78\x18\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x0c\x1c\x3c\x6c\xcc\xcc\xfe\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x30\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\x7e\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x38\x38\x00\x00\x00\x38\x38\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x38\x38\x00\x00\x00\x38\x38\x18\x30\x00"
-		"\x00\x00\x00\x00\x0c\x18\x30\x60\x60\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x60\x30\x18\x0c\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xde\xde\xde\xdc\xc0\x7e\x00\x00\x00"
-		"\x00\x00\x00\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x00\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00"
-		"\x00\x00\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00\x00"
-		"\x00\x00\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc0\xc0\xce\xce\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x3c\x18\x18\x18\x18\x18\x18\xd8\xd8\x70\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xee\xee\xfe\xd6\xd6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xe6\xe6\xf6\xde\xce\xce\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x06\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x78\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc0\xc0\x70\x1c\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xff\xdb\x99\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x7c\x60\x60\x60\x60\x60\x60\x60\x60\x7c\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\x60\x60\x30\x18\x0c\x0c\x06\x02\x00\x00\x00"
-		"\x00\x00\x00\x7c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x7c\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x00\x00\x38\x38\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\xe0\x60\x60\x7c\x66\x66\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x1c\x0c\x0c\x7c\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x1c\x36\x30\xfc\x30\x30\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x76\xce\xc6\xc6\xc6\xce\x76\x06\xfc\x00"
-		"\x00\x00\x00\xe0\x60\x60\x7c\x66\x66\x66\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\x00\x00\x00\xe0\x60\x60\x66\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x30\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\x6c\x38\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\x6c\x6c\x38\x30\x30\x60\xc0\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc6\xfe\x00\x00"
-		"\x00\x00\x00\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xce\x18\x0e\x00"
-		"\x00\x00\x00\x00\x00\x00\xe6\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x78\x6c\x66\x66\xf6\x18\xf0\x00"
-		"\x00\x00\x00\x00\x00\xc6\x7c\xc6\xc6\xc6\x7c\xc6\x00\x00\x00\x00"
-		"\x76\xdc\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x0c\x78\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x00\x7c\xc6\xc0\xc0\x70\x1c\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x7c\x00\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc0\xc0\xce\xce\xc6\xc6\x7c\x0c\x78\x00"
-		"\x00\x00\x00\xff\xdb\x99\x18\x1e\x3c\x78\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00"
-		"\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x30\x1e\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x1e\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x60\x60\x60\x60\xf0\x18\xf0\x00"
-		"\x0c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x0c\x78\x00"
-		"\x00\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x78\x00\x00"
-		"\x00\x00\x00\x6c\x38\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x3c\x60\x30\x00\x76\xce\xc6\xc6\xc6\xce\x76\x06\xfc\x00"
-		"\x00\x00\x00\x30\x30\x30\xfc\x30\x3c\x78\xf0\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\xdc\xfe\xe6\xc6\xc6\xc6\xc6\xc6\xc6\xdc\x00\x00\x00"
-		"\x00\x00\x00\x6c\x38\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\xfe\xe6\xc6\xc6\xc6\x06\x1c\x00\x00\x00"
-		"\x00\x7c\x00\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x0c\x18\x20\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x38\x6c\x00\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x76\xdc\x00\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x6c\x6c\x00\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x38\x6c\x38\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x3f\x6c\xcc\xcc\xff\xcc\xcc\xcc\xcc\xcf\x00\x00\x00"
-		"\x00\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x30\x1e\x00"
-		"\x66\x3c\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x18\x30\x40\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00\x00"
-		"\x00\x00\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x30\x1e\x00"
-		"\x6c\x6c\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00\x00"
-		"\x18\x18\x00\xfe\x66\x60\x60\x78\x60\x60\x60\x66\xfe\x00\x00\x00"
-		"\x0c\x18\x20\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x3c\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x3c\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\xf8\x6c\x66\x66\xf6\xf6\x66\x66\x6c\xf8\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x0c\x78\x00"
-		"\x00\x7c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x0c\x78\x00"
-		"\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\xc6\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\x6c\x38\x6c\xc6\x00\x00\x00\x00\x00"
-		"\x00\x02\x06\x7c\xce\xde\xd6\xd6\xd6\xd6\xf6\xe6\x7c\xc0\x80\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x60\x3c\x00"
-		"\x0c\x18\x20\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x38\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x76\xdc\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x7c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xd8\xcc\xc6\xc6\xc6\xcc\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x18\x30\x60\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\xcc\xcc\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x38\x6c\x38\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x6e\x19\x7f\xd8\xd8\xd8\x6f\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x30\x1c\x00"
-		"\x00\x00\x00\x6c\x38\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x30\x1e\x00"
-		"\x00\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x38\x10\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x0c\x7e\x0c\x7c\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x0c\x78\x00"
-		"\x00\x00\x00\x00\x7c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xe0\x60\x60\x66\x66\x6c\x78\x6c\x66\xe6\x18\xf0\x00"
-		"\x00\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x06\x7c\xce\xde\xd6\xf6\xe6\x7c\xc0\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x60\x3c\x00"
-		"\x00\x00\x18\x30\x60\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\xcc\xcc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\xfc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00"
-		"\x00\xee\xee\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x6c\xfe\x6c\x6c\xfe\x6c\x6c\x6c\x00\x00"
-		"\x00\x18\x7e\xdb\xdb\xd8\x78\x1c\x1e\x9b\xdb\x7e\x18\x18"
-		"\x00\x00\xe6\xa6\xec\x1c\x18\x30\x70\x6e\xca\xce\x00\x00"
-		"\x00\x00\x38\x6c\x38\x30\x76\x7e\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x38\x38\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x6c\x38\xfe\x38\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x38\x18\x30"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x38\x00\x00"
-		"\x00\x00\x06\x06\x0c\x0c\x18\x30\x30\x60\xc0\xc0\x00\x00"
-		"\x00\x00\x7c\xc6\xce\xd6\xd6\xd6\xd6\xe6\xc6\x7c\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xcc\xfe\x0c\x0c\x1e\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x7c\xc6\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x30\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\x7e\x06\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x38\x38\x00\x00\x00\x38\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\x38\x38\x00\x00\x00\x38\x38\x18\x30"
-		"\x00\x00\x00\x0c\x18\x30\x60\x60\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xde\xde\xde\xdc\xc0\x7e\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00"
-		"\x00\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00"
-		"\x00\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xce\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\xd8\xd8\x70\x00\x00"
-		"\x00\x00\xc6\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00"
-		"\x00\x00\xc6\xc6\xee\xee\xfe\xd6\xd6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\xc6\xc6\xe6\xe6\xf6\xde\xce\xce\xc6\xc6\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x06\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x78\x6c\x66\x66\xe6\x00\x00"
-		"\x00\x00\x7c\xc6\xc0\xc0\x70\x1c\x06\x06\xc6\x7c\x00\x00"
-		"\x00\x00\xff\xdb\x99\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\xc6\xc6\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00"
-		"\x00\x00\x7c\x60\x60\x60\x60\x60\x60\x60\x60\x7c\x00\x00"
-		"\x00\x00\xc0\xc0\x60\x60\x30\x18\x18\x0c\x06\x06\x00\x00"
-		"\x00\x00\x7c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x7c\x00\x00"
-		"\x00\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x00\x38\x38\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\xe0\x60\x60\x7c\x66\x66\x66\x66\x66\xfc\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x7c\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x1c\x36\x30\x30\xfc\x30\x30\x30\x30\x78\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xce\xc6\xc6\xc6\xce\x76\x06\xfc"
-		"\x00\x00\xe0\x60\x60\x7c\x66\x66\x66\x66\x66\xe6\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78"
-		"\x00\x00\xe0\x60\x60\x66\x66\x6c\x78\x6c\x66\xe6\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\xf0"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0e"
-		"\x00\x00\x00\x00\x00\xdc\x66\x60\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\x7c\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x30\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\x6c\x38\x6c\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\x6c\x6c\x38\x30\x30\x60\xc0"
-		"\x00\x00\x00\x00\x00\xfe\x86\x0c\x18\x30\x62\xfe\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00"
-		"\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc6\xfe\x00"
-		"\x00\x00\x38\x7c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xce\x18\x0e"
-		"\x00\x00\x00\x00\x00\xe6\x6c\x78\x78\x6c\x66\xe6\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x78\x6c\x66\x66\xe6\x0c\x78"
-		"\x00\x00\x00\x00\x00\xc6\x7c\xc6\xc6\xc6\x7c\xc6\x00\x00"
-		"\x76\xdc\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x0c\x78"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\xce\xc6\x7c\x00"
-		"\x00\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\x7c\x00\x00"
-		"\x7c\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xce\xc6\xc6\xc6\x7c\x0c\x78"
-		"\x00\x00\xff\xdb\x99\x18\x1e\x3c\x78\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00"
-		"\x66\x3c\x00\xfe\xc6\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00"
-		"\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x18\x0e"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x0e"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x30\xe0"
-		"\x00\x0c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x18\xf0"
-		"\x00\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x70"
-		"\x00\x00\x6c\x38\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x7c\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x3c\x60\x38\x00\x76\xce\xc6\xc6\xc6\xce\x76\x06\xfc\x00"
-		"\x00\x00\x30\x30\x30\xfc\x30\x3c\x78\xf0\x36\x1c\x00\x00"
-		"\x00\x00\xdc\xfe\xf6\xe6\xc6\xc6\xc6\xc6\xc6\xdc\x00\x00"
-		"\x00\x00\x6c\x38\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00"
-		"\x00\x00\x00\x00\xdc\xfe\xf6\xe6\xc6\xc6\x06\x1c\x00\x00"
-		"\x7c\x00\x38\x7c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x0c\x18\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x38\x6c\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x76\xdc\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\xc6\xc6\x38\x6c\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x38\x6c\x38\x10\x38\x6c\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x3f\x6c\xcc\xcc\xff\xcc\xcc\xcc\xcc\xcf\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x30\x1e"
-		"\x66\x3c\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00"
-		"\x0e\x18\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00"
-		"\x00\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x30\x1e"
-		"\x6c\x00\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00"
-		"\x18\x18\xfe\x66\x60\x60\x7c\x60\x60\x60\x66\xfe\x00\x00"
-		"\x0c\x18\x20\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x3c\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x7e\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\xf6\xf6\x66\x66\x6c\xf8\x00\x00"
-		"\x00\x00\xc6\xc6\xe6\xe6\xf6\xde\xce\xce\xc6\xc6\x0c\x78"
-		"\x7c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xc6\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x0c\x78"
-		"\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x6c\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\x18\x3c\x66\x00\x00\x00\x00"
-		"\x02\x04\x7c\xce\xce\xd6\xd6\xd6\xd6\xe6\xe6\x7c\x40\x80"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x30\x1c"
-		"\x0c\x18\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x38\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\xc6\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x76\xdc\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x7c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xd8\xcc\xc6\xc6\xc6\xcc\x00\x00"
-		"\x00\x00\x00\x7c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x18\x30\x60\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x76\xdc\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\xcc\xcc\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x38\x6c\x38\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\x00\x00\x6e\x19\x7f\xd8\xd8\xd8\x6f\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x30\x1e"
-		"\x00\x00\x6c\x38\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x18\x1e"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x18\x18\x00\x7c\xc6\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x0c\x18\x30\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x18\x3c\x66\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x7c\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x0c\x7e\x0c\x7c\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x0c\x78"
-		"\x00\x00\x00\x7c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\xe0\x60\x60\x66\x66\x6c\x78\x6c\x66\xe6\x0c\x78"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x06\x7c\xce\xd6\xd6\xd6\xe6\x7c\xc0\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x30\x1e"
-		"\x00\x0c\x18\x30\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x10\x38\x6c\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\xcc\xcc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x76\xdc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\xfc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x18\x3c\x3c\x18\x18\x00\x18"
-		"\x00\xee\x66\xcc\x00\x00\x00\x00"
-		"\x00\x6c\xfe\x6c\x6c\x6c\xfe\x6c"
-		"\x18\x7e\xdb\xd8\x7e\x1b\xdb\x7e"
-		"\x00\x00\xc6\xcc\x18\x30\x66\xc6"
-		"\x00\x38\x6c\x3a\x7e\xcc\xcc\x76"
-		"\x00\x38\x18\x70\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x30\x30\x18\x0c"
-		"\x00\x30\x18\x0c\x0c\x0c\x18\x30"
-		"\x00\x00\x6c\x38\xfe\x38\x6c\x00"
-		"\x00\x00\x18\x18\x7e\x18\x18\x00"
-		"\x00\x00\x00\x00\x00\x38\x18\x70"
-		"\x00\x00\x00\x00\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18"
-		"\x00\x06\x0c\x18\x18\x30\x60\xc0"
-		"\x00\x7c\xc6\xce\xd6\xe6\xc6\x7c"
-		"\x00\x18\x78\x18\x18\x18\x18\x7e"
-		"\x00\x7c\xc6\x8c\x38\x60\xc2\xfe"
-		"\x00\x7c\xc6\x06\x3c\x06\xc6\x7c"
-		"\x00\x1c\x3c\x6c\xcc\xfe\x0c\x1e"
-		"\x00\xfe\xc0\xfc\x06\x06\xc6\x7c"
-		"\x00\x7c\xc6\xc0\xfc\xc6\xc6\x7c"
-		"\x00\xfe\xc6\x06\x0c\x18\x30\x30"
-		"\x00\x7c\xc6\xc6\x7c\xc6\xc6\x7c"
-		"\x00\x7c\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\x00\x18\x18\x00\x18\x18\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x70"
-		"\x00\x00\x18\x30\x60\x30\x18\x00"
-		"\x00\x00\x00\xfe\x00\xfe\x00\x00"
-		"\x00\x00\x30\x18\x0c\x18\x30\x00"
-		"\x00\x7c\xc6\xcc\x18\x18\x00\x18"
-		"\x00\x7c\xc6\xc6\xde\xdc\xc0\x7e"
-		"\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6"
-		"\x00\xfc\x66\x66\x7c\x66\x66\xfc"
-		"\x00\x3c\x66\xc2\xc0\xc2\x66\x3c"
-		"\x00\xf8\x6c\x66\x66\x66\x6c\xf8"
-		"\x00\xfe\x66\x60\x7c\x60\x66\xfe"
-		"\x00\xfe\x66\x60\x7c\x60\x60\xf0"
-		"\x00\x7c\xc6\xc0\xce\xc6\xc6\x7c"
-		"\x00\xc6\xc6\xc6\xfe\xc6\xc6\xc6"
-		"\x00\x3c\x18\x18\x18\x18\x18\x3c"
-		"\x00\x3c\x18\x18\x18\xd8\xd8\x70"
-		"\x00\xc6\xcc\xd8\xf0\xd8\xcc\xc6"
-		"\x00\xf0\x60\x60\x60\x62\x66\xfe"
-		"\x00\xc6\xc6\xee\xfe\xd6\xc6\xc6"
-		"\x00\xc6\xe6\xf6\xde\xce\xc6\xc6"
-		"\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c"
-		"\x00\xfc\x66\x66\x7c\x60\x60\xf0"
-		"\x00\x7c\xc6\xc6\xd6\xd6\x7c\x06"
-		"\x00\xfc\x66\x66\x7c\x78\x66\xe6"
-		"\x00\x7c\xc6\xc0\x7c\x06\xc6\x7c"
-		"\x00\xff\xdb\x99\x18\x18\x18\x3c"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7c"
-		"\x00\xc6\xc6\xc6\xc6\x6c\x38\x10"
-		"\x00\xc6\xc6\xd6\xd6\xfe\xee\x6c"
-		"\x00\xc6\xc6\x6c\x38\x6c\xc6\xc6"
-		"\x00\x66\x66\x66\x3c\x18\x18\x3c"
-		"\x00\xfe\xc6\x8c\x38\x62\xc6\xfe"
-		"\x00\x7c\x60\x60\x60\x60\x60\x7c"
-		"\x00\xc0\x60\x30\x30\x18\x0c\x06"
-		"\x00\x7c\x0c\x0c\x0c\x0c\x0c\x7c"
-		"\x00\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x00\x38\x30\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x78\x0c\x7c\xcc\x76"
-		"\x00\xe0\x60\x7c\x66\x66\x66\xfc"
-		"\x00\x00\x00\x78\xcc\xc0\xcc\x78"
-		"\x00\x0e\x0c\x7c\xcc\xcc\xcc\x7e"
-		"\x00\x00\x00\x7c\xc6\xfe\xc0\x7c"
-		"\x00\x1c\x36\x30\xfc\x30\x30\x78"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\xe0\x60\x7c\x66\x66\xe6"
-		"\x18\x18\x00\x38\x18\x18\x18\x3c"
-		"\x0c\x0c\x00\x1c\x0c\x0c\xcc\x78"
-		"\x00\xe0\x60\x66\x6c\x78\x6c\xe6"
-		"\x00\x38\x18\x18\x18\x18\x18\x3c"
-		"\x00\x00\x00\xec\xfe\xd6\xd6\xc6"
-		"\x00\x00\x00\xdc\x66\x66\x66\x66"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\x7c"
-		"\x00\x00\xdc\x66\x66\x7c\x60\xf0"
-		"\x00\x00\x76\xcc\xcc\x7c\x0e\x0e"
-		"\x00\x00\x00\xdc\x66\x60\x60\xf0"
-		"\x00\x00\x00\x7c\xc0\x7c\x06\xfc"
-		"\x00\x30\x30\xfc\x30\x30\x36\x1c"
-		"\x00\x00\x00\xcc\xcc\xcc\xcc\x76"
-		"\x00\x00\x00\xc6\xc6\x6c\x38\x10"
-		"\x00\x00\x00\xc6\xd6\xd6\xfe\x6c"
-		"\x00\x00\x00\xc6\x6c\x38\x6c\xc6"
-		"\x00\x00\x00\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\x00\xfe\x8c\x38\x62\xfe"
-		"\x00\x0e\x18\x18\x70\x18\x18\x0e"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x70\x18\x18\x0e\x18\x18\x70"
-		"\x00\x76\xdc\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xfe"
-		"\x38\x6c\xc6\xfe\xc6\xce\x18\x0e"
-		"\x00\x00\x00\xe6\x6c\x78\x6c\xe6"
-		"\xfc\x66\x7e\x6c\x66\xe6\x18\x70"
-		"\x00\x42\x3c\x66\x66\x3c\x42\x00"
-		"\x76\xdc\x38\x18\x18\x18\x18\x3c"
-		"\xf0\x60\x60\x62\x66\xfe\x18\x70"
-		"\x3c\x66\x38\x6c\x6c\x38\xcc\x78"
-		"\x66\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x38\x7c\xc0\x7c\x06\xc6\x7c"
-		"\x7c\x00\xfe\x60\x7c\x60\x66\xfe"
-		"\x3c\x66\xc0\xce\x66\x3e\x18\x70"
-		"\x00\xff\x99\x1e\x3c\x78\x18\x3c"
-		"\x00\x00\x00\x00\x00\x3c\x00\x00"
-		"\x6c\x38\xfe\x8c\x18\x32\x66\xfe"
-		"\x7c\x00\x00\x00\x00\x00\x00\x00"
-		"\x38\x6c\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x0f"
-		"\x00\x00\x00\x00\x00\x00\x10\x1c"
-		"\x00\x00\xdc\x76\x66\xf0\x30\xe0"
-		"\x18\x30\x00\x00\x00\x00\x00\x00"
-		"\x00\x76\xdc\x00\x38\x18\x18\x3c"
-		"\x38\x18\x18\x18\x18\x3c\x18\x70"
-		"\x6c\x38\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x04\x1c"
-		"\x00\x6c\x38\x7c\xc0\x7c\x06\xfc"
-		"\x00\x7c\x00\x7c\xc6\xfe\xc0\x7c"
-		"\x38\x60\x30\x7e\xcc\x7c\x0c\xf8"
-		"\x00\x30\x30\xfc\x30\x38\x76\x1c"
-		"\x00\xdc\xfe\xf6\xc6\xc6\xc6\xdc"
-		"\x6c\x38\x00\xfe\x8c\x38\x62\xfe"
-		"\x00\x00\xdc\xfe\xf6\xc6\x06\x1c"
-		"\x7c\x00\x7c\xc6\xc6\xfe\xc6\xc6"
-		"\x0c\x18\x7c\xc6\xc6\xfe\xc6\xc6"
-		"\x7c\x82\x7c\xc6\xc6\xfe\xc6\xc6"
-		"\xc6\x7c\x7c\xc6\xc6\xfe\xc6\xc6"
-		"\xc6\x38\x6c\xc6\xc6\xfe\xc6\xc6"
-		"\x38\x6c\x38\x6c\xc6\xfe\xc6\xc6"
-		"\x00\x3e\x78\xd8\xfe\xd8\xd8\xde"
-		"\x78\x30\x30\x30\x30\x78\x30\x1c"
-		"\x6c\x38\x7c\xc6\xc0\xc0\xc6\x7c"
-		"\x0e\x18\xfe\x62\x78\x60\x66\xfe"
-		"\xfe\x66\x60\x78\x60\x66\xfe\x1c"
-		"\x6c\xfe\x66\x60\x7c\x60\x66\xfe"
-		"\x18\xfe\x66\x60\x7c\x60\x66\xfe"
-		"\x0c\x18\x3c\x18\x18\x18\x18\x3c"
-		"\x3c\x42\x3c\x18\x18\x18\x18\x3c"
-		"\x3c\x00\x3c\x18\x18\x18\x18\x3c"
-		"\x00\xf8\x6c\x66\xf6\xf6\x6c\xf8"
-		"\xc6\xe6\xf6\xde\xce\xc6\x0c\x38"
-		"\x7c\x00\x7c\xc6\xc6\xc6\xc6\x7c"
-		"\xc6\xcc\xf8\xd8\xcc\xc6\x0c\x38"
-		"\x7c\x82\x7c\xc6\xc6\xc6\xc6\x7c"
-		"\x76\xdc\x7c\xc6\xc6\xc6\xc6\x7c"
-		"\xc6\x7c\xc6\xc6\xc6\xc6\xc6\x7c"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x03\x7e\xce\xde\xd6\xf6\xe6\xfc"
-		"\xc6\xc6\xc6\xc6\xc6\x7c\x30\x1e"
-		"\x1c\x30\xc6\xc6\xc6\xc6\xc6\x7c"
-		"\x38\x6c\x00\xc6\xc6\xc6\xc6\x7c"
-		"\xc6\x00\xc6\xc6\xc6\xc6\xc6\x7c"
-		"\x76\xdc\x00\xc6\xc6\xc6\xc6\x7c"
-		"\x7c\x00\xc6\xc6\xc6\xc6\xc6\x7c"
-		"\x00\x7c\xc6\xfc\xc6\xc6\xfc\xc0"
-		"\x00\x7c\x00\x78\x0c\x7c\xcc\x76"
-		"\x0c\x18\x20\x78\x0c\x7c\xcc\x76"
-		"\x00\x78\x84\x78\x0c\x7c\xcc\x76"
-		"\x6c\x38\x00\x78\x0c\x7c\xcc\x76"
-		"\x00\xcc\x00\x78\x0c\x7c\xcc\x76"
-		"\x00\x38\x6c\x78\x0c\x7c\xcc\x76"
-		"\x00\x00\x00\x6e\x3b\x7e\xd8\x7e"
-		"\x18\x00\x38\x18\x18\x3c\x18\x0e"
-		"\x00\xcc\x78\x78\xcc\xc0\xcc\x78"
-		"\x0c\x18\x00\x7c\xc6\xfe\xc0\x7c"
-		"\x00\x00\x7c\xc6\xfe\xc0\x7a\x1e"
-		"\x00\x6c\x00\x7c\xc6\xfe\xc0\x7c"
-		"\x00\x38\x00\x7c\xc6\xfe\xc0\x7c"
-		"\x0c\x18\x20\x38\x18\x18\x18\x3c"
-		"\x00\x3c\x42\x38\x18\x18\x18\x3c"
-		"\x00\x3c\x00\x38\x18\x18\x18\x3c"
-		"\x00\x0c\x3e\x0c\x7c\xcc\xcc\x76"
-		"\x00\x00\xdc\xe6\xc6\xc6\x18\x70"
-		"\x00\x7c\x00\x7c\xc6\xc6\xc6\x7c"
-		"\x00\xe0\x66\x6c\x78\x6c\xe6\x1c"
-		"\x7c\xc6\x00\x7c\xc6\xc6\xc6\x7c"
-		"\x76\xdc\x00\x7c\xc6\xc6\xc6\x7c"
-		"\x00\x6c\x00\x7c\xc6\xc6\xc6\x7c"
-		"\x00\x00\x18\x00\x7e\x00\x18\x00"
-		"\x00\x06\x7c\xce\xd6\xe6\x7c\xc0"
-		"\x00\x00\xcc\xcc\xcc\x7e\x30\x1c"
-		"\x0c\x18\x20\xcc\xcc\xcc\xcc\x76"
-		"\x78\xcc\x00\xcc\xcc\xcc\xcc\x76"
-		"\x00\xcc\x00\xcc\xcc\xcc\xcc\x76"
-		"\x76\xdc\x00\xcc\xcc\xcc\xcc\x76"
-		"\x00\x78\x00\xcc\xcc\xcc\xcc\x76"
-		"\x18\x00\x00\x00\x00\x00\x00\x00"
-	, "ISO-8859-4 Baltic", CIOLIB_ISO_8859_4}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc3\xc3\xdb\xdb\xc3\xc3\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc3\xe7\xff\xff\xdb\xc3\xc3\xc3\xc3\xc3\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xff\xdb\x99\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\xc3\xc3\xc3\xc3\xc3\xdb\xdb\xff\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\xc3\xc3\x66\x3c\x18\x18\x3c\x66\xc3\xc3\x00\x00\x00\x00"
-		"\x00\x00\xc3\xc3\xc3\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xff\xc3\x86\x0c\x18\x30\x60\xc1\xc3\xff\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xe6\xff\xdb\xdb\xdb\xdb\xdb\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc3\xc3\xc3\xc3\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc3\xc3\xc3\xdb\xdb\xff\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc3\x66\x3c\x18\x3c\x66\xc3\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x18\x3c\x3c\x3c\x18\x00\x00\x00\x00"
-		"\x00\x18\x18\x7e\xc3\xc0\xc0\xc0\xc3\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xe6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x82\xc6\x7c\xc6\xc6\xc6\xc6\x7c\xc6\x82\x00\x00\x00"
-		"\x00\x00\xc3\x66\x3c\x18\xff\x18\xff\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x82\xba\xa2\xa2\xba\x82\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x70\x18\x78\xc8\x78\x00\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x36\x6c\xd8\x6c\x36\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\x06\x06\x06\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x82\xba\xaa\xb2\xaa\x82\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\xf8\x18\x30\x18\xd8\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x7e\x63\x60\xc0\x00\x00\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x1b\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x0c\x06\x3c\x00\x00"
-		"\x00\x60\xe0\x60\x60\x60\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\xd8\x88\xd8\x70\x00\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd8\x6c\x36\x6c\xd8\x00\x00\x00\x00\x00\x00"
-		"\x00\xc0\xc0\xc2\xc6\xcc\x18\x30\x66\xce\x96\x3e\x06\x06\x00\x00"
-		"\x00\xc0\xc0\xc2\xc6\xcc\x18\x30\x60\xce\x9b\x06\x0c\x1f\x00\x00"
-		"\x00\xf0\x30\x72\x36\xec\x18\x30\x66\xce\x96\x3e\x06\x06\x00\x00"
-		"\x00\x00\x30\x30\x00\x30\x30\x60\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x60\x30\x18\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x10\x38\x6c\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x76\xdc\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\xc6\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x38\x6c\x38\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3e\x6c\xcc\xcc\xfe\xcc\xcc\xcc\xcc\xce\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x0c\x06\x7c\x00\x00"
-		"\x30\x18\x0c\x00\xfe\x66\x60\x7c\x60\x60\x66\xfe\x00\x00\x00\x00"
-		"\x18\x30\x60\x00\xfe\x66\x60\x7c\x60\x60\x66\xfe\x00\x00\x00\x00"
-		"\x10\x38\x6c\x00\xfe\x66\x60\x7c\x60\x60\x66\xfe\x00\x00\x00\x00"
-		"\x00\xc6\x00\xfe\x66\x60\x60\x7c\x60\x60\x66\xfe\x00\x00\x00\x00"
-		"\x30\x18\x0c\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x18\x3c\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x78\x6c\x66\x66\x66\xf6\x66\x66\x6c\x78\x00\x00\x00\x00"
-		"\x76\xdc\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x60\x30\x18\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xc6\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\x6c\x38\x10\x38\x6c\xc6\x00\x00\x00\x00\x00"
-		"\x02\x06\x7c\xce\xce\xde\xd6\xd6\xf6\xe6\xe6\x7c\xc0\x80\x00\x00"
-		"\x60\x30\x18\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x10\x38\x6c\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x0c\x18\x30\x00\xc3\xc3\x66\x3c\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\xf0\x60\x7c\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xce\xdc\xd8\xcc\xc6\xd6\xdc\xc0\x80\x00\x00"
-		"\x00\x60\x30\x18\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xcc\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x38\x6c\x38\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x6e\x3b\x1b\x7e\xd8\xdc\x77\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x3c\x66\x60\x60\x66\x3c\x0c\x06\x3c\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x06\x0c\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x18\x3c\x66\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x66\x00\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x6c\x38\x38\x6c\x0c\x3c\x6c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x02\x06\x7c\xce\xde\xd6\xf6\xe6\x7c\xc0\x80\x00\x00"
-		"\x00\x60\x30\x18\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x78\xcc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xcc\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\xf0\x60\x7c\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x66\x66\x00\xee\x66\x66\x66\x66\x66\x3e\x06\x0c\x38\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x36\x36\x7f\x36\x36\x36\x7f\x36\x36\x00\x00\x00"
-		"\x08\x08\x3e\x63\x60\x60\x3e\x03\x03\x63\x3e\x08\x08\x00"
-		"\x00\x00\x00\x61\x63\x06\x0c\x18\x30\x63\x43\x00\x00\x00"
-		"\x00\x00\x1c\x36\x36\x1c\x3b\x6e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x3c\x7e\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x01\x03\x06\x0c\x18\x30\x60\x40\x00\x00\x00\x00"
-		"\x00\x00\x3e\x63\x67\x6f\x7b\x73\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x0c\x0c\x0c\x0c\x0c\x3f\x00\x00\x00"
-		"\x00\x00\x3e\x63\x03\x06\x0c\x18\x30\x63\x7f\x00\x00\x00"
-		"\x00\x00\x3e\x63\x03\x03\x1e\x03\x03\x63\x3e\x00\x00\x00"
-		"\x00\x00\x06\x0e\x1e\x36\x66\x7f\x06\x06\x0f\x00\x00\x00"
-		"\x00\x00\x7e\x60\x60\x60\x7e\x03\x03\x63\x3e\x00\x00\x00"
-		"\x00\x00\x1c\x30\x60\x60\x7e\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x7f\x63\x03\x06\x0c\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x63\x3e\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x63\x3f\x03\x03\x06\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x7e\x00\x00\x00\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x06\x0c\x0c\x00\x0c\x0c\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x6f\x6f\x6f\x6e\x60\x3e\x00\x00\x00"
-		"\x00\x00\x08\x1c\x36\x63\x63\x7f\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x7e\x33\x33\x33\x3e\x33\x33\x33\x7e\x00\x00\x00"
-		"\x00\x00\x1e\x33\x60\x60\x60\x60\x60\x33\x1e\x00\x00\x00"
-		"\x00\x00\x7c\x36\x33\x33\x33\x33\x33\x36\x7c\x00\x00\x00"
-		"\x00\x00\x7f\x33\x30\x34\x3c\x34\x30\x33\x7f\x00\x00\x00"
-		"\x00\x00\x7f\x33\x30\x34\x3c\x34\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x1e\x33\x60\x60\x60\x6f\x63\x33\x1d\x00\x00\x00"
-		"\x00\x00\x63\x63\x63\x63\x7f\x63\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x0f\x06\x06\x06\x06\x06\x66\x66\x3c\x00\x00\x00"
-		"\x00\x00\x73\x33\x36\x36\x3c\x36\x36\x33\x73\x00\x00\x00"
-		"\x00\x00\x78\x30\x30\x30\x30\x30\x30\x33\x7f\x00\x00\x00"
-		"\x00\x00\x63\x77\x7f\x6b\x63\x63\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x63\x73\x7b\x7f\x6f\x67\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x1c\x36\x63\x63\x63\x63\x63\x36\x1c\x00\x00\x00"
-		"\x00\x00\x7e\x33\x33\x33\x3e\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x1c\x36\x63\x63\x63\x63\x6b\x3e\x1c\x06\x03\x00"
-		"\x00\x00\x7e\x33\x33\x33\x3e\x36\x33\x33\x73\x00\x00\x00"
-		"\x00\x00\x3e\x63\x63\x30\x1c\x06\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x63\x63\x63\x63\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x63\x63\x63\x63\x63\x63\x36\x1c\x08\x00\x00\x00"
-		"\x00\x00\x63\x63\x63\x63\x63\x6b\x6b\x7f\x36\x00\x00\x00"
-		"\x00\x00\x63\x63\x63\x36\x1c\x36\x63\x63\x63\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x7f\x63\x06\x0c\x18\x30\x60\x63\x7f\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\x00\x40\x60\x30\x18\x0c\x06\x03\x01\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x08\x1c\x36\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x18\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x70\x30\x30\x3e\x33\x33\x33\x33\x6e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\x60\x60\x63\x3e\x00\x00\x00"
-		"\x00\x00\x0e\x06\x06\x3e\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\x7f\x60\x63\x3e\x00\x00\x00"
-		"\x00\x00\x1e\x33\x30\x7c\x30\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3b\x66\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x00\x00\x70\x30\x30\x36\x3b\x33\x33\x33\x73\x00\x00\x00"
-		"\x00\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\x0c\x0c\x00\x1c\x0c\x0c\x0c\x0c\x0c\xcc\x78\x00"
-		"\x00\x00\x70\x30\x30\x33\x36\x3c\x36\x33\x73\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x7f\x6b\x6b\x6b\x6b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x6e\x33\x33\x33\x33\x33\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x6e\x33\x33\x33\x3e\x30\x30\x78\x00"
-		"\x00\x00\x00\x00\x00\x3b\x66\x66\x66\x3e\x06\x06\x0f\x00"
-		"\x00\x00\x00\x00\x00\x6e\x33\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\x38\x0e\x63\x3e\x00\x00\x00"
-		"\x00\x00\x00\x08\x18\x7e\x18\x18\x18\x1b\x0e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x63\x63\x63\x36\x1c\x08\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x63\x63\x6b\x6b\x7f\x36\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x63\x36\x1c\x1c\x36\x63\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x63\x66\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x00\x00\x00\x00\x00\x7f\x66\x0c\x18\x33\x7f\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x3b\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x3c\x3c\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x08\x08\x3e\x63\x60\x60\x63\x3e\x08\x08\x00"
-		"\x00\x00\x1c\x36\x30\x30\x7c\x30\x30\x73\x7e\x00\x00\x00"
-		"\x00\x00\x00\x42\x3c\x66\x66\x66\x3c\x42\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x3c\x18\x7e\x18\x7e\x18\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x3e\x63\x30\x1c\x36\x63\x63\x36\x1c\x06\x63\x3e\x00"
-		"\x00\x63\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x3e\x41\x5d\x51\x51\x5d\x41\x3e\x00\x00\x00"
-		"\x00\x38\x04\x3c\x44\x3c\x00\x7c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x1b\x36\x6c\x36\x1b\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7f\x03\x03\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7f\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x3e\x41\x5d\x55\x59\x55\x41\x3e\x00\x00\x00"
-		"\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x7e\x00\x00\x00"
-		"\x00\x38\x6c\x18\x30\x64\x7c\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x7c\x0c\x38\x0c\x6c\x38\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x06\x0c\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x3b\x60\xc0\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x0c\x06\x1c"
-		"\x00\x30\x70\x30\x30\x30\x78\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x44\x44\x44\x38\x00\x7c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x6c\x36\x1b\x36\x6c\x00\x00\x00\x00\x00"
-		"\x00\x60\xe0\x63\x66\x6c\x18\x33\x67\xcf\x1f\x03\x03\x00"
-		"\x00\x60\xe0\x63\x66\x6c\x18\x30\x6e\xc3\x06\x0c\x1f\x00"
-		"\x00\xf0\x30\x63\xf6\x6c\x18\x33\x67\xcf\x1f\x03\x03\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x30\x63\x63\x3e\x00\x00\x00"
-		"\x60\x30\x18\x00\x1c\x36\x63\x63\x7f\x63\x63\x00\x00\x00"
-		"\x03\x06\x0c\x00\x1c\x36\x63\x63\x7f\x63\x63\x00\x00\x00"
-		"\x08\x1c\x36\x00\x1c\x36\x63\x63\x7f\x63\x63\x00\x00\x00"
-		"\x3b\x6e\x00\x08\x1c\x36\x63\x63\x7f\x63\x63\x00\x00\x00"
-		"\x00\x63\x63\x08\x1c\x36\x63\x63\x7f\x63\x63\x00\x00\x00"
-		"\x1c\x36\x1c\x00\x1c\x36\x63\x63\x7f\x63\x63\x00\x00\x00"
-		"\x00\x00\x1f\x36\x66\x66\x67\x7e\x66\x66\x67\x00\x00\x00"
-		"\x00\x00\x1e\x33\x60\x60\x60\x60\x60\x33\x1e\x0c\x06\x1c"
-		"\x60\x30\x18\x00\x7f\x33\x30\x3e\x30\x33\x7f\x00\x00\x00"
-		"\x06\x0c\x18\x00\x7f\x33\x30\x3e\x30\x33\x7f\x00\x00\x00"
-		"\x08\x1c\x36\x00\x7f\x33\x30\x3e\x30\x33\x7f\x00\x00\x00"
-		"\x00\x63\x63\x00\x7f\x33\x30\x3e\x30\x33\x7f\x00\x00\x00"
-		"\x60\x30\x18\x00\x3c\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x06\x0c\x18\x00\x3c\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x18\x3c\x66\x00\x3c\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x66\x66\x00\x3c\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x3c\x36\x33\x33\x7b\x33\x33\x36\x3c\x00\x00\x00"
-		"\x3b\x6e\x00\x63\x73\x7b\x7f\x6f\x67\x63\x63\x00\x00\x00"
-		"\x60\x30\x18\x00\x1c\x36\x63\x63\x63\x36\x1c\x00\x00\x00"
-		"\x03\x06\x0c\x00\x1c\x36\x63\x63\x63\x36\x1c\x00\x00\x00"
-		"\x08\x1c\x36\x00\x1c\x36\x63\x63\x63\x36\x1c\x00\x00\x00"
-		"\x00\x3b\x6e\x00\x1c\x36\x63\x63\x63\x36\x1c\x00\x00\x00"
-		"\x00\x63\x63\x00\x1c\x36\x63\x63\x63\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x63\x36\x1c\x08\x1c\x36\x63\x00\x00\x00\x00"
-		"\x00\x03\x1e\x36\x67\x6f\x6b\x7b\x73\x36\x3c\x60\x00\x00"
-		"\x60\x30\x18\x00\x63\x63\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x03\x06\x0c\x00\x63\x63\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x08\x1c\x36\x00\x63\x63\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x63\x63\x00\x63\x63\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x06\x0c\x18\x00\x66\x66\x66\x3c\x18\x18\x3c\x00\x00\x00"
-		"\x00\x78\x30\x3e\x33\x33\x3e\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x1c\x36\x63\x66\x6c\x67\x63\x6b\x6e\x60\x60\x00"
-		"\x00\x60\x30\x18\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x06\x0c\x18\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x08\x1c\x36\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x3b\x6e\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x66\x66\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x1c\x36\x1c\x00\x3c\x06\x3e\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\x0b\x3b\x6e\x68\x37\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x63\x60\x60\x63\x3e\x0c\x06\x1c"
-		"\x00\x30\x18\x0c\x00\x3e\x63\x7f\x60\x63\x3e\x00\x00\x00"
-		"\x00\x03\x06\x0c\x00\x3e\x63\x7f\x60\x63\x3e\x00\x00\x00"
-		"\x00\x08\x1c\x36\x00\x3e\x63\x7f\x60\x63\x3e\x00\x00\x00"
-		"\x00\x00\x63\x63\x00\x3e\x63\x7f\x60\x63\x3e\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x06\x0c\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x18\x3c\x66\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x66\x66\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x36\x1c\x36\x06\x3e\x66\x66\x66\x3c\x00\x00\x00"
-		"\x00\x00\x3b\x6e\x00\x6e\x33\x33\x33\x33\x33\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x3e\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x06\x0c\x18\x00\x3e\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x08\x1c\x36\x00\x3e\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x3b\x6e\x00\x3e\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x63\x63\x00\x3e\x63\x63\x63\x63\x3e\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x7e\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x03\x3e\x67\x6f\x7b\x73\x3e\x60\x00\x00"
-		"\x00\x60\x30\x18\x00\x66\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\x06\x0c\x18\x00\x66\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\x18\x3c\x66\x00\x66\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\x00\x66\x66\x00\x66\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\x06\x0c\x18\x00\x63\x66\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x00\x00\x00\x78\x30\x3e\x33\x33\x33\x33\x3e\x30\x78\x00"
-		"\x00\x00\x66\x66\x00\x66\x66\x66\x66\x3e\x06\x66\x3c\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x78\x78\x30\x30\x00\x30\x00"
-		"\x6c\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x30\x7c\xc0\x78\x0c\xf8\x30\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x60\x60\xc0\x00\x00\x00\x00\x00"
-		"\x18\x30\x60\x60\x60\x30\x18\x00"
-		"\x60\x30\x18\x18\x18\x30\x60\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x30\x30\xfc\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x60"
-		"\x00\x00\x00\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x7c\xc6\xce\xde\xf6\xe6\x7c\x00"
-		"\x30\x70\x30\x30\x30\x30\xfc\x00"
-		"\x78\xcc\x0c\x38\x60\xcc\xfc\x00"
-		"\x78\xcc\x0c\x38\x0c\xcc\x78\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\xfc\xc0\xf8\x0c\x0c\xcc\x78\x00"
-		"\x38\x60\xc0\xf8\xcc\xcc\x78\x00"
-		"\xfc\xcc\x0c\x18\x30\x30\x30\x00"
-		"\x78\xcc\xcc\x78\xcc\xcc\x78\x00"
-		"\x78\xcc\xcc\x7c\x0c\x18\x70\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x60"
-		"\x18\x30\x60\xc0\x60\x30\x18\x00"
-		"\x00\x00\xfc\x00\x00\xfc\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x78\xcc\x0c\x18\x30\x00\x30\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x30\x78\xcc\xcc\xfc\xcc\xcc\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3e\x00"
-		"\xcc\xcc\xcc\xfc\xcc\xcc\xcc\x00"
-		"\x78\x30\x30\x30\x30\x30\x78\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x38\x6c\xc6\xc6\xc6\x6c\x38\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x78\xcc\xcc\xcc\xdc\x78\x1c\x00"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x78\xcc\xe0\x70\x1c\xcc\x78\x00"
-		"\xfc\xb4\x30\x30\x30\x30\x78\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xfc\x00"
-		"\xcc\xcc\xcc\xcc\xcc\x78\x30\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc6\xc6\x6c\x38\x38\x6c\xc6\x00"
-		"\xcc\xcc\xcc\x78\x30\x30\x78\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x78\x60\x60\x60\x60\x60\x78\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x78\x18\x18\x18\x18\x18\x78\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x30\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\xe0\x60\x60\x7c\x66\x66\xdc\x00"
-		"\x00\x00\x78\xcc\xc0\xcc\x78\x00"
-		"\x1c\x0c\x0c\x7c\xcc\xcc\x76\x00"
-		"\x00\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x38\x6c\x60\xf0\x60\x60\xf0\x00"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\xf8"
-		"\xe0\x60\x6c\x76\x66\x66\xe6\x00"
-		"\x30\x00\x70\x30\x30\x30\x78\x00"
-		"\x0c\x00\x0c\x0c\x0c\xcc\xcc\x78"
-		"\xe0\x60\x66\x6c\x78\x6c\xe6\x00"
-		"\x70\x30\x30\x30\x30\x30\x78\x00"
-		"\x00\x00\xcc\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x78\x00"
-		"\x00\x00\xdc\x66\x66\x7c\x60\xf0"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\x1e"
-		"\x00\x00\xdc\x76\x66\x60\xf0\x00"
-		"\x00\x00\x7c\xc0\x78\x0c\xf8\x00"
-		"\x10\x30\x7c\x30\x30\x34\x18\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x76\x00"
-		"\x00\x00\xcc\xcc\xcc\x78\x30\x00"
-		"\x00\x00\xc6\xd6\xfe\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\xcc\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\xfc\x98\x30\x64\xfc\x00"
-		"\x1c\x30\x30\xe0\x30\x30\x1c\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\xe0\x30\x30\x1c\x30\x30\xe0\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x00\x30\x30\x78\x78\x30\x00"
-		"\x00\x00\x10\x7c\xc0\xc0\x7c\x10"
-		"\x00\x38\x60\x60\xf0\x60\xfc\x00"
-		"\x00\xc3\x3c\x66\x66\x3c\xc3\x00"
-		"\x00\xcc\xcc\x78\x30\xfc\x30\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\x7e\xc0\x7c\xc6\x7c\x06\xfc\x00"
-		"\xc6\x00\x00\x00\x00\x00\x00\x00"
-		"\x7c\x82\xba\xa2\xba\x82\x7c\x00"
-		"\x1c\x06\x1e\x22\x1f\x3f\x00\x00"
-		"\x00\x33\x66\xcc\x66\x33\x00\x00"
-		"\x00\xfe\x06\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7c\x82\xba\xb2\xaa\x82\x7c\x00"
-		"\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x38\x6c\x38\x00\x00\x00\x00\x00"
-		"\x00\x10\x7c\x10\x00\x7c\x00\x00"
-		"\x1c\x36\x06\x18\x3e\x00\x00\x00"
-		"\x1e\x02\x0e\x02\x1e\x00\x00\x00"
-		"\x18\x30\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x76\xc0"
-		"\x7e\xca\xca\x7e\x0a\x0a\x0a\x00"
-		"\x00\x00\x00\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x30"
-		"\x06\x0e\x06\x06\x06\x00\x00\x00"
-		"\x0e\x11\x11\x11\x0e\x1f\x00\x00"
-		"\x00\xcc\x66\x33\x66\xcc\x00\x00"
-		"\x60\xe0\x66\x6c\x33\x67\x0f\x03"
-		"\x60\xe0\x66\x6c\x36\x6a\x04\x0e"
-		"\xf0\x20\x96\x6c\x33\x67\x0f\x03"
-		"\x30\x00\x30\x60\xc0\xcc\x78\x00"
-		"\x18\x0c\x30\x78\xcc\xfc\xcc\x00"
-		"\x60\xc0\x30\x78\xcc\xfc\xcc\x00"
-		"\x78\x84\x30\x78\xcc\xfc\xcc\x00"
-		"\x66\x98\x30\x78\xcc\xfc\xcc\x00"
-		"\xcc\x00\x30\x78\xcc\xfc\xcc\x00"
-		"\x30\x48\x30\x78\xcc\xfc\xcc\x00"
-		"\x3e\x78\x98\x9c\xf8\x98\x9e\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x1c\x30"
-		"\x30\x18\xfe\x62\x78\x62\xfe\x00"
-		"\x18\x30\xfe\x62\x78\x62\xfe\x00"
-		"\x38\x44\xfe\x62\x78\x62\xfe\x00"
-		"\x66\x00\xfe\x62\x78\x62\xfe\x00"
-		"\x60\x30\x78\x30\x30\x30\x78\x00"
-		"\x18\x30\x78\x30\x30\x30\x78\x00"
-		"\x78\x84\x78\x30\x30\x30\x78\x00"
-		"\xcc\x00\x78\x30\x30\x30\x78\x00"
-		"\x78\x6c\x66\xf6\x66\x6c\x78\x00"
-		"\x66\x98\xe6\xf6\xde\xce\xc6\x00"
-		"\x30\x18\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x18\x30\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x38\x44\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x66\x98\x7c\xc6\xc6\xc6\x7c\x00"
-		"\xc6\x00\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x00\xc6\x6c\x38\x38\x6c\xc6\x00"
-		"\x06\x7c\xce\x9a\xb2\xe6\x78\xc0"
-		"\x60\x30\xcc\xcc\xcc\xcc\xfc\x00"
-		"\x18\x30\xcc\xcc\xcc\xcc\xfc\x00"
-		"\x78\x84\xcc\xcc\xcc\xcc\xfc\x00"
-		"\xcc\x00\xcc\xcc\xcc\xcc\xfc\x00"
-		"\x18\x30\xcc\xcc\x78\x30\x78\x00"
-		"\x60\x78\x6c\x78\x60\x60\x60\x00"
-		"\x78\xcc\xc4\xdc\xc6\xc6\xdc\xc0"
-		"\x30\x18\x78\x0c\x7c\xcc\x76\x00"
-		"\x18\x30\x78\x0c\x7c\xcc\x76\x00"
-		"\x78\x84\x78\x0c\x7c\xcc\x76\x00"
-		"\x66\x98\x78\x0c\x7c\xcc\x76\x00"
-		"\xcc\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\x30\x48\x38\x0c\x7c\xcc\x76\x00"
-		"\x00\x00\xec\x32\x7e\xb0\x6e\x00"
-		"\x00\x00\x3c\x66\xc0\x66\x1c\x30"
-		"\x30\x18\x78\xcc\xfc\xc0\x78\x00"
-		"\x18\x30\x78\xcc\xfc\xc0\x78\x00"
-		"\x78\x84\x78\xcc\xfc\xc0\x78\x00"
-		"\xcc\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x60\x30\x00\x70\x30\x30\x78\x00"
-		"\x18\x30\x00\x70\x30\x30\x78\x00"
-		"\x70\x88\x00\x70\x30\x30\x78\x00"
-		"\xcc\x00\x00\x70\x30\x30\x78\x00"
-		"\x6c\x38\x6c\x0c\x6c\xcc\x78\x00"
-		"\x66\x98\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x60\x30\x00\x7c\xc6\xc6\x7c\x00"
-		"\x18\x30\x00\x7c\xc6\xc6\x7c\x00"
-		"\x38\x44\x00\x7c\xc6\xc6\x7c\x00"
-		"\x66\x98\x00\x7c\xc6\xc6\x7c\x00"
-		"\xc6\x00\x00\x7c\xc6\xc6\x7c\x00"
-		"\x00\x00\x18\x00\x7e\x00\x18\x00"
-		"\x00\x00\x06\x7c\xde\xf6\x7c\xc0"
-		"\x60\x30\x00\xcc\xcc\xcc\x76\x00"
-		"\x18\x30\x00\xcc\xcc\xcc\x76\x00"
-		"\x30\x48\x00\xcc\xcc\xcc\x76\x00"
-		"\xcc\x00\x00\xcc\xcc\xcc\x76\x00"
-		"\x18\x30\xcc\xcc\xcc\x7c\x0c\xf8"
-		"\xe0\x78\x6c\x66\x6c\x78\xe0\x00"
-		"\xcc\x00\xcc\xcc\xcc\x7c\x0c\xf8"
-	, "ISO-8859-1 West European", CIOLIB_ISO_8859_1}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7e\x81\xa5\x81\x81\xa5\x99\x81\x81\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7e\xff\xdb\xff\xff\xdb\xe7\xff\xff\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\xe7\xe7\xe7\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\xff\xff\x7e\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff\xff\xff"
-		"\x00\x00\x1e\x06\x0e\x1a\x78\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\x66\x66\x66\x3c\x18\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x3f\x33\x3f\x30\x30\x30\x30\x70\xf0\xe0\x00\x00\x00\x00"
-		"\x00\x00\x7f\x63\x7f\x63\x63\x63\x63\x67\xe7\xe6\xc0\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\xdb\x3c\xe7\x3c\xdb\x18\x18\x00\x00\x00\x00"
-		"\x00\x80\xc0\xe0\xf0\xf8\xfe\xf8\xf0\xe0\xc0\x80\x00\x00\x00\x00"
-		"\x00\x02\x06\x0e\x1e\x3e\xfe\x3e\x1e\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x66\x00\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x1b\x00\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x0c\xfe\x0c\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x60\xfe\x60\x30\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc0\xc0\xc0\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x28\x6c\xfe\x6c\x28\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xd6\xd6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x6c\xc6\xc6\xc6\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x3e\x66\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\x54\x7c\xd6\xd6\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x1c\x06\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x0c\xda\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x02\x06\x04\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\xe0\xe0\x60\x60\x7c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xe6\xb6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x78\xcc\x06\x06\x1e\x1e\x06\x06\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xfe\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xfc\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc2\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\x7c\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1c\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xcc\xd8\xf8\xd8\xcc\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x66\x66\x66\x66\x66\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc2\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00"
-		"\x00\x00\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x06\x0c\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\x00\x00\x00\xe0\x60\x7c\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xe6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x9c\xb6\xb6\xf6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00\x00"
-		"\x66\x66\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x30\x18\x0c\x06\x0c\x18\x30\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x60\x30\x18\x0c\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x0e\x1b\x1b\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xd8\xd8\xd8\x70\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\xec\x6c\x6c\x3c\x1c\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\xba\xaa\xa2\xa2\xa2\xaa\xba\x82\x7c\x00\x00\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7e\x81\xa5\x81\x81\xa5\x99\x81\x7e\x00\x00\x00"
-		"\x00\x00\x7e\xff\xdb\xff\xff\xc3\xe7\xff\x7e\x00\x00\x00"
-		"\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\xe7\xe7\xe7\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\xff\xff\x7e\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff\xff"
-		"\x00\x00\x1e\x0e\x1a\x32\x78\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x18\x7e\x18\x18\x00\x00\x00"
-		"\x00\x00\x3f\x33\x3f\x30\x30\x30\x70\xf0\xe0\x00\x00\x00"
-		"\x00\x00\x7f\x63\x7f\x63\x63\x63\x67\xe7\xe6\xc0\x00\x00"
-		"\x00\x00\x18\x18\xdb\x3c\xe7\x3c\xdb\x18\x18\x00\x00\x00"
-		"\x00\x00\x80\xc0\xe0\xf8\xfe\xf8\xe0\xc0\x80\x00\x00\x00"
-		"\x00\x00\x02\x06\x0e\x3e\xfe\x3e\x0e\x06\x02\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x00\x66\x66\x00\x00\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x7e\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x0c\xfe\x0c\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x30\x60\xfe\x60\x30\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xc0\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x28\x6c\xfe\x6c\x28\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x86\xc6\x7c\x18\x18\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x66\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xce\xde\xf6\xe6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x0c\x78\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\x66\x3a\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\xe6\x66\x6c\x6c\x78\x6c\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xfe\x7c\x6c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x38\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x8c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xfe\x6c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x66\xfe\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x6c\xc6\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3e\x66\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\x54\x7c\xd6\xd6\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x1c\x06\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x0c\xda\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x82\xc6\xc6\xee\xee\xfe\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x02\x06\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x00\x00\x00"
-		"\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x00"
-		"\x00\x00\xe0\xe0\x60\x7c\x66\x66\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xe6\xb6\xb6\xb6\xb6\xe6\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x1e\x06\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\x9c\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc0\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc2\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfc\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\x7c\xd6\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x1c\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xcc\xf8\xd8\xcc\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x66\x66\x66\x66\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x7c\x00"
-		"\x00\x00\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\x7c\x10\x38\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xfe\x06\x0c\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x00"
-		"\x00\x00\x00\x00\x00\xe0\x60\x7c\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xe6\xb6\xb6\xe6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x1e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x9c\xb6\xb6\xf6\xb6\x9c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\x7e\x36\x66\xc6\x00\x00\x00"
-		"\x6c\x6c\x00\xfe\xc6\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xfc\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x06\x0c\x18\x30\x00\x7e\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x60\x30\x18\x0c\x00\x7e\x00\x00\x00"
-		"\x00\x00\x0e\x1b\x1b\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xd8\xd8\x70\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\xec\x6c\x3c\x1c\x00\x00\x00"
-		"\x00\x00\x7c\x82\xba\xaa\xa2\xa2\xaa\xba\x82\x7c\x00\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x81\xa5\x81\xbd\x99\x81\x7e"
-		"\x7e\xff\xdb\xff\xc3\xe7\xff\x7e"
-		"\x6c\xfe\xfe\xfe\x7c\x38\x10\x00"
-		"\x10\x38\x7c\xfe\x7c\x38\x10\x00"
-		"\x38\x7c\x38\xfe\xfe\x7c\x38\x7c"
-		"\x10\x10\x38\x7c\xfe\x7c\x38\x7c"
-		"\x00\x00\x18\x3c\x3c\x18\x00\x00"
-		"\xff\xff\xe7\xc3\xc3\xe7\xff\xff"
-		"\x00\x3c\x66\x42\x42\x66\x3c\x00"
-		"\xff\xc3\x99\xbd\xbd\x99\xc3\xff"
-		"\x0f\x07\x0f\x7d\xcc\xcc\xcc\x78"
-		"\x3c\x66\x66\x66\x3c\x18\x7e\x18"
-		"\x3f\x33\x3f\x30\x30\x70\xf0\xe0"
-		"\x7f\x63\x7f\x63\x63\x67\xe6\xc0"
-		"\x99\x5a\x3c\xe7\xe7\x3c\x5a\x99"
-		"\x80\xe0\xf8\xfe\xf8\xe0\x80\x00"
-		"\x02\x0e\x3e\xfe\x3e\x0e\x02\x00"
-		"\x18\x3c\x7e\x18\x18\x7e\x3c\x18"
-		"\x66\x66\x66\x66\x66\x00\x66\x00"
-		"\x7f\xdb\xdb\x7b\x1b\x1b\x1b\x00"
-		"\x3e\x63\x38\x6c\x6c\x38\xcc\x78"
-		"\x00\x00\x00\x00\x7e\x7e\x7e\x00"
-		"\x18\x3c\x7e\x18\x7e\x3c\x18\xff"
-		"\x18\x3c\x7e\x18\x18\x18\x18\x00"
-		"\x18\x18\x18\x18\x7e\x3c\x18\x00"
-		"\x00\x18\x0c\xfe\x0c\x18\x00\x00"
-		"\x00\x30\x60\xfe\x60\x30\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xfe\x00\x00"
-		"\x00\x24\x66\xff\x66\x24\x00\x00"
-		"\x00\x18\x3c\x7e\xff\xff\x00\x00"
-		"\x00\xff\xff\x7e\x3c\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x78\x78\x30\x30\x00\x30\x00"
-		"\x6c\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x30\x7c\xc0\x78\x0c\xf8\x30\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x60\x60\xc0\x00\x00\x00\x00\x00"
-		"\x18\x30\x60\x60\x60\x30\x18\x00"
-		"\x60\x30\x18\x18\x18\x30\x60\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x30\x30\xfc\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x60"
-		"\x00\x00\x00\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x7c\xc6\xce\xde\xf6\xe6\x7c\x00"
-		"\x30\x70\x30\x30\x30\x30\xfc\x00"
-		"\x78\xcc\x0c\x38\x60\xcc\xfc\x00"
-		"\x78\xcc\x0c\x38\x0c\xcc\x78\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\xfc\xc0\xf8\x0c\x0c\xcc\x78\x00"
-		"\x38\x60\xc0\xf8\xcc\xcc\x78\x00"
-		"\xfc\xcc\x0c\x18\x30\x30\x30\x00"
-		"\x78\xcc\xcc\x78\xcc\xcc\x78\x00"
-		"\x78\xcc\xcc\x7c\x0c\x18\x70\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x60"
-		"\x18\x30\x60\xc0\x60\x30\x18\x00"
-		"\x00\x00\xfc\x00\x00\xfc\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x78\xcc\x0c\x18\x30\x00\x30\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x30\x78\xcc\xcc\xfc\xcc\xcc\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3e\x00"
-		"\xcc\xcc\xcc\xfc\xcc\xcc\xcc\x00"
-		"\x78\x30\x30\x30\x30\x30\x78\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x38\x6c\xc6\xc6\xc6\x6c\x38\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x78\xcc\xcc\xcc\xdc\x78\x1c\x00"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x78\xcc\xe0\x70\x1c\xcc\x78\x00"
-		"\xfc\xb4\x30\x30\x30\x30\x78\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xfc\x00"
-		"\xcc\xcc\xcc\xcc\xcc\x78\x30\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc6\x44\x6c\x38\x38\x6c\xc6\x00"
-		"\xcc\xcc\xcc\x78\x30\x30\x78\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x78\x60\x60\x60\x60\x60\x78\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x78\x18\x18\x18\x18\x18\x78\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x30\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x7c\x00"
-		"\x60\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x00\x00\x78\xcc\xc0\xcc\x78\x00"
-		"\x0c\x0c\x0c\x7c\xcc\xcc\x7c\x00"
-		"\x00\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x38\x6c\x60\xf0\x60\x60\xf0\x00"
-		"\x00\x00\x7c\xcc\xcc\x7c\x0c\xf8"
-		"\x60\x60\x7c\x66\x66\x66\x66\x00"
-		"\x30\x00\x70\x30\x30\x30\x78\x00"
-		"\x0c\x00\x0c\x0c\x0c\x0c\x6c\x38"
-		"\x60\x60\x66\x6c\x78\x6c\x66\x00"
-		"\x70\x30\x30\x30\x30\x30\x78\x00"
-		"\x00\x00\xcc\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x78\x00"
-		"\x00\x00\x7c\x66\x66\x7c\x60\x60"
-		"\x00\x00\x7c\xcc\xcc\x7c\x0c\x0c"
-		"\x00\x00\xdc\x76\x66\x60\xf0\x00"
-		"\x00\x00\x7c\xc0\x78\x0c\xf8\x00"
-		"\x10\x30\x7c\x30\x30\x34\x18\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x7c\x00"
-		"\x00\x00\xcc\xcc\xcc\x78\x30\x00"
-		"\x00\x00\xc6\xd6\xfe\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\xcc\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\xfc\x98\x30\x64\xfc\x00"
-		"\x1c\x30\x30\xe0\x30\x30\x1c\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\xe0\x30\x30\x1c\x30\x30\xe0\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\xc6\xc6\xfe\x00"
-		"\x1e\x36\x66\x66\x7e\x66\x66\x00"
-		"\x7c\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x7c\x66\x66\x7c\x66\x66\x7c\x00"
-		"\x7e\x60\x60\x60\x60\x60\x60\x00"
-		"\x38\x6c\x6c\x6c\x6c\x6c\xfe\xc6"
-		"\x7e\x60\x60\x7c\x60\x60\x7e\x00"
-		"\xdb\xdb\x7e\x3c\x7e\xdb\xdb\x00"
-		"\x3c\x66\x06\x1c\x06\x66\x3c\x00"
-		"\x66\x66\x6e\x7e\x76\x66\x66\x00"
-		"\x3c\x66\x6e\x7e\x76\x66\x66\x00"
-		"\x66\x6c\x78\x70\x78\x6c\x66\x00"
-		"\x1e\x36\x66\x66\x66\x66\x66\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\x66\x66\x66\x7e\x66\x66\x66\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3c\x00"
-		"\x7e\x66\x66\x66\x66\x66\x66\x00"
-		"\x7c\x66\x66\x66\x7c\x60\x60\x00"
-		"\x3c\x66\x60\x60\x60\x66\x3c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\x66\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x7e\xdb\xdb\xdb\x7e\x18\x18\x00"
-		"\x66\x66\x3c\x18\x3c\x66\x66\x00"
-		"\x66\x66\x66\x66\x66\x66\x7f\x03"
-		"\x66\x66\x66\x3e\x06\x06\x06\x00"
-		"\xdb\xdb\xdb\xdb\xdb\xdb\xff\x00"
-		"\xdb\xdb\xdb\xdb\xdb\xdb\xff\x03"
-		"\xe0\x60\x60\x7c\x66\x66\x7c\x00"
-		"\xc6\xc6\xc6\xf6\xde\xde\xf6\x00"
-		"\x60\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x78\x8c\x06\x3e\x06\x8c\x78\x00"
-		"\xce\xdb\xdb\xfb\xdb\xdb\xce\x00"
-		"\x3e\x66\x66\x66\x3e\x36\x66\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\x00\x3c\x60\x3c\x66\x66\x3c\x00"
-		"\x00\x00\x7c\x66\x7c\x66\x7c\x00"
-		"\x00\x00\x7e\x60\x60\x60\x60\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\xfe\xc6"
-		"\x00\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x00\x00\xdb\x7e\x3c\x7e\xdb\x00"
-		"\x00\x00\x3c\x66\x0c\x66\x3c\x00"
-		"\x00\x00\x66\x6e\x7e\x76\x66\x00"
-		"\x00\x18\x66\x6e\x7e\x76\x66\x00"
-		"\x00\x00\x66\x6c\x78\x6c\x66\x00"
-		"\x00\x00\x1e\x36\x66\x66\x66\x00"
-		"\x00\x00\xc6\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\x66\x66\x7e\x66\x66\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00"
-		"\x00\x00\x7e\x66\x66\x66\x66\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\xf8\x18\x18\x18\x18"
-		"\x18\xf8\x18\xf8\x18\x18\x18\x18"
-		"\x36\x36\x36\xf6\x36\x36\x36\x36"
-		"\x00\x00\x00\xfe\x36\x36\x36\x36"
-		"\x00\xf8\x18\xf8\x18\x18\x18\x18"
-		"\x36\xf6\x06\xf6\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\xfe\x06\xf6\x36\x36\x36\x36"
-		"\x36\xf6\x06\xfe\x00\x00\x00\x00"
-		"\x36\x36\x36\xfe\x00\x00\x00\x00"
-		"\x18\xf8\x18\xf8\x00\x00\x00\x00"
-		"\x00\x00\x00\xf8\x18\x18\x18\x18"
-		"\x18\x18\x18\x1f\x00\x00\x00\x00"
-		"\x18\x18\x18\xff\x00\x00\x00\x00"
-		"\x00\x00\x00\xff\x18\x18\x18\x18"
-		"\x18\x18\x18\x1f\x18\x18\x18\x18"
-		"\x00\x00\x00\xff\x00\x00\x00\x00"
-		"\x18\x18\x18\xff\x18\x18\x18\x18"
-		"\x18\x1f\x18\x1f\x18\x18\x18\x18"
-		"\x36\x36\x36\x37\x36\x36\x36\x36"
-		"\x36\x37\x30\x3f\x00\x00\x00\x00"
-		"\x00\x3f\x30\x37\x36\x36\x36\x36"
-		"\x36\xf7\x00\xff\x00\x00\x00\x00"
-		"\x00\xff\x00\xf7\x36\x36\x36\x36"
-		"\x36\x37\x30\x37\x36\x36\x36\x36"
-		"\x00\xff\x00\xff\x00\x00\x00\x00"
-		"\x36\xf7\x00\xf7\x36\x36\x36\x36"
-		"\x18\xff\x00\xff\x00\x00\x00\x00"
-		"\x36\x36\x36\xff\x00\x00\x00\x00"
-		"\x00\xff\x00\xff\x18\x18\x18\x18"
-		"\x00\x00\x00\xff\x36\x36\x36\x36"
-		"\x36\x36\x36\x3f\x00\x00\x00\x00"
-		"\x18\x1f\x18\x1f\x00\x00\x00\x00"
-		"\x00\x1f\x18\x1f\x18\x18\x18\x18"
-		"\x00\x00\x00\x3f\x36\x36\x36\x36"
-		"\x36\x36\x36\xff\x36\x36\x36\x36"
-		"\x18\xff\x18\xff\x18\x18\x18\x18"
-		"\x18\x18\x18\xf8\x00\x00\x00\x00"
-		"\x00\x00\x00\x1f\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\x66\x66\x7c\x60\x00"
-		"\x00\x00\x3c\x66\x60\x66\x3c\x00"
-		"\x00\x00\x7e\x18\x18\x18\x18\x00"
-		"\x00\x00\x66\x66\x3e\x06\x3c\x00"
-		"\x00\x00\x7e\xdb\xdb\x7e\x18\x00"
-		"\x00\x00\x66\x3c\x18\x3c\x66\x00"
-		"\x00\x00\x66\x66\x66\x66\x7f\x03"
-		"\x00\x00\x66\x66\x3e\x06\x06\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\xff\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\xff\x03"
-		"\x00\x00\xe0\x60\x7c\x66\x7c\x00"
-		"\x00\x00\xc6\xc6\xf6\xde\xf6\x00"
-		"\x00\x00\x60\x60\x7c\x66\x7c\x00"
-		"\x00\x00\x7c\x06\x3e\x06\x7c\x00"
-		"\x00\x00\xce\xdb\xfb\xdb\xce\x00"
-		"\x00\x00\x3e\x66\x3e\x36\x66\x00"
-		"\x66\x00\x7e\x60\x7c\x60\x7e\x00"
-		"\x24\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x00\x30\x18\x0c\x06\x0c\x18\x30"
-		"\x00\x0c\x18\x30\x60\x30\x18\x0c"
-		"\x0e\x1b\x1b\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\xd8\xd8\x70"
-		"\x00\x18\x18\x00\x7e\x00\x18\x18"
-		"\x00\x76\xdc\x00\x76\xdc\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x00\x00\x00"
-		"\x00\x00\x00\x38\x38\x00\x00\x00"
-		"\x03\x02\x06\x04\xcc\x68\x38\x10"
-		"\x3c\x42\x99\xa1\xa1\x99\x42\x3c"
-		"\x30\x48\x10\x20\x78\x00\x00\x00"
-		"\x00\x00\x7c\x7c\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x7e\x00"
-	, "Codepage 866 Russian", CIOLIB_CP866M2}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7e\x81\xa5\x81\x81\xbd\x99\x81\x81\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7e\xff\xdb\xff\xff\xc3\xe7\xff\xff\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\xe7\xe7\xe7\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\xff\xff\x7e\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff\xff\xff"
-		"\x00\x00\x3e\x0a\x12\x22\x78\x84\x84\x84\x84\x78\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x44\x44\x44\x38\x10\x7c\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x3f\x21\x3f\x20\x20\x20\x20\x60\xe0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x3f\x21\x3f\x21\x21\x21\x21\x23\x67\xe6\xc0\x00\x00\x00"
-		"\x00\x00\x00\x10\x10\xd6\x38\xee\x38\xd6\x10\x10\x00\x00\x00\x00"
-		"\x00\x80\xc0\xe0\xf0\xf8\xfe\xf8\xf0\xe0\xc0\x80\x00\x00\x00\x00"
-		"\x00\x02\x06\x0e\x1e\x3e\xfe\x3e\x1e\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x7c\x10\x10\x10\x7c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x42\x42\x42\x42\x42\x42\x42\x00\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x7f\x89\x89\x89\x79\x09\x09\x09\x09\x09\x00\x00\x00\x00"
-		"\x00\x7c\x86\x40\x38\x44\x82\x82\x44\x38\x04\xc2\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x7c\x10\x10\x10\x7c\x38\x10\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x7c\x10\x10\x10\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x10\x10\x10\x10\x10\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x08\x04\xfe\x04\x08\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x20\x40\xfe\x40\x20\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x80\x80\x80\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x28\x6c\xfe\x6c\x28\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x38\x38\x10\x10\x10\x00\x10\x10\x00\x00\x00\x00"
-		"\x00\x42\x42\x42\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x44\x44\xfe\x44\x44\x44\xfe\x44\x44\x00\x00\x00\x00"
-		"\x10\x10\x7c\x82\x82\x40\x30\x0c\x04\x82\x82\x7c\x10\x10\x00\x00"
-		"\x00\x00\x00\x00\x00\x82\x84\x08\x10\x20\x42\x82\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x44\x38\x38\x47\x44\x44\x44\x3b\x00\x00\x00\x00"
-		"\x00\x20\x20\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x04\x08\x10\x10\x10\x10\x10\x10\x08\x04\x00\x00\x00\x00"
-		"\x00\x00\x20\x10\x08\x08\x08\x08\x08\x08\x10\x20\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x24\x18\xff\x18\x24\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x10\x10\x7c\x10\x10\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x10\x20\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x02\x04\x08\x10\x20\x40\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x82\x82\x92\x92\x82\x82\x44\x38\x00\x00\x00\x00"
-		"\x00\x00\x08\x18\x38\x08\x08\x08\x08\x08\x08\x3e\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x02\x04\x08\x10\x20\x40\x82\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x02\x02\x3c\x02\x02\x02\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x14\x24\x44\x84\xfe\x04\x04\x04\x0e\x00\x00\x00\x00"
-		"\x00\x00\xfe\x80\x80\x80\xfc\x02\x02\x02\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x40\x80\x80\xfc\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\x82\x02\x02\x04\x08\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x82\x7c\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x82\x7e\x02\x02\x02\x04\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x10\x00\x00\x00\x10\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x10\x00\x00\x00\x10\x10\x20\x00\x00\x00\x00"
-		"\x00\x00\x00\x04\x08\x10\x20\x40\x20\x10\x08\x04\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x40\x20\x10\x08\x04\x08\x10\x20\x40\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x02\x04\x08\x08\x00\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\x82\x82\x9e\x92\x92\x8c\x80\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x28\x44\x82\x82\xfe\x82\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\xfc\x42\x42\x42\x7c\x42\x42\x42\x42\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x82\x80\x80\x80\x80\x82\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x44\x42\x42\x42\x42\x42\x42\x44\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x42\x42\x48\x78\x48\x40\x42\x42\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x42\x42\x48\x78\x48\x40\x40\x40\xe0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x82\x80\x80\x9e\x82\x82\x46\x3a\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x82\xfe\x82\x82\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x38\x10\x10\x10\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\x0e\x04\x04\x04\x04\x04\x84\x84\x84\x78\x00\x00\x00\x00"
-		"\x00\x00\xc2\x42\x42\x44\x48\x78\x44\x42\x42\xc2\x00\x00\x00\x00"
-		"\x00\x00\xe0\x40\x40\x40\x40\x40\x40\x42\x42\xfe\x00\x00\x00\x00"
-		"\x00\x00\x82\xc6\xaa\x92\x82\x82\x82\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\xc2\xa2\x92\x8a\x86\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x82\x82\x82\x82\x82\x82\x44\x38\x00\x00\x00\x00"
-		"\x00\x00\xfc\x42\x42\x42\x7c\x40\x40\x40\x40\xe0\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x82\x82\x82\x82\x92\x8a\x7c\x04\x02\x00\x00"
-		"\x00\x00\xfc\x42\x42\x42\x7c\x44\x42\x42\x42\xc2\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\x82\x40\x30\x0c\x04\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\x92\x92\x10\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x82\x82\x82\x82\x44\x28\x10\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x82\x82\x82\x92\xaa\xc6\x82\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x44\x28\x10\x28\x44\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x82\x82\x82\x44\x38\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\xfe\x82\x82\x04\x18\x20\x40\x82\x82\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\x40\x20\x10\x08\x04\x02\x01\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x04\x04\x04\x04\x04\x04\x04\x04\x3c\x00\x00\x00\x00"
-		"\x10\x28\x44\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x10\x10\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\xc0\x40\x40\x78\x44\x42\x42\x42\x42\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x82\x80\x80\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x04\x04\x3c\x44\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x44\x40\xe0\x40\x40\x40\x40\xe0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\x8c\x84\x84\x84\x84\x7c\x04\x84\x78\x00"
-		"\x00\x00\xc0\x40\x40\x7c\x42\x42\x42\x42\x42\xc2\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x00\x30\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\x02\x02\x00\x06\x02\x02\x02\x02\x02\x02\x42\x42\x3c\x00"
-		"\x00\x00\xc0\x40\x40\x42\x44\x48\x78\x44\x42\xc2\x00\x00\x00\x00"
-		"\x00\x00\x30\x10\x10\x10\x10\x10\x10\x10\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\x92\x92\x92\x92\x92\x92\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x62\x42\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x62\x42\x42\x42\x42\x7c\x40\x40\xe0\x00"
-		"\x00\x00\x00\x00\x00\x76\x8c\x84\x84\x84\x84\x7c\x04\x04\x0e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x62\x42\x40\x40\x40\xe0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x82\x80\x7c\x02\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x20\x20\x20\xf8\x20\x20\x20\x20\x22\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x42\x42\x42\x42\x24\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x82\x82\x82\x92\xaa\xc6\x82\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x82\x44\x28\x10\x28\x44\x82\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x82\x82\x82\x82\x82\x82\x7e\x02\x04\x78\x00"
-		"\x00\x00\x00\x00\x00\xfe\x84\x08\x10\x20\x42\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x10\x10\x10\x60\x10\x10\x10\x10\x0e\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x10\x10\x00\x10\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x70\x08\x08\x08\x06\x08\x08\x08\x08\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x28\x44\x82\x82\x82\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x82\x80\x80\x80\x82\x42\x3c\x04\x02\x7c\x00\x00"
-		"\x00\x00\x84\x00\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x04\x08\x10\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x10\x28\x44\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x84\x84\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x38\x44\x38\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x3c\x42\x40\x40\x42\x3c\x04\x02\x3c\x00\x00\x00"
-		"\x00\x10\x28\x44\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x84\x00\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x7c\x82\x82\xfe\x80\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x44\x44\x00\x18\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x18\x24\x42\x00\x18\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x18\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x82\x00\x10\x28\x44\x82\x82\xfe\x82\x82\x82\x00\x00\x00\x00"
-		"\x38\x44\x38\x10\x28\x44\x82\x82\xfe\x82\x82\x82\x00\x00\x00\x00"
-		"\x08\x10\x20\xfe\x42\x40\x40\x7c\x40\x40\x42\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x8c\x52\x32\x7e\x88\x98\x6e\x00\x00\x00\x00"
-		"\x00\x00\x3e\x44\x84\x84\xfe\x84\x84\x84\x84\x86\x00\x00\x00\x00"
-		"\x00\x10\x28\x44\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x44\x00\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x30\x48\x84\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x40\x20\x10\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x82\x00\x00\x00\x82\x82\x82\x82\x82\x7e\x02\x04\x78\x00"
-		"\x00\x82\x00\x7c\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x82\x00\x82\x82\x82\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x10\x10\x38\x44\x40\x40\x40\x48\x38\x10\x10\x00\x00\x00\x00"
-		"\x00\x38\x44\x44\x40\xe0\x40\x40\x40\x40\x42\xfc\x00\x00\x00\x00"
-		"\x00\x00\x44\x44\x28\x10\x7c\x10\x7c\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\xf8\x84\x84\xf8\x84\x84\x9e\x84\x84\x84\x86\x00\x00\x00\x00"
-		"\x00\x06\x09\x08\x08\x08\x3e\x08\x08\x08\x08\x08\x48\x30\x00\x00"
-		"\x00\x08\x10\x20\x00\x78\x04\x7c\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x04\x08\x10\x00\x18\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x08\x10\x20\x00\x7c\x82\x82\x82\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x08\x10\x20\x00\x84\x84\x84\x84\x84\x8c\x76\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\xdc\x62\x42\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x76\xdc\x00\x82\xc2\xa2\x92\x8a\x86\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x3c\x44\x44\x3e\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x44\x44\x38\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x20\x20\x00\x20\x20\x40\x80\x82\x82\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xc0\xc0\xc0\xc0\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\x06\x06\x06\x00\x00\x00\x00\x00"
-		"\x00\x80\x80\x82\x84\x88\x10\x20\x40\x9c\x02\x04\x08\x1e\x00\x00"
-		"\x00\x80\x80\x82\x84\x88\x10\x20\x46\x8a\x12\x3e\x02\x02\x00\x00"
-		"\x00\x00\x10\x10\x00\x10\x10\x10\x38\x38\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x24\x48\x90\x48\x24\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x88\x44\x22\x44\x88\x00\x00\x00\x00\x00\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x62\x94\x98\x88\x98\x94\x62\x00\x00\x00\x00"
-		"\x00\x00\x78\x84\x84\x84\xb8\x84\x82\x82\x82\xbc\x80\x00\x00\x00"
-		"\x00\x00\xfe\x82\x82\x80\x80\x80\x80\x80\x80\x80\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\x44\x44\x44\x44\x44\x44\x44\x00\x00\x00\x00"
-		"\x00\x00\x00\xfe\x82\x40\x20\x10\x20\x40\x82\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x88\x88\x88\x88\x88\x70\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x42\x42\x42\x42\x42\x7c\x40\x40\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x72\xd4\x08\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\x10\x38\x44\x44\x44\x38\x10\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x38\x44\x82\x82\xfe\x82\x82\x44\x38\x00\x00\x00\x00"
-		"\x00\x00\x38\x44\x82\x82\x82\x44\x28\x28\x28\xee\x00\x00\x00\x00"
-		"\x00\x00\x1e\x10\x08\x04\x3e\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x99\x99\x99\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x01\x02\x7e\x89\x91\xa1\x7e\x40\x80\x00\x00\x00\x00"
-		"\x00\x00\x1c\x20\x40\x40\x78\x40\x40\x40\x20\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\x82\x82\x82\x82\x82\x82\x82\x82\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\x00\x00\xfe\x00\x00\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x10\x7c\x10\x10\x00\x00\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x10\x08\x04\x02\x04\x08\x10\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x08\x10\x20\x40\x20\x10\x08\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x0e\x11\x11\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10"
-		"\x08\x08\x08\x08\x08\x08\x08\x08\x08\x88\x88\x70\x70\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x10\x00\x7c\x00\x10\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x44\x44\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x08\x08\x08\x08\x08\xe8\x28\x28\x28\x18\x00\x00\x00\x00"
-		"\x00\xd8\x64\x44\x44\x44\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\x88\x10\x20\x48\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, NULL, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x81\xa5\x81\xbd\x99\x81\x7e"
-		"\x7e\xff\xdb\xff\xc3\xe7\xff\x7e"
-		"\x6c\xfe\xfe\xfe\x7c\x38\x10\x00"
-		"\x10\x38\x7c\xfe\x7c\x38\x10\x00"
-		"\x38\x7c\x38\xfe\xd6\x10\x10\x7c"
-		"\x10\x10\x38\xec\xfe\x7c\x10\x7c"
-		"\x00\x00\x18\x3c\x3c\x18\x00\x00"
-		"\xff\xff\xe7\xc3\xc3\xe7\xff\xff"
-		"\x00\x3c\x66\x42\x42\x66\x3c\x00"
-		"\xff\xc3\x99\xbd\xbd\x99\xc3\xff"
-		"\x1f\x03\x05\x7d\x84\x84\x84\x78"
-		"\x3e\x41\x41\x41\x3e\x08\x3e\x08"
-		"\x3f\x21\x3f\x20\x20\x20\x60\xc0"
-		"\x3f\x21\x3f\x21\x21\x23\x66\xc0"
-		"\x99\x5a\x3c\xe7\xe7\x3c\x5a\x99"
-		"\x80\xe0\xf8\xfe\xf8\xe0\x80\x00"
-		"\x02\x0e\x3e\xfe\x3e\x0e\x02\x00"
-		"\x10\x38\x7c\x10\x10\x7c\x38\x10"
-		"\x24\x24\x24\x24\x24\x00\x24\x00"
-		"\x7f\x92\x92\x72\x12\x12\x12\x00"
-		"\x3e\x61\x38\x44\x44\x38\x8c\x78"
-		"\x00\x00\x00\x00\x7e\x7e\x7e\x00"
-		"\x10\x38\x7c\x10\x7c\x38\x10\xfe"
-		"\x10\x38\x7c\x10\x10\x10\x10\x00"
-		"\x10\x10\x10\x10\x7c\x38\x10\x00"
-		"\x00\x08\x04\xfe\x04\x08\x00\x00"
-		"\x00\x20\x40\xfe\x40\x20\x00\x00"
-		"\x00\x00\x80\x80\x80\xfe\x00\x00"
-		"\x00\x24\x66\xff\x66\x24\x00\x00"
-		"\x00\x18\x3c\x7e\xff\xff\x00\x00"
-		"\x00\xff\xff\x7e\x3c\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x10\x38\x38\x10\x10\x00\x10\x00"
-		"\x24\x24\x24\x00\x00\x00\x00\x00"
-		"\x24\x24\xff\x24\xff\x24\x24\x00"
-		"\x10\x7c\x80\x78\x04\xf8\x10\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x44\x38\x56\x84\x84\x76\x00"
-		"\x20\x20\x40\x00\x00\x00\x00\x00"
-		"\x10\x20\x40\x40\x40\x20\x10\x00"
-		"\x20\x10\x08\x08\x08\x10\x20\x00"
-		"\x00\x44\x38\xfe\x38\x44\x00\x00"
-		"\x00\x10\x10\xfe\x10\x10\x00\x00"
-		"\x00\x00\x00\x00\x00\x10\x10\x20"
-		"\x00\x00\x00\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x10\x10\x00"
-		"\x02\x04\x08\x10\x20\x40\x80\x00"
-		"\x7c\x82\x86\x8a\x92\xa2\x7c\x00"
-		"\x10\x30\x10\x10\x10\x10\x7c\x00"
-		"\x78\x84\x04\x10\x40\x84\xfc\x00"
-		"\x78\x84\x04\x38\x04\x84\x78\x00"
-		"\x08\x18\x28\x48\xfe\x08\x1c\x00"
-		"\xfc\x80\xf8\x04\x04\x84\x78\x00"
-		"\x38\x40\x80\xf8\x84\x84\x78\x00"
-		"\xfc\x84\x08\x10\x20\x20\x20\x00"
-		"\x78\x84\x84\x78\x84\x84\x78\x00"
-		"\x78\x84\x84\x7c\x04\x08\x70\x00"
-		"\x00\x10\x10\x00\x00\x10\x10\x00"
-		"\x00\x10\x10\x00\x00\x10\x10\x20"
-		"\x10\x20\x40\x80\x40\x20\x10\x00"
-		"\x00\x00\xfc\x00\x00\xfc\x00\x00"
-		"\x20\x10\x08\x04\x08\x10\x20\x00"
-		"\x78\x84\x04\x08\x10\x00\x10\x00"
-		"\x7c\x82\x9e\x92\x9e\x80\x78\x00"
-		"\x30\x48\x84\x84\xfc\x84\x84\x00"
-		"\xfc\x42\x42\x7c\x42\x42\xfc\x00"
-		"\x3c\x42\x80\x80\x80\x42\x3c\x00"
-		"\xf8\x44\x42\x42\x42\x44\xf8\x00"
-		"\xfe\x42\x48\x78\x48\x42\xfe\x00"
-		"\xfe\x42\x48\x78\x48\x40\xe0\x00"
-		"\x3c\x42\x80\x80\x8e\x42\x3e\x00"
-		"\x84\x84\x84\xfc\x84\x84\x84\x00"
-		"\x38\x10\x10\x10\x10\x10\x38\x00"
-		"\x0e\x04\x04\x04\x44\x44\x38\x00"
-		"\xc2\x44\x48\x70\x44\x42\xc2\x00"
-		"\xe0\x40\x40\x40\x40\x42\xfe\x00"
-		"\x82\xc6\xaa\x92\x82\x82\x82\x00"
-		"\x82\xc2\xa2\x92\x8a\x86\x82\x00"
-		"\x38\x44\x82\x82\x82\x44\x38\x00"
-		"\xfc\x42\x42\x7c\x40\x40\xe0\x00"
-		"\x38\x44\x82\x82\x82\x54\x38\x04"
-		"\xfc\x42\x42\x7c\x44\x42\xc2\x00"
-		"\x38\x84\x80\x78\x04\x84\x74\x00"
-		"\xfe\x92\x10\x10\x10\x10\x38\x00"
-		"\x84\x84\x84\x84\x84\x84\xfc\x00"
-		"\x84\x84\x84\x84\x84\x48\x30\x00"
-		"\x82\x82\x82\x92\xaa\xc6\x82\x00"
-		"\x82\x44\x28\x10\x28\x44\x82\x00"
-		"\x82\x44\x28\x10\x10\x10\x38\x00"
-		"\xfe\x84\x88\x10\x22\x42\xfe\x00"
-		"\x78\x40\x40\x40\x40\x40\x78\x00"
-		"\x80\x40\x20\x10\x08\x04\x02\x00"
-		"\x78\x08\x08\x08\x08\x08\x78\x00"
-		"\x10\x28\x44\x82\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x20\x20\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x04\x7c\x84\x76\x00"
-		"\xc0\x40\x7c\x42\x42\x42\xdc\x00"
-		"\x00\x00\x78\x84\x80\x84\x78\x00"
-		"\x0c\x04\x7c\x84\x84\x84\x76\x00"
-		"\x00\x00\x78\x84\xfc\x80\x78\x00"
-		"\x38\x44\x40\xe0\x40\x40\xe0\x00"
-		"\x00\x00\x76\x84\x84\x7c\x04\xf8"
-		"\xc0\x40\x4c\x62\x42\x42\xc2\x00"
-		"\x10\x00\x30\x10\x10\x10\x38\x00"
-		"\x04\x00\x04\x04\x04\x84\x84\x78"
-		"\xc0\x40\x42\x44\x78\x44\xc2\x00"
-		"\x30\x10\x10\x10\x10\x10\x38\x00"
-		"\x00\x00\xec\x92\x92\x92\x82\x00"
-		"\x00\x00\xf8\x84\x84\x84\x84\x00"
-		"\x00\x00\x78\x84\x84\x84\x78\x00"
-		"\x00\x00\xdc\x42\x42\x7c\x40\xe0"
-		"\x00\x00\x76\x84\x84\x7c\x04\x0e"
-		"\x00\x00\xdc\x62\x40\x40\xe0\x00"
-		"\x00\x00\x7c\x80\x78\x04\xf8\x00"
-		"\x10\x10\x7c\x10\x10\x12\x0c\x00"
-		"\x00\x00\x84\x84\x84\x84\x76\x00"
-		"\x00\x00\x84\x84\x84\x48\x30\x00"
-		"\x00\x00\x82\x92\xaa\xc6\x82\x00"
-		"\x00\x00\x84\x48\x30\x48\x84\x00"
-		"\x00\x00\x84\x84\x84\x7c\x04\xf8"
-		"\x00\x00\xfc\x88\x30\x44\xfc\x00"
-		"\x18\x20\x20\xc0\x20\x20\x18\x00"
-		"\x10\x10\x10\x00\x10\x10\x10\x00"
-		"\x60\x10\x10\x0c\x10\x10\x60\x00"
-		"\x64\x98\x00\x00\x00\x00\x00\x00"
-		"\x00\x10\x28\x44\x82\x82\xfe\x00"
-		"\x78\x84\x80\x84\x78\x18\x04\x78"
-		"\x00\x84\x00\x84\x84\x84\x7a\x00"
-		"\x0c\x00\x78\x84\xfc\x80\x78\x00"
-		"\x7e\x81\x3c\x02\x3e\x42\x3d\x00"
-		"\x84\x00\x78\x04\x7c\x84\x7a\x00"
-		"\xc0\x00\x78\x04\x7c\x84\x7a\x00"
-		"\x20\x20\x78\x04\x7c\x84\x7a\x00"
-		"\x00\x00\x78\x80\x80\x78\x04\x38"
-		"\x7e\x81\x3c\x42\x7e\x40\x3c\x00"
-		"\x84\x00\x78\x84\xfc\x80\x78\x00"
-		"\x60\x00\x78\x84\xfc\x80\x78\x00"
-		"\x48\x00\x30\x10\x10\x10\x38\x00"
-		"\x7c\x82\x30\x10\x10\x10\x38\x00"
-		"\x60\x00\x30\x10\x10\x10\x38\x00"
-		"\x82\x38\x44\x82\xfe\x82\x82\x00"
-		"\x30\x10\x44\x82\xfe\x82\x82\x00"
-		"\x0c\xfc\x40\x78\x40\x40\xfc\x00"
-		"\x00\x00\x67\x19\x7f\x98\x77\x00"
-		"\x3f\x48\x88\xff\x88\x88\x8f\x00"
-		"\x78\x84\x78\x84\x84\x84\x78\x00"
-		"\x84\x00\x78\x84\x84\x84\x78\x00"
-		"\xc0\x00\x78\x84\x84\x84\x78\x00"
-		"\x7e\x81\x42\x42\x42\x42\x3c\x00"
-		"\x20\x10\x42\x42\x42\x42\x3c\x00"
-		"\x84\x00\x84\x84\x84\x7c\x04\xf8"
-		"\x42\x18\x24\x42\x42\x24\x18\x00"
-		"\x84\x00\x84\x84\x84\x84\x78\x00"
-		"\x10\x10\x7e\x80\x80\x7e\x10\x10"
-		"\x38\x44\x44\xe0\x40\x82\xfc\x00"
-		"\x44\x28\x10\x7c\x10\x7c\x10\x10"
-		"\xf8\x84\x84\xf8\x82\x87\x82\x83"
-		"\x0c\x12\x10\x38\x10\x10\x90\x60"
-		"\x1c\x00\x78\x04\x7c\x84\x7a\x00"
-		"\x18\x00\x30\x10\x10\x10\x38\x00"
-		"\x08\x10\x78\x84\x84\x84\x78\x00"
-		"\x08\x10\x84\x84\x84\x84\x7a\x00"
-		"\x64\x98\xb8\xc4\x84\x84\x84\x00"
-		"\x64\x98\x84\xa4\x94\x84\x84\x00"
-		"\x3c\x44\x44\x3a\x00\x7e\x00\x00"
-		"\x38\x44\x44\x38\x00\x7c\x00\x00"
-		"\x20\x00\x20\x40\x80\x84\x78\x00"
-		"\x00\x00\x00\xfc\xc0\xc0\x00\x00"
-		"\x00\x00\x00\xfc\x0c\x0c\x00\x00"
-		"\x42\x44\x48\x56\x69\x42\x84\x0f"
-		"\x42\x44\x48\x53\x65\x49\x8f\x01"
-		"\x10\x10\x00\x10\x38\x38\x10\x00"
-		"\x00\x22\x44\x88\x44\x22\x00\x00"
-		"\x00\x44\x22\x11\x22\x44\x00\x00"
-		"\x22\x88\x22\x88\x22\x88\x22\x88"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\x77\xdd\x77\xdd\x77\xdd\x77\xdd"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\xf8\x18\x18\x18"
-		"\x18\x18\xf8\x18\xf8\x18\x18\x18"
-		"\x36\x36\x36\x36\xf6\x36\x36\x36"
-		"\x00\x00\x00\x00\xfe\x36\x36\x36"
-		"\x00\x00\xf8\x18\xf8\x18\x18\x18"
-		"\x36\x36\xf6\x06\xf6\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\xfe\x06\xf6\x36\x36\x36"
-		"\x36\x36\xf6\x06\xfe\x00\x00\x00"
-		"\x36\x36\x36\x36\xfe\x00\x00\x00"
-		"\x18\x18\xf8\x18\xf8\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\x18\x18\x18"
-		"\x18\x18\x18\x18\x1f\x00\x00\x00"
-		"\x18\x18\x18\x18\xff\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\x18\x18\x18"
-		"\x18\x18\x18\x18\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\xff\x00\x00\x00"
-		"\x18\x18\x18\x18\xff\x18\x18\x18"
-		"\x18\x18\x1f\x18\x1f\x18\x18\x18"
-		"\x36\x36\x36\x36\x37\x36\x36\x36"
-		"\x36\x36\x37\x30\x3f\x00\x00\x00"
-		"\x00\x00\x3f\x30\x37\x36\x36\x36"
-		"\x36\x36\xf7\x00\xff\x00\x00\x00"
-		"\x00\x00\xff\x00\xf7\x36\x36\x36"
-		"\x36\x36\x37\x30\x37\x36\x36\x36"
-		"\x00\x00\xff\x00\xff\x00\x00\x00"
-		"\x36\x36\xf7\x00\xf7\x36\x36\x36"
-		"\x18\x18\xff\x00\xff\x00\x00\x00"
-		"\x36\x36\x36\x36\xff\x00\x00\x00"
-		"\x00\x00\xff\x00\xff\x18\x18\x18"
-		"\x00\x00\x00\x00\xff\x36\x36\x36"
-		"\x36\x36\x36\x36\x3f\x00\x00\x00"
-		"\x18\x18\x1f\x18\x1f\x00\x00\x00"
-		"\x00\x00\x1f\x18\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\x3f\x36\x36\x36"
-		"\x36\x36\x36\x36\xff\x36\x36\x36"
-		"\x18\x18\xff\x18\xff\x18\x18\x18"
-		"\x18\x18\x18\x18\xf8\x00\x00\x00"
-		"\x00\x00\x00\x00\x1f\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\x00\x00\x00\x00"
-		"\x00\x00\x62\x94\x88\x94\x62\x00"
-		"\x00\x78\x84\xf8\x84\xf8\x80\x80"
-		"\x00\xfc\x84\x80\x80\x80\x80\x00"
-		"\x00\xfe\x28\x28\x28\x28\x28\x00"
-		"\xfc\x84\x40\x20\x40\x84\xfc\x00"
-		"\x00\x00\x7e\x88\x88\x88\x70\x00"
-		"\x00\x42\x42\x42\x42\x7c\x40\x80"
-		"\x00\x76\x88\x08\x08\x08\x08\x00"
-		"\xf8\x20\x70\x88\x88\x70\x20\xf8"
-		"\x38\x44\x82\xfe\x82\x44\x38\x00"
-		"\x38\x44\x82\x82\x28\x28\x6c\x00"
-		"\x1c\x10\x08\x7c\x84\x84\x78\x00"
-		"\x00\x00\x7c\x92\x92\x7c\x00\x00"
-		"\x02\x04\x7e\x89\x91\x7e\x40\x80"
-		"\x38\x40\x80\xf8\x80\x40\x38\x00"
-		"\x78\x84\x84\x84\x84\x84\x84\x00"
-		"\x00\xfc\x00\xfc\x00\xfc\x00\x00"
-		"\x20\x20\xfc\x20\x20\x00\xfc\x00"
-		"\x40\x20\x10\x20\x40\x00\xfc\x00"
-		"\x10\x20\x40\x20\x10\x00\xfc\x00"
-		"\x0e\x11\x11\x10\x10\x10\x10\x10"
-		"\x08\x08\x08\x08\x08\x88\x88\x70"
-		"\x20\x20\x00\xf8\x00\x20\x20\x00"
-		"\x00\x64\x98\x00\x64\x98\x00\x00"
-		"\x38\x44\x44\x38\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x07\x04\x04\x04\x64\x24\x1c\x0c"
-		"\x58\x44\x44\x44\x44\x00\x00\x00"
-		"\x30\x48\x10\x20\x78\x00\x00\x00"
-		"\x00\x00\x3c\x3c\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "Codepage 437 English, (thin)", CIOLIB_CP437}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00"
-		"\x00\x00\x00\x7e\x81\xa5\x81\x81\xbd\x99\x81\x81\x7e\x00\x00\x00"
-		"\x00\x00\x00\x7e\xff\xdb\xff\xff\xc3\xe7\xff\xff\x7e\x00\x00\x00"
-		"\x00\x00\x00\x66\xff\xff\xff\xff\x7e\x7e\x3c\x3c\x18\x18\x00\x00"
-		"\x00\x00\x18\x18\x3c\x3c\x7e\x7e\xff\x7e\x7e\x3c\x3c\x18\x18\x00"
-		"\x00\x00\x00\x18\x3c\x3c\x18\x66\xff\xff\x66\x18\x3c\x7e\x00\x00"
-		"\x00\x00\x18\x18\x3c\x3c\x7e\xff\xff\xff\x7e\x18\x3c\x7e\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x3c\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xe7\xc3\xc3\xc3\xe7\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x3c\x66\x42\x42\x42\x66\x3c\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xc3\x99\xbd\xbd\xbd\x99\xc3\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x1e\x0e\x1a\x32\x78\xcc\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\x3c\x66\x66\x66\x66\x3c\x18\x7e\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x3f\x33\x33\x3f\x30\x30\x30\x70\xf0\xe0\x00\x00\x00"
-		"\x00\x00\x00\x7f\x63\x63\x7f\x63\x63\x63\x67\xe7\xe6\xc0\x00\x00"
-		"\x00\x00\x00\x18\x18\xdb\x3c\xe7\xe7\x3c\xdb\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\xf8\xfe\xfe\xf8\xe0\xc0\x80\x00\x00\x00"
-		"\x00\x00\x00\x02\x06\x0e\x3e\xfe\xfe\x3e\x0e\x06\x02\x00\x00\x00"
-		"\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x7e\x3c\x18"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x66\x00\x66\x66\x00\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x1b\x00\x00"
-		"\x00\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\xfe\xfe\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x7e\x3c\x18\x7e\x00\x00"
-		"\x00\x18\x3c\x7e\xff\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\xff\x7e\x3c\x18\x00"
-		"\x00\x00\x00\x00\x00\x08\x0c\x0e\xff\x0e\x0c\x08\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x10\x30\x70\xff\x70\x30\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc0\xc0\xc0\xc0\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x24\x66\xff\x66\x24\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x18\x3c\x3c\x3c\x3c\x18\x18\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x63\x63\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x6c\x6c\x6c\xfe\xfe\x6c\x6c\x6c\xfe\xfe\x6c\x6c\x6c\x00\x00"
-		"\x00\x18\x7e\xdb\xdb\xe8\x78\x3c\x1e\x17\xdb\xdb\x7e\x18\x18\x00"
-		"\x00\xe6\xa6\xec\x0c\x18\x18\x30\x30\x60\x6e\xca\xce\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x6c\x38\x38\x6d\xcd\xc6\xc6\xcb\x73\x00\x00\x00"
-		"\x00\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x00\x00"
-		"\x00\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x3c\xff\xff\x3c\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\x03\x06\x0c\x18\x30\x60\xc3\xff\x00\x00\x00"
-		"\x00\xfe\xc6\x0c\x18\x3c\x06\x03\x03\x03\xc3\x66\x3c\x00\x00\x00"
-		"\x00\x1c\x1c\x3c\x3c\x6c\x6c\xcc\xcd\xff\x0d\x0c\x1e\x00\x00\x00"
-		"\x00\xfe\xc0\xc0\xc0\xfc\xe6\xc3\x03\x03\xc3\x66\x3c\x00\x00\x00"
-		"\x00\x3c\x66\xc6\xc0\xfc\xe6\xc3\xc3\xc3\xc3\x66\x3c\x00\x00\x00"
-		"\x00\xfe\xc6\x06\x0c\x0c\x18\x18\x30\x30\x30\x30\x30\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\x66\x3c\x66\xc3\xc3\xc3\x66\x3c\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\xc3\xc3\x67\x3f\x03\x63\x66\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x18\x18\x30\x00\x00"
-		"\x00\x00\x03\x06\x0c\x18\x30\x70\x30\x18\x0c\x06\x03\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x7e\x00\x7e\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xc0\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\xc0\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\x03\x06\x0c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x7e\xc3\xc3\xdf\xdb\xdb\xde\xc0\xc0\x7c\x00\x00\x00"
-		"\x00\x10\x38\x7c\xee\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\xfe\x63\x63\x63\x63\x7e\x63\x63\x63\x63\x63\xfe\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\xc0\xc0\xc0\xc0\xc3\xc3\x66\x3c\x00\x00\x00"
-		"\x00\xfc\x66\x63\x63\x63\x63\x63\x63\x63\x63\x66\xfc\x00\x00\x00"
-		"\x00\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x61\x63\xff\x00\x00\x00"
-		"\x00\xff\x63\x61\x60\x64\x7c\x64\x60\x60\x60\x60\xf8\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\xc0\xc0\xcf\xc3\xc3\xc3\x67\x3d\x00\x00\x00"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x0f\x06\x06\x06\x06\x06\x06\x06\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\xe3\x63\x66\x66\x6c\x7c\x6c\x66\x66\x63\x63\xe3\x00\x00\x00"
-		"\x00\xf0\x60\x60\x60\x60\x60\x60\x60\x60\x61\x63\xff\x00\x00\x00"
-		"\x00\xc3\xe7\xff\xff\xdb\xdb\xdb\xc3\xc3\xc3\xc3\xc3\x00\x00\x00"
-		"\x00\xc6\xc6\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xc3\xc3\x66\x3c\x00\x00\x00"
-		"\x00\xfe\x63\x63\x63\x63\x63\x7e\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x3c\x66\xc3\xc3\xc3\xc3\xc3\xc3\xcb\xcf\x7e\x3c\x06\x07\x00"
-		"\x00\xfe\x63\x63\x63\x63\x63\x7e\x6c\x66\x66\x66\xf7\x00\x00\x00"
-		"\x00\x7e\xc3\xc3\xc0\xc0\x7e\x03\x03\x03\xc3\xc3\x7e\x00\x00\x00"
-		"\x00\xff\xdb\x99\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x38\x10\x00\x00\x00"
-		"\x00\xc3\xc3\xc3\xc3\xdb\xdb\xdb\xdb\xdb\xff\x66\x66\x00\x00\x00"
-		"\x00\xc6\xc6\x6c\x6c\x38\x38\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\xc3\xc3\xc3\xc3\xe7\x7e\x3c\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\xfe\xc6\x8c\x0c\x18\x18\x30\x30\x60\x62\xc6\xfe\x00\x00\x00"
-		"\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x06\x00\x00\x00"
-		"\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x00\x18\x3c\x66\xc3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x00\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x06\x3e\x66\x66\x66\x66\x3b\x00\x00\x00"
-		"\x00\xe0\x60\x60\x60\x7e\x63\x63\x63\x63\x63\x63\xde\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x0e\x06\x06\x06\x7e\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x3c\x66\x66\x60\xf0\x60\x60\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7b\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\xe0\x60\x60\x60\x7c\x66\x66\x66\x66\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x06\x66\x66\x3c"
-		"\x00\xe0\x60\x60\x60\x66\x66\x6c\x78\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xe6\xff\xdb\xdb\xdb\xc3\xc3\xc3\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xde\x63\x63\x63\x63\x63\x63\x7e\x60\x60\xf0"
-		"\x00\x00\x00\x00\x00\x7b\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x0f"
-		"\x00\x00\x00\x00\x00\xde\x73\x63\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\x70\x1c\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7b\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xee\x7c\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc3\xc3\xdb\xdb\xdb\xdb\xff\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\x7c\x38\x38\x7c\xee\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x0c\x18\x70"
-		"\x00\x00\x00\x00\x00\xfe\xc6\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x0e\x18\x18\x18\x18\x70\x70\x18\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x70\x18\x18\x18\x18\x1e\x1e\x18\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x10\x38\x6c\xc6\xc6\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xfe\x62\x62\x60\x7c\x66\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x00\xfe\x62\x62\x60\x60\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x1e\x36\x66\x66\x66\x66\x66\x66\x66\xff\xc3\x81\x00"
-		"\x00\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\x00\xd6\xd6\x54\x54\x7c\x7c\x54\xd6\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xce\xce\xd6\xe6\xe6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x38\x38\xc6\xc6\xce\xce\xd6\xe6\xe6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xe6\x66\x6c\x6c\x78\x78\x6c\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x3c\x18\x7e\xdb\xdb\xdb\xdb\xdb\x7e\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x06\x06\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x06\x00\x00\x00"
-		"\x00\x00\x00\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xff\x00\x00\x00"
-		"\x00\x00\x00\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xdb\xff\x03\x03\x00"
-		"\x00\x00\x00\xf8\xb0\x30\x30\x3c\x36\x36\x36\x36\x7c\x00\x00\x00"
-		"\x00\x00\x00\xc3\xc3\xc3\xc3\xf3\xdb\xdb\xdb\xdb\xf3\x00\x00\x00"
-		"\x00\x00\x00\xf0\x60\x60\x60\x7c\x66\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x00\x78\xcc\x06\x26\x3e\x26\x06\x06\xcc\x78\x00\x00\x00"
-		"\x00\x00\x00\xce\xdb\xdb\xdb\xfb\xdb\xdb\xdb\xdb\xce\x00\x00\x00"
-		"\x00\x00\x00\x3f\x66\x66\x66\x3e\x3e\x66\x66\x66\xe7\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x02\x06\x3c\x60\x60\x7c\x66\x66\x66\x66\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfc\x66\x66\x7c\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x32\x32\x30\x30\x30\x78\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x1e\x36\x36\x66\x66\x66\xff\xc3\xc3\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xd6\xd6\x54\x7c\x54\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x3c\x66\x06\x0c\x06\x66\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xce\xd6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x38\x38\xc6\xc6\xce\xd6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xe6\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x1e\x36\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xee\xfe\xfe\xd6\xd6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x82\x10\x82\x10\x82\x10\x82\x10\x82\x10\x82\x10\x82\x10\x82\x10"
-		"\xc3\x18\xc3\x18\xc3\x18\xc3\x18\xc3\x18\xc3\x18\xc3\x18\xc3\x18"
-		"\xd8\x83\xda\x13\xd8\x83\xda\x13\xd8\x83\xda\x13\xd8\x83\xda\x13"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\xc6\x7c"
-		"\x00\x00\x00\x00\x00\x3c\x18\x7e\xdb\xdb\xdb\xdb\x7e\x18\x18\x3c"
-		"\x00\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x06\x06\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x03\x03\x00"
-		"\x00\x00\x00\x00\x00\x00\xf8\xb0\x30\x3e\x33\x33\x7e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xf6\xde\xde\xf6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xf0\x60\x60\x7c\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x3e\x67\x03\x1f\x03\x67\x3e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xce\xdb\xdb\xfb\xdb\xdb\xce\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\xcc\xcc\xfc\x6c\xcc\xce\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x00\xfe\x66\x60\x7c\x60\x60\x66\xfe\x00\x00\x00"
-		"\x00\x00\x00\xc6\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x7e\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x60\xc0\x60\x30\x18\x0c\x00\x7c\x00\x00\x00"
-		"\x00\x00\x0e\x1b\x1b\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\xd8\xf8\x70\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x7e\x7e\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xec\x6c\x3c\x1c\x00\x00\x00"
-		"\x00\x00\x00\x3c\x42\x99\xa1\xa1\x99\x42\x3c\x00\x00\x00\x00\x00"
-		"\x00\x70\x88\x10\x60\x88\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x42\x7e\x00\x00\x00"
-	, NULL, NULL, "Codepage 866 (b) Russian", CIOLIB_CP866M2}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7e\x81\xa5\x81\x81\xbd\x99\x81\x81\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7e\xff\xdb\xff\xff\xc3\xe7\xff\xff\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\xe7\xe7\xe7\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\xff\xff\x7e\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff\xff\xff"
-		"\x00\x00\x1e\x0e\x1a\x32\x78\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\x66\x66\x66\x3c\x18\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x3f\x33\x3f\x30\x30\x30\x30\x70\xf0\xe0\x00\x00\x00\x00"
-		"\x00\x00\x7f\x63\x7f\x63\x63\x63\x63\x67\xe7\xe6\xc0\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\xdb\x3c\xe7\x3c\xdb\x18\x18\x00\x00\x00\x00"
-		"\x00\x80\xc0\xe0\xf0\xf8\xfe\xf8\xf0\xe0\xc0\x80\x00\x00\x00\x00"
-		"\x00\x02\x06\x0e\x1e\x3e\xfe\x3e\x1e\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x66\x00\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x1b\x00\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x0c\xfe\x0c\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x60\xfe\x60\x30\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc0\xc0\xc0\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x28\x6c\xfe\x6c\x28\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xd6\xd6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x00\x30\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x36\x32\x30\x78\x30\x30\x30\x30\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x6c\xc6\xc6\xc6\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x18\x70\x00\x00"
-		"\x00\x00\xcc\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xcc\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x38\x6c\x38\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x18\x70\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x66\x00\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x18\x3c\x66\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\xc6\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x38\x6c\x38\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x0c\x18\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\x36\x36\x7e\xd8\xd8\x6e\x00\x00\x00\x00"
-		"\x00\x00\x3e\x6c\xcc\xcc\xfe\xcc\xcc\xcc\xcc\xce\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x30\x78\xcc\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x60\x30\x18\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xc6\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\x78\x00"
-		"\x00\xc6\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xce\xd6\xe6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xe6\xfc\x00\x00\x00\x00"
-		"\x00\x04\x7c\xce\xce\xd6\xd6\xd6\xd6\xe6\xe6\x7c\x40\x00\x00\x00"
-		"\x00\xf8\xcc\xcc\xf8\xc4\xcc\xde\xcc\xcc\xcc\xc6\x00\x00\x00\x00"
-		"\x00\x0e\x1b\x18\x18\x18\x7e\x18\x18\x18\xd8\x70\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x18\x30\x60\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x76\xdc\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x6c\x6c\x3e\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x00\x7c\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x30\x30\x00\x30\x30\x60\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xc0\xc0\xc0\xc0\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\x06\x06\x06\x00\x00\x00\x00\x00"
-		"\x00\x60\xe0\x62\x66\x6c\x18\x30\x60\xdc\x86\x0c\x18\x3e\x00\x00"
-		"\x00\x60\xe0\x62\x66\x6c\x18\x30\x66\xce\x9a\x3f\x06\x06\x00\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x18\x3c\x3c\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x36\x6c\xd8\x6c\x36\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xc6\x7c\xc6\xc6\xc6\xc6\x7c\xc6\x00\x00\x00\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\xd8\xd8\xd8\xdc\x76\x00\x00\x00\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\xd8\xcc\xc6\xc6\xc6\xcc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\x6c\x6c\x6c\x6c\x6c\x6c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x60\x30\x18\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xd8\xd8\xd8\xd8\xd8\x70\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x7c\x60\x60\xc0\x00"
-		"\x00\x00\x00\x00\x76\xdc\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x7e\x18\x3c\x66\x66\x66\x66\x3c\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xc6\x6c\x6c\x6c\x6c\xee\x00\x00\x00\x00"
-		"\x00\x00\x1e\x30\x18\x0c\x3e\x66\x66\x66\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xdb\xdb\xdb\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x03\x06\x7e\xdb\xdb\xf3\x7e\x60\xc0\x00\x00\x00\x00"
-		"\x00\x00\x1c\x30\x60\x60\x7c\x60\x60\x60\x30\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\x00\x00\xfe\x00\x00\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x30\x18\x0c\x06\x0c\x18\x30\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x60\x30\x18\x0c\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x0e\x1b\x1b\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\xd8\xd8\xd8\x70\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x00\x7e\x00\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\xec\x6c\x6c\x3c\x1c\x00\x00\x00\x00"
-		"\x00\x6c\x36\x36\x36\x36\x36\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x3c\x66\x0c\x18\x32\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x7e\x7e\x7e\x7e\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x7e\x81\xa5\x81\x81\xbd\x99\x81\x7e\x00\x00"
-		"\x00\x00\x00\x7e\xff\xdb\xff\xff\xc3\xe7\xff\x7e\x00\x00"
-		"\x00\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\xe7\xe7\xe7\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\xff\xff\x7e\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff"
-		"\x00\x00\x00\x1e\x0e\x1a\x32\x78\xcc\xcc\xcc\x78\x00\x00"
-		"\x00\x00\x00\x3c\x66\x66\x66\x3c\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x3f\x33\x3f\x30\x30\x30\x70\xf0\xe0\x00\x00"
-		"\x00\x00\x00\x7f\x63\x7f\x63\x63\x63\x67\xe7\xe6\xc0\x00"
-		"\x00\x00\x00\x18\x18\xdb\x3c\xe7\x3c\xdb\x18\x18\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\xf8\xfe\xf8\xe0\xc0\x80\x00\x00"
-		"\x00\x00\x00\x02\x06\x0e\x3e\xfe\x3e\x0e\x06\x02\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x00\x00"
-		"\x00\x00\x00\x66\x66\x66\x66\x66\x66\x00\x66\x66\x00\x00"
-		"\x00\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x00\x00"
-		"\x00\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x7e\x00"
-		"\x00\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x00\x18\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x0c\xfe\x0c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x60\xfe\x60\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc0\xc0\xc0\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x28\x6c\xfe\x6c\x28\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00"
-		"\x00\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x86\xc6\x7c\x18\x18"
-		"\x00\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x66\xc6\x00\x00"
-		"\x00\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\x76\x00\x00"
-		"\x00\x18\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00"
-		"\x00\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00"
-		"\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00"
-		"\x00\x00\x00\x38\x6c\xc6\xc6\xd6\xc6\xc6\x6c\x38\x00\x00"
-		"\x00\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x7e\x00\x00"
-		"\x00\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00"
-		"\x00\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00"
-		"\x00\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x0c\x78\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x60\xc0\x60\x30\x18\x0c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x00\x18\x18\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00"
-		"\x00\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\xfc\x00\x00"
-		"\x00\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x00\x00"
-		"\x00\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x6c\xf8\x00\x00"
-		"\x00\x00\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00"
-		"\x00\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\x66\x3a\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00"
-		"\x00\x00\x00\xe6\x66\x6c\x6c\x78\x6c\x6c\x66\xe6\x00\x00"
-		"\x00\x00\x00\xf0\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00"
-		"\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0e\x00"
-		"\x00\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xfe\x6c\x6c\x00\x00"
-		"\x00\x00\x00\xc6\xc6\xc6\x7c\x38\x7c\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\xfe\xc6\x8c\x18\x30\x60\xc2\xc6\xfe\x00\x00"
-		"\x00\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00"
-		"\x00\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x00\x30\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x1c\x36\x32\x30\x7c\x30\x30\x30\x78\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\xcc\x78"
-		"\x00\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\xe6\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x66\x66\x3c"
-		"\x00\x00\x00\xe0\x60\x60\x66\x6c\x78\x6c\x66\xe6\x00\x00"
-		"\x00\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x7c\x60\x60\xf0"
-		"\x00\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\x0c\x1e"
-		"\x00\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\xf0\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x36\x1c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\x6c\x38\x10\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xfe\x6c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\x78"
-		"\x00\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x66\xfe\x00\x00"
-		"\x00\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00"
-		"\x00\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00"
-		"\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x10\x38\x6c\xc6\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x0c\x78"
-		"\x00\x00\x00\xcc\x00\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\xc6\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x60\x30\x18\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x38\x6c\x38\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x0c\x78"
-		"\x00\x00\x10\x38\x6c\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\xc6\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x60\x30\x18\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x66\x00\x00\x38\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x18\x3c\x66\x00\x38\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x60\x30\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\xc6\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00"
-		"\x38\x6c\x38\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00"
-		"\x0c\x18\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xec\x36\x76\xdc\xd8\x6e\x00\x00"
-		"\x00\x00\x00\x3e\x6c\xcc\xcc\xfe\xcc\xcc\xcc\xce\x00\x00"
-		"\x00\x00\x10\x38\x6c\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\xc6\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x60\x30\x18\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x30\x78\xcc\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x60\x30\x18\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\xc6\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\x78"
-		"\x00\xc6\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\xc6\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xce\xde\xf6\xe6\x7c\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\xe6\xfc\x00\x00"
-		"\x00\x00\x04\x7c\xce\xce\xd6\xd6\xd6\xe6\xe6\x7c\x40\x00"
-		"\x00\x00\xfc\x66\x66\x7c\x62\x66\x6f\x66\x66\xf3\x00\x00"
-		"\x00\x00\x0e\x1b\x18\x18\x18\x7e\x18\x18\x18\xd8\x70\x00"
-		"\x00\x00\x0c\x18\x30\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x38\x18\x18\x18\x18\x3c\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x0c\x18\x30\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00"
-		"\x00\x00\x00\x76\xdc\x00\xdc\x66\x66\x66\x66\x66\x00\x00"
-		"\x76\xdc\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x3c\x6c\x6c\x3e\x00\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x00\x7c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x30\x30\x00\x30\x30\x60\xc6\xc6\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x06\x06\x06\x00\x00\x00"
-		"\x00\x00\x60\xe0\x63\x66\x6c\x18\x30\x6e\xc3\x06\x0c\x1f"
-		"\x00\x00\x60\xe0\x63\x66\x6c\x1a\x36\x6e\xda\x3f\x06\x06"
-		"\x00\x00\x00\x18\x18\x00\x18\x18\x3c\x3c\x3c\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x36\x6c\xd8\x6c\x36\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x7c\xc6\xc6\xc6\x7c\xc6\x00\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x76\xdc\xd8\xd8\xdc\x76\x00\x00"
-		"\x00\x00\x00\x78\xcc\xcc\xcc\xd8\xcc\xc6\xc6\xcc\x00\x00"
-		"\x00\x00\x00\xfe\xc6\xc6\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x6c\x6c\x6c\x6c\x6c\x00\x00"
-		"\x00\x00\x00\xfe\xc6\x60\x30\x18\x30\x60\xc6\xfe\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\xd8\xd8\xd8\xd8\x70\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x7c\x60\xc0"
-		"\x00\x00\x00\x00\x00\x76\xdc\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x00\x7e\x18\x3c\x66\x66\x66\x3c\x18\x7e\x00\x00"
-		"\x00\x00\x00\x38\x6c\xc6\xc6\xfe\xc6\xc6\x6c\x38\x00\x00"
-		"\x00\x00\x00\x38\x6c\xc6\xc6\xc6\x6c\x6c\x6c\xee\x00\x00"
-		"\x00\x00\x00\x1e\x30\x18\x0c\x3e\x66\x66\x66\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\xdb\xdb\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x03\x06\x7e\xdb\xdb\xf3\x7e\x60\xc0\x00\x00"
-		"\x00\x00\x00\x1e\x30\x60\x60\x7e\x60\x60\x30\x1e\x00\x00"
-		"\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x00\xfe\x00\x00\xfe\x00\x00\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x7e\x00\x00"
-		"\x00\x00\x00\x30\x18\x0c\x06\x0c\x18\x30\x00\x7e\x00\x00"
-		"\x00\x00\x00\x0c\x18\x30\x60\x30\x18\x0c\x00\x7e\x00\x00"
-		"\x00\x00\x0e\x1b\x1b\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xd8\xd8\x70\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x00\x7e\x00\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xdc\x00\x76\xdc\x00\x00\x00\x00"
-		"\x00\x38\x6c\x6c\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\x0c\xec\x6c\x3c\x1c\x00\x00"
-		"\x00\x6c\x36\x36\x36\x36\x36\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x3c\x66\x0c\x18\x32\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x7e\x7e\x7e\x7e\x7e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x81\xa5\x81\xbd\x99\x81\x7e"
-		"\x7e\xff\xdb\xff\xc3\xe7\xff\x7e"
-		"\x6c\xfe\xfe\xfe\x7c\x38\x10\x00"
-		"\x10\x38\x7c\xfe\x7c\x38\x10\x00"
-		"\x38\x7c\x38\xfe\xfe\xd6\x10\x38"
-		"\x10\x38\x7c\xfe\xfe\x7c\x10\x38"
-		"\x00\x00\x18\x3c\x3c\x18\x00\x00"
-		"\xff\xff\xe7\xc3\xc3\xe7\xff\xff"
-		"\x00\x3c\x66\x42\x42\x66\x3c\x00"
-		"\xff\xc3\x99\xbd\xbd\x99\xc3\xff"
-		"\x0f\x07\x0f\x7d\xcc\xcc\xcc\x78"
-		"\x3c\x66\x66\x66\x3c\x18\x7e\x18"
-		"\x3f\x33\x3f\x30\x30\x70\xf0\xe0"
-		"\x7f\x63\x7f\x63\x63\x67\xe6\xc0"
-		"\x18\xdb\x3c\xe7\xe7\x3c\xdb\x18"
-		"\x80\xe0\xf8\xfe\xf8\xe0\x80\x00"
-		"\x02\x0e\x3e\xfe\x3e\x0e\x02\x00"
-		"\x18\x3c\x7e\x18\x18\x7e\x3c\x18"
-		"\x66\x66\x66\x66\x66\x00\x66\x00"
-		"\x7f\xdb\xdb\x7b\x1b\x1b\x1b\x00"
-		"\x3e\x61\x3c\x66\x66\x3c\x86\x7c"
-		"\x00\x00\x00\x00\x7e\x7e\x7e\x00"
-		"\x18\x3c\x7e\x18\x7e\x3c\x18\xff"
-		"\x18\x3c\x7e\x18\x18\x18\x18\x00"
-		"\x18\x18\x18\x18\x7e\x3c\x18\x00"
-		"\x00\x18\x0c\xfe\x0c\x18\x00\x00"
-		"\x00\x30\x60\xfe\x60\x30\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xfe\x00\x00"
-		"\x00\x24\x66\xff\x66\x24\x00\x00"
-		"\x00\x18\x3c\x7e\xff\xff\x00\x00"
-		"\x00\xff\xff\x7e\x3c\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x3c\x3c\x18\x18\x00\x18\x00"
-		"\x66\x66\x24\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x18\x3e\x60\x3c\x06\x7c\x18\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x18\x18\x30\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x30\x30\x18\x0c\x00"
-		"\x30\x18\x0c\x0c\x0c\x18\x30\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x18\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x30"
-		"\x00\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x38\x6c\xc6\xd6\xc6\x6c\x38\x00"
-		"\x18\x38\x18\x18\x18\x18\x7e\x00"
-		"\x7c\xc6\x06\x1c\x30\x66\xfe\x00"
-		"\x7c\xc6\x06\x3c\x06\xc6\x7c\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\xfe\xc0\xc0\xfc\x06\xc6\x7c\x00"
-		"\x38\x60\xc0\xfc\xc6\xc6\x7c\x00"
-		"\xfe\xc6\x0c\x18\x30\x30\x30\x00"
-		"\x7c\xc6\xc6\x7c\xc6\xc6\x7c\x00"
-		"\x7c\xc6\xc6\x7e\x06\x0c\x78\x00"
-		"\x00\x18\x18\x00\x00\x18\x18\x00"
-		"\x00\x18\x18\x00\x00\x18\x18\x30"
-		"\x06\x0c\x18\x30\x18\x0c\x06\x00"
-		"\x00\x00\x7e\x00\x00\x7e\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x7c\xc6\x0c\x18\x18\x00\x18\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x38\x6c\xc6\xfe\xc6\xc6\xc6\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3a\x00"
-		"\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00"
-		"\x3c\x18\x18\x18\x18\x18\x3c\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x7c\xc6\xc6\xc6\xc6\xce\x7c\x0e"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x3c\x66\x30\x18\x0c\x66\x3c\x00"
-		"\x7e\x7e\x5a\x18\x18\x18\x3c\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00"
-		"\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00"
-		"\xc6\xc6\xc6\xd6\xd6\xfe\x6c\x00"
-		"\xc6\xc6\x6c\x38\x6c\xc6\xc6\x00"
-		"\x66\x66\x66\x3c\x18\x18\x3c\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x3c\x30\x30\x30\x30\x30\x3c\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x3c\x0c\x0c\x0c\x0c\x0c\x3c\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x18\x0c\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\xe0\x60\x7c\x66\x66\x66\xdc\x00"
-		"\x00\x00\x7c\xc6\xc0\xc6\x7c\x00"
-		"\x1c\x0c\x7c\xcc\xcc\xcc\x76\x00"
-		"\x00\x00\x7c\xc6\xfe\xc0\x7c\x00"
-		"\x3c\x66\x60\xf8\x60\x60\xf0\x00"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\xf8"
-		"\xe0\x60\x6c\x76\x66\x66\xe6\x00"
-		"\x18\x00\x38\x18\x18\x18\x3c\x00"
-		"\x06\x00\x06\x06\x06\x66\x66\x3c"
-		"\xe0\x60\x66\x6c\x78\x6c\xe6\x00"
-		"\x38\x18\x18\x18\x18\x18\x3c\x00"
-		"\x00\x00\xec\xfe\xd6\xd6\xd6\x00"
-		"\x00\x00\xdc\x66\x66\x66\x66\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x00\x00\xdc\x66\x66\x7c\x60\xf0"
-		"\x00\x00\x76\xcc\xcc\x7c\x0c\x1e"
-		"\x00\x00\xdc\x76\x60\x60\xf0\x00"
-		"\x00\x00\x7e\xc0\x7c\x06\xfc\x00"
-		"\x30\x30\xfc\x30\x30\x36\x1c\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x76\x00"
-		"\x00\x00\xc6\xc6\xc6\x6c\x38\x00"
-		"\x00\x00\xc6\xd6\xd6\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\xc6\xc6\xc6\x7e\x06\xfc"
-		"\x00\x00\x7e\x4c\x18\x32\x7e\x00"
-		"\x0e\x18\x18\x70\x18\x18\x0e\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x00"
-		"\x70\x18\x18\x0e\x18\x18\x70\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\xc6\xc6\xfe\x00"
-		"\x7c\xc6\xc0\xc0\xc6\x7c\x0c\x78"
-		"\xcc\x00\xcc\xcc\xcc\xcc\x76\x00"
-		"\x0c\x18\x7c\xc6\xfe\xc0\x7c\x00"
-		"\x7c\x82\x78\x0c\x7c\xcc\x76\x00"
-		"\xc6\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\x30\x18\x78\x0c\x7c\xcc\x76\x00"
-		"\x30\x30\x78\x0c\x7c\xcc\x76\x00"
-		"\x00\x00\x7e\xc0\xc0\x7e\x0c\x38"
-		"\x7c\x82\x7c\xc6\xfe\xc0\x7c\x00"
-		"\xc6\x00\x7c\xc6\xfe\xc0\x7c\x00"
-		"\x30\x18\x7c\xc6\xfe\xc0\x7c\x00"
-		"\x66\x00\x38\x18\x18\x18\x3c\x00"
-		"\x7c\x82\x38\x18\x18\x18\x3c\x00"
-		"\x30\x18\x00\x38\x18\x18\x3c\x00"
-		"\xc6\x38\x6c\xc6\xfe\xc6\xc6\x00"
-		"\x38\x6c\x7c\xc6\xfe\xc6\xc6\x00"
-		"\x18\x30\xfe\xc0\xf8\xc0\xfe\x00"
-		"\x00\x00\x7e\x12\xfe\x90\xfe\x00"
-		"\x3e\x6c\xcc\xfe\xcc\xcc\xce\x00"
-		"\x7c\x82\x7c\xc6\xc6\xc6\x7c\x00"
-		"\xc6\x00\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x30\x18\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x78\x84\x00\xcc\xcc\xcc\x76\x00"
-		"\x60\x30\xcc\xcc\xcc\xcc\x76\x00"
-		"\xc6\x00\xc6\xc6\xc6\x7e\x06\xfc"
-		"\xc6\x38\x6c\xc6\xc6\x6c\x38\x00"
-		"\xc6\x00\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x00\x02\x7c\xce\xd6\xe6\x7c\x80"
-		"\x38\x6c\x64\xf0\x60\x66\xfc\x00"
-		"\x3a\x6c\xce\xd6\xe6\x6c\xb8\x00"
-		"\xf8\xcc\xcc\xfa\xc6\xcf\xc6\xc7"
-		"\x0e\x1b\x18\x3c\x18\xd8\x70\x00"
-		"\x18\x30\x78\x0c\x7c\xcc\x76\x00"
-		"\x0c\x18\x00\x38\x18\x18\x3c\x00"
-		"\x0c\x18\x7c\xc6\xc6\xc6\x7c\x00"
-		"\x18\x30\xcc\xcc\xcc\xcc\x76\x00"
-		"\x76\xdc\x00\xdc\x66\x66\x66\x00"
-		"\x76\xdc\x00\xe6\xf6\xde\xce\x00"
-		"\x3c\x6c\x6c\x3e\x00\x7e\x00\x00"
-		"\x38\x6c\x6c\x38\x00\x7c\x00\x00"
-		"\x18\x00\x18\x18\x30\x63\x3e\x00"
-		"\x00\x00\x00\xfe\xc0\xc0\x00\x00"
-		"\x00\x00\x00\xfe\x06\x06\x00\x00"
-		"\x63\xe6\x6c\x7e\x33\x66\xcc\x0f"
-		"\x63\xe6\x6c\x7a\x36\x6a\xdf\x06"
-		"\x18\x00\x18\x18\x3c\x3c\x18\x00"
-		"\x00\x33\x66\xcc\x66\x33\x00\x00"
-		"\x00\xc6\x7c\xc6\xc6\x7c\xc6\x00"
-		"\x22\x88\x22\x88\x22\x88\x22\x88"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\x77\xdd\x77\xdd\x77\xdd\x77\xdd"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\xf8\x18\x18\x18"
-		"\x18\x18\xf8\x18\xf8\x18\x18\x18"
-		"\x36\x36\x36\x36\xf6\x36\x36\x36"
-		"\x00\x00\x00\x00\xfe\x36\x36\x36"
-		"\x00\x00\xf8\x18\xf8\x18\x18\x18"
-		"\x36\x36\xf6\x06\xf6\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\xfe\x06\xf6\x36\x36\x36"
-		"\x36\x36\xf6\x06\xfe\x00\x00\x00"
-		"\x36\x36\x36\x36\xfe\x00\x00\x00"
-		"\x18\x18\xf8\x18\xf8\x00\x00\x00"
-		"\x00\x00\x00\x00\xf8\x18\x18\x18"
-		"\x18\x18\x18\x18\x1f\x00\x00\x00"
-		"\x18\x18\x18\x18\xff\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\x18\x18\x18"
-		"\x18\x18\x18\x18\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\xff\x00\x00\x00"
-		"\x18\x18\x18\x18\xff\x18\x18\x18"
-		"\x18\x18\x1f\x18\x1f\x18\x18\x18"
-		"\x36\x36\x36\x36\x37\x36\x36\x36"
-		"\x36\x36\x37\x30\x3f\x00\x00\x00"
-		"\x00\x00\x3f\x30\x37\x36\x36\x36"
-		"\x36\x36\xf7\x00\xff\x00\x00\x00"
-		"\x00\x00\xff\x00\xf7\x36\x36\x36"
-		"\x36\x36\x37\x30\x37\x36\x36\x36"
-		"\x00\x00\xff\x00\xff\x00\x00\x00"
-		"\x36\x36\xf7\x00\xf7\x36\x36\x36"
-		"\x18\x18\xff\x00\xff\x00\x00\x00"
-		"\x36\x36\x36\x36\xff\x00\x00\x00"
-		"\x00\x00\xff\x00\xff\x18\x18\x18"
-		"\x00\x00\x00\x00\xff\x36\x36\x36"
-		"\x36\x36\x36\x36\x3f\x00\x00\x00"
-		"\x18\x18\x1f\x18\x1f\x00\x00\x00"
-		"\x00\x00\x1f\x18\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\x3f\x36\x36\x36"
-		"\x36\x36\x36\x36\xff\x36\x36\x36"
-		"\x18\x18\xff\x18\xff\x18\x18\x18"
-		"\x18\x18\x18\x18\xf8\x00\x00\x00"
-		"\x00\x00\x00\x00\x1f\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\xc8\xdc\x76\x00"
-		"\x78\xcc\xcc\xd8\xcc\xc6\xcc\x00"
-		"\xfe\xc6\xc0\xc0\xc0\xc0\xc0\x00"
-		"\x00\x00\xfe\x6c\x6c\x6c\x6c\x00"
-		"\xfe\xc6\x60\x30\x60\xc6\xfe\x00"
-		"\x00\x00\x7e\xd8\xd8\xd8\x70\x00"
-		"\x00\x00\x66\x66\x66\x66\x7c\xc0"
-		"\x00\x76\xdc\x18\x18\x18\x18\x00"
-		"\x7e\x18\x3c\x66\x66\x3c\x18\x7e"
-		"\x38\x6c\xc6\xfe\xc6\x6c\x38\x00"
-		"\x38\x6c\xc6\xc6\x6c\x6c\xee\x00"
-		"\x0e\x18\x0c\x3e\x66\x66\x3c\x00"
-		"\x00\x00\x7e\xdb\xdb\x7e\x00\x00"
-		"\x06\x0c\x7e\xdb\xdb\x7e\x60\xc0"
-		"\x1e\x30\x60\x7e\x60\x30\x1e\x00"
-		"\x00\x7c\xc6\xc6\xc6\xc6\xc6\x00"
-		"\x00\xfe\x00\xfe\x00\xfe\x00\x00"
-		"\x18\x18\x7e\x18\x18\x00\x7e\x00"
-		"\x30\x18\x0c\x18\x30\x00\x7e\x00"
-		"\x0c\x18\x30\x18\x0c\x00\x7e\x00"
-		"\x0e\x1b\x1b\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\xd8\xd8\x70"
-		"\x00\x18\x00\x7e\x00\x18\x00\x00"
-		"\x00\x76\xdc\x00\x76\xdc\x00\x00"
-		"\x38\x6c\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x18\x00\x00\x00\x00"
-		"\x0f\x0c\x0c\x0c\xec\x6c\x3c\x1c"
-		"\x6c\x36\x36\x36\x36\x00\x00\x00"
-		"\x78\x0c\x18\x30\x7c\x00\x00\x00"
-		"\x00\x00\x3c\x3c\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "Codepage 865 Norwegian", CIOLIB_CP865}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7e\x81\xa5\x81\x81\xa5\x99\x81\x81\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7e\xff\xdb\xff\xff\xdb\xe7\xff\xff\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x3c\xe7\xe7\xe7\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\xff\xff\x7e\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff\xff\xff"
-		"\x00\x00\x1e\x06\x0e\x1a\x78\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\x66\x66\x66\x3c\x18\x7e\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x3f\x33\x3f\x30\x30\x30\x30\x70\xf0\xe0\x00\x00\x00\x00"
-		"\x00\x00\x7f\x63\x7f\x63\x63\x63\x63\x67\xe7\xe6\xc0\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\xdb\x3c\xe7\x3c\xdb\x18\x18\x00\x00\x00\x00"
-		"\x00\x80\xc0\xe0\xf0\xf8\xfe\xf8\xf0\xe0\xc0\x80\x00\x00\x00\x00"
-		"\x00\x02\x06\x0e\x1e\x3e\xfe\x3e\x1e\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x66\x00\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x1b\x00\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x0c\xfe\x0c\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x60\xfe\x60\x30\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc0\xc0\xc0\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x28\x6c\xfe\x6c\x28\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x06\x86\xc6\x7c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x60\xc6\x86\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xd6\xd6\xc6\xc6\x6c\x38\x00\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x0c\x1e\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x06\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x18\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\x66\xfc\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\xc6\x66\x3a\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\xe6\x66\x66\x6c\x78\x78\x6c\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xd6\xfe\xee\x6c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x7c\x38\x38\x7c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x86\x0c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x78\x6c\x66\xe6\x00\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xd6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x60\x38\x0c\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x36\x1c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x66\x3c\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xd6\xfe\x6c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x60\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x18\x0e\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x18\x70\x00\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x6c\xc6\xc6\xc6\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x3e\x66\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\x54\x7c\xd6\xd6\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x1c\x06\x06\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x0c\xda\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x02\x06\x04\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\xe0\xe0\x60\x60\x7c\x66\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xe6\xb6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x78\xcc\x06\x06\x1e\x1e\x06\x06\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xfe\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xfc\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc2\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\x7c\xd6\xd6\xd6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1c\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xcc\xd8\xf8\xd8\xcc\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x66\x66\x66\x66\x66\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc2\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00"
-		"\x00\x00\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x06\x0c\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x04\x00"
-		"\x00\x00\x00\x00\x00\xe0\x60\x7c\x66\x66\x66\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xe6\xb6\xb6\xb6\xe6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x06\x1e\x06\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x9c\xb6\xb6\xf6\xb6\xb6\x9c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00\x00"
-		"\x66\x66\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xc6\xfc\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x06\xfe\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x06\xfe\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc0\xc0\xf8\xc0\xc0\xc0\x66\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xf0\xc0\xc6\x7c\x00\x00\x00\x00"
-		"\x00\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x28\x28\x00\x38\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\xec\x6c\x6c\x3c\x1c\x00\x00\x00\x00"
-		"\x00\x00\x7c\x82\xba\xaa\xa2\xa2\xa2\xaa\xba\x82\x7c\x00\x00\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7e\x81\xa5\x81\x81\xa5\x99\x81\x7e\x00\x00\x00"
-		"\x00\x00\x7e\xff\xdb\xff\xff\xc3\xe7\xff\x7e\x00\x00\x00"
-		"\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\xe7\xe7\xe7\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\xff\xff\x7e\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff\xff"
-		"\x00\x00\x1e\x0e\x1a\x32\x78\xcc\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x18\x7e\x18\x18\x00\x00\x00"
-		"\x00\x00\x3f\x33\x3f\x30\x30\x30\x70\xf0\xe0\x00\x00\x00"
-		"\x00\x00\x7f\x63\x7f\x63\x63\x63\x67\xe7\xe6\xc0\x00\x00"
-		"\x00\x00\x18\x18\xdb\x3c\xe7\x3c\xdb\x18\x18\x00\x00\x00"
-		"\x00\x00\x80\xc0\xe0\xf8\xfe\xf8\xe0\xc0\x80\x00\x00\x00"
-		"\x00\x00\x02\x06\x0e\x3e\xfe\x3e\x0e\x06\x02\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x00\x66\x66\x00\x00\x00"
-		"\x00\x00\x7f\xdb\xdb\xdb\x7b\x1b\x1b\x1b\x1b\x00\x00\x00"
-		"\x00\x7c\xc6\x60\x38\x6c\xc6\xc6\x6c\x38\x0c\xc6\x7c\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x7e\x3c\x18\x7e\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x0c\xfe\x0c\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x30\x60\xfe\x60\x30\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xc0\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x28\x6c\xfe\x6c\x28\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x10\x38\x38\x7c\x7c\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x00\xfe\xfe\x7c\x7c\x38\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x3c\x3c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x66\x66\x66\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00"
-		"\x18\x18\x7c\xc6\xc2\xc0\x7c\x06\x86\xc6\x7c\x18\x18\x00"
-		"\x00\x00\x00\x00\xc2\xc6\x0c\x18\x30\x66\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x76\xdc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x30\x30\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00"
-		"\x00\x00\x30\x18\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x3c\xff\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x02\x06\x0c\x18\x30\x60\xc0\x80\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xce\xde\xf6\xe6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x18\x38\x78\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x0c\x18\x30\x60\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x60\xc0\xc0\xfc\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x06\x0c\x18\x30\x30\x30\x30\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x0c\x78\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x0c\x18\x18\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00"
-		"\x00\x00\x10\x38\x6c\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x66\x66\x66\xfc\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xc0\xc2\x66\x3c\x00\x00\x00"
-		"\x00\x00\xf8\x6c\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xfe\x66\x62\x68\x78\x68\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc2\xc0\xc0\xde\xc6\x66\x3a\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x1e\x0c\x0c\x0c\x0c\x0c\xcc\xcc\x78\x00\x00\x00"
-		"\x00\x00\xe6\x66\x6c\x6c\x78\x6c\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\xf0\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xd6\xde\x7c\x0c\x0e\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x7c\x6c\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\x60\x38\x0c\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x38\x10\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xfe\x7c\x6c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x38\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\x8c\x18\x30\x60\xc2\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\x00\x80\xc0\xe0\x70\x38\x1c\x0e\x06\x02\x00\x00\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x30\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x78\x0c\x7c\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\xe0\x60\x60\x78\x6c\x66\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x1c\x0c\x0c\x3c\x6c\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x38\x6c\x64\x60\xf0\x60\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\xcc\x78\x00"
-		"\x00\x00\xe0\x60\x60\x6c\x76\x66\x66\x66\xe6\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x0e\x06\x06\x06\x06\x66\x66\x3c\x00"
-		"\x00\x00\xe0\x60\x60\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xec\xfe\xd6\xd6\xd6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x66\x66\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xdc\x66\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x00\x00\x00\x00\x00\x76\xcc\xcc\xcc\x7c\x0c\x0c\x1e\x00"
-		"\x00\x00\x00\x00\x00\xdc\x76\x66\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x70\x1c\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x36\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x66\x66\x66\x66\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xd6\xd6\xfe\x6c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x7e\x06\x0c\xf8\x00"
-		"\x00\x00\x00\x00\x00\xfe\xcc\x18\x30\x66\xfe\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x6c\xc6\xc6\xfe\x00\x00\x00\x00"
-		"\x00\x00\x3e\x66\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00"
-		"\x00\x00\xfe\xc6\xc0\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\x54\x7c\xd6\xd6\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x1c\x06\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x0c\xda\xc6\xc6\xce\xde\xf6\xe6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xcc\xd8\xf0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x1e\x36\x66\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x82\xc6\xc6\xee\xee\xfe\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc0\xc0\xc0\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7e\x7e\x5a\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x38\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x38\x38\x6c\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xfe\x02\x06\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x00\x00\x00"
-		"\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x00"
-		"\x00\x00\xe0\xe0\x60\x7c\x66\x66\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xe6\xb6\xb6\xb6\xb6\xe6\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x1e\x06\x06\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\x9c\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc6\xfe\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc0\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc2\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x6c\x6c\x6c\x6c\xfe\xc6\x82\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xfc\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\x7c\xd6\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x1c\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x0c\x18\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xcc\xf8\xd8\xcc\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x66\x66\x66\x66\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xee\xfe\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\xff\x18\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x5a\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x7c\x00"
-		"\x00\x00\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\x7c\x10\x38\x00"
-		"\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xfe\x06\x0c\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xc6\x7e\x06\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xfe\x02\x06\x00"
-		"\x00\x00\x00\x00\x00\xe0\x60\x7c\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc6\xc6\xe6\xb6\xb6\xe6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xc0\xc0\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\x1e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x9c\xb6\xb6\xf6\xb6\x9c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\xc6\x7e\x36\x66\xc6\x00\x00\x00"
-		"\x6c\x6c\x00\xfe\xc6\xc0\xf0\xc0\xc0\xc6\xfe\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x00\x7c\xc6\xfc\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x06\xfe\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x06\xfe\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc0\xc0\xf8\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\xc6\xf0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x10\x10\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x66\x00\x3c\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x28\x28\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x0f\x0c\x0c\x0c\x0c\x0c\xec\x6c\x3c\x1c\x00\x00\x00"
-		"\x00\x00\x7c\x82\xba\xaa\xa2\xa2\xaa\xba\x82\x7c\x00\x00"
-		"\x00\x70\xd8\x30\x60\xc8\xf8\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x7c\x7c\x7c\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x81\xa5\x81\xbd\x99\x81\x7e"
-		"\x7e\xff\xdb\xff\xc3\xe7\xff\x7e"
-		"\x6c\xfe\xfe\xfe\x7c\x38\x10\x00"
-		"\x10\x38\x7c\xfe\x7c\x38\x10\x00"
-		"\x38\x7c\x38\xfe\xfe\x7c\x38\x7c"
-		"\x10\x10\x38\x7c\xfe\x7c\x38\x7c"
-		"\x00\x00\x18\x3c\x3c\x18\x00\x00"
-		"\xff\xff\xe7\xc3\xc3\xe7\xff\xff"
-		"\x00\x3c\x66\x42\x42\x66\x3c\x00"
-		"\xff\xc3\x99\xbd\xbd\x99\xc3\xff"
-		"\x0f\x07\x0f\x7d\xcc\xcc\xcc\x78"
-		"\x3c\x66\x66\x66\x3c\x18\x7e\x18"
-		"\x3f\x33\x3f\x30\x30\x70\xf0\xe0"
-		"\x7f\x63\x7f\x63\x63\x67\xe6\xc0"
-		"\x99\x5a\x3c\xe7\xe7\x3c\x5a\x99"
-		"\x80\xe0\xf8\xfe\xf8\xe0\x80\x00"
-		"\x02\x0e\x3e\xfe\x3e\x0e\x02\x00"
-		"\x18\x3c\x7e\x18\x18\x7e\x3c\x18"
-		"\x66\x66\x66\x66\x66\x00\x66\x00"
-		"\x7f\xdb\xdb\x7b\x1b\x1b\x1b\x00"
-		"\x3e\x63\x38\x6c\x6c\x38\xcc\x78"
-		"\x00\x00\x00\x00\x7e\x7e\x7e\x00"
-		"\x18\x3c\x7e\x18\x7e\x3c\x18\xff"
-		"\x18\x3c\x7e\x18\x18\x18\x18\x00"
-		"\x18\x18\x18\x18\x7e\x3c\x18\x00"
-		"\x00\x18\x0c\xfe\x0c\x18\x00\x00"
-		"\x00\x30\x60\xfe\x60\x30\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xfe\x00\x00"
-		"\x00\x24\x66\xff\x66\x24\x00\x00"
-		"\x00\x18\x3c\x7e\xff\xff\x00\x00"
-		"\x00\xff\xff\x7e\x3c\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x78\x78\x30\x30\x00\x30\x00"
-		"\x6c\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x30\x7c\xc0\x78\x0c\xf8\x30\x00"
-		"\x00\xc6\xcc\x18\x30\x66\xc6\x00"
-		"\x38\x6c\x38\x76\xdc\xcc\x76\x00"
-		"\x60\x60\xc0\x00\x00\x00\x00\x00"
-		"\x18\x30\x60\x60\x60\x30\x18\x00"
-		"\x60\x30\x18\x18\x18\x30\x60\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x30\x30\xfc\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x60"
-		"\x00\x00\x00\xfc\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x30\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x80\x00"
-		"\x7c\xc6\xce\xde\xf6\xe6\x7c\x00"
-		"\x30\x70\x30\x30\x30\x30\xfc\x00"
-		"\x78\xcc\x0c\x38\x60\xcc\xfc\x00"
-		"\x78\xcc\x0c\x38\x0c\xcc\x78\x00"
-		"\x1c\x3c\x6c\xcc\xfe\x0c\x1e\x00"
-		"\xfc\xc0\xf8\x0c\x0c\xcc\x78\x00"
-		"\x38\x60\xc0\xf8\xcc\xcc\x78\x00"
-		"\xfc\xcc\x0c\x18\x30\x30\x30\x00"
-		"\x78\xcc\xcc\x78\xcc\xcc\x78\x00"
-		"\x78\xcc\xcc\x7c\x0c\x18\x70\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x00"
-		"\x00\x30\x30\x00\x00\x30\x30\x60"
-		"\x18\x30\x60\xc0\x60\x30\x18\x00"
-		"\x00\x00\xfc\x00\x00\xfc\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x78\xcc\x0c\x18\x30\x00\x30\x00"
-		"\x7c\xc6\xde\xde\xde\xc0\x78\x00"
-		"\x30\x78\xcc\xcc\xfc\xcc\xcc\x00"
-		"\xfc\x66\x66\x7c\x66\x66\xfc\x00"
-		"\x3c\x66\xc0\xc0\xc0\x66\x3c\x00"
-		"\xf8\x6c\x66\x66\x66\x6c\xf8\x00"
-		"\xfe\x62\x68\x78\x68\x62\xfe\x00"
-		"\xfe\x62\x68\x78\x68\x60\xf0\x00"
-		"\x3c\x66\xc0\xc0\xce\x66\x3e\x00"
-		"\xcc\xcc\xcc\xfc\xcc\xcc\xcc\x00"
-		"\x78\x30\x30\x30\x30\x30\x78\x00"
-		"\x1e\x0c\x0c\x0c\xcc\xcc\x78\x00"
-		"\xe6\x66\x6c\x78\x6c\x66\xe6\x00"
-		"\xf0\x60\x60\x60\x62\x66\xfe\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x38\x6c\xc6\xc6\xc6\x6c\x38\x00"
-		"\xfc\x66\x66\x7c\x60\x60\xf0\x00"
-		"\x78\xcc\xcc\xcc\xdc\x78\x1c\x00"
-		"\xfc\x66\x66\x7c\x6c\x66\xe6\x00"
-		"\x78\xcc\xe0\x70\x1c\xcc\x78\x00"
-		"\xfc\xb4\x30\x30\x30\x30\x78\x00"
-		"\xcc\xcc\xcc\xcc\xcc\xcc\xfc\x00"
-		"\xcc\xcc\xcc\xcc\xcc\x78\x30\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc6\x44\x6c\x38\x38\x6c\xc6\x00"
-		"\xcc\xcc\xcc\x78\x30\x30\x78\x00"
-		"\xfe\xc6\x8c\x18\x32\x66\xfe\x00"
-		"\x78\x60\x60\x60\x60\x60\x78\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x02\x00"
-		"\x78\x18\x18\x18\x18\x18\x78\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x30\x30\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x7c\x00"
-		"\x60\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x00\x00\x78\xcc\xc0\xcc\x78\x00"
-		"\x0c\x0c\x0c\x7c\xcc\xcc\x7c\x00"
-		"\x00\x00\x78\xcc\xfc\xc0\x78\x00"
-		"\x38\x6c\x60\xf0\x60\x60\xf0\x00"
-		"\x00\x00\x7c\xcc\xcc\x7c\x0c\xf8"
-		"\x60\x60\x7c\x66\x66\x66\x66\x00"
-		"\x30\x00\x70\x30\x30\x30\x78\x00"
-		"\x0c\x00\x0c\x0c\x0c\x0c\x6c\x38"
-		"\x60\x60\x66\x6c\x78\x6c\x66\x00"
-		"\x70\x30\x30\x30\x30\x30\x78\x00"
-		"\x00\x00\xcc\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\xf8\xcc\xcc\xcc\xcc\x00"
-		"\x00\x00\x78\xcc\xcc\xcc\x78\x00"
-		"\x00\x00\x7c\x66\x66\x7c\x60\x60"
-		"\x00\x00\x7c\xcc\xcc\x7c\x0c\x0c"
-		"\x00\x00\xdc\x76\x66\x60\xf0\x00"
-		"\x00\x00\x7c\xc0\x78\x0c\xf8\x00"
-		"\x10\x30\x7c\x30\x30\x34\x18\x00"
-		"\x00\x00\xcc\xcc\xcc\xcc\x7c\x00"
-		"\x00\x00\xcc\xcc\xcc\x78\x30\x00"
-		"\x00\x00\xc6\xd6\xfe\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\xcc\xcc\xcc\x7c\x0c\xf8"
-		"\x00\x00\xfc\x98\x30\x64\xfc\x00"
-		"\x1c\x30\x30\xe0\x30\x30\x1c\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\xe0\x30\x30\x1c\x30\x30\xe0\x00"
-		"\x76\xdc\x00\x00\x00\x00\x00\x00"
-		"\x00\x10\x38\x6c\xc6\xc6\xfe\x00"
-		"\x1e\x36\x66\x66\x7e\x66\x66\x00"
-		"\x7c\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x7c\x66\x66\x7c\x66\x66\x7c\x00"
-		"\x7e\x60\x60\x60\x60\x60\x60\x00"
-		"\x38\x6c\x6c\x6c\x6c\x6c\xfe\xc6"
-		"\x7e\x60\x60\x7c\x60\x60\x7e\x00"
-		"\xdb\xdb\x7e\x3c\x7e\xdb\xdb\x00"
-		"\x3c\x66\x06\x1c\x06\x66\x3c\x00"
-		"\x66\x66\x6e\x7e\x76\x66\x66\x00"
-		"\x3c\x66\x6e\x7e\x76\x66\x66\x00"
-		"\x66\x6c\x78\x70\x78\x6c\x66\x00"
-		"\x1e\x36\x66\x66\x66\x66\x66\x00"
-		"\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00"
-		"\x66\x66\x66\x7e\x66\x66\x66\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3c\x00"
-		"\x7e\x66\x66\x66\x66\x66\x66\x00"
-		"\x7c\x66\x66\x66\x7c\x60\x60\x00"
-		"\x3c\x66\x60\x60\x60\x66\x3c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\x66\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x7e\xdb\xdb\xdb\x7e\x18\x18\x00"
-		"\x66\x66\x3c\x18\x3c\x66\x66\x00"
-		"\x66\x66\x66\x66\x66\x66\x7f\x03"
-		"\x66\x66\x66\x3e\x06\x06\x06\x00"
-		"\xdb\xdb\xdb\xdb\xdb\xdb\xff\x00"
-		"\xdb\xdb\xdb\xdb\xdb\xdb\xff\x03"
-		"\xe0\x60\x60\x7c\x66\x66\x7c\x00"
-		"\xc6\xc6\xc6\xf6\xde\xde\xf6\x00"
-		"\x60\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x78\x8c\x06\x3e\x06\x8c\x78\x00"
-		"\xce\xdb\xdb\xfb\xdb\xdb\xce\x00"
-		"\x3e\x66\x66\x66\x3e\x36\x66\x00"
-		"\x00\x00\x78\x0c\x7c\xcc\x76\x00"
-		"\x00\x3c\x60\x3c\x66\x66\x3c\x00"
-		"\x00\x00\x7c\x66\x7c\x66\x7c\x00"
-		"\x00\x00\x7e\x60\x60\x60\x60\x00"
-		"\x00\x00\x3c\x6c\x6c\x6c\xfe\xc6"
-		"\x00\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x00\x00\xdb\x7e\x3c\x7e\xdb\x00"
-		"\x00\x00\x3c\x66\x0c\x66\x3c\x00"
-		"\x00\x00\x66\x6e\x7e\x76\x66\x00"
-		"\x00\x18\x66\x6e\x7e\x76\x66\x00"
-		"\x00\x00\x66\x6c\x78\x6c\x66\x00"
-		"\x00\x00\x1e\x36\x66\x66\x66\x00"
-		"\x00\x00\xc6\xfe\xfe\xd6\xc6\x00"
-		"\x00\x00\x66\x66\x7e\x66\x66\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00"
-		"\x00\x00\x7e\x66\x66\x66\x66\x00"
-		"\x11\x44\x11\x44\x11\x44\x11\x44"
-		"\x55\xaa\x55\xaa\x55\xaa\x55\xaa"
-		"\xdd\x77\xdd\x77\xdd\x77\xdd\x77"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\xf8\x18\x18\x18\x18"
-		"\x18\xf8\x18\xf8\x18\x18\x18\x18"
-		"\x36\x36\x36\xf6\x36\x36\x36\x36"
-		"\x00\x00\x00\xfe\x36\x36\x36\x36"
-		"\x00\xf8\x18\xf8\x18\x18\x18\x18"
-		"\x36\xf6\x06\xf6\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\xfe\x06\xf6\x36\x36\x36\x36"
-		"\x36\xf6\x06\xfe\x00\x00\x00\x00"
-		"\x36\x36\x36\xfe\x00\x00\x00\x00"
-		"\x18\xf8\x18\xf8\x00\x00\x00\x00"
-		"\x00\x00\x00\xf8\x18\x18\x18\x18"
-		"\x18\x18\x18\x1f\x00\x00\x00\x00"
-		"\x18\x18\x18\xff\x00\x00\x00\x00"
-		"\x00\x00\x00\xff\x18\x18\x18\x18"
-		"\x18\x18\x18\x1f\x18\x18\x18\x18"
-		"\x00\x00\x00\xff\x00\x00\x00\x00"
-		"\x18\x18\x18\xff\x18\x18\x18\x18"
-		"\x18\x1f\x18\x1f\x18\x18\x18\x18"
-		"\x36\x36\x36\x37\x36\x36\x36\x36"
-		"\x36\x37\x30\x3f\x00\x00\x00\x00"
-		"\x00\x3f\x30\x37\x36\x36\x36\x36"
-		"\x36\xf7\x00\xff\x00\x00\x00\x00"
-		"\x00\xff\x00\xf7\x36\x36\x36\x36"
-		"\x36\x37\x30\x37\x36\x36\x36\x36"
-		"\x00\xff\x00\xff\x00\x00\x00\x00"
-		"\x36\xf7\x00\xf7\x36\x36\x36\x36"
-		"\x18\xff\x00\xff\x00\x00\x00\x00"
-		"\x36\x36\x36\xff\x00\x00\x00\x00"
-		"\x00\xff\x00\xff\x18\x18\x18\x18"
-		"\x00\x00\x00\xff\x36\x36\x36\x36"
-		"\x36\x36\x36\x3f\x00\x00\x00\x00"
-		"\x18\x1f\x18\x1f\x00\x00\x00\x00"
-		"\x00\x1f\x18\x1f\x18\x18\x18\x18"
-		"\x00\x00\x00\x3f\x36\x36\x36\x36"
-		"\x36\x36\x36\xff\x36\x36\x36\x36"
-		"\x18\xff\x18\xff\x18\x18\x18\x18"
-		"\x18\x18\x18\xf8\x00\x00\x00\x00"
-		"\x00\x00\x00\x1f\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\x66\x66\x7c\x60\x00"
-		"\x00\x00\x3c\x66\x60\x66\x3c\x00"
-		"\x00\x00\x7e\x18\x18\x18\x18\x00"
-		"\x00\x00\x66\x66\x3e\x06\x3c\x00"
-		"\x00\x00\x7e\xdb\xdb\x7e\x18\x00"
-		"\x00\x00\x66\x3c\x18\x3c\x66\x00"
-		"\x00\x00\x66\x66\x66\x66\x7f\x03"
-		"\x00\x00\x66\x66\x3e\x06\x06\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\xff\x00"
-		"\x00\x00\xdb\xdb\xdb\xdb\xff\x03"
-		"\x00\x00\xe0\x60\x7c\x66\x7c\x00"
-		"\x00\x00\xc6\xc6\xf6\xde\xf6\x00"
-		"\x00\x00\x60\x60\x7c\x66\x7c\x00"
-		"\x00\x00\x7c\x06\x3e\x06\x7c\x00"
-		"\x00\x00\xce\xdb\xfb\xdb\xce\x00"
-		"\x00\x00\x3e\x66\x3e\x36\x66\x00"
-		"\x66\x00\x7e\x60\x7c\x60\x7e\x00"
-		"\x24\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x06\x7e\x60\x60\x60\x60\x60\x00"
-		"\x00\x06\x7e\x60\x60\x60\x60\x00"
-		"\x3c\x66\xc0\xf8\xc0\x66\x3c\x00"
-		"\x00\x00\x7c\xc0\xf8\xc0\x7c\x00"
-		"\x30\x78\x30\x30\x30\x30\x78\x00"
-		"\x20\x00\x70\x30\x30\x30\x78\x00"
-		"\x48\x78\x30\x30\x30\x30\x78\x00"
-		"\x50\x00\x70\x30\x30\x30\x78\x00"
-		"\x00\x00\x00\x38\x38\x00\x00\x00"
-		"\x03\x02\x06\x04\xcc\x68\x38\x10"
-		"\x3c\x42\x99\xa1\xa1\x99\x42\x3c"
-		"\x30\x48\x10\x20\x78\x00\x00\x00"
-		"\x00\x00\x7c\x7c\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x7e\x00"
-	, "Ukrainian font cp866u", CIOLIB_CP866U}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x10\x10\x10\x10\x10\x00\x00\x10\x10\x00\x00\x00"
-		"\x00\x00\x24\x24\x24\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x24\x24\x24\x7e\x24\x24\x24\x7e\x24\x24\x24\x00\x00\x00"
-		"\x00\x00\x08\x3f\x48\x48\x48\x3e\x09\x09\x09\x7e\x08\x00\x00\x00"
-		"\x00\x00\x00\x30\x49\x32\x04\x08\x10\x26\x49\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x18\x24\x24\x18\x25\x22\x22\x22\x1d\x00\x00\x00\x00"
-		"\x00\x18\x08\x08\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x04\x08\x10\x10\x10\x10\x10\x10\x08\x04\x00\x00\x00\x00"
-		"\x00\x00\x10\x08\x04\x04\x04\x04\x04\x04\x08\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x24\x18\x7e\x18\x24\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x08\x08\x08\x7f\x08\x08\x08\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x08\x10\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x01\x02\x04\x08\x10\x20\x40\x80\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x24\x42\x42\x42\x42\x42\x42\x24\x18\x00\x00\x00\x00"
-		"\x00\x00\x08\x18\x08\x08\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x02\x02\x04\x08\x10\x20\x40\x7e\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x02\x02\x1c\x02\x02\x02\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x02\x06\x0a\x12\x22\x42\x7f\x02\x02\x02\x00\x00\x00\x00"
-		"\x00\x00\x7e\x40\x40\x40\x7c\x02\x02\x02\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x40\x40\x40\x7c\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x7e\x02\x02\x04\x04\x08\x08\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x42\x42\x3c\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x42\x42\x42\x3e\x02\x02\x02\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x18\x08\x08\x10\x00"
-		"\x00\x00\x00\x04\x08\x10\x20\x40\x20\x10\x08\x04\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x20\x10\x08\x04\x02\x04\x08\x10\x20\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x02\x02\x04\x08\x10\x00\x00\x10\x10\x00\x00\x00"
-		"\x00\x00\x00\x1c\x22\x49\x55\x55\x56\x4c\x20\x1e\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x42\x42\x42\x7e\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x7c\x42\x42\x42\x7c\x42\x42\x42\x42\x7c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x40\x40\x40\x40\x40\x40\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x78\x44\x42\x42\x42\x42\x42\x42\x44\x78\x00\x00\x00\x00"
-		"\x00\x00\x7e\x40\x40\x40\x7c\x40\x40\x40\x40\x7e\x00\x00\x00\x00"
-		"\x00\x00\x7e\x40\x40\x40\x7c\x40\x40\x40\x40\x40\x00\x00\x00\x00"
-		"\x00\x00\x3e\x40\x40\x40\x4e\x42\x42\x42\x42\x3e\x00\x00\x00\x00"
-		"\x00\x00\x42\x42\x42\x42\x7e\x42\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x1c\x08\x08\x08\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x00\x0e\x02\x02\x02\x02\x02\x02\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x42\x44\x48\x50\x60\x60\x50\x48\x44\x42\x00\x00\x00\x00"
-		"\x00\x00\x40\x40\x40\x40\x40\x40\x40\x40\x40\x7e\x00\x00\x00\x00"
-		"\x00\x00\x41\x63\x55\x49\x41\x41\x41\x41\x41\x41\x00\x00\x00\x00"
-		"\x00\x00\x42\x62\x52\x52\x4a\x4a\x46\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x7c\x42\x42\x42\x42\x7c\x40\x40\x40\x40\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x42\x42\x42\x42\x42\x42\x4a\x3c\x04\x02\x00\x00"
-		"\x00\x00\x7c\x42\x42\x42\x42\x7c\x50\x48\x44\x42\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x40\x40\x3c\x02\x02\x02\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x7f\x08\x08\x08\x08\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x42\x42\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x41\x41\x41\x41\x41\x22\x22\x14\x14\x08\x00\x00\x00\x00"
-		"\x00\x00\x41\x41\x41\x41\x41\x41\x49\x55\x63\x41\x00\x00\x00\x00"
-		"\x00\x00\x41\x41\x22\x14\x08\x08\x14\x22\x41\x41\x00\x00\x00\x00"
-		"\x00\x00\x41\x41\x41\x22\x14\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x7e\x02\x02\x04\x08\x10\x20\x40\x40\x7e\x00\x00\x00\x00"
-		"\x00\x00\x3c\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\x40\x20\x10\x08\x04\x02\x01\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x04\x04\x04\x04\x04\x04\x04\x04\x3c\x00\x00\x00\x00"
-		"\x00\x00\x08\x14\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00"
-		"\x00\x18\x10\x10\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x42\x02\x3e\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x00\x40\x40\x40\x7c\x42\x42\x42\x42\x42\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x42\x40\x40\x40\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x02\x02\x02\x3e\x42\x42\x42\x42\x42\x3e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x42\x42\x7e\x40\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x0e\x10\x10\x7e\x10\x10\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3e\x42\x42\x42\x42\x42\x3e\x02\x02\x3c\x00"
-		"\x00\x00\x40\x40\x40\x7c\x42\x42\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x08\x08\x00\x38\x08\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x02\x02\x00\x0e\x02\x02\x02\x02\x02\x02\x02\x42\x3c\x00"
-		"\x00\x00\x40\x40\x40\x42\x44\x48\x70\x48\x44\x42\x00\x00\x00\x00"
-		"\x00\x00\x70\x10\x10\x10\x10\x10\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x76\x49\x49\x49\x49\x49\x49\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x42\x42\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x7c\x42\x42\x42\x42\x42\x7c\x40\x40\x40\x00"
-		"\x00\x00\x00\x00\x00\x3e\x42\x42\x42\x42\x42\x3e\x02\x02\x02\x00"
-		"\x00\x00\x00\x00\x00\x5c\x62\x40\x40\x40\x40\x40\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x42\x40\x3c\x02\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x10\x7c\x10\x10\x10\x10\x10\x0e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x42\x42\x42\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x42\x42\x42\x42\x24\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x49\x49\x49\x49\x49\x49\x36\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x42\x24\x18\x24\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x42\x42\x42\x42\x42\x3e\x02\x02\x3c\x00"
-		"\x00\x00\x00\x00\x00\x7e\x04\x08\x10\x20\x40\x7e\x00\x00\x00\x00"
-		"\x00\x0c\x10\x10\x10\x10\x20\x10\x10\x10\x10\x0c\x00\x00\x00\x00"
-		"\x00\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x00\x00\x00"
-		"\x00\x30\x08\x08\x08\x08\x04\x08\x08\x08\x08\x30\x00\x00\x00\x00"
-		"\x00\x00\x32\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x10\x10\x00\x00\x10\x10\x10\x10\x10\x10\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x08\x08\x3c\x4a\x48\x48\x4a\x3c\x08\x08\x00\x00\x00"
-		"\x00\x00\x1c\x22\x22\x20\x78\x20\x20\x20\x21\x7e\x00\x00\x00\x00"
-		"\x00\x00\x41\x3e\x22\x22\x22\x3e\x41\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x41\x22\x14\x08\x08\x3e\x08\x3e\x08\x08\x00\x00\x00\x00"
-		"\x00\x08\x08\x08\x08\x08\x00\x00\x08\x08\x08\x08\x08\x00\x00\x00"
-		"\x00\x00\x3c\x42\x20\x3c\x42\x42\x42\x3c\x04\x42\x3c\x00\x00\x00"
-		"\x00\x24\x24\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x3e\x41\x41\x5d\x51\x51\x5d\x41\x41\x3e\x00\x00\x00\x00"
-		"\x00\x00\x00\x38\x44\x44\x3e\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x09\x12\x24\x48\x90\x48\x24\x12\x09\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x02\x02\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x3e\x41\x5d\x55\x59\x55\x55\x41\x41\x3e\x00\x00\x00\x00"
-		"\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x24\x24\x24\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x08\x08\x3e\x08\x08\x00\x3e\x00\x00\x00\x00"
-		"\x00\x00\x30\x48\x10\x20\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x70\x08\x30\x08\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x02\x04\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x42\x42\x42\x42\x42\x7e\x41\x40\x40\x80\x00"
-		"\x00\x00\x7c\x52\x52\x52\x5c\x50\x50\x50\x50\x50\x50\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x04\x08\x00"
-		"\x00\x00\x10\x30\x10\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x24\x18\x00\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x90\x48\x24\x12\x09\x12\x24\x48\x90\x00\x00\x00\x00"
-		"\x00\x10\x30\x10\x11\x12\x04\x08\x11\x23\x45\x0f\x01\x01\x00\x00"
-		"\x00\x10\x30\x10\x11\x12\x04\x08\x10\x26\x49\x02\x04\x0f\x00\x00"
-		"\x00\x30\x48\x10\x09\x4a\x34\x08\x11\x23\x45\x0f\x01\x01\x00\x00"
-		"\x00\x00\x00\x10\x10\x00\x10\x10\x10\x20\x40\x40\x42\x3c\x00\x00"
-		"\x30\x0c\x00\x3c\x42\x42\x42\x7e\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x0c\x30\x00\x3c\x42\x42\x42\x7e\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x18\x24\x00\x3c\x42\x42\x42\x7e\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x32\x4c\x00\x3c\x42\x42\x42\x7e\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x24\x00\x3c\x42\x42\x42\x7e\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x18\x24\x18\x3c\x42\x42\x42\x7e\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x00\x3f\x48\x48\x48\x7e\x48\x48\x48\x48\x4f\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x40\x40\x40\x40\x40\x40\x42\x3c\x04\x02\x3c\x00"
-		"\x18\x06\x00\x3e\x20\x20\x20\x3c\x20\x20\x20\x3e\x00\x00\x00\x00"
-		"\x06\x18\x00\x3e\x20\x20\x20\x3c\x20\x20\x20\x3e\x00\x00\x00\x00"
-		"\x0c\x12\x00\x3e\x20\x20\x20\x3c\x20\x20\x20\x3e\x00\x00\x00\x00"
-		"\x14\x14\x00\x3e\x20\x20\x20\x3c\x20\x20\x20\x3e\x00\x00\x00\x00"
-		"\x18\x06\x00\x1c\x08\x08\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x06\x18\x00\x1c\x08\x08\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x08\x14\x00\x1c\x08\x08\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x14\x14\x00\x1c\x08\x08\x08\x08\x08\x08\x08\x1c\x00\x00\x00\x00"
-		"\x00\x00\x78\x44\x42\x42\xf2\x42\x42\x42\x44\x78\x00\x00\x00\x00"
-		"\x00\x19\x26\x00\x41\x61\x51\x49\x45\x43\x41\x41\x00\x00\x00\x00"
-		"\x30\x0c\x00\x3c\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x0c\x30\x00\x3c\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x18\x24\x00\x3c\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x32\x4c\x00\x3c\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x66\x00\x3c\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x22\x14\x08\x14\x22\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x01\x1a\x24\x4a\x4a\x52\x52\x24\x58\x80\x00\x00\x00\x00"
-		"\x30\x0c\x00\x42\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x0c\x30\x00\x42\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x18\x24\x00\x42\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x66\x00\x42\x42\x42\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x04\x08\x00\x41\x41\x22\x14\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x20\x20\x38\x24\x22\x22\x22\x24\x38\x20\x20\x20\x00\x00\x00"
-		"\x00\x00\x1e\x21\x21\x21\x3e\x21\x21\x21\x3e\x20\x20\x20\x00\x00"
-		"\x00\x10\x08\x04\x00\x3c\x42\x02\x3e\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x04\x08\x10\x00\x3c\x42\x02\x3e\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x10\x28\x44\x00\x3c\x42\x02\x3e\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x00\x32\x4c\x00\x3c\x42\x02\x3e\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x00\x24\x24\x00\x3c\x42\x02\x3e\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x1c\x22\x1c\x00\x3c\x42\x02\x3e\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x36\x09\x09\x3e\x48\x48\x3e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x3c\x42\x40\x40\x40\x42\x3c\x08\x04\x78\x00"
-		"\x00\x20\x10\x08\x00\x3c\x42\x42\x7e\x40\x42\x3c\x00\x00\x00\x00"
-		"\x00\x04\x08\x10\x00\x3c\x42\x42\x7e\x40\x42\x3c\x00\x00\x00\x00"
-		"\x00\x18\x24\x42\x00\x3c\x42\x42\x7e\x40\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x24\x24\x00\x3c\x42\x42\x7e\x40\x42\x3c\x00\x00\x00\x00"
-		"\x00\x10\x08\x04\x00\x38\x08\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x04\x08\x10\x00\x38\x08\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x08\x14\x22\x00\x38\x08\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x22\x22\x00\x38\x08\x08\x08\x08\x08\x08\x00\x00\x00\x00"
-		"\x00\x00\x1d\x02\x06\x0a\x02\x3e\x42\x42\x42\x3e\x00\x00\x00\x00"
-		"\x00\x00\x32\x4c\x00\x7c\x42\x42\x42\x42\x42\x42\x00\x00\x00\x00"
-		"\x00\x20\x10\x08\x00\x3c\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x08\x10\x20\x00\x3c\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x18\x24\x00\x3c\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x32\x4c\x00\x3c\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x24\x00\x00\x3c\x42\x42\x42\x42\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x08\x00\x3e\x00\x08\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x1d\x22\x45\x49\x51\x22\x5c\x00\x00\x00\x00"
-		"\x00\x20\x10\x08\x00\x42\x42\x42\x42\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x08\x10\x20\x00\x42\x42\x42\x42\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x18\x24\x42\x00\x42\x42\x42\x42\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x00\x24\x24\x00\x42\x42\x42\x42\x42\x42\x3d\x00\x00\x00\x00"
-		"\x00\x00\x04\x08\x00\x00\x42\x42\x42\x42\x42\x3e\x02\x02\x3c\x00"
-		"\x00\x00\x20\x20\x38\x24\x24\x24\x28\x30\x20\x20\x20\x00\x00\x00"
-		"\x00\x00\x24\x24\x00\x00\x42\x42\x42\x42\x42\x3e\x02\x02\x3c\x00"
-	, NULL, NULL, "ISO-8859-1 West European, (thin)", CIOLIB_ISO_8859_1}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x42\x81\xe7\xa5\x99\x81\x99\x42\x3c\x00\x00\x00\x00"
-		"\x00\x00\x3c\x7e\xff\x99\xdb\xe7\xff\xe7\x7e\x3c\x00\x00\x00\x00"
-		"\x00\x00\x00\x6c\xfe\xfe\xfe\xfe\xfe\x7c\x38\x10\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x7c\xfe\x7c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x00\x38\x38\x10\xd6\xfe\xd6\x10\x38\x7c\x7c\x00\x00\x00\x00"
-		"\x00\x00\x10\x38\x7c\xfe\xfe\x54\x10\x38\x7c\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xe7\xc3\xc3\xe7\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x3c\x66\x42\x42\x66\x3c\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xc3\x99\xbd\xbd\x99\xc3\xff\xff\xff\xff\xff"
-		"\x00\x00\x1e\x0e\x1a\x30\x78\xcc\xcc\xcc\xcc\x78\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x18\x7e\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x20\x30\x38\x3c\x36\x36\x30\x70\xf0\xf0\x60\x00\x00\x00\x00"
-		"\x00\x00\x3e\x22\x3e\x22\x22\x22\x22\x26\x6e\xe4\x40\x00\x00\x00"
-		"\x00\x00\x00\x10\x92\x54\x28\xc6\x28\x54\x92\x10\x00\x00\x00\x00"
-		"\x00\x00\x40\x60\x70\x78\x7c\x7e\x7c\x78\x70\x60\x40\x00\x00\x00"
-		"\x00\x00\x02\x06\x0e\x1e\x3e\x7e\x3e\x1e\x0e\x06\x02\x00\x00\x00"
-		"\x00\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x7e\x3c\x18\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x66\x00\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x7e\xf4\xf4\xf4\x74\x14\x14\x14\x14\x14\x00\x00\x00\x00"
-		"\x00\x1e\x30\x78\xdc\xce\xe7\x73\x3b\x1e\x0c\x78\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xfe\xfe\x00\x00\x00\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\xff\x00"
-		"\x00\x00\x18\x3c\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x7e\x3c\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x0c\x06\xff\x06\x0c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x30\x60\xff\x60\x30\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x33\x66\xee\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x24\x66\xff\x66\x24\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x3c\x3c\x7e\x7e\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\xff\x7e\x7e\x3c\x3c\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x00\x77\x66\xcc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x6c\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x6c\x00\x00\x00"
-		"\x00\x10\x7c\xd6\xd0\xd0\x70\x38\x1c\x16\x16\xd6\x7c\x10\x00\x00"
-		"\x00\x00\xc6\xc6\x0c\x0c\x18\x30\x30\x60\x60\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x38\x6c\x6c\x38\x70\xd6\xdc\xcc\xcc\xcc\x76\x00\x00\x00"
-		"\x00\x00\x1c\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x00\x00"
-		"\x00\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\xff\x3c\x3c\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x18\x30\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00"
-		"\x00\x03\x03\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xd6\xd6\xd6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x18\x18\x38\x78\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x0c\x18\x30\x60\xc0\xc0\xfe\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x0c\x0c\xcc\xcc\xcc\xcc\xfe\x0c\x0c\x0c\x0c\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\x06\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x3c\x60\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfe\x06\x06\x0c\x0c\x18\x18\x30\x30\x30\x30\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\x7e\x06\x06\x0c\x18\x70\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x1c\x18\x30\x00\x00\x00"
-		"\x00\x00\x06\x0c\x18\x30\x60\xc0\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xc0\x60\x30\x18\x0c\x06\x0c\x18\x30\x60\xc0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x0c\x18\x30\x30\x00\x30\x30\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xde\xde\xde\xde\xdc\xc0\x7c\x00\x00\x00"
-		"\x00\x00\x38\x38\x38\x6c\x6c\x6c\x7c\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x66\x3c\x00\x00\x00"
-		"\x00\x00\xf8\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xcc\xf8\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xc0\xc0\xc0\xc0\xc0\xfe\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc0\xc0\xc0\xce\xc6\xc6\xc6\x66\x3c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x1e\x06\x06\x06\x06\x06\x06\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xcc\xd8\xf0\xe0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xfe\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xe6\xf6\xfe\xde\xce\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xf6\xde\x7c\x0c\x06\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xd8\xcc\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc0\xc0\x60\x38\x0c\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x6c\x6c\x6c\x38\x38\x10\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xd6\xd6\xfe\xee\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\xfe\x06\x0c\x0c\x18\x18\x30\x60\x60\xc0\xfe\x00\x00\x00"
-		"\x00\x00\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00"
-		"\x00\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x06\x03\x03\x00"
-		"\x00\x00\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00"
-		"\x00\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00"
-		"\x00\x00\x70\x30\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\x06\x7e\xc6\xc6\xc6\x7e\x00\x00\x00"
-		"\x00\x00\xc0\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x06\x06\x06\x06\x7e\xc6\xc6\xc6\xc6\xc6\x7e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x3c\x66\x60\x60\xf0\x60\x60\x60\x60\x60\x60\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\x00\xc0\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x06\x06\x00\x00\x06\x06\x06\x06\x06\x06\x06\xc6\xc6\x7c"
-		"\x00\x00\x00\xc0\xc0\xc0\xc6\xcc\xd8\xf0\xd8\xcc\xc6\x00\x00\x00"
-		"\x00\x00\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xec\xfe\xfe\xd6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0"
-		"\x00\x00\x00\x00\x00\x00\x7e\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06"
-		"\x00\x00\x00\x00\x00\x00\xfc\xc6\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc0\x70\x1c\x06\x06\x7c\x00\x00\x00"
-		"\x00\x00\x00\x10\x30\x30\xfc\x30\x30\x30\x30\x30\x1c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x10\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xd6\xd6\xfe\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\x0c\x18\x30\x60\xfe\x00\x00\x00"
-		"\x00\x00\x0e\x18\x18\x18\x30\x60\x30\x18\x18\x18\x0e\x00\x00\x00"
-		"\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x70\x18\x18\x18\x0c\x06\x0c\x18\x18\x18\x70\x00\x00\x00"
-		"\x00\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x10\x38\x6c\xc6\xc6\xc6\xfe\x00\x00\x00\x00\x00"
-		"\x00\x00\x38\x38\x38\x6c\x6c\x6c\x7c\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\xc0\xc0\xc0\xfc\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xfc\xc6\xc6\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x66\x7e\xc3\x66\x00"
-		"\x00\x00\xfe\xc0\xc0\xc0\xfc\xc0\xc0\xc0\xc0\xc0\xfe\x00\x00\x00"
-		"\x00\x00\xd6\xd6\x54\x7c\x38\x38\x38\x7c\x54\xd6\xd6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3c\x06\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xc6\xce\xde\xfe\xf6\xe6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x44\x38\xc6\xce\xde\xfe\xf6\xe6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xcc\xd8\xf0\xe0\xf0\xd8\xcc\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x38\x38\x38\x6c\x6c\x6c\x6c\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xfe\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xfc\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x3c\x66\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x66\x3c\x00\x00\x00"
-		"\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x10\x7c\xd6\xd6\xd6\xd6\x7c\x10\x10\x10\x10\x00\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x03\x06\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\x06\x06\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x03\x06\x00"
-		"\x00\x00\xf0\xb0\x30\x30\x3c\x36\x36\x36\x36\x36\x3c\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xf2\xda\xda\xda\xda\xda\xf6\x00\x00\x00"
-		"\x00\x00\x30\x30\x30\x30\x3c\x36\x36\x36\x36\x36\x3c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\x06\x06\x3e\x06\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x9c\xb6\xb6\xb6\xf6\xb6\xb6\xb6\xb6\xb6\x9c\x00\x00\x00"
-		"\x00\x00\x7e\xc6\xc6\xc6\xc6\x7e\x36\x66\x66\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\x06\x7e\xc6\xc6\xc6\x7e\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfc\xc0\xfc\xc6\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfc\xc6\xc6\xfc\xc6\xc6\xfc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfc\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x3c\x66\x66\x66\x66\x66\xff\xc3\x66\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xd6\x7c\x38\x38\x38\x7c\xd6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\x06\x3c\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x44\x38\x00\xc6\xc6\xce\xde\xf6\xe6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xcc\xd8\xf0\xd8\xcc\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x10\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xee\xfe\xfe\xd6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00\x00"
-		"\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11\x44\x11"
-		"\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55\xaa\x55"
-		"\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd\x77\xdd"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xf8\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\xf6\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\xf8\x18\xf8\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\xf6\x06\xf6\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\xfe\x06\xf6\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\xf6\x06\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\xfe\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xf8\x18\xf8\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x1f\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x1f\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xff\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x37\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x37\x30\x3f\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x3f\x30\x37\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\xf7\x00\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\x00\xf7\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x37\x30\x37\x36\x36\x36\x36\x36\x36\x36"
-		"\x00\x00\x00\x00\x00\x00\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\xf7\x00\xf7\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\x18\xff\x00\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\x00\xff\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\x3f\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x1f\x18\x1f\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x1f\x18\x1f\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x36\x36\x36\x36\x36\x36\x36"
-		"\x36\x36\x36\x36\x36\x36\x36\x36\xff\x36\x36\x36\x36\x36\x36\x36"
-		"\x18\x18\x18\x18\x18\x18\xff\x00\xff\x18\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\xf8\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x18\x18\x18\x18\x18\x18\x18"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xfc\xc6\xc6\xc6\xc6\xc6\xfc\xc0\xc0\xc0"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x00\x00\x00\x00\x00\x00\x7c\xd6\xd6\xd6\xd6\xd6\x7c\x10\x10\x10"
-		"\x00\x00\x00\x00\x00\x00\xc6\x6c\x38\x38\x38\x6c\xc6\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xfe\x03\x06\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\x7e\x06\x06\x06\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xd6\xd6\xd6\xd6\xd6\xd6\xfe\x03\x06\x00"
-		"\x00\x00\x00\x00\x00\x00\xf0\xb0\x30\x3c\x36\x36\x3c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xc6\xc6\xc6\xfa\xce\xce\xfa\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x60\x60\x60\x7c\x66\x66\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\x06\x3e\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xcc\xd6\xd6\xf6\xd6\xd6\xcc\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\xc6\xc6\x7e\x36\x66\xc6\x00\x00\x00"
-		"\x6c\x6c\x00\xfe\xc0\xc0\xfc\xc0\xc0\xc0\xc0\xc0\xfe\x00\x00\x00"
-		"\x00\x00\x00\x6c\x6c\x00\x7c\xc6\xfe\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc0\xc0\xf8\xc0\xc0\xc0\xc0\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7c\xc6\xc0\xf8\xc0\xc6\x7c\x00\x00\x00"
-		"\x24\x24\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x36\x36\x00\x00\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x44\x38\x00\xc6\xc6\xc6\xc6\x7e\x06\x06\x06\xc6\x7c\x00\x00\x00"
-		"\x00\x00\x00\x44\x38\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x06\xc6\x7c"
-		"\x18\x18\x00\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x66\x66\x3c\x66\x66\x66\x66\x3c\x66\x66\x00\x00\x00"
-		"\x06\x06\xfe\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x0c\x0c\xfc\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x3c\x3c\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	, NULL, NULL, "Codepage 1131 Belarusian, (swiss)", CIOLIB_CP1131}
-	,{
-	// 0x00 - 0x1F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0x20 - 0x3F - Mapped from 0x20 - 0x3F in the ROM font
-		// 0x20
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00\x18\x18\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x66\x66\x66\x66\xff\xff\x66\x66\xff\xff\x66\x66\x66\x66\x00\x00"
-		"\x18\x18\x3e\x3e\x60\x60\x3c\x3c\x06\x06\x7c\x7c\x18\x18\x00\x00"
-		"\x62\x62\x66\x66\x0c\x0c\x18\x18\x30\x30\x66\x66\x46\x46\x00\x00"
-		"\x3c\x3c\x66\x66\x3c\x3c\x38\x38\x67\x67\x66\x66\x3f\x3f\x00\x00"
-		"\x06\x06\x0c\x0c\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0c\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x0c\x00\x00"
-		"\x30\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x30\x00\x00"
-		"\x00\x00\x66\x66\x3c\x3c\xff\xff\x3c\x3c\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x7e\x7e\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x03\x03\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\x00\x00"
-		// 0x30
-		"\x3c\x3c\x66\x66\x6e\x6e\x76\x76\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x18\x18\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x0c\x0c\x30\x30\x60\x60\x7e\x7e\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x1c\x1c\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x06\x06\x0e\x0e\x1e\x1e\x66\x66\x7f\x7f\x06\x06\x06\x06\x00\x00"
-		"\x7e\x7e\x60\x60\x7c\x7c\x06\x06\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x7c\x7c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x66\x66\x0c\x0c\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x3e\x3e\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x0e\x0e\x18\x18\x30\x30\x60\x60\x30\x30\x18\x18\x0e\x0e\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00"
-		"\x70\x70\x18\x18\x0c\x0c\x06\x06\x0c\x0c\x18\x18\x70\x70\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x0c\x0c\x18\x18\x00\x00\x18\x18\x00\x00"
-	// 0x40 - 0x5F - Mapped from 0x00 - 0x1F in the ROM font
-		// 0x00
-		"\x3c\x3c\x66\x66\x6e\x6e\x6e\x6e\x60\x60\x62\x62\x3c\x3c\x00\x00"
-		"\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x60\x60\x60\x60\x66\x66\x3c\x3c\x00\x00"
-		"\x78\x78\x6c\x6c\x66\x66\x66\x66\x66\x66\x6c\x6c\x78\x78\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x6e\x6e\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x1e\x1e\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x6c\x6c\x38\x38\x00\x00"
-		"\x66\x66\x6c\x6c\x78\x78\x70\x70\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x63\x63\x77\x77\x7f\x7f\x6b\x6b\x63\x63\x63\x63\x63\x63\x00\x00"
-		"\x66\x66\x76\x76\x7e\x7e\x7e\x7e\x6e\x6e\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		// 0x10
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x0e\x0e\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x3c\x3c\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x00\x00"
-		"\x63\x63\x63\x63\x63\x63\x6b\x6b\x7f\x7f\x77\x77\x63\x63\x00\x00"
-		"\x66\x66\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x66\x66\x66\x66\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x7e\x7e\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\x7e\x7e\x00\x00"
-		"\x3c\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x3c\x00\x00"
-		"\x0c\x0c\x12\x12\x30\x30\x7c\x7c\x30\x30\x62\x62\xfc\xfc\x00\x00"
-		"\x3c\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x3c\x00\x00"
-		"\x00\x00\x18\x18\x3c\x3c\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x10\x10\x30\x30\x7f\x7f\x7f\x7f\x30\x30\x10\x10\x00\x00"
-	// 0x60 - 0x7F - Mapped from 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x08\x08\x1c\x1c\x3e\x3e\x7f\x7f\x7f\x7f\x1c\x1c\x3e\x3e\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00"
-		"\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30"
-		"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c"
-		"\x00\x00\x00\x00\x00\x00\xe0\xe0\xf0\xf0\x38\x38\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x1c\x1c\x0f\x0f\x07\x07\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x38\x38\xf0\xf0\xe0\xe0\x00\x00\x00\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xff\xff\xff\xff"
-		"\xc0\xc0\xe0\xe0\x70\x70\x38\x38\x1c\x1c\x0e\x0e\x07\x07\x03\x03"
-		"\x03\x03\x07\x07\x0e\x0e\x1c\x1c\x38\x38\x70\x70\xe0\xe0\xc0\xc0"
-		"\xff\xff\xff\xff\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		// 0x50
-		"\xff\xff\xff\xff\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x3c\x3c\x7e\x7e\x7e\x7e\x7e\x7e\x7e\x7e\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00"
-		"\x36\x36\x7f\x7f\x7f\x7f\x7f\x7f\x3e\x3e\x1c\x1c\x08\x08\x00\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60"
-		"\x00\x00\x00\x00\x00\x00\x07\x07\x0f\x0f\x1c\x1c\x18\x18\x18\x18"
-		"\xc3\xc3\xe7\xe7\x7e\x7e\x3c\x3c\x3c\x3c\x7e\x7e\xe7\xe7\xc3\xc3"
-		"\x00\x00\x3c\x3c\x7e\x7e\x66\x66\x66\x66\x7e\x7e\x3c\x3c\x00\x00"
-		"\x18\x18\x18\x18\x66\x66\x66\x66\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06"
-		"\x08\x08\x1c\x1c\x3e\x3e\x7f\x7f\x3e\x3e\x1c\x1c\x08\x08\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\x30\x30\x30\x30\xc0\xc0\xc0\xc0\x30\x30\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x03\x03\x3e\x3e\x76\x76\x36\x36\x36\x36\x00\x00"
-		"\xff\xff\x7f\x7f\x3f\x3f\x1f\x1f\x0f\x0f\x07\x07\x03\x03\x01\x01"
-	// 0x80 - 0x9F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0xA0 - 0xBF - Mapped to 0x60 - 0x7F in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\xcc\xcc\x33\x33\x33\x33\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\xff\xff\xfe\xfe\xfc\xfc\xf8\xf8\xf0\xf0\xe0\xe0\xc0\xc0\x80\x80"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x00\x00\x00\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-	// 0xC0 - 0xDF - *ALSO* Mapped to 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x08\x08\x1c\x1c\x3e\x3e\x7f\x7f\x7f\x7f\x1c\x1c\x3e\x3e\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00"
-		"\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30"
-		"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c"
-		"\x00\x00\x00\x00\x00\x00\xe0\xe0\xf0\xf0\x38\x38\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x1c\x1c\x0f\x0f\x07\x07\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x38\x38\xf0\xf0\xe0\xe0\x00\x00\x00\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xff\xff\xff\xff"
-		"\xc0\xc0\xe0\xe0\x70\x70\x38\x38\x1c\x1c\x0e\x0e\x07\x07\x03\x03"
-		"\x03\x03\x07\x07\x0e\x0e\x1c\x1c\x38\x38\x70\x70\xe0\xe0\xc0\xc0"
-		"\xff\xff\xff\xff\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		// 0x50
-		"\xff\xff\xff\xff\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x3c\x3c\x7e\x7e\x7e\x7e\x7e\x7e\x7e\x7e\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00"
-		"\x36\x36\x7f\x7f\x7f\x7f\x7f\x7f\x3e\x3e\x1c\x1c\x08\x08\x00\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60"
-		"\x00\x00\x00\x00\x00\x00\x07\x07\x0f\x0f\x1c\x1c\x18\x18\x18\x18"
-		"\xc3\xc3\xe7\xe7\x7e\x7e\x3c\x3c\x3c\x3c\x7e\x7e\xe7\xe7\xc3\xc3"
-		"\x00\x00\x3c\x3c\x7e\x7e\x66\x66\x66\x66\x7e\x7e\x3c\x3c\x00\x00"
-		"\x18\x18\x18\x18\x66\x66\x66\x66\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06"
-		"\x08\x08\x1c\x1c\x3e\x3e\x7f\x7f\x3e\x3e\x1c\x1c\x08\x08\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\x30\x30\x30\x30\xc0\xc0\xc0\xc0\x30\x30\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x03\x03\x3e\x3e\x76\x76\x36\x36\x36\x36\x00\x00"
-		"\xff\xff\x7f\x7f\x3f\x3f\x1f\x1f\x0f\x0f\x07\x07\x03\x03\x01\x01"
-	// 0xE0 - 0xFE - *ALSO* Mapped to 0x60 - 0x7E in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\xcc\xcc\x33\x33\x33\x33\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\xff\xff\xfe\xfe\xfc\xfc\xf8\xf8\xf0\xf0\xe0\xe0\xc0\xc0\x80\x80"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x00\x00\x00\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\x00\x00\x00\x00\x00\x00\x00\x00"
-	// And finally, 0xFF which is mapped to 0x5E in the original font (!)
-		"\x00\x00\x00\x00\x03\x03\x3e\x3e\x76\x76\x36\x36\x36\x36\x00\x00"
-	, NULL
-	,
-	// 0x00 - 0x1F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0x20 - 0x3F - Mapped from 0x20 - 0x3F in the ROM font
-		// 0x20
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x00\x00\x18\x00"
-		"\x66\x66\x66\x00\x00\x00\x00\x00"
-		"\x66\x66\xff\x66\xff\x66\x66\x00"
-		"\x18\x3e\x60\x3c\x06\x7c\x18\x00"
-		"\x62\x66\x0c\x18\x30\x66\x46\x00"
-		"\x3c\x66\x3c\x38\x67\x66\x3f\x00"
-		"\x06\x0c\x18\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x30\x30\x18\x0c\x00"
-		"\x30\x18\x0c\x0c\x0c\x18\x30\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x18\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x30"
-		"\x00\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00"
-		"\x00\x03\x06\x0c\x18\x30\x60\x00"
-		// 0x30
-		"\x3c\x66\x6e\x76\x66\x66\x3c\x00"
-		"\x18\x18\x38\x18\x18\x18\x7e\x00"
-		"\x3c\x66\x06\x0c\x30\x60\x7e\x00"
-		"\x3c\x66\x06\x1c\x06\x66\x3c\x00"
-		"\x06\x0e\x1e\x66\x7f\x06\x06\x00"
-		"\x7e\x60\x7c\x06\x06\x66\x3c\x00"
-		"\x3c\x66\x60\x7c\x66\x66\x3c\x00"
-		"\x7e\x66\x0c\x18\x18\x18\x18\x00"
-		"\x3c\x66\x66\x3c\x66\x66\x3c\x00"
-		"\x3c\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x00\x00\x18\x00\x00\x18\x00\x00"
-		"\x00\x00\x18\x00\x00\x18\x18\x30"
-		"\x0e\x18\x30\x60\x30\x18\x0e\x00"
-		"\x00\x00\x7e\x00\x7e\x00\x00\x00"
-		"\x70\x18\x0c\x06\x0c\x18\x70\x00"
-		"\x3c\x66\x06\x0c\x18\x00\x18\x00"
-	// 0x40 - 0x5F - Mapped from 0x00 - 0x1F in the ROM font
-		// 0x00
-		"\x3c\x66\x6e\x6e\x60\x62\x3c\x00"
-		"\x18\x3c\x66\x7e\x66\x66\x66\x00"
-		"\x7c\x66\x66\x7c\x66\x66\x7c\x00"
-		"\x3c\x66\x60\x60\x60\x66\x3c\x00"
-		"\x78\x6c\x66\x66\x66\x6c\x78\x00"
-		"\x7e\x60\x60\x78\x60\x60\x7e\x00"
-		"\x7e\x60\x60\x78\x60\x60\x60\x00"
-		"\x3c\x66\x60\x6e\x66\x66\x3c\x00"
-		"\x66\x66\x66\x7e\x66\x66\x66\x00"
-		"\x3c\x18\x18\x18\x18\x18\x3c\x00"
-		"\x1e\x0c\x0c\x0c\x0c\x6c\x38\x00"
-		"\x66\x6c\x78\x70\x78\x6c\x66\x00"
-		"\x60\x60\x60\x60\x60\x60\x7e\x00"
-		"\x63\x77\x7f\x6b\x63\x63\x63\x00"
-		"\x66\x76\x7e\x7e\x6e\x66\x66\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3c\x00"
-		// 0x10
-		"\x7c\x66\x66\x7c\x60\x60\x60\x00"
-		"\x3c\x66\x66\x66\x66\x3c\x0e\x00"
-		"\x7c\x66\x66\x7c\x78\x6c\x66\x00"
-		"\x3c\x66\x60\x3c\x06\x66\x3c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\x66\x66\x66\x66\x66\x66\x3c\x00"
-		"\x66\x66\x66\x66\x66\x3c\x18\x00"
-		"\x63\x63\x63\x6b\x7f\x77\x63\x00"
-		"\x66\x66\x3c\x18\x3c\x66\x66\x00"
-		"\x66\x66\x66\x3c\x18\x18\x18\x00"
-		"\x7e\x06\x0c\x18\x30\x60\x7e\x00"
-		"\x3c\x30\x30\x30\x30\x30\x3c\x00"
-		"\x0c\x12\x30\x7c\x30\x62\xfc\x00"
-		"\x3c\x0c\x0c\x0c\x0c\x0c\x3c\x00"
-		"\x00\x18\x3c\x7e\x18\x18\x18\x18"
-		"\x00\x10\x30\x7f\x7f\x30\x10\x00"
-	// 0x60 - 0x7F - Mapped from 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x08\x1c\x3e\x7f\x7f\x1c\x3e\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x00\x00\xff\xff\x00\x00\x00\x00"
-		"\x00\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\xff\x00\x00"
-		"\x30\x30\x30\x30\x30\x30\x30\x30"
-		"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c"
-		"\x00\x00\x00\xe0\xf0\x38\x18\x18"
-		"\x18\x18\x1c\x0f\x07\x00\x00\x00"
-		"\x18\x18\x38\xf0\xe0\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xff\xff"
-		"\xc0\xe0\x70\x38\x1c\x0e\x07\x03"
-		"\x03\x07\x0e\x1c\x38\x70\xe0\xc0"
-		"\xff\xff\xc0\xc0\xc0\xc0\xc0\xc0"
-		// 0x50
-		"\xff\xff\x03\x03\x03\x03\x03\x03"
-		"\x00\x3c\x7e\x7e\x7e\x7e\x3c\x00"
-		"\x00\x00\x00\x00\x00\xff\xff\x00"
-		"\x36\x7f\x7f\x7f\x3e\x1c\x08\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60"
-		"\x00\x00\x00\x07\x0f\x1c\x18\x18"
-		"\xc3\xe7\x7e\x3c\x3c\x7e\xe7\xc3"
-		"\x00\x3c\x7e\x66\x66\x7e\x3c\x00"
-		"\x18\x18\x66\x66\x18\x18\x3c\x00"
-		"\x06\x06\x06\x06\x06\x06\x06\x06"
-		"\x08\x1c\x3e\x7f\x3e\x1c\x08\x00"
-		"\x18\x18\x18\xff\xff\x18\x18\x18"
-		"\xc0\xc0\x30\x30\xc0\xc0\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x03\x3e\x76\x36\x36\x00"
-		"\xff\x7f\x3f\x1f\x0f\x07\x03\x01"
-	// 0x80 - 0x9F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0xA0 - 0xBF - Mapped to 0x60 - 0x7F in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\x33\x33\xcc\xcc\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\xcc\xcc\x33\x33"
-		"\xff\xfe\xfc\xf8\xf0\xe0\xc0\x80"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x1f\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x1f\x1f\x00\x00\x00"
-		"\x00\x00\x00\xf8\xf8\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x1f\x1f\x18\x18\x18"
-		"\x18\x18\x18\xff\xff\x00\x00\x00"
-		"\x00\x00\x00\xff\xff\x18\x18\x18"
-		"\x18\x18\x18\xf8\xf8\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\xff\xff"
-		"\x03\x03\x03\x03\x03\x03\xff\xff"
-		"\x00\x00\x00\x00\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x00\x00\x00\x00"
-		"\x18\x18\x18\xf8\xf8\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\x0f\x0f\x0f\x0f"
-	// 0xC0 - 0xDF - *ALSO* Mapped to 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x08\x1c\x3e\x7f\x7f\x1c\x3e\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x00\x00\xff\xff\x00\x00\x00\x00"
-		"\x00\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\xff\x00\x00"
-		"\x30\x30\x30\x30\x30\x30\x30\x30"
-		"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c"
-		"\x00\x00\x00\xe0\xf0\x38\x18\x18"
-		"\x18\x18\x1c\x0f\x07\x00\x00\x00"
-		"\x18\x18\x38\xf0\xe0\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xff\xff"
-		"\xc0\xe0\x70\x38\x1c\x0e\x07\x03"
-		"\x03\x07\x0e\x1c\x38\x70\xe0\xc0"
-		"\xff\xff\xc0\xc0\xc0\xc0\xc0\xc0"
-		// 0x50
-		"\xff\xff\x03\x03\x03\x03\x03\x03"
-		"\x00\x3c\x7e\x7e\x7e\x7e\x3c\x00"
-		"\x00\x00\x00\x00\x00\xff\xff\x00"
-		"\x36\x7f\x7f\x7f\x3e\x1c\x08\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60"
-		"\x00\x00\x00\x07\x0f\x1c\x18\x18"
-		"\xc3\xe7\x7e\x3c\x3c\x7e\xe7\xc3"
-		"\x00\x3c\x7e\x66\x66\x7e\x3c\x00"
-		"\x18\x18\x66\x66\x18\x18\x3c\x00"
-		"\x06\x06\x06\x06\x06\x06\x06\x06"
-		"\x08\x1c\x3e\x7f\x3e\x1c\x08\x00"
-		"\x18\x18\x18\xff\xff\x18\x18\x18"
-		"\xc0\xc0\x30\x30\xc0\xc0\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x03\x3e\x76\x36\x36\x00"
-		"\xff\x7f\x3f\x1f\x0f\x07\x03\x01"
-	// 0xE0 - 0xFE - *ALSO* Mapped to 0x60 - 0x7E in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\x33\x33\xcc\xcc\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\xcc\xcc\x33\x33"
-		"\xff\xfe\xfc\xf8\xf0\xe0\xc0\x80"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x1f\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x1f\x1f\x00\x00\x00"
-		"\x00\x00\x00\xf8\xf8\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x1f\x1f\x18\x18\x18"
-		"\x18\x18\x18\xff\xff\x00\x00\x00"
-		"\x00\x00\x00\xff\xff\x18\x18\x18"
-		"\x18\x18\x18\xf8\xf8\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\xff\xff"
-		"\x03\x03\x03\x03\x03\x03\xff\xff"
-		"\x00\x00\x00\x00\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x00\x00\x00\x00"
-		"\x18\x18\x18\xf8\xf8\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\x00\x00\x00\x00"
-	// And finally, 0xFF which is mapped to 0x5E in the original font (!)
-		"\x00\x00\x03\x3e\x76\x36\x36\x00"
-	, "Commodore 64 (UPPER)", CIOLIB_PETSCIIU}
-	,{
-	// 0x00 - 0x1F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0x20 - 0x3F - Mapped from 0x20 - 0x3F in the ROM font
-		// 0x20
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00\x18\x18\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x66\x66\x66\x66\xff\xff\x66\x66\xff\xff\x66\x66\x66\x66\x00\x00"
-		"\x18\x18\x3e\x3e\x60\x60\x3c\x3c\x06\x06\x7c\x7c\x18\x18\x00\x00"
-		"\x62\x62\x66\x66\x0c\x0c\x18\x18\x30\x30\x66\x66\x46\x46\x00\x00"
-		"\x3c\x3c\x66\x66\x3c\x3c\x38\x38\x67\x67\x66\x66\x3f\x3f\x00\x00"
-		"\x06\x06\x0c\x0c\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0c\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x0c\x00\x00"
-		"\x30\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x30\x00\x00"
-		"\x00\x00\x66\x66\x3c\x3c\xff\xff\x3c\x3c\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x7e\x7e\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x03\x03\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\x00\x00"
-		// 0x30
-		"\x3c\x3c\x66\x66\x6e\x6e\x76\x76\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x18\x18\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x0c\x0c\x30\x30\x60\x60\x7e\x7e\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x1c\x1c\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x06\x06\x0e\x0e\x1e\x1e\x66\x66\x7f\x7f\x06\x06\x06\x06\x00\x00"
-		"\x7e\x7e\x60\x60\x7c\x7c\x06\x06\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x7c\x7c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x66\x66\x0c\x0c\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x3e\x3e\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x0e\x0e\x18\x18\x30\x30\x60\x60\x30\x30\x18\x18\x0e\x0e\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00"
-		"\x70\x70\x18\x18\x0c\x0c\x06\x06\x0c\x0c\x18\x18\x70\x70\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x0c\x0c\x18\x18\x00\x00\x18\x18\x00\x00"
-	// 0x40 - 0x5F - Mapped from 0x00 - 0x1F in the ROM font
-		// 0x00
-		"\x3c\x3c\x66\x66\x6e\x6e\x6e\x6e\x60\x60\x62\x62\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x60\x60\x60\x60\x60\x60\x3c\x3c\x00\x00"
-		"\x00\x00\x06\x06\x06\x06\x3e\x3e\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x00\x00\x0e\x0e\x18\x18\x3e\x3e\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x3e\x3e\x66\x66\x66\x66\x3e\x3e\x06\x06\x7c\x7c"
-		"\x00\x00\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x38\x38\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x00\x00\x06\x06\x00\x00\x06\x06\x06\x06\x06\x06\x06\x06\x3c\x3c"
-		"\x00\x00\x60\x60\x60\x60\x6c\x6c\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x00\x00\x38\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x7f\x7f\x7f\x7f\x6b\x6b\x63\x63\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		// 0x10
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60"
-		"\x00\x00\x00\x00\x3e\x3e\x66\x66\x66\x66\x3e\x3e\x06\x06\x06\x06"
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x00\x00\x00\x00\x3e\x3e\x60\x60\x3c\x3c\x06\x06\x7c\x7c\x00\x00"
-		"\x00\x00\x18\x18\x7e\x7e\x18\x18\x18\x18\x18\x18\x0e\x0e\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x63\x63\x6b\x6b\x7f\x7f\x3e\x3e\x36\x36\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x0c\x0c\x78\x78"
-		"\x00\x00\x00\x00\x7e\x7e\x0c\x0c\x18\x18\x30\x30\x7e\x7e\x00\x00"
-		"\x3c\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x3c\x00\x00"
-		"\x0c\x0c\x12\x12\x30\x30\x7c\x7c\x30\x30\x62\x62\xfc\xfc\x00\x00"
-		"\x3c\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x3c\x00\x00"
-		"\x00\x00\x18\x18\x3c\x3c\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x10\x10\x30\x30\x7f\x7f\x7f\x7f\x30\x30\x10\x10\x00\x00"
-	// 0x60 - 0x7F - Mapped from 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x60\x60\x60\x60\x66\x66\x3c\x3c\x00\x00"
-		"\x78\x78\x6c\x6c\x66\x66\x66\x66\x66\x66\x6c\x6c\x78\x78\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x6e\x6e\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x1e\x1e\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x6c\x6c\x38\x38\x00\x00"
-		"\x66\x66\x6c\x6c\x78\x78\x70\x70\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x63\x63\x77\x77\x7f\x7f\x6b\x6b\x63\x63\x63\x63\x63\x63\x00\x00"
-		"\x66\x66\x76\x76\x7e\x7e\x7e\x7e\x6e\x6e\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		// 0x50
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x0e\x0e\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x3c\x3c\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x00\x00"
-		"\x63\x63\x63\x63\x63\x63\x6b\x6b\x7f\x7f\x77\x77\x63\x63\x00\x00"
-		"\x66\x66\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x66\x66\x66\x66\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x7e\x7e\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\x7e\x7e\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\x30\x30\x30\x30\xc0\xc0\xc0\xc0\x30\x30\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x33\x33\x33\x33\xcc\xcc\xcc\xcc\x33\x33\x33\x33\xcc\xcc\xcc\xcc"
-		"\x33\x33\x99\x99\xcc\xcc\x66\x66\x33\x33\x99\x99\xcc\xcc\x66\x66"
-	// 0x80 - 0x9F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0xA0 - 0xBF - Mapped to 0x60 - 0x7F in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\xcc\xcc\x33\x33\x33\x33\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\xcc\xcc\x99\x99\x33\x33\x66\x66\xcc\xcc\x99\x99\x33\x33\x66\x66"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x00\x00\x00\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff"
-		"\x01\x01\x03\x03\x06\x06\x6c\x6c\x78\x78\x70\x70\x60\x60\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-	// 0xC0 - 0xDF - *ALSO* Mapped to 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x60\x60\x60\x60\x66\x66\x3c\x3c\x00\x00"
-		"\x78\x78\x6c\x6c\x66\x66\x66\x66\x66\x66\x6c\x6c\x78\x78\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x6e\x6e\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x1e\x1e\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x6c\x6c\x38\x38\x00\x00"
-		"\x66\x66\x6c\x6c\x78\x78\x70\x70\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x63\x63\x77\x77\x7f\x7f\x6b\x6b\x63\x63\x63\x63\x63\x63\x00\x00"
-		"\x66\x66\x76\x76\x7e\x7e\x7e\x7e\x6e\x6e\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		// 0x50
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x0e\x0e\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x3c\x3c\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x00\x00"
-		"\x63\x63\x63\x63\x63\x63\x6b\x6b\x7f\x7f\x77\x77\x63\x63\x00\x00"
-		"\x66\x66\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x66\x66\x66\x66\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x7e\x7e\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\x7e\x7e\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\x30\x30\x30\x30\xc0\xc0\xc0\xc0\x30\x30\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x33\x33\x33\x33\xcc\xcc\xcc\xcc\x33\x33\x33\x33\xcc\xcc\xcc\xcc"
-		"\x33\x33\x99\x99\xcc\xcc\x66\x66\x33\x33\x99\x99\xcc\xcc\x66\x66"
-	// 0xE0 - 0xFE - *ALSO* Mapped to 0x60 - 0x7E in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\xcc\xcc\x33\x33\x33\x33\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\xcc\xcc\x99\x99\x33\x33\x66\x66\xcc\xcc\x99\x99\x33\x33\x66\x66"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x00\x00\x00\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff"
-		"\x01\x01\x03\x03\x06\x06\x6c\x6c\x78\x78\x70\x70\x60\x60\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\x00\x00\x00\x00\x00\x00\x00\x00"
-	// And finally, 0xFF which is mapped to 0x5E in the original font (!)
-		"\x33\x33\x33\x33\xcc\xcc\xcc\xcc\x33\x33\x33\x33\xcc\xcc\xcc\xcc"
-	, NULL
-	,
-	// 0x00 - 0x1F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0x20 - 0x3F - Mapped from 0x20 - 0x3F in the ROM font
-		// 0x20
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x00\x00\x18\x00"
-		"\x66\x66\x66\x00\x00\x00\x00\x00"
-		"\x66\x66\xff\x66\xff\x66\x66\x00"
-		"\x18\x3e\x60\x3c\x06\x7c\x18\x00"
-		"\x62\x66\x0c\x18\x30\x66\x46\x00"
-		"\x3c\x66\x3c\x38\x67\x66\x3f\x00"
-		"\x06\x0c\x18\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x30\x30\x18\x0c\x00"
-		"\x30\x18\x0c\x0c\x0c\x18\x30\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x18\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x30"
-		"\x00\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00"
-		"\x00\x03\x06\x0c\x18\x30\x60\x00"
-		// 0x30
-		"\x3c\x66\x6e\x76\x66\x66\x3c\x00"
-		"\x18\x18\x38\x18\x18\x18\x7e\x00"
-		"\x3c\x66\x06\x0c\x30\x60\x7e\x00"
-		"\x3c\x66\x06\x1c\x06\x66\x3c\x00"
-		"\x06\x0e\x1e\x66\x7f\x06\x06\x00"
-		"\x7e\x60\x7c\x06\x06\x66\x3c\x00"
-		"\x3c\x66\x60\x7c\x66\x66\x3c\x00"
-		"\x7e\x66\x0c\x18\x18\x18\x18\x00"
-		"\x3c\x66\x66\x3c\x66\x66\x3c\x00"
-		"\x3c\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x00\x00\x18\x00\x00\x18\x00\x00"
-		"\x00\x00\x18\x00\x00\x18\x18\x30"
-		"\x0e\x18\x30\x60\x30\x18\x0e\x00"
-		"\x00\x00\x7e\x00\x7e\x00\x00\x00"
-		"\x70\x18\x0c\x06\x0c\x18\x70\x00"
-		"\x3c\x66\x06\x0c\x18\x00\x18\x00"
-	// 0x40 - 0x5F - Mapped from 0x00 - 0x1F in the ROM font
-		// 0x00
-		"\x3c\x66\x6e\x6e\x60\x62\x3c\x00"
-		"\x00\x00\x3c\x06\x3e\x66\x3e\x00"
-		"\x00\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x00\x00\x3c\x60\x60\x60\x3c\x00"
-		"\x00\x06\x06\x3e\x66\x66\x3e\x00"
-		"\x00\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x00\x0e\x18\x3e\x18\x18\x18\x00"
-		"\x00\x00\x3e\x66\x66\x3e\x06\x7c"
-		"\x00\x60\x60\x7c\x66\x66\x66\x00"
-		"\x00\x18\x00\x38\x18\x18\x3c\x00"
-		"\x00\x06\x00\x06\x06\x06\x06\x3c"
-		"\x00\x60\x60\x6c\x78\x6c\x66\x00"
-		"\x00\x38\x18\x18\x18\x18\x3c\x00"
-		"\x00\x00\x66\x7f\x7f\x6b\x63\x00"
-		"\x00\x00\x7c\x66\x66\x66\x66\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00"
-		// 0x10
-		"\x00\x00\x7c\x66\x66\x7c\x60\x60"
-		"\x00\x00\x3e\x66\x66\x3e\x06\x06"
-		"\x00\x00\x7c\x66\x60\x60\x60\x00"
-		"\x00\x00\x3e\x60\x3c\x06\x7c\x00"
-		"\x00\x18\x7e\x18\x18\x18\x0e\x00"
-		"\x00\x00\x66\x66\x66\x66\x3e\x00"
-		"\x00\x00\x66\x66\x66\x3c\x18\x00"
-		"\x00\x00\x63\x6b\x7f\x3e\x36\x00"
-		"\x00\x00\x66\x3c\x18\x3c\x66\x00"
-		"\x00\x00\x66\x66\x66\x3e\x0c\x78"
-		"\x00\x00\x7e\x0c\x18\x30\x7e\x00"
-		"\x3c\x30\x30\x30\x30\x30\x3c\x00"
-		"\x0c\x12\x30\x7c\x30\x62\xfc\x00"
-		"\x3c\x0c\x0c\x0c\x0c\x0c\x3c\x00"
-		"\x00\x18\x3c\x7e\x18\x18\x18\x18"
-		"\x00\x10\x30\x7f\x7f\x30\x10\x00"
-	// 0x60 - 0x7F - Mapped from 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x18\x3c\x66\x7e\x66\x66\x66\x00"
-		"\x7c\x66\x66\x7c\x66\x66\x7c\x00"
-		"\x3c\x66\x60\x60\x60\x66\x3c\x00"
-		"\x78\x6c\x66\x66\x66\x6c\x78\x00"
-		"\x7e\x60\x60\x78\x60\x60\x7e\x00"
-		"\x7e\x60\x60\x78\x60\x60\x60\x00"
-		"\x3c\x66\x60\x6e\x66\x66\x3c\x00"
-		"\x66\x66\x66\x7e\x66\x66\x66\x00"
-		"\x3c\x18\x18\x18\x18\x18\x3c\x00"
-		"\x1e\x0c\x0c\x0c\x0c\x6c\x38\x00"
-		"\x66\x6c\x78\x70\x78\x6c\x66\x00"
-		"\x60\x60\x60\x60\x60\x60\x7e\x00"
-		"\x63\x77\x7f\x6b\x63\x63\x63\x00"
-		"\x66\x76\x7e\x7e\x6e\x66\x66\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3c\x00"
-		// 0x50
-		"\x7c\x66\x66\x7c\x60\x60\x60\x00"
-		"\x3c\x66\x66\x66\x66\x3c\x0e\x00"
-		"\x7c\x66\x66\x7c\x78\x6c\x66\x00"
-		"\x3c\x66\x60\x3c\x06\x66\x3c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\x66\x66\x66\x66\x66\x66\x3c\x00"
-		"\x66\x66\x66\x66\x66\x3c\x18\x00"
-		"\x63\x63\x63\x6b\x7f\x77\x63\x00"
-		"\x66\x66\x3c\x18\x3c\x66\x66\x00"
-		"\x66\x66\x66\x3c\x18\x18\x18\x00"
-		"\x7e\x06\x0c\x18\x30\x60\x7e\x00"
-		"\x18\x18\x18\xff\xff\x18\x18\x18"
-		"\xc0\xc0\x30\x30\xc0\xc0\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x33\x33\xcc\xcc\x33\x33\xcc\xcc"
-		"\x33\x99\xcc\x66\x33\x99\xcc\x66"
-	// 0x80 - 0x9F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0xA0 - 0xBF - Mapped to 0x60 - 0x7F in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\x33\x33\xcc\xcc\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\xcc\xcc\x33\x33"
-		"\xcc\x99\x33\x66\xcc\x99\x33\x66"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x1f\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x1f\x1f\x00\x00\x00"
-		"\x00\x00\x00\xf8\xf8\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x1f\x1f\x18\x18\x18"
-		"\x18\x18\x18\xff\xff\x00\x00\x00"
-		"\x00\x00\x00\xff\xff\x18\x18\x18"
-		"\x18\x18\x18\xf8\xf8\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\xff\xff"
-		"\x01\x03\x06\x6c\x78\x70\x60\x00"
-		"\x00\x00\x00\x00\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x00\x00\x00\x00"
-		"\x18\x18\x18\xf8\xf8\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\x0f\x0f\x0f\x0f"
-	// 0xC0 - 0xDF - *ALSO* Mapped to 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x18\x3c\x66\x7e\x66\x66\x66\x00"
-		"\x7c\x66\x66\x7c\x66\x66\x7c\x00"
-		"\x3c\x66\x60\x60\x60\x66\x3c\x00"
-		"\x78\x6c\x66\x66\x66\x6c\x78\x00"
-		"\x7e\x60\x60\x78\x60\x60\x7e\x00"
-		"\x7e\x60\x60\x78\x60\x60\x60\x00"
-		"\x3c\x66\x60\x6e\x66\x66\x3c\x00"
-		"\x66\x66\x66\x7e\x66\x66\x66\x00"
-		"\x3c\x18\x18\x18\x18\x18\x3c\x00"
-		"\x1e\x0c\x0c\x0c\x0c\x6c\x38\x00"
-		"\x66\x6c\x78\x70\x78\x6c\x66\x00"
-		"\x60\x60\x60\x60\x60\x60\x7e\x00"
-		"\x63\x77\x7f\x6b\x63\x63\x63\x00"
-		"\x66\x76\x7e\x7e\x6e\x66\x66\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3c\x00"
-		// 0x50
-		"\x7c\x66\x66\x7c\x60\x60\x60\x00"
-		"\x3c\x66\x66\x66\x66\x3c\x0e\x00"
-		"\x7c\x66\x66\x7c\x78\x6c\x66\x00"
-		"\x3c\x66\x60\x3c\x06\x66\x3c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\x66\x66\x66\x66\x66\x66\x3c\x00"
-		"\x66\x66\x66\x66\x66\x3c\x18\x00"
-		"\x63\x63\x63\x6b\x7f\x77\x63\x00"
-		"\x66\x66\x3c\x18\x3c\x66\x66\x00"
-		"\x66\x66\x66\x3c\x18\x18\x18\x00"
-		"\x7e\x06\x0c\x18\x30\x60\x7e\x00"
-		"\x18\x18\x18\xff\xff\x18\x18\x18"
-		"\xc0\xc0\x30\x30\xc0\xc0\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x33\x33\xcc\xcc\x33\x33\xcc\xcc"
-		"\x33\x99\xcc\x66\x33\x99\xcc\x66"
-	// 0xE0 - 0xFE - *ALSO* Mapped to 0x60 - 0x7E in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\x33\x33\xcc\xcc\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\xcc\xcc\x33\x33"
-		"\xcc\x99\x33\x66\xcc\x99\x33\x66"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x1f\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x1f\x1f\x00\x00\x00"
-		"\x00\x00\x00\xf8\xf8\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x1f\x1f\x18\x18\x18"
-		"\x18\x18\x18\xff\xff\x00\x00\x00"
-		"\x00\x00\x00\xff\xff\x18\x18\x18"
-		"\x18\x18\x18\xf8\xf8\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\xff\xff"
-		"\x01\x03\x06\x6c\x78\x70\x60\x00"
-		"\x00\x00\x00\x00\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x00\x00\x00\x00"
-		"\x18\x18\x18\xf8\xf8\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\x00\x00\x00\x00"
-	// And finally, 0xFF which is mapped to 0x5E in the original font (!)
-		"\x33\x33\xcc\xcc\x33\x33\xcc\xcc"
-	, "Commodore 64 (Lower)", CIOLIB_PETSCIIL}
-	,{
-	// 0x00 - 0x1F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0x20 - 0x3F - Mapped from 0x20 - 0x3F in the ROM font
-		// 0x20
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00\x18\x18\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x66\x66\x66\x66\xff\xff\x66\x66\xff\xff\x66\x66\x66\x66\x00\x00"
-		"\x18\x18\x3e\x3e\x60\x60\x3c\x3c\x06\x06\x7c\x7c\x18\x18\x00\x00"
-		"\x62\x62\x66\x66\x0c\x0c\x18\x18\x30\x30\x66\x66\x46\x46\x00\x00"
-		"\x3c\x3c\x66\x66\x3c\x3c\x38\x38\x67\x67\x66\x66\x3f\x3f\x00\x00"
-		"\x06\x06\x0c\x0c\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0c\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x0c\x00\x00"
-		"\x30\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x30\x00\x00"
-		"\x00\x00\x66\x66\x3c\x3c\xff\xff\x3c\x3c\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x7e\x7e\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x03\x03\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\x00\x00"
-		// 0x30
-		"\x3c\x3c\x66\x66\x6e\x6e\x76\x76\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x18\x18\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x0c\x0c\x30\x30\x60\x60\x7e\x7e\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x1c\x1c\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x06\x06\x0e\x0e\x1e\x1e\x66\x66\x7f\x7f\x06\x06\x06\x06\x00\x00"
-		"\x7e\x7e\x60\x60\x7c\x7c\x06\x06\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x7c\x7c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x66\x66\x0c\x0c\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x3e\x3e\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x0e\x0e\x18\x18\x30\x30\x60\x60\x30\x30\x18\x18\x0e\x0e\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00"
-		"\x70\x70\x18\x18\x0c\x0c\x06\x06\x0c\x0c\x18\x18\x70\x70\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x0c\x0c\x18\x18\x00\x00\x18\x18\x00\x00"
-	// 0x40 - 0x5F - Mapped from 0x00 - 0x1F in the ROM font
-		// 0x00
-		"\x3c\x3c\x66\x66\x6e\x6e\x6e\x6e\x60\x60\x62\x62\x3c\x3c\x00\x00"
-		"\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x60\x60\x60\x60\x66\x66\x3c\x3c\x00\x00"
-		"\x78\x78\x6c\x6c\x66\x66\x66\x66\x66\x66\x6c\x6c\x78\x78\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x6e\x6e\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x1e\x1e\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x6c\x6c\x38\x38\x00\x00"
-		"\x66\x66\x6c\x6c\x78\x78\x70\x70\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x63\x63\x77\x77\x7f\x7f\x6b\x6b\x63\x63\x63\x63\x63\x63\x00\x00"
-		"\x66\x66\x76\x76\x7e\x7e\x7e\x7e\x6e\x6e\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		// 0x10
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x0e\x0e\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x3c\x3c\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x00\x00"
-		"\x63\x63\x63\x63\x63\x63\x6b\x6b\x7f\x7f\x77\x77\x63\x63\x00\x00"
-		"\x66\x66\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x66\x66\x66\x66\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x7e\x7e\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\x7e\x7e\x00\x00"
-		"\x3c\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x3c\x00\x00"
-		"\x0c\x0c\x12\x12\x30\x30\x7c\x7c\x30\x30\x62\x62\xfc\xfc\x00\x00"
-		"\x3c\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x3c\x00\x00"
-		"\x00\x00\x18\x18\x3c\x3c\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x10\x10\x30\x30\x7f\x7f\x7f\x7f\x30\x30\x10\x10\x00\x00"
-	// 0x60 - 0x7F - Mapped from 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x08\x08\x1c\x1c\x3e\x3e\x7f\x7f\x7f\x7f\x1c\x1c\x3e\x3e\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00"
-		"\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30"
-		"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c"
-		"\x00\x00\x00\x00\x00\x00\xe0\xe0\xf0\xf0\x38\x38\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x1c\x1c\x0f\x0f\x07\x07\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x38\x38\xf0\xf0\xe0\xe0\x00\x00\x00\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xff\xff\xff\xff"
-		"\xc0\xc0\xe0\xe0\x70\x70\x38\x38\x1c\x1c\x0e\x0e\x07\x07\x03\x03"
-		"\x03\x03\x07\x07\x0e\x0e\x1c\x1c\x38\x38\x70\x70\xe0\xe0\xc0\xc0"
-		"\xff\xff\xff\xff\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		// 0x50
-		"\xff\xff\xff\xff\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x3c\x3c\x7e\x7e\x7e\x7e\x7e\x7e\x7e\x7e\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00"
-		"\x36\x36\x7f\x7f\x7f\x7f\x7f\x7f\x3e\x3e\x1c\x1c\x08\x08\x00\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60"
-		"\x00\x00\x00\x00\x00\x00\x07\x07\x0f\x0f\x1c\x1c\x18\x18\x18\x18"
-		"\xc3\xc3\xe7\xe7\x7e\x7e\x3c\x3c\x3c\x3c\x7e\x7e\xe7\xe7\xc3\xc3"
-		"\x00\x00\x3c\x3c\x7e\x7e\x66\x66\x66\x66\x7e\x7e\x3c\x3c\x00\x00"
-		"\x18\x18\x18\x18\x66\x66\x66\x66\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06"
-		"\x08\x08\x1c\x1c\x3e\x3e\x7f\x7f\x3e\x3e\x1c\x1c\x08\x08\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\x30\x30\x30\x30\xc0\xc0\xc0\xc0\x30\x30\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x03\x03\x3e\x3e\x76\x76\x36\x36\x36\x36\x00\x00"
-		"\xff\xff\x7f\x7f\x3f\x3f\x1f\x1f\x0f\x0f\x07\x07\x03\x03\x01\x01"
-	// 0x80 - 0x9F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0xA0 - 0xBF - Mapped to 0x60 - 0x7F in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\xcc\xcc\x33\x33\x33\x33\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\xff\xff\xfe\xfe\xfc\xfc\xf8\xf8\xf0\xf0\xe0\xe0\xc0\xc0\x80\x80"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x00\x00\x00\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-	// 0xC0 - 0xDF - *ALSO* Mapped to 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x08\x08\x1c\x1c\x3e\x3e\x7f\x7f\x7f\x7f\x1c\x1c\x3e\x3e\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00"
-		"\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30"
-		"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c"
-		"\x00\x00\x00\x00\x00\x00\xe0\xe0\xf0\xf0\x38\x38\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x1c\x1c\x0f\x0f\x07\x07\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x38\x38\xf0\xf0\xe0\xe0\x00\x00\x00\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xff\xff\xff\xff"
-		"\xc0\xc0\xe0\xe0\x70\x70\x38\x38\x1c\x1c\x0e\x0e\x07\x07\x03\x03"
-		"\x03\x03\x07\x07\x0e\x0e\x1c\x1c\x38\x38\x70\x70\xe0\xe0\xc0\xc0"
-		"\xff\xff\xff\xff\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		// 0x50
-		"\xff\xff\xff\xff\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x3c\x3c\x7e\x7e\x7e\x7e\x7e\x7e\x7e\x7e\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00"
-		"\x36\x36\x7f\x7f\x7f\x7f\x7f\x7f\x3e\x3e\x1c\x1c\x08\x08\x00\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60"
-		"\x00\x00\x00\x00\x00\x00\x07\x07\x0f\x0f\x1c\x1c\x18\x18\x18\x18"
-		"\xc3\xc3\xe7\xe7\x7e\x7e\x3c\x3c\x3c\x3c\x7e\x7e\xe7\xe7\xc3\xc3"
-		"\x00\x00\x3c\x3c\x7e\x7e\x66\x66\x66\x66\x7e\x7e\x3c\x3c\x00\x00"
-		"\x18\x18\x18\x18\x66\x66\x66\x66\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06"
-		"\x08\x08\x1c\x1c\x3e\x3e\x7f\x7f\x3e\x3e\x1c\x1c\x08\x08\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\x30\x30\x30\x30\xc0\xc0\xc0\xc0\x30\x30\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x03\x03\x3e\x3e\x76\x76\x36\x36\x36\x36\x00\x00"
-		"\xff\xff\x7f\x7f\x3f\x3f\x1f\x1f\x0f\x0f\x07\x07\x03\x03\x01\x01"
-	// 0xE0 - 0xFE - *ALSO* Mapped to 0x60 - 0x7E in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\xcc\xcc\x33\x33\x33\x33\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\xff\xff\xfe\xfe\xfc\xfc\xf8\xf8\xf0\xf0\xe0\xe0\xc0\xc0\x80\x80"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x00\x00\x00\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\x00\x00\x00\x00\x00\x00\x00\x00"
-	// And finally, 0xFF which is mapped to 0x5E in the original font (!)
-		"\x00\x00\x00\x00\x03\x03\x3e\x3e\x76\x76\x36\x36\x36\x36\x00\x00"
-	, NULL
-	,
-	// 0x00 - 0x1F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0x20 - 0x3F - Mapped from 0x20 - 0x3F in the ROM font
-		// 0x20
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x00\x00\x18\x00"
-		"\x66\x66\x66\x00\x00\x00\x00\x00"
-		"\x66\x66\xff\x66\xff\x66\x66\x00"
-		"\x18\x3e\x60\x3c\x06\x7c\x18\x00"
-		"\x62\x66\x0c\x18\x30\x66\x46\x00"
-		"\x3c\x66\x3c\x38\x67\x66\x3f\x00"
-		"\x06\x0c\x18\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x30\x30\x18\x0c\x00"
-		"\x30\x18\x0c\x0c\x0c\x18\x30\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x18\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x30"
-		"\x00\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00"
-		"\x00\x03\x06\x0c\x18\x30\x60\x00"
-		// 0x30
-		"\x3c\x66\x6e\x76\x66\x66\x3c\x00"
-		"\x18\x18\x38\x18\x18\x18\x7e\x00"
-		"\x3c\x66\x06\x0c\x30\x60\x7e\x00"
-		"\x3c\x66\x06\x1c\x06\x66\x3c\x00"
-		"\x06\x0e\x1e\x66\x7f\x06\x06\x00"
-		"\x7e\x60\x7c\x06\x06\x66\x3c\x00"
-		"\x3c\x66\x60\x7c\x66\x66\x3c\x00"
-		"\x7e\x66\x0c\x18\x18\x18\x18\x00"
-		"\x3c\x66\x66\x3c\x66\x66\x3c\x00"
-		"\x3c\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x00\x00\x18\x00\x00\x18\x00\x00"
-		"\x00\x00\x18\x00\x00\x18\x18\x30"
-		"\x0e\x18\x30\x60\x30\x18\x0e\x00"
-		"\x00\x00\x7e\x00\x7e\x00\x00\x00"
-		"\x70\x18\x0c\x06\x0c\x18\x70\x00"
-		"\x3c\x66\x06\x0c\x18\x00\x18\x00"
-	// 0x40 - 0x5F - Mapped from 0x00 - 0x1F in the ROM font
-		// 0x00
-		"\x3c\x66\x6e\x6e\x60\x62\x3c\x00"
-		"\x18\x3c\x66\x7e\x66\x66\x66\x00"
-		"\x7c\x66\x66\x7c\x66\x66\x7c\x00"
-		"\x3c\x66\x60\x60\x60\x66\x3c\x00"
-		"\x78\x6c\x66\x66\x66\x6c\x78\x00"
-		"\x7e\x60\x60\x78\x60\x60\x7e\x00"
-		"\x7e\x60\x60\x78\x60\x60\x60\x00"
-		"\x3c\x66\x60\x6e\x66\x66\x3c\x00"
-		"\x66\x66\x66\x7e\x66\x66\x66\x00"
-		"\x3c\x18\x18\x18\x18\x18\x3c\x00"
-		"\x1e\x0c\x0c\x0c\x0c\x6c\x38\x00"
-		"\x66\x6c\x78\x70\x78\x6c\x66\x00"
-		"\x60\x60\x60\x60\x60\x60\x7e\x00"
-		"\x63\x77\x7f\x6b\x63\x63\x63\x00"
-		"\x66\x76\x7e\x7e\x6e\x66\x66\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3c\x00"
-		// 0x10
-		"\x7c\x66\x66\x7c\x60\x60\x60\x00"
-		"\x3c\x66\x66\x66\x66\x3c\x0e\x00"
-		"\x7c\x66\x66\x7c\x78\x6c\x66\x00"
-		"\x3c\x66\x60\x3c\x06\x66\x3c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\x66\x66\x66\x66\x66\x66\x3c\x00"
-		"\x66\x66\x66\x66\x66\x3c\x18\x00"
-		"\x63\x63\x63\x6b\x7f\x77\x63\x00"
-		"\x66\x66\x3c\x18\x3c\x66\x66\x00"
-		"\x66\x66\x66\x3c\x18\x18\x18\x00"
-		"\x7e\x06\x0c\x18\x30\x60\x7e\x00"
-		"\x3c\x30\x30\x30\x30\x30\x3c\x00"
-		"\x0c\x12\x30\x7c\x30\x62\xfc\x00"
-		"\x3c\x0c\x0c\x0c\x0c\x0c\x3c\x00"
-		"\x00\x18\x3c\x7e\x18\x18\x18\x18"
-		"\x00\x10\x30\x7f\x7f\x30\x10\x00"
-	// 0x60 - 0x7F - Mapped from 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x08\x1c\x3e\x7f\x7f\x1c\x3e\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x00\x00\xff\xff\x00\x00\x00\x00"
-		"\x00\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\xff\x00\x00"
-		"\x30\x30\x30\x30\x30\x30\x30\x30"
-		"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c"
-		"\x00\x00\x00\xe0\xf0\x38\x18\x18"
-		"\x18\x18\x1c\x0f\x07\x00\x00\x00"
-		"\x18\x18\x38\xf0\xe0\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xff\xff"
-		"\xc0\xe0\x70\x38\x1c\x0e\x07\x03"
-		"\x03\x07\x0e\x1c\x38\x70\xe0\xc0"
-		"\xff\xff\xc0\xc0\xc0\xc0\xc0\xc0"
-		// 0x50
-		"\xff\xff\x03\x03\x03\x03\x03\x03"
-		"\x00\x3c\x7e\x7e\x7e\x7e\x3c\x00"
-		"\x00\x00\x00\x00\x00\xff\xff\x00"
-		"\x36\x7f\x7f\x7f\x3e\x1c\x08\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60"
-		"\x00\x00\x00\x07\x0f\x1c\x18\x18"
-		"\xc3\xe7\x7e\x3c\x3c\x7e\xe7\xc3"
-		"\x00\x3c\x7e\x66\x66\x7e\x3c\x00"
-		"\x18\x18\x66\x66\x18\x18\x3c\x00"
-		"\x06\x06\x06\x06\x06\x06\x06\x06"
-		"\x08\x1c\x3e\x7f\x3e\x1c\x08\x00"
-		"\x18\x18\x18\xff\xff\x18\x18\x18"
-		"\xc0\xc0\x30\x30\xc0\xc0\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x03\x3e\x76\x36\x36\x00"
-		"\xff\x7f\x3f\x1f\x0f\x07\x03\x01"
-	// 0x80 - 0x9F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0xA0 - 0xBF - Mapped to 0x60 - 0x7F in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\x33\x33\xcc\xcc\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\xcc\xcc\x33\x33"
-		"\xff\xfe\xfc\xf8\xf0\xe0\xc0\x80"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x1f\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x1f\x1f\x00\x00\x00"
-		"\x00\x00\x00\xf8\xf8\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x1f\x1f\x18\x18\x18"
-		"\x18\x18\x18\xff\xff\x00\x00\x00"
-		"\x00\x00\x00\xff\xff\x18\x18\x18"
-		"\x18\x18\x18\xf8\xf8\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\xff\xff"
-		"\x03\x03\x03\x03\x03\x03\xff\xff"
-		"\x00\x00\x00\x00\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x00\x00\x00\x00"
-		"\x18\x18\x18\xf8\xf8\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\x0f\x0f\x0f\x0f"
-	// 0xC0 - 0xDF - *ALSO* Mapped to 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x08\x1c\x3e\x7f\x7f\x1c\x3e\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x00\x00\xff\xff\x00\x00\x00\x00"
-		"\x00\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\xff\x00\x00"
-		"\x30\x30\x30\x30\x30\x30\x30\x30"
-		"\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c"
-		"\x00\x00\x00\xe0\xf0\x38\x18\x18"
-		"\x18\x18\x1c\x0f\x07\x00\x00\x00"
-		"\x18\x18\x38\xf0\xe0\x00\x00\x00"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xff\xff"
-		"\xc0\xe0\x70\x38\x1c\x0e\x07\x03"
-		"\x03\x07\x0e\x1c\x38\x70\xe0\xc0"
-		"\xff\xff\xc0\xc0\xc0\xc0\xc0\xc0"
-		// 0x50
-		"\xff\xff\x03\x03\x03\x03\x03\x03"
-		"\x00\x3c\x7e\x7e\x7e\x7e\x3c\x00"
-		"\x00\x00\x00\x00\x00\xff\xff\x00"
-		"\x36\x7f\x7f\x7f\x3e\x1c\x08\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60"
-		"\x00\x00\x00\x07\x0f\x1c\x18\x18"
-		"\xc3\xe7\x7e\x3c\x3c\x7e\xe7\xc3"
-		"\x00\x3c\x7e\x66\x66\x7e\x3c\x00"
-		"\x18\x18\x66\x66\x18\x18\x3c\x00"
-		"\x06\x06\x06\x06\x06\x06\x06\x06"
-		"\x08\x1c\x3e\x7f\x3e\x1c\x08\x00"
-		"\x18\x18\x18\xff\xff\x18\x18\x18"
-		"\xc0\xc0\x30\x30\xc0\xc0\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x03\x3e\x76\x36\x36\x00"
-		"\xff\x7f\x3f\x1f\x0f\x07\x03\x01"
-	// 0xE0 - 0xFE - *ALSO* Mapped to 0x60 - 0x7E in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\x33\x33\xcc\xcc\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\xcc\xcc\x33\x33"
-		"\xff\xfe\xfc\xf8\xf0\xe0\xc0\x80"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x1f\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x1f\x1f\x00\x00\x00"
-		"\x00\x00\x00\xf8\xf8\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x1f\x1f\x18\x18\x18"
-		"\x18\x18\x18\xff\xff\x00\x00\x00"
-		"\x00\x00\x00\xff\xff\x18\x18\x18"
-		"\x18\x18\x18\xf8\xf8\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\xff\xff"
-		"\x03\x03\x03\x03\x03\x03\xff\xff"
-		"\x00\x00\x00\x00\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x00\x00\x00\x00"
-		"\x18\x18\x18\xf8\xf8\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\x00\x00\x00\x00"
-	// And finally, 0xFF which is mapped to 0x5E in the original font (!)
-		"\x00\x00\x03\x3e\x76\x36\x36\x00"
-	, "Commodore 128 (UPPER)", CIOLIB_PETSCIIU}
-	,{
-	// 0x00 - 0x1F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0x20 - 0x3F - Mapped from 0x20 - 0x3F in the ROM font
-		// 0x20
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00\x18\x18\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x66\x66\x66\x66\xff\xff\x66\x66\xff\xff\x66\x66\x66\x66\x00\x00"
-		"\x18\x18\x3e\x3e\x60\x60\x3c\x3c\x06\x06\x7c\x7c\x18\x18\x00\x00"
-		"\x62\x62\x66\x66\x0c\x0c\x18\x18\x30\x30\x66\x66\x46\x46\x00\x00"
-		"\x3c\x3c\x66\x66\x3c\x3c\x38\x38\x67\x67\x66\x66\x3f\x3f\x00\x00"
-		"\x06\x06\x0c\x0c\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0c\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x0c\x00\x00"
-		"\x30\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x30\x00\x00"
-		"\x00\x00\x66\x66\x3c\x3c\xff\xff\x3c\x3c\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x7e\x7e\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x03\x03\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\x00\x00"
-		// 0x30
-		"\x3c\x3c\x66\x66\x6e\x6e\x76\x76\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x18\x18\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x0c\x0c\x30\x30\x60\x60\x7e\x7e\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x1c\x1c\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x06\x06\x0e\x0e\x1e\x1e\x66\x66\x7f\x7f\x06\x06\x06\x06\x00\x00"
-		"\x7e\x7e\x60\x60\x7c\x7c\x06\x06\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x7c\x7c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x66\x66\x0c\x0c\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x3e\x3e\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x0e\x0e\x18\x18\x30\x30\x60\x60\x30\x30\x18\x18\x0e\x0e\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00"
-		"\x70\x70\x18\x18\x0c\x0c\x06\x06\x0c\x0c\x18\x18\x70\x70\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x0c\x0c\x18\x18\x00\x00\x18\x18\x00\x00"
-	// 0x40 - 0x5F - Mapped from 0x00 - 0x1F in the ROM font
-		// 0x00
-		"\x3c\x3c\x66\x66\x6e\x6e\x6e\x6e\x60\x60\x62\x62\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x66\x66\x60\x60\x66\x66\x3c\x3c\x00\x00"
-		"\x06\x06\x06\x06\x3e\x3e\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3e\x3e\x00\x00"
-		"\x1c\x1c\x36\x36\x30\x30\x78\x78\x30\x30\x30\x30\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x3e\x3e\x66\x66\x66\x66\x3e\x3e\x06\x06\x7c\x7c"
-		"\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x06\x06\x00\x00\x06\x06\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x3c"
-		"\x60\x60\x60\x60\x66\x66\x6c\x6c\x78\x78\x7c\x7c\x66\x66\x00\x00"
-		"\x38\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x63\x63\x77\x77\x7f\x7f\x6b\x6b\x63\x63\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		// 0x10
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60"
-		"\x00\x00\x00\x00\x3e\x3e\x66\x66\x66\x66\x3e\x3e\x06\x06\x06\x06"
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x60\x60\x3c\x3c\x06\x06\x7c\x7c\x00\x00"
-		"\x30\x30\x30\x30\xfc\xfc\x30\x30\x30\x30\x36\x36\x1c\x1c\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x63\x63\x6b\x6b\x7f\x7f\x36\x36\x22\x22\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x06\x06\x7c\x7c"
-		"\x00\x00\x00\x00\x7e\x7e\x0c\x0c\x18\x18\x30\x30\x7e\x7e\x00\x00"
-		"\x3c\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x3c\x00\x00"
-		"\x0c\x0c\x12\x12\x30\x30\x7c\x7c\x30\x30\x62\x62\xfc\xfc\x00\x00"
-		"\x3c\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x3c\x00\x00"
-		"\x00\x00\x18\x18\x3c\x3c\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x10\x10\x30\x30\x7f\x7f\x7f\x7f\x30\x30\x10\x10\x00\x00"
-	// 0x60 - 0x7F - Mapped from 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x60\x60\x60\x60\x66\x66\x3c\x3c\x00\x00"
-		"\x78\x78\x6c\x6c\x66\x66\x66\x66\x66\x66\x6c\x6c\x78\x78\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x6e\x6e\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x1e\x1e\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x6c\x6c\x38\x38\x00\x00"
-		"\x66\x66\x6c\x6c\x78\x78\x70\x70\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x63\x63\x77\x77\x7f\x7f\x6b\x6b\x63\x63\x63\x63\x63\x63\x00\x00"
-		"\x66\x66\x76\x76\x7e\x7e\x7e\x7e\x6e\x6e\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		// 0x50
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x0e\x0e\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x3c\x3c\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x00\x00"
-		"\x63\x63\x63\x63\x63\x63\x6b\x6b\x7f\x7f\x77\x77\x63\x63\x00\x00"
-		"\x66\x66\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x66\x66\x66\x66\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x7e\x7e\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\x7e\x7e\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\x30\x30\x30\x30\xc0\xc0\xc0\xc0\x30\x30\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x33\x33\x33\x33\xcc\xcc\xcc\xcc\x33\x33\x33\x33\xcc\xcc\xcc\xcc"
-		"\x33\x33\x99\x99\xcc\xcc\x66\x66\x33\x33\x99\x99\xcc\xcc\x66\x66"
-	// 0x80 - 0x9F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0xA0 - 0xBF - Mapped to 0x60 - 0x7F in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\xcc\xcc\x33\x33\x33\x33\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\xcc\xcc\x99\x99\x33\x33\x66\x66\xcc\xcc\x99\x99\x33\x33\x66\x66"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x00\x00\x00\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff"
-		"\x01\x01\x03\x03\x06\x06\x6c\x6c\x78\x78\x70\x70\x60\x60\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-	// 0xC0 - 0xDF - *ALSO* Mapped to 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x60\x60\x60\x60\x66\x66\x3c\x3c\x00\x00"
-		"\x78\x78\x6c\x6c\x66\x66\x66\x66\x66\x66\x6c\x6c\x78\x78\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x6e\x6e\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x1e\x1e\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x6c\x6c\x38\x38\x00\x00"
-		"\x66\x66\x6c\x6c\x78\x78\x70\x70\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x63\x63\x77\x77\x7f\x7f\x6b\x6b\x63\x63\x63\x63\x63\x63\x00\x00"
-		"\x66\x66\x76\x76\x7e\x7e\x7e\x7e\x6e\x6e\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		// 0x50
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x0e\x0e\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x3c\x3c\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x00\x00"
-		"\x63\x63\x63\x63\x63\x63\x6b\x6b\x7f\x7f\x77\x77\x63\x63\x00\x00"
-		"\x66\x66\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x66\x66\x66\x66\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x7e\x7e\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\x7e\x7e\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\x30\x30\x30\x30\xc0\xc0\xc0\xc0\x30\x30\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x33\x33\x33\x33\xcc\xcc\xcc\xcc\x33\x33\x33\x33\xcc\xcc\xcc\xcc"
-		"\x33\x33\x99\x99\xcc\xcc\x66\x66\x33\x33\x99\x99\xcc\xcc\x66\x66"
-	// 0xE0 - 0xFE - *ALSO* Mapped to 0x60 - 0x7E in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\xcc\xcc\x33\x33\x33\x33\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\x33\x33\x33\x33"
-		"\xcc\xcc\x99\x99\x33\x33\x66\x66\xcc\xcc\x99\x99\x33\x33\x66\x66"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x00\x00\x00\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff"
-		"\x01\x01\x03\x03\x06\x06\x6c\x6c\x78\x78\x70\x70\x60\x60\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\x00\x00\x00\x00\x00\x00\x00\x00"
-	// And finally, 0xFF which is mapped to 0x5E in the original font (!)
-		"\x33\x33\x33\x33\xcc\xcc\xcc\xcc\x33\x33\x33\x33\xcc\xcc\xcc\xcc"
-	, NULL
-	,
-	// 0x00 - 0x1F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0x20 - 0x3F - Mapped from 0x20 - 0x3F in the ROM font
-		// 0x20
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x00\x00\x18\x00"
-		"\x66\x66\x66\x00\x00\x00\x00\x00"
-		"\x66\x66\xff\x66\xff\x66\x66\x00"
-		"\x18\x3e\x60\x3c\x06\x7c\x18\x00"
-		"\x62\x66\x0c\x18\x30\x66\x46\x00"
-		"\x3c\x66\x3c\x38\x67\x66\x3f\x00"
-		"\x06\x0c\x18\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x30\x30\x18\x0c\x00"
-		"\x30\x18\x0c\x0c\x0c\x18\x30\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x18\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x30"
-		"\x00\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00"
-		"\x00\x03\x06\x0c\x18\x30\x60\x00"
-		// 0x30
-		"\x3c\x66\x6e\x76\x66\x66\x3c\x00"
-		"\x18\x18\x38\x18\x18\x18\x7e\x00"
-		"\x3c\x66\x06\x0c\x30\x60\x7e\x00"
-		"\x3c\x66\x06\x1c\x06\x66\x3c\x00"
-		"\x06\x0e\x1e\x66\x7f\x06\x06\x00"
-		"\x7e\x60\x7c\x06\x06\x66\x3c\x00"
-		"\x3c\x66\x60\x7c\x66\x66\x3c\x00"
-		"\x7e\x66\x0c\x18\x18\x18\x18\x00"
-		"\x3c\x66\x66\x3c\x66\x66\x3c\x00"
-		"\x3c\x66\x66\x3e\x06\x66\x3c\x00"
-		"\x00\x00\x18\x00\x00\x18\x00\x00"
-		"\x00\x00\x18\x00\x00\x18\x18\x30"
-		"\x0e\x18\x30\x60\x30\x18\x0e\x00"
-		"\x00\x00\x7e\x00\x7e\x00\x00\x00"
-		"\x70\x18\x0c\x06\x0c\x18\x70\x00"
-		"\x3c\x66\x06\x0c\x18\x00\x18\x00"
-	// 0x40 - 0x5F - Mapped from 0x00 - 0x1F in the ROM font
-		// 0x00
-		"\x3c\x66\x6e\x6e\x60\x62\x3c\x00"
-		"\x00\x00\x3c\x06\x3e\x66\x3e\x00"
-		"\x60\x60\x7c\x66\x66\x66\x7c\x00"
-		"\x00\x00\x3c\x66\x60\x66\x3c\x00"
-		"\x06\x06\x3e\x66\x66\x66\x3e\x00"
-		"\x00\x00\x3c\x66\x7e\x60\x3e\x00"
-		"\x1c\x36\x30\x78\x30\x30\x30\x00"
-		"\x00\x00\x3e\x66\x66\x3e\x06\x7c"
-		"\x60\x60\x7c\x66\x66\x66\x66\x00"
-		"\x18\x00\x18\x18\x18\x18\x18\x00"
-		"\x06\x00\x06\x06\x06\x06\x66\x3c"
-		"\x60\x60\x66\x6c\x78\x7c\x66\x00"
-		"\x38\x18\x18\x18\x18\x18\x3c\x00"
-		"\x00\x00\x63\x77\x7f\x6b\x63\x00"
-		"\x00\x00\x7c\x66\x66\x66\x66\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00"
-		// 0x10
-		"\x00\x00\x7c\x66\x66\x7c\x60\x60"
-		"\x00\x00\x3e\x66\x66\x3e\x06\x06"
-		"\x00\x00\x7c\x66\x60\x60\x60\x00"
-		"\x00\x00\x3c\x60\x3c\x06\x7c\x00"
-		"\x30\x30\xfc\x30\x30\x36\x1c\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x00"
-		"\x00\x00\x66\x66\x66\x3c\x18\x00"
-		"\x00\x00\x63\x6b\x7f\x36\x22\x00"
-		"\x00\x00\x66\x3c\x18\x3c\x66\x00"
-		"\x00\x00\x66\x66\x66\x3e\x06\x7c"
-		"\x00\x00\x7e\x0c\x18\x30\x7e\x00"
-		"\x3c\x30\x30\x30\x30\x30\x3c\x00"
-		"\x0c\x12\x30\x7c\x30\x62\xfc\x00"
-		"\x3c\x0c\x0c\x0c\x0c\x0c\x3c\x00"
-		"\x00\x18\x3c\x7e\x18\x18\x18\x18"
-		"\x00\x10\x30\x7f\x7f\x30\x10\x00"
-	// 0x60 - 0x7F - Mapped from 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x18\x3c\x66\x7e\x66\x66\x66\x00"
-		"\x7c\x66\x66\x7c\x66\x66\x7c\x00"
-		"\x3c\x66\x60\x60\x60\x66\x3c\x00"
-		"\x78\x6c\x66\x66\x66\x6c\x78\x00"
-		"\x7e\x60\x60\x78\x60\x60\x7e\x00"
-		"\x7e\x60\x60\x78\x60\x60\x60\x00"
-		"\x3c\x66\x60\x6e\x66\x66\x3c\x00"
-		"\x66\x66\x66\x7e\x66\x66\x66\x00"
-		"\x3c\x18\x18\x18\x18\x18\x3c\x00"
-		"\x1e\x0c\x0c\x0c\x0c\x6c\x38\x00"
-		"\x66\x6c\x78\x70\x78\x6c\x66\x00"
-		"\x60\x60\x60\x60\x60\x60\x7e\x00"
-		"\x63\x77\x7f\x6b\x63\x63\x63\x00"
-		"\x66\x76\x7e\x7e\x6e\x66\x66\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3c\x00"
-		// 0x50
-		"\x7c\x66\x66\x7c\x60\x60\x60\x00"
-		"\x3c\x66\x66\x66\x66\x3c\x0e\x00"
-		"\x7c\x66\x66\x7c\x78\x6c\x66\x00"
-		"\x3c\x66\x60\x3c\x06\x66\x3c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\x66\x66\x66\x66\x66\x66\x3c\x00"
-		"\x66\x66\x66\x66\x66\x3c\x18\x00"
-		"\x63\x63\x63\x6b\x7f\x77\x63\x00"
-		"\x66\x66\x3c\x18\x3c\x66\x66\x00"
-		"\x66\x66\x66\x3c\x18\x18\x18\x00"
-		"\x7e\x06\x0c\x18\x30\x60\x7e\x00"
-		"\x18\x18\x18\xff\xff\x18\x18\x18"
-		"\xc0\xc0\x30\x30\xc0\xc0\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x33\x33\xcc\xcc\x33\x33\xcc\xcc"
-		"\x33\x99\xcc\x66\x33\x99\xcc\x66"
-	// 0x80 - 0x9F - Not printable
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-	// 0xA0 - 0xBF - Mapped to 0x60 - 0x7F in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\x33\x33\xcc\xcc\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\xcc\xcc\x33\x33"
-		"\xcc\x99\x33\x66\xcc\x99\x33\x66"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x1f\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x1f\x1f\x00\x00\x00"
-		"\x00\x00\x00\xf8\xf8\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x1f\x1f\x18\x18\x18"
-		"\x18\x18\x18\xff\xff\x00\x00\x00"
-		"\x00\x00\x00\xff\xff\x18\x18\x18"
-		"\x18\x18\x18\xf8\xf8\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\xff\xff"
-		"\x01\x03\x06\x6c\x78\x70\x60\x00"
-		"\x00\x00\x00\x00\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x00\x00\x00\x00"
-		"\x18\x18\x18\xf8\xf8\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\x0f\x0f\x0f\x0f"
-	// 0xC0 - 0xDF - *ALSO* Mapped to 0x40 - 0x5F in the ROM font
-		// 0x40
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x18\x3c\x66\x7e\x66\x66\x66\x00"
-		"\x7c\x66\x66\x7c\x66\x66\x7c\x00"
-		"\x3c\x66\x60\x60\x60\x66\x3c\x00"
-		"\x78\x6c\x66\x66\x66\x6c\x78\x00"
-		"\x7e\x60\x60\x78\x60\x60\x7e\x00"
-		"\x7e\x60\x60\x78\x60\x60\x60\x00"
-		"\x3c\x66\x60\x6e\x66\x66\x3c\x00"
-		"\x66\x66\x66\x7e\x66\x66\x66\x00"
-		"\x3c\x18\x18\x18\x18\x18\x3c\x00"
-		"\x1e\x0c\x0c\x0c\x0c\x6c\x38\x00"
-		"\x66\x6c\x78\x70\x78\x6c\x66\x00"
-		"\x60\x60\x60\x60\x60\x60\x7e\x00"
-		"\x63\x77\x7f\x6b\x63\x63\x63\x00"
-		"\x66\x76\x7e\x7e\x6e\x66\x66\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3c\x00"
-		// 0x50
-		"\x7c\x66\x66\x7c\x60\x60\x60\x00"
-		"\x3c\x66\x66\x66\x66\x3c\x0e\x00"
-		"\x7c\x66\x66\x7c\x78\x6c\x66\x00"
-		"\x3c\x66\x60\x3c\x06\x66\x3c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\x66\x66\x66\x66\x66\x66\x3c\x00"
-		"\x66\x66\x66\x66\x66\x3c\x18\x00"
-		"\x63\x63\x63\x6b\x7f\x77\x63\x00"
-		"\x66\x66\x3c\x18\x3c\x66\x66\x00"
-		"\x66\x66\x66\x3c\x18\x18\x18\x00"
-		"\x7e\x06\x0c\x18\x30\x60\x7e\x00"
-		"\x18\x18\x18\xff\xff\x18\x18\x18"
-		"\xc0\xc0\x30\x30\xc0\xc0\x30\x30"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x33\x33\xcc\xcc\x33\x33\xcc\xcc"
-		"\x33\x99\xcc\x66\x33\x99\xcc\x66"
-	// 0xE0 - 0xFE - *ALSO* Mapped to 0x60 - 0x7E in the ROM font
-		// 0x60
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xcc\xcc\x33\x33\xcc\xcc\x33\x33"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x00\x00\x00\x00\xcc\xcc\x33\x33"
-		"\xcc\x99\x33\x66\xcc\x99\x33\x66"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x1f\x1f\x18\x18\x18"
-		"\x00\x00\x00\x00\x0f\x0f\x0f\x0f"
-		"\x18\x18\x18\x1f\x1f\x00\x00\x00"
-		"\x00\x00\x00\xf8\xf8\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\xff\xff"
-		// 0x70
-		"\x00\x00\x00\x1f\x1f\x18\x18\x18"
-		"\x18\x18\x18\xff\xff\x00\x00\x00"
-		"\x00\x00\x00\xff\xff\x18\x18\x18"
-		"\x18\x18\x18\xf8\xf8\x18\x18\x18"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0"
-		"\x07\x07\x07\x07\x07\x07\x07\x07"
-		"\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\xff\xff"
-		"\x01\x03\x06\x6c\x78\x70\x60\x00"
-		"\x00\x00\x00\x00\xf0\xf0\xf0\xf0"
-		"\x0f\x0f\x0f\x0f\x00\x00\x00\x00"
-		"\x18\x18\x18\xf8\xf8\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\x00\x00\x00\x00"
-	// And finally, 0xFF which is mapped to 0x5E in the original font (!)
-		"\x33\x33\xcc\xcc\x33\x33\xcc\xcc"
-	, "Commodore 128 (Lower)", CIOLIB_PETSCIIL}
-	,{
-		// 0x40
-		"\x00\x00\x36\x36\x7f\x7f\x7f\x7f\x3e\x3e\x1c\x1c\x08\x08\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\xf8\xf8\xf8\xf8\x18\x18\x18\x18\x18\x18"
-		"\x03\x03\x07\x07\x0e\x0e\x1c\x1c\x38\x38\x70\x70\xe0\xe0\xc0\xc0"
-		"\xc0\xc0\xe0\xe0\x70\x70\x38\x38\x1c\x1c\x0e\x0e\x07\x07\x03\x03"
-		"\x01\x01\x03\x03\x07\x07\x0f\x0f\x1f\x1f\x3f\x3f\x7f\x7f\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\x80\x80\xc0\xc0\xe0\xe0\xf0\xf0\xf8\xf8\xfc\xfc\xfe\xfe\xff\xff"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		// 0x50
-		"\x00\x00\x1c\x1c\x1c\x1c\x77\x77\x77\x77\x08\x08\x1c\x1c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x1f\x1f\x1f\x1f\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x00\x00\x3c\x3c\x7e\x7e\x7e\x7e\x7e\x7e\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x18\x18\x18\x18\x18\x18"
-		"\x18\x18\x18\x18\x18\x18\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x18\x18\x18\x18\x18\x18\x1f\x1f\x1f\x1f\x00\x00\x00\x00\x00\x00"
-		"\x78\x78\x60\x60\x78\x78\x60\x60\x7e\x7e\x18\x18\x1e\x1e\x00\x00"
-		"\x00\x00\x18\x18\x3c\x3c\x7e\x7e\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x7e\x7e\x3c\x3c\x18\x18\x00\x00"
-		"\x00\x00\x18\x18\x30\x30\x7e\x7e\x30\x30\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x0c\x0c\x7e\x7e\x0c\x0c\x18\x18\x00\x00\x00\x00"
-		// 0x00
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x18\x18\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\xff\xff\x66\x66\x66\x66\xff\xff\x66\x66\x00\x00"
-		"\x18\x18\x3e\x3e\x60\x60\x3c\x3c\x06\x06\x7c\x7c\x18\x18\x00\x00"
-		"\x00\x00\x66\x66\x6c\x6c\x18\x18\x30\x30\x66\x66\x46\x46\x00\x00"
-		"\x1c\x1c\x36\x36\x1c\x1c\x38\x38\x6f\x6f\x66\x66\x3b\x3b\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x0e\x0e\x1c\x1c\x18\x18\x18\x18\x1c\x1c\x0e\x0e\x00\x00"
-		"\x00\x00\x70\x70\x38\x38\x18\x18\x18\x18\x38\x38\x70\x70\x00\x00"
-		"\x00\x00\x66\x66\x3c\x3c\xff\xff\x3c\x3c\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x7e\x7e\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\x40\x40\x00\x00"
-		// 0x10
-		"\x00\x00\x3c\x3c\x66\x66\x6e\x6e\x76\x76\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x18\x18\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x00\x00\x3c\x3c\x66\x66\x0c\x0c\x18\x18\x30\x30\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x0c\x0c\x18\x18\x0c\x0c\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x0c\x0c\x1c\x1c\x3c\x3c\x6c\x6c\x7e\x7e\x0c\x0c\x00\x00"
-		"\x00\x00\x7e\x7e\x60\x60\x7c\x7c\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x3c\x3c\x60\x60\x7c\x7c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x7e\x7e\x06\x06\x0c\x0c\x18\x18\x30\x30\x30\x30\x00\x00"
-		"\x00\x00\x3c\x3c\x66\x66\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x3c\x3c\x66\x66\x3e\x3e\x06\x06\x0c\x0c\x38\x38\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x06\x06\x0c\x0c\x18\x18\x30\x30\x18\x18\x0c\x0c\x06\x06\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00"
-		"\x60\x60\x30\x30\x18\x18\x0c\x0c\x18\x18\x30\x30\x60\x60\x00\x00"
-		"\x00\x00\x3c\x3c\x66\x66\x0c\x0c\x18\x18\x00\x00\x18\x18\x00\x00"
-		// 0x20
-		"\x00\x00\x3c\x3c\x66\x66\x6e\x6e\x6e\x6e\x60\x60\x3e\x3e\x00\x00"
-		"\x00\x00\x18\x18\x3c\x3c\x66\x66\x66\x66\x7e\x7e\x66\x66\x00\x00"
-		"\x00\x00\x7c\x7c\x66\x66\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x00\x00\x3c\x3c\x66\x66\x60\x60\x60\x60\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x78\x78\x6c\x6c\x66\x66\x66\x66\x6c\x6c\x78\x78\x00\x00"
-		"\x00\x00\x7e\x7e\x60\x60\x7c\x7c\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x60\x60\x7c\x7c\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x00\x00\x3e\x3e\x60\x60\x60\x60\x6e\x6e\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x00\x00\x06\x06\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x66\x66\x6c\x6c\x78\x78\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x00\x00\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x00\x00\x63\x63\x77\x77\x7f\x7f\x6b\x6b\x63\x63\x63\x63\x00\x00"
-		"\x00\x00\x66\x66\x76\x76\x7e\x7e\x7e\x7e\x6e\x6e\x66\x66\x00\x00"
-		"\x00\x00\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		// 0x30
-		"\x00\x00\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60\x00\x00"
-		"\x00\x00\x3c\x3c\x66\x66\x66\x66\x66\x66\x6c\x6c\x36\x36\x00\x00"
-		"\x00\x00\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x6c\x6c\x66\x66\x00\x00"
-		"\x00\x00\x3c\x3c\x60\x60\x3c\x3c\x06\x06\x06\x06\x3c\x3c\x00\x00"
-		"\x00\x00\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x00\x00"
-		"\x00\x00\x63\x63\x63\x63\x6b\x6b\x7f\x7f\x77\x77\x63\x63\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x3c\x3c\x3c\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x7e\x7e\x0c\x0c\x18\x18\x30\x30\x60\x60\x7e\x7e\x00\x00"
-		"\x00\x00\x1e\x1e\x18\x18\x18\x18\x18\x18\x18\x18\x1e\x1e\x00\x00"
-		"\x00\x00\x40\x40\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x06\x00\x00"
-		"\x00\x00\x78\x78\x18\x18\x18\x18\x18\x18\x18\x18\x78\x78\x00\x00"
-		"\x00\x00\x08\x08\x1c\x1c\x36\x36\x63\x63\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00"
-		// 0x60
-		"\x00\x00\x18\x18\x3c\x3c\x7e\x7e\x7e\x7e\x3c\x3c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x60\x60\x60\x60\x60\x60\x3c\x3c\x00\x00"
-		"\x00\x00\x06\x06\x06\x06\x3e\x3e\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x00\x00\x0e\x0e\x18\x18\x3e\x3e\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x3e\x3e\x66\x66\x66\x66\x3e\x3e\x06\x06\x7c\x7c"
-		"\x00\x00\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x38\x38\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x00\x00\x06\x06\x00\x00\x06\x06\x06\x06\x06\x06\x06\x06\x3c\x3c"
-		"\x00\x00\x60\x60\x60\x60\x6c\x6c\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x00\x00\x38\x38\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x7f\x7f\x7f\x7f\x6b\x6b\x63\x63\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		// 0x70
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60"
-		"\x00\x00\x00\x00\x3e\x3e\x66\x66\x66\x66\x3e\x3e\x06\x06\x06\x06"
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x00\x00\x00\x00\x3e\x3e\x60\x60\x3c\x3c\x06\x06\x7c\x7c\x00\x00"
-		"\x00\x00\x18\x18\x7e\x7e\x18\x18\x18\x18\x18\x18\x0e\x0e\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x63\x63\x6b\x6b\x7f\x7f\x3e\x3e\x36\x36\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x0c\x0c\x78\x78"
-		"\x00\x00\x00\x00\x7e\x7e\x0c\x0c\x18\x18\x30\x30\x7e\x7e\x00\x00"
-		"\x00\x00\x18\x18\x3c\x3c\x7e\x7e\x7e\x7e\x18\x18\x3c\x3c\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x00\x7e\x7e\x78\x78\x7c\x7c\x6e\x6e\x66\x66\x06\x06\x00\x00"
-		"\x08\x08\x18\x18\x38\x38\x78\x78\x38\x38\x18\x18\x08\x08\x00\x00"
-		"\x10\x10\x18\x18\x1c\x1c\x1e\x1e\x1c\x1c\x18\x18\x10\x10\x00\x00"
-		/* Inverted */
-		// 0xC0
-		"\xff\xff\xc9\xc9\x80\x80\x80\x80\xc1\xc1\xe3\xe3\xf7\xf7\xff\xff"
-		"\xe7\xe7\xe7\xe7\xe7\xe7\xe0\xe0\xe0\xe0\xe7\xe7\xe7\xe7\xe7\xe7"
-		"\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc"
-		"\xe7\xe7\xe7\xe7\xe7\xe7\x07\x07\x07\x07\xff\xff\xff\xff\xff\xff"
-		"\xe7\xe7\xe7\xe7\xe7\xe7\x07\x07\x07\x07\xe7\xe7\xe7\xe7\xe7\xe7"
-		"\xff\xff\xff\xff\xff\xff\x07\x07\x07\x07\xe7\xe7\xe7\xe7\xe7\xe7"
-		"\xfc\xfc\xf8\xf8\xf1\xf1\xe3\xe3\xc7\xc7\x8f\x8f\x1f\x1f\x3f\x3f"
-		"\x3f\x3f\x1f\x1f\x8f\x8f\xc7\xc7\xe3\xe3\xf1\xf1\xf8\xf8\xfc\xfc"
-		"\xfe\xfe\xfc\xfc\xf8\xf8\xf0\xf0\xe0\xe0\xc0\xc0\x80\x80\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x7f\x7f\x3f\x3f\x1f\x1f\x0f\x0f\x07\x07\x03\x03\x01\x01\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		// 0xD0
-		"\xff\xff\xe3\xe3\xe3\xe3\x88\x88\x88\x88\xf7\xf7\xe3\xe3\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xe0\xe0\xe0\xe0\xe7\xe7\xe7\xe7\xe7\xe7"
-		"\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff"
-		"\xe7\xe7\xe7\xe7\xe7\xe7\x00\x00\x00\x00\xe7\xe7\xe7\xe7\xe7\xe7"
-		"\xff\xff\xff\xff\xc3\xc3\x81\x81\x81\x81\x81\x81\xc3\xc3\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f"
-		"\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xe7\xe7\xe7\xe7\xe7\xe7"
-		"\xe7\xe7\xe7\xe7\xe7\xe7\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xe7\xe7\xe7\xe7\xe7\xe7\xe0\xe0\xe0\xe0\xff\xff\xff\xff\xff\xff"
-		"\x87\x87\x9f\x9f\x87\x87\x9f\x9f\x81\x81\xe7\xe7\xe1\xe1\xff\xff"
-		"\xff\xff\xe7\xe7\xc3\xc3\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\xff\xff"
-		"\xff\xff\xe7\xe7\xe7\xe7\xe7\xe7\x81\x81\xc3\xc3\xe7\xe7\xff\xff"
-		"\xff\xff\xe7\xe7\xcf\xcf\x81\x81\xcf\xcf\xe7\xe7\xff\xff\xff\xff"
-		"\xff\xff\xe7\xe7\xf3\xf3\x81\x81\xf3\xf3\xe7\xe7\xff\xff\xff\xff"
-		// 0x80
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xff\xff\xe7\xe7\xff\xff"
-		"\xff\xff\x99\x99\x99\x99\x99\x99\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\x99\x99\x00\x00\x99\x99\x99\x99\x00\x00\x99\x99\xff\xff"
-		"\xe7\xe7\xc1\xc1\x9f\x9f\xc3\xc3\xf9\xf9\x83\x83\xe7\xe7\xff\xff"
-		"\xff\xff\x99\x99\x93\x93\xe7\xe7\xcf\xcf\x99\x99\xb9\xb9\xff\xff"
-		"\xe3\xe3\xc9\xc9\xe3\xe3\xc7\xc7\x90\x90\x99\x99\xc4\xc4\xff\xff"
-		"\xff\xff\xe7\xe7\xe7\xe7\xe7\xe7\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\xf1\xf1\xe3\xe3\xe7\xe7\xe7\xe7\xe3\xe3\xf1\xf1\xff\xff"
-		"\xff\xff\x8f\x8f\xc7\xc7\xe7\xe7\xe7\xe7\xc7\xc7\x8f\x8f\xff\xff"
-		"\xff\xff\x99\x99\xc3\xc3\x00\x00\xc3\xc3\x99\x99\xff\xff\xff\xff"
-		"\xff\xff\xe7\xe7\xe7\xe7\x81\x81\xe7\xe7\xe7\xe7\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xe7\xe7\xe7\xe7\xcf\xcf"
-		"\xff\xff\xff\xff\xff\xff\x81\x81\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xe7\xe7\xe7\xe7\xff\xff"
-		"\xff\xff\xf9\xf9\xf3\xf3\xe7\xe7\xcf\xcf\x9f\x9f\xbf\xbf\xff\xff"
-		// 0x90
-		"\xff\xff\xc3\xc3\x99\x99\x91\x91\x89\x89\x99\x99\xc3\xc3\xff\xff"
-		"\xff\xff\xe7\xe7\xc7\xc7\xe7\xe7\xe7\xe7\xe7\xe7\x81\x81\xff\xff"
-		"\xff\xff\xc3\xc3\x99\x99\xf3\xf3\xe7\xe7\xcf\xcf\x81\x81\xff\xff"
-		"\xff\xff\x81\x81\xf3\xf3\xe7\xe7\xf3\xf3\x99\x99\xc3\xc3\xff\xff"
-		"\xff\xff\xf3\xf3\xe3\xe3\xc3\xc3\x93\x93\x81\x81\xf3\xf3\xff\xff"
-		"\xff\xff\x81\x81\x9f\x9f\x83\x83\xf9\xf9\x99\x99\xc3\xc3\xff\xff"
-		"\xff\xff\xc3\xc3\x9f\x9f\x83\x83\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\xff\xff\x81\x81\xf9\xf9\xf3\xf3\xe7\xe7\xcf\xcf\xcf\xcf\xff\xff"
-		"\xff\xff\xc3\xc3\x99\x99\xc3\xc3\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\xff\xff\xc3\xc3\x99\x99\xc1\xc1\xf9\xf9\xf3\xf3\xc7\xc7\xff\xff"
-		"\xff\xff\xff\xff\xe7\xe7\xe7\xe7\xff\xff\xe7\xe7\xe7\xe7\xff\xff"
-		"\xff\xff\xff\xff\xe7\xe7\xe7\xe7\xff\xff\xe7\xe7\xe7\xe7\xcf\xcf"
-		"\xf9\xf9\xf3\xf3\xe7\xe7\xcf\xcf\xe7\xe7\xf3\xf3\xf9\xf9\xff\xff"
-		"\xff\xff\xff\xff\x81\x81\xff\xff\xff\xff\x81\x81\xff\xff\xff\xff"
-		"\x9f\x9f\xcf\xcf\xe7\xe7\xf3\xf3\xe7\xe7\xcf\xcf\x9f\x9f\xff\xff"
-		"\xff\xff\xc3\xc3\x99\x99\xf3\xf3\xe7\xe7\xff\xff\xe7\xe7\xff\xff"
-		// 0xA0
-		"\xff\xff\xc3\xc3\x99\x99\x91\x91\x91\x91\x9f\x9f\xc1\xc1\xff\xff"
-		"\xff\xff\xe7\xe7\xc3\xc3\x99\x99\x99\x99\x81\x81\x99\x99\xff\xff"
-		"\xff\xff\x83\x83\x99\x99\x83\x83\x99\x99\x99\x99\x83\x83\xff\xff"
-		"\xff\xff\xc3\xc3\x99\x99\x9f\x9f\x9f\x9f\x99\x99\xc3\xc3\xff\xff"
-		"\xff\xff\x87\x87\x93\x93\x99\x99\x99\x99\x93\x93\x87\x87\xff\xff"
-		"\xff\xff\x81\x81\x9f\x9f\x83\x83\x9f\x9f\x9f\x9f\x81\x81\xff\xff"
-		"\xff\xff\x81\x81\x9f\x9f\x83\x83\x9f\x9f\x9f\x9f\x9f\x9f\xff\xff"
-		"\xff\xff\xc1\xc1\x9f\x9f\x9f\x9f\x91\x91\x99\x99\xc1\xc1\xff\xff"
-		"\xff\xff\x99\x99\x99\x99\x81\x81\x99\x99\x99\x99\x99\x99\xff\xff"
-		"\xff\xff\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x81\x81\xff\xff"
-		"\xff\xff\xf9\xf9\xf9\xf9\xf9\xf9\xf9\xf9\x99\x99\xc3\xc3\xff\xff"
-		"\xff\xff\x99\x99\x93\x93\x87\x87\x87\x87\x93\x93\x99\x99\xff\xff"
-		"\xff\xff\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x81\x81\xff\xff"
-		"\xff\xff\x9c\x9c\x88\x88\x80\x80\x94\x94\x9c\x9c\x9c\x9c\xff\xff"
-		"\xff\xff\x99\x99\x89\x89\x81\x81\x81\x81\x91\x91\x99\x99\xff\xff"
-		"\xff\xff\xc3\xc3\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		// 0xB0
-		"\xff\xff\x83\x83\x99\x99\x99\x99\x83\x83\x9f\x9f\x9f\x9f\xff\xff"
-		"\xff\xff\xc3\xc3\x99\x99\x99\x99\x99\x99\x93\x93\xc9\xc9\xff\xff"
-		"\xff\xff\x83\x83\x99\x99\x99\x99\x83\x83\x93\x93\x99\x99\xff\xff"
-		"\xff\xff\xc3\xc3\x9f\x9f\xc3\xc3\xf9\xf9\xf9\xf9\xc3\xc3\xff\xff"
-		"\xff\xff\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xff\xff"
-		"\xff\xff\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x81\x81\xff\xff"
-		"\xff\xff\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xe7\xe7\xff\xff"
-		"\xff\xff\x9c\x9c\x9c\x9c\x94\x94\x80\x80\x88\x88\x9c\x9c\xff\xff"
-		"\xff\xff\x99\x99\x99\x99\xc3\xc3\xc3\xc3\x99\x99\x99\x99\xff\xff"
-		"\xff\xff\x99\x99\x99\x99\xc3\xc3\xe7\xe7\xe7\xe7\xe7\xe7\xff\xff"
-		"\xff\xff\x81\x81\xf3\xf3\xe7\xe7\xcf\xcf\x9f\x9f\x81\x81\xff\xff"
-		"\xff\xff\xe1\xe1\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe1\xe1\xff\xff"
-		"\xff\xff\xbf\xbf\x9f\x9f\xcf\xcf\xe7\xe7\xf3\xf3\xf9\xf9\xff\xff"
-		"\xff\xff\x87\x87\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x87\x87\xff\xff"
-		"\xff\xff\xf7\xf7\xe3\xe3\xc9\xc9\x9c\x9c\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff"
-		// 0xE0
-		"\xff\xff\xe7\xe7\xc3\xc3\x81\x81\x81\x81\xc3\xc3\xe7\xe7\xff\xff"
-		"\xff\xff\xff\xff\xc3\xc3\xf9\xf9\xc1\xc1\x99\x99\xc1\xc1\xff\xff"
-		"\xff\xff\x9f\x9f\x9f\x9f\x83\x83\x99\x99\x99\x99\x83\x83\xff\xff"
-		"\xff\xff\xff\xff\xc3\xc3\x9f\x9f\x9f\x9f\x9f\x9f\xc3\xc3\xff\xff"
-		"\xff\xff\xf9\xf9\xf9\xf9\xc1\xc1\x99\x99\x99\x99\xc1\xc1\xff\xff"
-		"\xff\xff\xff\xff\xc3\xc3\x99\x99\x81\x81\x9f\x9f\xc3\xc3\xff\xff"
-		"\xff\xff\xf1\xf1\xe7\xe7\xc1\xc1\xe7\xe7\xe7\xe7\xe7\xe7\xff\xff"
-		"\xff\xff\xff\xff\xc1\xc1\x99\x99\x99\x99\xc1\xc1\xf9\xf9\x83\x83"
-		"\xff\xff\x9f\x9f\x9f\x9f\x83\x83\x99\x99\x99\x99\x99\x99\xff\xff"
-		"\xff\xff\xe7\xe7\xff\xff\xc7\xc7\xe7\xe7\xe7\xe7\xc3\xc3\xff\xff"
-		"\xff\xff\xf9\xf9\xff\xff\xf9\xf9\xf9\xf9\xf9\xf9\xf9\xf9\xc3\xc3"
-		"\xff\xff\x9f\x9f\x9f\x9f\x93\x93\x87\x87\x93\x93\x99\x99\xff\xff"
-		"\xff\xff\xc7\xc7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xc3\xc3\xff\xff"
-		"\xff\xff\xff\xff\x99\x99\x80\x80\x80\x80\x94\x94\x9c\x9c\xff\xff"
-		"\xff\xff\xff\xff\x83\x83\x99\x99\x99\x99\x99\x99\x99\x99\xff\xff"
-		"\xff\xff\xff\xff\xc3\xc3\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		// 0xF0
-		"\xff\xff\xff\xff\x83\x83\x99\x99\x99\x99\x83\x83\x9f\x9f\x9f\x9f"
-		"\xff\xff\xff\xff\xc1\xc1\x99\x99\x99\x99\xc1\xc1\xf9\xf9\xf9\xf9"
-		"\xff\xff\xff\xff\x83\x83\x99\x99\x9f\x9f\x9f\x9f\x9f\x9f\xff\xff"
-		"\xff\xff\xff\xff\xc1\xc1\x9f\x9f\xc3\xc3\xf9\xf9\x83\x83\xff\xff"
-		"\xff\xff\xe7\xe7\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\xf1\xf1\xff\xff"
-		"\xff\xff\xff\xff\x99\x99\x99\x99\x99\x99\x99\x99\xc1\xc1\xff\xff"
-		"\xff\xff\xff\xff\x99\x99\x99\x99\x99\x99\xc3\xc3\xe7\xe7\xff\xff"
-		"\xff\xff\xff\xff\x9c\x9c\x94\x94\x80\x80\xc1\xc1\xc9\xc9\xff\xff"
-		"\xff\xff\xff\xff\x99\x99\xc3\xc3\xe7\xe7\xc3\xc3\x99\x99\xff\xff"
-		"\xff\xff\xff\xff\x99\x99\x99\x99\x99\x99\xc1\xc1\xf3\xf3\x87\x87"
-		"\xff\xff\xff\xff\x81\x81\xf3\xf3\xe7\xe7\xcf\xcf\x81\x81\xff\xff"
-		"\xff\xff\xe7\xe7\xc3\xc3\x81\x81\x81\x81\xe7\xe7\xc3\xc3\xff\xff"
-		"\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7"
-		"\xff\xff\x81\x81\x87\x87\x83\x83\x91\x91\x99\x99\xf9\xf9\xff\xff"
-		"\xf7\xf7\xe7\xe7\xc7\xc7\x87\x87\xc7\xc7\xe7\xe7\xf7\xf7\xff\xff"
-		"\xef\xef\xe7\xe7\xe3\xe3\xe1\xe1\xe3\xe3\xe7\xe7\xef\xef\xff\xff"
-	,	NULL
-	,
-		// 0x40
-		"\x00\x36\x7f\x7f\x3e\x1c\x08\x00"
-		"\x18\x18\x18\x1f\x1f\x18\x18\x18"
-		"\x03\x03\x03\x03\x03\x03\x03\x03"
-		"\x18\x18\x18\xf8\xf8\x00\x00\x00"
-		"\x18\x18\x18\xf8\xf8\x18\x18\x18"
-		"\x00\x00\x00\xf8\xf8\x18\x18\x18"
-		"\x03\x07\x0e\x1c\x38\x70\xe0\xc0"
-		"\xc0\xe0\x70\x38\x1c\x0e\x07\x03"
-		"\x01\x03\x07\x0f\x1f\x3f\x7f\xff"
-		"\x00\x00\x00\x00\x0f\x0f\x0f\x0f"
-		"\x80\xc0\xe0\xf0\xf8\xfc\xfe\xff"
-		"\x0f\x0f\x0f\x0f\x00\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\x00\x00\x00\x00"
-		"\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\xff"
-		"\x00\x00\x00\x00\xf0\xf0\xf0\xf0"
-		// 0x50
-		"\x00\x1c\x1c\x77\x77\x08\x1c\x00"
-		"\x00\x00\x00\x1f\x1f\x18\x18\x18"
-		"\x00\x00\x00\xff\xff\x00\x00\x00"
-		"\x18\x18\x18\xff\xff\x18\x18\x18"
-		"\x00\x00\x3c\x7e\x7e\x7e\x3c\x00"
-		"\x00\x00\x00\x00\xff\xff\xff\xff"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\x00\x00\x00\xff\xff\x18\x18\x18"
-		"\x18\x18\x18\xff\xff\x00\x00\x00"
-		"\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0"
-		"\x18\x18\x18\x1f\x1f\x00\x00\x00"
-		"\x78\x60\x78\x60\x7e\x18\x1e\x00"
-		"\x00\x18\x3c\x7e\x18\x18\x18\x00"
-		"\x00\x18\x18\x18\x7e\x3c\x18\x00"
-		"\x00\x18\x30\x7e\x30\x18\x00\x00"
-		"\x00\x18\x0c\x7e\x0c\x18\x00\x00"
-		// 0x00
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x18\x18\x18\x18\x00\x18\x00"
-		"\x00\x66\x66\x66\x00\x00\x00\x00"
-		"\x00\x66\xff\x66\x66\xff\x66\x00"
-		"\x18\x3e\x60\x3c\x06\x7c\x18\x00"
-		"\x00\x66\x6c\x18\x30\x66\x46\x00"
-		"\x1c\x36\x1c\x38\x6f\x66\x3b\x00"
-		"\x00\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x0e\x1c\x18\x18\x1c\x0e\x00"
-		"\x00\x70\x38\x18\x18\x38\x70\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x18\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x30"
-		"\x00\x00\x00\x7e\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00"
-		"\x00\x06\x0c\x18\x30\x60\x40\x00"
-		// 0x10
-		"\x00\x3c\x66\x6e\x76\x66\x3c\x00"
-		"\x00\x18\x38\x18\x18\x18\x7e\x00"
-		"\x00\x3c\x66\x0c\x18\x30\x7e\x00"
-		"\x00\x7e\x0c\x18\x0c\x66\x3c\x00"
-		"\x00\x0c\x1c\x3c\x6c\x7e\x0c\x00"
-		"\x00\x7e\x60\x7c\x06\x66\x3c\x00"
-		"\x00\x3c\x60\x7c\x66\x66\x3c\x00"
-		"\x00\x7e\x06\x0c\x18\x30\x30\x00"
-		"\x00\x3c\x66\x3c\x66\x66\x3c\x00"
-		"\x00\x3c\x66\x3e\x06\x0c\x38\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x00"
-		"\x00\x00\x18\x18\x00\x18\x18\x30"
-		"\x06\x0c\x18\x30\x18\x0c\x06\x00"
-		"\x00\x00\x7e\x00\x00\x7e\x00\x00"
-		"\x60\x30\x18\x0c\x18\x30\x60\x00"
-		"\x00\x3c\x66\x0c\x18\x00\x18\x00"
-		// 0x20
-		"\x00\x3c\x66\x6e\x6e\x60\x3e\x00"
-		"\x00\x18\x3c\x66\x66\x7e\x66\x00"
-		"\x00\x7c\x66\x7c\x66\x66\x7c\x00"
-		"\x00\x3c\x66\x60\x60\x66\x3c\x00"
-		"\x00\x78\x6c\x66\x66\x6c\x78\x00"
-		"\x00\x7e\x60\x7c\x60\x60\x7e\x00"
-		"\x00\x7e\x60\x7c\x60\x60\x60\x00"
-		"\x00\x3e\x60\x60\x6e\x66\x3e\x00"
-		"\x00\x66\x66\x7e\x66\x66\x66\x00"
-		"\x00\x7e\x18\x18\x18\x18\x7e\x00"
-		"\x00\x06\x06\x06\x06\x66\x3c\x00"
-		"\x00\x66\x6c\x78\x78\x6c\x66\x00"
-		"\x00\x60\x60\x60\x60\x60\x7e\x00"
-		"\x00\x63\x77\x7f\x6b\x63\x63\x00"
-		"\x00\x66\x76\x7e\x7e\x6e\x66\x00"
-		"\x00\x3c\x66\x66\x66\x66\x3c\x00"
-		// 0x30
-		"\x00\x7c\x66\x66\x7c\x60\x60\x00"
-		"\x00\x3c\x66\x66\x66\x6c\x36\x00"
-		"\x00\x7c\x66\x66\x7c\x6c\x66\x00"
-		"\x00\x3c\x60\x3c\x06\x06\x3c\x00"
-		"\x00\x7e\x18\x18\x18\x18\x18\x00"
-		"\x00\x66\x66\x66\x66\x66\x7e\x00"
-		"\x00\x66\x66\x66\x66\x3c\x18\x00"
-		"\x00\x63\x63\x6b\x7f\x77\x63\x00"
-		"\x00\x66\x66\x3c\x3c\x66\x66\x00"
-		"\x00\x66\x66\x3c\x18\x18\x18\x00"
-		"\x00\x7e\x0c\x18\x30\x60\x7e\x00"
-		"\x00\x1e\x18\x18\x18\x18\x1e\x00"
-		"\x00\x40\x60\x30\x18\x0c\x06\x00"
-		"\x00\x78\x18\x18\x18\x18\x78\x00"
-		"\x00\x08\x1c\x36\x63\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\x00"
-		// 0x60
-		"\x00\x18\x3c\x7e\x7e\x3c\x18\x00"
-		"\x00\x00\x3c\x06\x3e\x66\x3e\x00"
-		"\x00\x60\x60\x7c\x66\x66\x7c\x00"
-		"\x00\x00\x3c\x60\x60\x60\x3c\x00"
-		"\x00\x06\x06\x3e\x66\x66\x3e\x00"
-		"\x00\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x00\x0e\x18\x3e\x18\x18\x18\x00"
-		"\x00\x00\x3e\x66\x66\x3e\x06\x7c"
-		"\x00\x60\x60\x7c\x66\x66\x66\x00"
-		"\x00\x18\x00\x38\x18\x18\x3c\x00"
-		"\x00\x06\x00\x06\x06\x06\x06\x3c"
-		"\x00\x60\x60\x6c\x78\x6c\x66\x00"
-		"\x00\x38\x18\x18\x18\x18\x3c\x00"
-		"\x00\x00\x66\x7f\x7f\x6b\x63\x00"
-		"\x00\x00\x7c\x66\x66\x66\x66\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00"
-		// 0x70
-		"\x00\x00\x7c\x66\x66\x7c\x60\x60"
-		"\x00\x00\x3e\x66\x66\x3e\x06\x06"
-		"\x00\x00\x7c\x66\x60\x60\x60\x00"
-		"\x00\x00\x3e\x60\x3c\x06\x7c\x00"
-		"\x00\x18\x7e\x18\x18\x18\x0e\x00"
-		"\x00\x00\x66\x66\x66\x66\x3e\x00"
-		"\x00\x00\x66\x66\x66\x3c\x18\x00"
-		"\x00\x00\x63\x6b\x7f\x3e\x36\x00"
-		"\x00\x00\x66\x3c\x18\x3c\x66\x00"
-		"\x00\x00\x66\x66\x66\x3e\x0c\x78"
-		"\x00\x00\x7e\x0c\x18\x30\x7e\x00"
-		"\x00\x18\x3c\x7e\x7e\x18\x3c\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x00\x7e\x78\x7c\x6e\x66\x06\x00"
-		"\x08\x18\x38\x78\x38\x18\x08\x00"
-		"\x10\x18\x1c\x1e\x1c\x18\x10\x00"
-		/* Inverted */
-		// 0xC0
-		"\xff\xc9\x80\x80\xc1\xe3\xf7\xff"
-		"\xe7\xe7\xe7\xe0\xe0\xe7\xe7\xe7"
-		"\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc"
-		"\xe7\xe7\xe7\x07\x07\xff\xff\xff"
-		"\xe7\xe7\xe7\x07\x07\xe7\xe7\xe7"
-		"\xff\xff\xff\x07\x07\xe7\xe7\xe7"
-		"\xfc\xf8\xf1\xe3\xc7\x8f\x1f\x3f"
-		"\x3f\x1f\x8f\xc7\xe3\xf1\xf8\xfc"
-		"\xfe\xfc\xf8\xf0\xe0\xc0\x80\x00"
-		"\xff\xff\xff\xff\xf0\xf0\xf0\xf0"
-		"\x7f\x3f\x1f\x0f\x07\x03\x01\x00"
-		"\xf0\xf0\xf0\xf0\xff\xff\xff\xff"
-		"\x0f\x0f\x0f\x0f\xff\xff\xff\xff"
-		"\x00\x00\xff\xff\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\x00\x00"
-		"\xff\xff\xff\xff\x0f\x0f\x0f\x0f"
-		// 0xD0
-		"\xff\xe3\xe3\x88\x88\xf7\xe3\xff"
-		"\xff\xff\xff\xe0\xe0\xe7\xe7\xe7"
-		"\xff\xff\xff\x00\x00\xff\xff\xff"
-		"\xe7\xe7\xe7\x00\x00\xe7\xe7\xe7"
-		"\xff\xff\xc3\x81\x81\x81\xc3\xff"
-		"\xff\xff\xff\xff\x00\x00\x00\x00"
-		"\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f"
-		"\xff\xff\xff\x00\x00\xe7\xe7\xe7"
-		"\xe7\xe7\xe7\x00\x00\xff\xff\xff"
-		"\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f"
-		"\xe7\xe7\xe7\xe0\xe0\xff\xff\xff"
-		"\x87\x9f\x87\x9f\x81\xe7\xe1\xff"
-		"\xff\xe7\xc3\x81\xe7\xe7\xe7\xff"
-		"\xff\xe7\xe7\xe7\x81\xc3\xe7\xff"
-		"\xff\xe7\xcf\x81\xcf\xe7\xff\xff"
-		"\xff\xe7\xf3\x81\xf3\xe7\xff\xff"
-		// 0x80
-		"\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\xff\xe7\xe7\xe7\xe7\xff\xe7\xff"
-		"\xff\x99\x99\x99\xff\xff\xff\xff"
-		"\xff\x99\x00\x99\x99\x00\x99\xff"
-		"\xe7\xc1\x9f\xc3\xf9\x83\xe7\xff"
-		"\xff\x99\x93\xe7\xcf\x99\xb9\xff"
-		"\xe3\xc9\xe3\xc7\x90\x99\xc4\xff"
-		"\xff\xe7\xe7\xe7\xff\xff\xff\xff"
-		"\xff\xf1\xe3\xe7\xe7\xe3\xf1\xff"
-		"\xff\x8f\xc7\xe7\xe7\xc7\x8f\xff"
-		"\xff\x99\xc3\x00\xc3\x99\xff\xff"
-		"\xff\xe7\xe7\x81\xe7\xe7\xff\xff"
-		"\xff\xff\xff\xff\xff\xe7\xe7\xcf"
-		"\xff\xff\xff\x81\xff\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xe7\xe7\xff"
-		"\xff\xf9\xf3\xe7\xcf\x9f\xbf\xff"
-		// 0x90
-		"\xff\xc3\x99\x91\x89\x99\xc3\xff"
-		"\xff\xe7\xc7\xe7\xe7\xe7\x81\xff"
-		"\xff\xc3\x99\xf3\xe7\xcf\x81\xff"
-		"\xff\x81\xf3\xe7\xf3\x99\xc3\xff"
-		"\xff\xf3\xe3\xc3\x93\x81\xf3\xff"
-		"\xff\x81\x9f\x83\xf9\x99\xc3\xff"
-		"\xff\xc3\x9f\x83\x99\x99\xc3\xff"
-		"\xff\x81\xf9\xf3\xe7\xcf\xcf\xff"
-		"\xff\xc3\x99\xc3\x99\x99\xc3\xff"
-		"\xff\xc3\x99\xc1\xf9\xf3\xc7\xff"
-		"\xff\xff\xe7\xe7\xff\xe7\xe7\xff"
-		"\xff\xff\xe7\xe7\xff\xe7\xe7\xcf"
-		"\xf9\xf3\xe7\xcf\xe7\xf3\xf9\xff"
-		"\xff\xff\x81\xff\xff\x81\xff\xff"
-		"\x9f\xcf\xe7\xf3\xe7\xcf\x9f\xff"
-		"\xff\xc3\x99\xf3\xe7\xff\xe7\xff"
-		// 0xA0
-		"\xff\xc3\x99\x91\x91\x9f\xc1\xff"
-		"\xff\xe7\xc3\x99\x99\x81\x99\xff"
-		"\xff\x83\x99\x83\x99\x99\x83\xff"
-		"\xff\xc3\x99\x9f\x9f\x99\xc3\xff"
-		"\xff\x87\x93\x99\x99\x93\x87\xff"
-		"\xff\x81\x9f\x83\x9f\x9f\x81\xff"
-		"\xff\x81\x9f\x83\x9f\x9f\x9f\xff"
-		"\xff\xc1\x9f\x9f\x91\x99\xc1\xff"
-		"\xff\x99\x99\x81\x99\x99\x99\xff"
-		"\xff\x81\xe7\xe7\xe7\xe7\x81\xff"
-		"\xff\xf9\xf9\xf9\xf9\x99\xc3\xff"
-		"\xff\x99\x93\x87\x87\x93\x99\xff"
-		"\xff\x9f\x9f\x9f\x9f\x9f\x81\xff"
-		"\xff\x9c\x88\x80\x94\x9c\x9c\xff"
-		"\xff\x99\x89\x81\x81\x91\x99\xff"
-		"\xff\xc3\x99\x99\x99\x99\xc3\xff"
-		// 0xB0
-		"\xff\x83\x99\x99\x83\x9f\x9f\xff"
-		"\xff\xc3\x99\x99\x99\x93\xc9\xff"
-		"\xff\x83\x99\x99\x83\x93\x99\xff"
-		"\xff\xc3\x9f\xc3\xf9\xf9\xc3\xff"
-		"\xff\x81\xe7\xe7\xe7\xe7\xe7\xff"
-		"\xff\x99\x99\x99\x99\x99\x81\xff"
-		"\xff\x99\x99\x99\x99\xc3\xe7\xff"
-		"\xff\x9c\x9c\x94\x80\x88\x9c\xff"
-		"\xff\x99\x99\xc3\xc3\x99\x99\xff"
-		"\xff\x99\x99\xc3\xe7\xe7\xe7\xff"
-		"\xff\x81\xf3\xe7\xcf\x9f\x81\xff"
-		"\xff\xe1\xe7\xe7\xe7\xe7\xe1\xff"
-		"\xff\xbf\x9f\xcf\xe7\xf3\xf9\xff"
-		"\xff\x87\xe7\xe7\xe7\xe7\x87\xff"
-		"\xff\xf7\xe3\xc9\x9c\xff\xff\xff"
-		"\xff\xff\xff\xff\xff\xff\x00\xff"
-		// 0xE0
-		"\xff\xe7\xc3\x81\x81\xc3\xe7\xff"
-		"\xff\xff\xc3\xf9\xc1\x99\xc1\xff"
-		"\xff\x9f\x9f\x83\x99\x99\x83\xff"
-		"\xff\xff\xc3\x9f\x9f\x9f\xc3\xff"
-		"\xff\xf9\xf9\xc1\x99\x99\xc1\xff"
-		"\xff\xff\xc3\x99\x81\x9f\xc3\xff"
-		"\xff\xf1\xe7\xc1\xe7\xe7\xe7\xff"
-		"\xff\xff\xc1\x99\x99\xc1\xf9\x83"
-		"\xff\x9f\x9f\x83\x99\x99\x99\xff"
-		"\xff\xe7\xff\xc7\xe7\xe7\xc3\xff"
-		"\xff\xf9\xff\xf9\xf9\xf9\xf9\xc3"
-		"\xff\x9f\x9f\x93\x87\x93\x99\xff"
-		"\xff\xc7\xe7\xe7\xe7\xe7\xc3\xff"
-		"\xff\xff\x99\x80\x80\x94\x9c\xff"
-		"\xff\xff\x83\x99\x99\x99\x99\xff"
-		"\xff\xff\xc3\x99\x99\x99\xc3\xff"
-		// 0xF0
-		"\xff\xff\x83\x99\x99\x83\x9f\x9f"
-		"\xff\xff\xc1\x99\x99\xc1\xf9\xf9"
-		"\xff\xff\x83\x99\x9f\x9f\x9f\xff"
-		"\xff\xff\xc1\x9f\xc3\xf9\x83\xff"
-		"\xff\xe7\x81\xe7\xe7\xe7\xf1\xff"
-		"\xff\xff\x99\x99\x99\x99\xc1\xff"
-		"\xff\xff\x99\x99\x99\xc3\xe7\xff"
-		"\xff\xff\x9c\x94\x80\xc1\xc9\xff"
-		"\xff\xff\x99\xc3\xe7\xc3\x99\xff"
-		"\xff\xff\x99\x99\x99\xc1\xf3\x87"
-		"\xff\xff\x81\xf3\xe7\xcf\x81\xff"
-		"\xff\xe7\xc3\x81\x81\xe7\xc3\xff"
-		"\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7"
-		"\xff\x81\x87\x83\x91\x99\xf9\xff"
-		"\xf7\xe7\xc7\x87\xc7\xe7\xf7\xff"
-		"\xef\xe7\xe3\xe1\xe3\xe7\xef\xff"
-	, "Atari", CIOLIB_ATASCII}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xff\xff\x83\x83\x39\x39\x29\x29\x23\x23\x3f\x3f\x81\x81\xff\xff"
-		"\xff\xff\x83\x83\x39\x39\x21\x21\x39\x39\x39\x39\x39\x39\x7f\x7f"
-		"\xff\xff\x03\x03\x99\x99\x93\x93\x99\x99\x99\x99\x03\x03\xff\xff"
-		"\xff\xff\x83\x83\x39\x39\x3f\x3f\x3f\x3f\x39\x39\x83\x83\xf7\xf7"
-		"\xff\xff\x0f\x0f\x87\x87\x93\x93\x99\x99\x99\x99\x03\x03\xff\xff"
-		"\xff\xff\x01\x01\x9f\x9f\x83\x83\x9f\x9f\x99\x99\x03\x03\xf7\xf7"
-		"\xfb\xfb\x01\x01\x9c\x9c\x87\x87\x9f\x9f\x9f\x9f\x1f\x1f\xff\xff"
-		"\xf7\xf7\x83\x83\x39\x39\x3f\x3f\x31\x31\x39\x39\x81\x81\xfd\xfd"
-		"\xff\xff\x39\x39\x39\x39\x21\x21\x39\x39\x39\x39\x39\x39\x7f\x7f"
-		"\xff\xff\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x81\x81\xff\xff"
-		"\xfd\xfd\xf9\xf9\xf9\xf9\xf9\xf9\x19\x19\x39\x39\x03\x03\x7f\x7f"
-		"\xff\xff\x39\x39\x33\x33\x27\x27\x33\x33\x39\x39\x39\x39\x7f\x7f"
-		"\xff\xff\x1f\x1f\x9f\x9f\x9f\x9f\x9f\x9f\x99\x99\x03\x03\xf7\xf7"
-		"\xff\xff\x39\x39\x11\x11\x01\x01\x29\x29\x39\x39\x39\x39\x7f\x7f"
-		"\xff\xff\x39\x39\x29\x29\x21\x21\x31\x31\x39\x39\x39\x39\xff\xff"
-		"\xff\xff\x83\x83\x39\x39\x39\x39\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xff\xff\x03\x03\x99\x99\x99\x99\x93\x93\x9f\x9f\x1f\x1f\xff\xff"
-		"\xff\xff\x83\x83\x39\x39\x39\x39\x29\x29\x35\x35\x8b\x8b\xfd\xfd"
-		"\xff\xff\x03\x03\x99\x99\x93\x93\x99\x99\x99\x99\x19\x19\xfb\xfb"
-		"\xff\xff\x83\x83\x3f\x3f\x83\x83\xf9\xf9\x39\x39\x03\x03\x7f\x7f"
-		"\xf7\xf7\x03\x03\xc9\xc9\xcf\xcf\xcf\xcf\xcf\xcf\xcf\xcf\xdf\xdf"
-		"\x7f\x7f\x31\x31\x33\x33\x33\x33\x33\x33\x33\x33\x81\x81\xff\xff"
-		"\x7f\x7f\x39\x39\x39\x39\x93\x93\x93\x93\xc7\xc7\xef\xef\xff\xff"
-		"\x7f\x7f\x39\x39\x39\x39\x29\x29\x01\x01\x11\x11\x39\x39\xff\xff"
-		"\x3f\x3f\x39\x39\x39\x39\xa3\xa3\x39\x39\x39\x39\x39\x39\xfd\xfd"
-		"\xfd\xfd\x39\x39\x39\x39\xa3\xa3\xe7\xe7\xe7\xe7\xe7\xe7\xff\xff"
-		"\xff\xff\x01\x01\xf3\xf3\xe7\xe7\xcd\xcd\x99\x99\x81\x81\xfd\xfd"
-		"\xff\xff\x81\x81\xcf\xcf\xcf\xcf\xcf\xcf\xcf\xcf\x81\x81\xff\xff"
-		"\x3f\x3f\x9f\x9f\xcf\xcf\xe7\xe7\xf3\xf3\xf9\xf9\xfc\xfc\xfe\xfe"
-		"\xff\xff\x81\x81\xf3\xf3\xf3\xf3\xf3\xf3\xf3\xf3\x81\x81\xff\xff"
-		"\xe7\xe7\xc3\xc3\x99\x99\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x1c\x1c\x1c\x1c\x18\x18\x18\x18\x00\x00\x18\x18\x10\x10"
-		"\x66\x66\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x6c\x6c\x6c\xfe\xfe\x6c\x6c\xfe\xfe\x6c\x6c\x6c\x6c\x00\x00"
-		"\x18\x18\x7e\x7e\xc0\xc0\x7c\x7c\x06\x06\xfc\xfc\x30\x30\x00\x00"
-		"\x63\x63\xa6\xa6\xcc\xcc\x18\x18\x33\x33\x65\x65\xc6\xc6\x80\x80"
-		"\x3c\x3c\x66\x66\x64\x64\x7b\x7b\xce\xce\xc6\xc6\x7b\x7b\x00\x00"
-		"\x18\x18\x18\x18\x30\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0c\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x0c\x00\x00"
-		"\x30\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x30\x00\x00"
-		"\x00\x00\x66\x66\x3c\x3c\xff\xff\x3c\x3c\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x7e\x7e\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x03\x03\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x80\x80"
-		"\x00\x00\x7c\x7c\xce\xce\xd6\xd6\xd6\xd6\xe6\xe6\x7c\x7c\x00\x00"
-		"\x00\x00\x18\x18\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x00\x00\x7c\x7c\xc6\xc6\x8c\x8c\x38\x38\x66\x66\xfe\xfe\x00\x00"
-		"\x20\x20\x7c\x7c\xc6\xc6\x1e\x1e\x06\x06\xc6\xc6\x7c\x7c\x00\x00"
-		"\x80\x80\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06\x06\x06\x06\x06\x02\x02"
-		"\x00\x00\xfe\xfe\xc0\xc0\xfc\xfc\x06\x06\xc6\xc6\xfc\xfc\x00\x00"
-		"\x00\x00\x7c\x7c\xc0\xc0\xfc\xfc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x80\x80\xfe\xfe\xcc\xcc\x98\x98\x30\x30\x60\x60\xc0\xc0\x00\x00"
-		"\x00\x00\x7c\x7c\xc6\xc6\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x00\x00\x7c\x7c\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06\x7c\x7c\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x18\x18\x30\x30\x60\x60\xc0\xc0\x60\x60\x30\x30\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00"
-		"\x30\x30\x18\x18\x0c\x0c\x06\x06\x0c\x0c\x18\x18\x30\x30\x00\x00"
-		"\x00\x00\x3c\x3c\x66\x66\x0c\x0c\x18\x18\x00\x00\x18\x18\x10\x10"
-		"\x00\x00\x7c\x7c\xc6\xc6\xd6\xd6\xdc\xdc\xc0\xc0\x7e\x7e\x00\x00"
-		"\x00\x00\x7c\x7c\xc6\xc6\xde\xde\xc6\xc6\xc6\xc6\xc6\xc6\x80\x80"
-		"\x00\x00\xfc\xfc\x66\x66\x6c\x6c\x66\x66\x66\x66\xfc\xfc\x00\x00"
-		"\x00\x00\x7c\x7c\xc6\xc6\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x7c\x08\x08"
-		"\x00\x00\xf0\xf0\x78\x78\x6c\x6c\x66\x66\x66\x66\xfc\xfc\x00\x00"
-		"\x00\x00\xfe\xfe\x60\x60\x7c\x7c\x60\x60\x66\x66\xfc\xfc\x08\x08"
-		"\x04\x04\xfe\xfe\x63\x63\x78\x78\x60\x60\x60\x60\xe0\xe0\x00\x00"
-		"\x08\x08\x7c\x7c\xc6\xc6\xc0\xc0\xce\xce\xc6\xc6\x7e\x7f\x02\x02"
-		"\x00\x00\xc6\xc6\xc6\xc6\xde\xde\xc6\xc6\xc6\xc6\xc6\xc6\x80\x80"
-		"\x00\x00\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x02\x02\x06\x06\x06\x06\x06\x06\xe6\xe6\xc6\xc6\xfc\xfc\x80\x80"
-		"\x00\x00\xc6\xc6\xcc\xcc\xd8\xd8\xcc\xcc\xc6\xc6\xc6\xc6\x80\x80"
-		"\x00\x00\xe0\xe0\x60\x60\x60\x60\x60\x60\x66\x66\xfc\xfc\x08\x08"
-		"\x00\x00\xc6\xc6\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\x80\x80"
-		"\x00\x00\xc6\xc6\xd6\xd6\xde\xde\xce\xce\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x7c\x7c\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x00\x00\xfc\xfc\x66\x66\x66\x66\x6c\x6c\x60\x60\xe0\xe0\x00\x00"
-		"\x00\x00\x7c\x7c\xc6\xc6\xc6\xc6\xd6\xd6\xca\xca\x74\x74\x02\x02"
-		"\x00\x00\xfc\xfc\x66\x66\x6c\x6c\x66\x66\x66\x66\xe6\xe6\x04\x04"
-		"\x00\x00\x7e\x7e\xc0\xc0\x7c\x7c\x06\x06\xc6\xc6\xfc\xfc\x80\x80"
-		"\x08\x08\xfc\xfc\x36\x36\x30\x30\x30\x30\x30\x30\x30\x30\x20\x20"
-		"\x80\x80\xce\xce\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x7e\x7e\x00\x00"
-		"\x80\x80\xc6\xc6\xc6\xc6\x6c\x6c\x6c\x6c\x38\x38\x10\x10\x00\x00"
-		"\x80\x80\xc6\xc6\xc6\xc6\xd6\xd6\xfe\xfe\xee\xee\xc6\xc6\x00\x00"
-		"\x80\x80\xc6\xc6\xc6\xc6\x5c\x5c\xc6\xc6\xc6\xc6\xc6\xc6\x02\x02"
-		"\x02\x02\xc6\xc6\xc6\xc6\x5c\x5c\x18\x18\x18\x18\x18\x18\x08\x08"
-		"\x00\x00\xfe\xfe\x0c\x0c\x18\x18\x32\x32\x66\x66\xfe\xfe\x02\x02"
-		"\x00\x00\x7e\x7e\x30\x30\x30\x30\x30\x30\x30\x30\x7e\x7e\x00\x00"
-		"\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x06\x03\x03\x01\x01"
-		"\x00\x00\x7e\x7e\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x7e\x7e\x00\x00"
-		"\x18\x18\x3c\x3c\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff"
-		"\x18\x18\x18\x18\x0c\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x06\x06\x76\x76\xc6\xc6\x7e\x7e\x00\x00"
-		"\xe0\xe0\x60\x60\x6c\x6c\x66\x66\x66\x66\x66\x66\xfc\xfc\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\xc2\xc2\xc0\xc0\xc2\xc2\x7e\x7e\x00\x00"
-		"\x0e\x0e\x0c\x0c\x6c\x6c\xcc\xcc\xcc\xcc\xcc\xcc\x7e\x7e\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\xc6\xc6\xdc\xdc\xc0\xc0\x7e\x7e\x00\x00"
-		"\x1e\x1e\x30\x30\x7c\x7c\x30\x30\x30\x30\x30\x30\x30\x30\x20\x20"
-		"\x00\x00\x00\x00\x7c\x7c\xc6\xc6\xc6\xc6\x76\x76\x06\x06\xfc\xfc"
-		"\xe0\xe0\x60\x60\x6c\x6c\x66\x66\x66\x66\x66\x66\xe6\xe6\x00\x00"
-		"\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x10\x10"
-		"\x02\x02\x06\x06\x00\x00\x06\x06\x06\x06\xc6\xc6\xc6\xc6\x7c\x7c"
-		"\xe0\xe0\x60\x60\x66\x66\x6c\x6c\x78\x78\x6c\x6c\xe6\xe6\x02\x02"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x10\x10"
-		"\x00\x00\x00\x00\xfc\xfc\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\x80\x80"
-		"\x00\x00\x00\x00\xfc\xfc\x66\x66\x66\x66\x66\x66\xe6\xe6\x04\x04"
-		"\x00\x00\x00\x00\x7c\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\xfc\xfc\x66\x66\x66\x66\x6c\x6c\x60\x60\xe0\xe0"
-		"\x00\x00\x00\x00\x7e\x7e\xcc\xcc\xcc\xcc\x6c\x6c\x0c\x0c\x0e\x0e"
-		"\x00\x00\x08\x08\xfc\xfc\x66\x66\x60\x60\x60\x60\x60\x60\x40\x40"
-		"\x00\x00\x00\x00\x7e\x7e\xc0\xc0\x7c\x7c\x06\x06\xfc\xfc\x00\x00"
-		"\x30\x30\x30\x30\x7c\x7c\x30\x30\x30\x30\x30\x30\x30\x30\x20\x20"
-		"\x00\x00\x80\x80\xce\xce\xcc\xcc\xcc\xcc\xcc\xcc\x7e\x7e\x00\x00"
-		"\x00\x00\x80\x80\xc6\xc6\xc6\xc6\x6c\x6c\x6c\x6c\x38\x38\x00\x00"
-		"\x00\x00\x02\x02\xd6\xd6\xd6\xd6\xd6\xd6\xd6\xd6\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\xc6\xc6\x5c\x5c\xc6\xc6\xc6\xc6\x02\x02"
-		"\x00\x00\x80\x80\xc6\xc6\xc6\xc6\xc6\xc6\x5e\x5e\x06\x06\x7c\x7c"
-		"\x00\x00\x00\x00\xfe\xfe\x8c\x8c\x18\x18\x32\x32\xfe\xfe\x00\x00"
-		"\x1c\x1c\x30\x30\x30\x30\x60\x60\x30\x30\x30\x30\x1c\x1c\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x38\x38\x0c\x0c\x0c\x0c\x06\x06\x0c\x0c\x0c\x0c\x38\x38\x00\x00"
-		"\x76\x76\xdc\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xcc\xcc\x33\x33\xcc\xcc\x33\x33\xcc\xcc\x33\x33\xcc\xcc\x33\x33"
-		"\x9f\x9f\xe7\xe7\x83\x83\x39\x39\x21\x21\x39\x39\x39\x39\x7b\x7b"
-		"\xf3\xf3\xcf\xcf\x83\x83\x39\x39\x21\x21\x39\x39\x39\x39\x7b\x7b"
-		"\x83\x83\x39\x39\x83\x83\x39\x39\x21\x21\x39\x39\x39\x39\x7b\x7b"
-		"\x89\x89\x23\x23\x83\x83\x39\x39\x21\x21\x39\x39\x39\x39\x7b\x7b"
-		"\x39\x39\xff\xff\x83\x83\x39\x39\x21\x21\x39\x39\x39\x39\x7b\x7b"
-		"\x83\x83\x39\x39\x83\x83\x39\x39\x21\x21\x39\x39\x39\x39\x7b\x7b"
-		"\xff\xff\x80\x80\x33\x33\x20\x20\x33\x33\x33\x33\x30\x30\x77\x77"
-		"\xff\xff\x83\x83\x39\x39\x3f\x3f\x3f\x3f\x39\x39\x83\x83\xcf\xcf"
-		"\x9f\x9f\xcf\xcf\x03\x03\x9f\x9f\x83\x83\x9f\x9f\x01\x01\xff\xff"
-		"\xe7\xe7\xcf\xcf\x03\x03\x9f\x9f\x83\x83\x9f\x9f\x01\x01\xff\xff"
-		"\xcf\xcf\x33\x33\x03\x03\x9f\x9f\x83\x83\x9f\x9f\x01\x01\xff\xff"
-		"\x33\x33\xff\xff\x03\x03\x9f\x9f\x83\x83\x9f\x9f\x01\x01\xff\xff"
-		"\x3f\x3f\xcf\xcf\x03\x03\xcf\xcf\xcf\xcf\xcf\xcf\x03\x03\xff\xff"
-		"\xf3\xf3\xcf\xcf\x03\x03\xcf\xcf\xcf\xcf\xcf\xcf\x03\x03\xff\xff"
-		"\xcf\xcf\x33\x33\xff\xff\x03\x03\xcf\xcf\xcf\xcf\x03\x03\xff\xff"
-		"\x33\x33\xff\xff\x03\x03\xcf\xcf\xcf\xcf\xcf\xcf\x03\x03\xff\xff"
-		"\xff\xff\x1f\x1f\x8f\x8f\x87\x87\x13\x13\x99\x99\x03\x03\xff\xff"
-		"\x89\x89\x23\x23\x19\x19\x09\x09\x21\x21\x31\x31\x39\x39\xff\xff"
-		"\xcf\xcf\xe7\xe7\x83\x83\x39\x39\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xe7\xe7\xcf\xcf\x83\x83\x39\x39\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xcf\xcf\x33\x33\xff\xff\x87\x87\x33\x33\x33\x33\x87\x87\xff\xff"
-		"\x89\x89\x23\x23\xff\xff\x83\x83\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\x39\x39\xff\xff\x83\x83\x39\x39\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xff\xff\xff\xff\x3c\x3c\x99\x99\xe7\xe7\x99\x99\x3c\x3c\xff\xff"
-		"\xfe\xfe\x85\x85\x3b\x3b\x35\x35\x29\x29\x59\x59\xa3\xa3\x7f\x7f"
-		"\xcf\xcf\xe7\xe7\x7f\x7f\x31\x31\x33\x33\x33\x33\x81\x81\xff\xff"
-		"\xe7\xe7\xcf\xcf\x7f\x7f\x31\x31\x33\x33\x33\x33\x81\x81\xff\xff"
-		"\xcf\xcf\x33\x33\x7f\x7f\x31\x31\x33\x33\x33\x33\x81\x81\xff\xff"
-		"\xff\xff\x33\x33\x7f\x7f\x31\x31\x33\x33\x33\x33\x81\x81\xff\xff"
-		"\xf3\xf3\xe7\xe7\x3c\x3c\x99\x99\xc3\xc3\xe7\xe7\xc3\xc3\xff\xff"
-		"\x0f\x0f\x9f\x9f\x83\x83\x99\x99\x83\x83\x9f\x9f\x9f\x9f\x0f\x0f"
-		"\x83\x83\x39\x39\x39\x39\x23\x23\x39\x39\x39\x39\x23\x23\x3f\x3f"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00"
-		"\x10\x10\x18\x18\x00\x00\x18\x18\x18\x18\x1c\x1c\x1c\x1c\x00\x00"
-		"\x00\x00\x18\x18\x7e\x7e\xc0\xc0\xc0\xc0\xc0\xc0\x7e\x7e\x18\x18"
-		"\x08\x08\x3c\x3c\x66\x66\xf8\xf8\x60\x60\x66\x66\xfc\xfc\x08\x08"
-		"\xc6\xc6\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\xc6\xc6\x00\x00\x00\x00"
-		"\xc6\xc6\xc6\xc6\x6c\x6c\x38\x38\x10\x10\xfe\xfe\x10\x10\x10\x10"
-		"\x18\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x7c\x7c\xc0\xc0\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x03\x03\x3e\x3e"
-		"\x24\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7c\x7c\x82\x82\x9a\x9a\xa2\xa2\xa2\xa2\x9a\x9a\x82\x82\x7c\x7c"
-		"\x00\x00\x78\x78\xcc\xcc\xcc\xcc\xf6\xf6\x00\x00\xfe\xfe\x00\x00"
-		"\x00\x00\x12\x12\x6c\x6c\xd8\xd8\x6c\x6c\x12\x12\x00\x00\x00\x00"
-		"\xfe\xfe\x06\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x7e\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7c\x7c\x82\x82\xb2\xb2\xaa\xaa\xb2\xb2\xaa\xaa\x82\x82\x7c\x7c"
-		"\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x78\x78\xcc\xcc\x78\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x30\x30\x30\xfc\xfc\x30\x30\x30\x30\x00\x00\xfc\xfc\x00\x00"
-		"\x70\x70\xd8\xd8\x30\x30\x60\x60\xf8\xf8\x00\x00\x00\x00\x00\x00"
-		"\xf0\xf0\x18\x18\x70\x70\x18\x18\xf0\xf0\x00\x00\x00\x00\x00\x00"
-		"\x30\x30\x60\x60\xc0\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x80\x80\xc6\xc6\xc6\xc6\xc6\xc6\xff\xff\xc0\xc0"
-		"\x7e\x7e\xec\xec\xec\xec\x6c\x6c\x2c\x2c\x2c\x2c\x2e\x2e\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x30\x30"
-		"\x60\x60\xe0\xe0\x60\x60\x60\x60\xf0\xf0\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x78\x78\xcc\xcc\x78\x78\x00\x00\xfc\xfc\x00\x00\x00\x00"
-		"\x00\x00\x48\x48\x36\x36\x1b\x1b\x36\x36\x48\x48\x00\x00\x00\x00"
-		"\x63\x63\xe6\xe6\x6c\x6c\x7b\x7b\x37\x37\x6f\x6f\xc3\xc3\x00\x00"
-		"\x63\x63\xe6\xe6\x6c\x6c\x7e\x7e\x33\x33\x66\x66\xcf\xcf\x00\x00"
-		"\xc3\xc3\xe6\xe6\x6c\x6c\xdb\xdb\x37\x37\x6f\x6f\xc3\xc3\x00\x00"
-		"\x08\x08\x18\x18\x00\x00\x18\x18\x30\x30\x66\x66\x3c\x3c\x00\x00"
-		"\x60\x60\x18\x18\x7c\x7c\xc6\xc6\xde\xde\xc6\xc6\xc6\xc6\x84\x84"
-		"\x0c\x0c\x30\x30\x7c\x7c\xc6\xc6\xde\xde\xc6\xc6\xc6\xc6\x84\x84"
-		"\x7c\x7c\xc6\xc6\x7c\x7c\xc6\xc6\xde\xde\xc6\xc6\xc6\xc6\x84\x84"
-		"\x76\x76\xdc\xdc\x7c\x7c\xc6\xc6\xde\xde\xc6\xc6\xc6\xc6\x84\x84"
-		"\xc6\xc6\x00\x00\x7c\x7c\xc6\xc6\xde\xde\xc6\xc6\xc6\xc6\x84\x84"
-		"\x7c\x7c\xc6\xc6\x7c\x7c\xc6\xc6\xde\xde\xc6\xc6\xc6\xc6\x84\x84"
-		"\x00\x00\x7f\x7f\xcc\xcc\xdf\xdf\xcc\xcc\xcc\xcc\xcf\xcf\x88\x88"
-		"\x00\x00\x7c\x7c\xc6\xc6\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x7c\x30\x30"
-		"\x60\x60\x30\x30\xfc\xfc\x60\x60\x7c\x7c\x60\x60\xfe\xfe\x00\x00"
-		"\x18\x18\x30\x30\xfc\xfc\x60\x60\x7c\x7c\x60\x60\xfe\xfe\x00\x00"
-		"\x30\x30\xcc\xcc\xfc\xfc\x60\x60\x7c\x7c\x60\x60\xfe\xfe\x00\x00"
-		"\xcc\xcc\x00\x00\xfc\xfc\x60\x60\x7c\x7c\x60\x60\xfe\xfe\x00\x00"
-		"\xc0\xc0\x30\x30\xfc\xfc\x30\x30\x30\x30\x30\x30\xfc\xfc\x00\x00"
-		"\x0c\x0c\x30\x30\xfc\xfc\x30\x30\x30\x30\x30\x30\xfc\xfc\x00\x00"
-		"\x30\x30\xcc\xcc\x00\x00\xfc\xfc\x30\x30\x30\x30\xfc\xfc\x00\x00"
-		"\xcc\xcc\x00\x00\xfc\xfc\x30\x30\x30\x30\x30\x30\xfc\xfc\x00\x00"
-		"\x00\x00\xe0\xe0\x70\x70\x78\x78\xec\xec\x66\x66\xfc\xfc\x00\x00"
-		"\x76\x76\xdc\xdc\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\x00\x00"
-		"\x30\x30\x18\x18\x7c\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x30\x30\x7c\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x30\x30\xcc\xcc\x00\x00\x78\x78\xcc\xcc\xcc\xcc\x78\x78\x00\x00"
-		"\x76\x76\xdc\xdc\x00\x00\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\xc6\xc6\x00\x00\x7c\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\xc3\xc3\x66\x66\x18\x18\x66\x66\xc3\xc3\x00\x00"
-		"\x01\x01\x7a\x7a\xc4\xc4\xca\xca\xd6\xd6\xa6\xa6\x5c\x5c\x80\x80"
-		"\x30\x30\x18\x18\x80\x80\xce\xce\xcc\xcc\xcc\xcc\x7e\x7e\x00\x00"
-		"\x18\x18\x30\x30\x80\x80\xce\xce\xcc\xcc\xcc\xcc\x7e\x7e\x00\x00"
-		"\x30\x30\xcc\xcc\x80\x80\xce\xce\xcc\xcc\xcc\xcc\x7e\x7e\x00\x00"
-		"\x00\x00\xcc\xcc\x80\x80\xce\xce\xcc\xcc\xcc\xcc\x7e\x7e\x00\x00"
-		"\x0c\x0c\x18\x18\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x00\x00"
-		"\xf0\xf0\x60\x60\x7c\x7c\x66\x66\x7c\x7c\x60\x60\x60\x60\xf0\xf0"
-		"\x7c\x7c\xc6\xc6\xc6\xc6\xdc\xdc\xc6\xc6\xc6\xc6\xdc\xdc\xc0\xc0"
-		"\x30\x30\x18\x18\x7c\x7c\x06\x06\x76\x76\xc6\xc6\x7e\x7e\x00\x00"
-		"\x18\x18\x30\x30\x7c\x7c\x06\x06\x76\x76\xc6\xc6\x7e\x7e\x00\x00"
-		"\x18\x18\x66\x66\x7c\x7c\x06\x06\x76\x76\xc6\xc6\x7e\x7e\x00\x00"
-		"\x76\x76\xdc\xdc\x7c\x7c\x06\x06\x76\x76\xc6\xc6\x7e\x7e\x00\x00"
-		"\xc6\xc6\x00\x00\x7c\x7c\x06\x06\x76\x76\xc6\xc6\x7e\x7e\x00\x00"
-		"\x7c\x7c\xc6\xc6\x7c\x7c\x06\x06\x76\x76\xc6\xc6\x7e\x7e\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x1b\x1b\x7e\x7e\xc8\xc8\x7f\x7f\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\xc6\xc6\xc0\xc0\xc6\xc6\x7c\x7c\x30\x30"
-		"\x30\x30\x18\x18\x7c\x7c\xc6\xc6\xdc\xdc\xc0\xc0\x7e\x7e\x00\x00"
-		"\x18\x18\x30\x30\x7c\x7c\xc6\xc6\xdc\xdc\xc0\xc0\x7e\x7e\x00\x00"
-		"\x18\x18\x66\x66\x7c\x7c\xc6\xc6\xdc\xdc\xc0\xc0\x7e\x7e\x00\x00"
-		"\xc6\xc6\x00\x00\x7c\x7c\xc6\xc6\xdc\xdc\xc0\xc0\x7e\x7e\x00\x00"
-		"\x30\x30\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x0c\x0c\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x18\x18\x66\x66\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x00\x00\x66\x66\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x30\x30\x7e\x7e\x18\x18\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x76\x76\xdc\xdc\x00\x00\xfc\xfc\xc6\xc6\xc6\xc6\xc6\xc6\x02\x02"
-		"\x30\x30\x18\x18\x00\x00\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x30\x30\x00\x00\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x66\x66\x00\x00\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x76\x76\xdc\xdc\x00\x00\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x00\x00\x6c\x6c\x00\x00\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x7e\x7e\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x03\x03\x3e\x3e\x6e\x6e\x7e\x7e\x76\x76\x7c\x7c\xc0\xc0"
-		"\x76\x76\xdc\xdc\x80\x80\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x0c\x0c\x18\x18\x80\x80\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x18\x18\x66\x66\x80\x80\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x00\x00\xc6\xc6\x80\x80\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x0c\x0c\x18\x18\x80\x80\xc6\xc6\xc6\xc6\x6c\x6c\x38\x38\xf0\xf0"
-		"\xf0\xf0\x60\x60\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\xf0\xf0"
-		"\x00\x00\xc6\xc6\x80\x80\xc6\xc6\xc6\xc6\x6c\x6c\x38\x38\xf0\xf0"
-	, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x1c\x1c\x1c\x18\x18\x18\x00\x18\x18\x10\x00\x00\x00\x00"
-		"\x36\x36\x36\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x6c\x6c\xfe\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x00\x28\x7e\xa8\xfc\x7e\x2a\xfc\x28\x00\x00\x00\x00\x00"
-		"\x00\x01\x33\x56\x6c\x18\x36\x6a\xcc\x80\x00\x00\x00\x00"
-		"\x00\x78\xcc\xcc\x68\xd2\xcc\xcc\x7a\x00\x00\x00\x00\x00"
-		"\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x03\x0c\x18\x30\x30\x30\x30\x18\x0c\x03\x00\x00\x00\x00"
-		"\xc0\x30\x18\x0c\x0c\x0c\x0c\x18\x30\xc0\x00\x00\x00\x00"
-		"\x00\xc6\x6c\x38\xfe\x38\x6c\xc6\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x7e\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x30\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x01\x03\x06\x0c\x08\x18\x30\x20\x60\xc0\x80\x00\x00\x00"
-		"\x00\x7c\xce\xd6\xd6\xd6\xd6\xe6\x7c\x00\x00\x00\x00\x00"
-		"\x00\x18\x38\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00\x00"
-		"\x00\x3c\x66\x46\x1c\x30\x62\x66\x7e\x00\x00\x00\x00\x00"
-		"\x20\x7c\xc6\x06\x1e\x06\x06\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x40\x66\x66\x66\x3e\x06\x06\x06\x06\x02\x00\x00\x00\x00"
-		"\x00\xfe\xc0\xc0\xfc\x06\x86\xc6\xfc\x00\x00\x00\x00\x00"
-		"\x00\x7c\xc0\xc0\xfc\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x80\xfe\xc6\x8c\x8c\x18\x18\x30\x30\x00\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\x7c\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc6\x7e\x06\x06\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x00\x18\x18\x30\x00\x00\x00\x00"
-		"\x06\x0c\x18\x30\x60\xc0\x60\x30\x18\x0c\x06\x00\x00\x00"
-		"\x00\x00\x00\xff\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x60\x30\x18\x0c\x06\x03\x06\x0c\x18\x30\x60\x00\x00\x00"
-		"\x3c\x66\x46\x0c\x18\x18\x00\x18\x18\x10\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xd6\xd6\xd6\xdc\xc0\x7c\x00\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xde\xc6\xc6\xc6\xc6\x80\x00\x00\x00\x00"
-		"\x00\xfc\x66\x66\x6c\x66\x66\x66\xfc\x00\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc0\xc0\xc0\xc0\xc6\x7c\x08\x00\x00\x00\x00"
-		"\x00\xf8\x6c\x6c\x66\x66\x66\x66\xfc\x00\x00\x00\x00\x00"
-		"\x00\xfe\x60\x60\x7c\x60\x60\x66\xfc\x08\x00\x00\x00\x00"
-		"\x04\xfc\x66\x62\x78\x60\x60\x60\xe0\x00\x00\x00\x00\x00"
-		"\x02\x7e\xc6\xc2\xc0\xce\xc6\xc6\x7e\x02\x00\x00\x00\x00"
-		"\x00\xc6\xc6\xc6\xde\xc6\xc6\xc6\xc6\x80\x00\x00\x00\x00"
-		"\x00\x7e\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00\x00"
-		"\x02\x06\x06\x06\x06\xe6\xc6\xc6\xfc\x80\x00\x00\x00\x00"
-		"\x00\xc6\xc6\xcc\xd8\xcc\xc6\xc6\xc6\x80\x00\x00\x00\x00"
-		"\x00\xe0\x60\x60\x60\x62\x62\x66\xfc\x04\x00\x00\x00\x00"
-		"\x00\xc6\xc6\xee\xfe\xd6\xd6\xc6\xc6\x80\x00\x00\x00\x00"
-		"\x00\xc6\xd6\xd6\xde\xce\xce\xc6\xc6\x00\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x00\xfc\x66\x66\x66\x6c\x60\x60\xe0\x00\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xc6\xc6\xd6\xce\x7c\x02\x00\x00\x00\x00"
-		"\x00\xfc\x66\x66\x6c\x66\x66\x66\xe6\x04\x00\x00\x00\x00"
-		"\x00\x7e\xc0\xc0\x7c\x06\x86\xc6\xfc\x80\x00\x00\x00\x00"
-		"\x04\xfc\x36\x32\x30\x30\x30\x30\x30\x20\x00\x00\x00\x00"
-		"\x80\xce\xcc\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00\x00\x00"
-		"\x80\xc6\xc6\xc6\x6c\x6c\x38\x38\x10\x00\x00\x00\x00\x00"
-		"\x80\xc6\xc6\xd6\xd6\xfe\xee\xee\xc6\x00\x00\x00\x00\x00"
-		"\x80\xc6\xc6\xc6\x5c\xc6\xc6\xc6\xc6\x02\x00\x00\x00\x00"
-		"\x02\xc6\xc6\xc6\x5c\x18\x18\x18\x18\x08\x00\x00\x00\x00"
-		"\x00\xfe\x86\x0c\x18\x32\x62\xc6\xfe\x02\x00\x00\x00\x00"
-		"\x00\x7e\x30\x30\x30\x30\x30\x30\x7e\x00\x00\x00\x00\x00"
-		"\x80\xc0\x60\x30\x10\x18\x0c\x04\x06\x03\x01\x00\x00\x00"
-		"\x00\x7e\x0c\x0c\x0c\x0c\x0c\x0c\x7e\x00\x00\x00\x00\x00"
-		"\x18\x3c\x66\x42\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00"
-		"\x18\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\x06\x06\x76\xc6\xc6\x7e\x00\x00\x00\x00\x00"
-		"\xe0\x60\x6c\x66\x66\x66\x66\x66\xfc\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x0e\x0c\x6c\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xdc\xc0\xc0\x7e\x00\x00\x00\x00\x00"
-		"\x1e\x30\x7c\x30\x30\x30\x30\x30\x30\x20\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\x76\x06\x06\xfc\x00\x00\x00"
-		"\xe0\x60\x6c\x66\x66\x66\x66\x66\xe6\x04\x00\x00\x00\x00"
-		"\x18\x00\x18\x18\x18\x18\x18\x18\x18\x10\x00\x00\x00\x00"
-		"\x06\x00\x06\x06\x06\x46\x66\x66\x66\x66\x3c\x00\x00\x00"
-		"\xe0\x60\x60\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x10\x00\x00\x00\x00"
-		"\x00\x00\xfc\xd6\xd6\xd6\xd6\xd6\xd6\x80\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x66\x66\xe6\x04\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\xfc\x66\x66\x66\x66\x6c\x60\x60\xe0\x00\x00\x00"
-		"\x00\x00\x7e\xcc\xcc\xcc\xcc\x6c\x0c\x0c\x0e\x00\x00\x00"
-		"\x00\x08\xfc\x66\x60\x60\x60\x60\x60\x40\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc0\x7c\x06\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x30\x30\x7c\x30\x30\x30\x30\x30\x30\x20\x00\x00\x00\x00"
-		"\x00\x80\xce\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00\x00\x00"
-		"\x00\x80\xc6\xc6\xc6\x6c\x6c\x38\x10\x00\x00\x00\x00\x00"
-		"\x00\x02\xd6\xd6\xd6\xd6\xd6\xd6\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\x5c\xc6\xc6\xc6\x02\x00\x00\x00\x00"
-		"\x00\x80\xc6\xc6\xc6\xc6\xc6\x5e\x06\x06\x7c\x00\x00\x00"
-		"\x00\x00\xfe\x86\x0c\x38\x60\xc2\xfe\x00\x00\x00\x00\x00"
-		"\x00\x07\x1c\x30\x30\xe0\x30\x30\x1c\x07\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00"
-		"\x00\xe0\x38\x0c\x0c\x07\x0c\x0c\x38\xe0\x00\x00\x00\x00"
-		"\x00\x76\xdc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xb4\xe8\xb2\xe8\xb4\xe8\xb2\xe8\xb4\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x81\x42\x24\x18\x18\x24\x42\x81\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x10\x18\x18\x00\x18\x18\x1c\x1c\x1c\x00\x00\x00\x00\x00"
-		"\x00\x10\x7c\xd0\xd0\xd0\xd0\x7c\x10\x00\x00\x00\x00\x00"
-		"\x08\x3c\x66\x60\xf8\x60\x62\x66\xfc\x08\x00\x00\x00\x00"
-		"\x00\xc6\x7c\xc6\xc6\x7c\xc6\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\xc6\xc6\x6c\x38\x10\xfe\x10\x10\x00\x00\x00\x00\x00"
-		"\x00\x18\x18\x18\x00\x18\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x7c\xc0\x7c\xc6\xc6\xc6\x7c\x06\x7c\x00\x00\x00\x00\x00"
-		"\x00\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x7c\x82\x9a\xa2\xa2\x9a\x82\x7c\x00\x00\x00\x00\x00"
-		"\x00\x78\xcc\xcc\xcc\xf6\x00\xfe\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x36\x6c\xd8\x6c\x36\x00\x00\x00\x00\x00\x00\x00"
-		"\xff\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x7c\x82\xb2\xaa\xb2\xaa\x82\x7c\x00\x00\x00\x00\x00"
-		"\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x78\xcc\xcc\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x18\x18\x7e\x18\x18\x00\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x70\xd8\x30\x60\xf8\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\xf0\x18\x70\x18\xf0\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x30\x60\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x80\xcc\xcc\xcc\xcc\xfe\xc0\x00\x00\x00\x00"
-		"\x00\x7e\xec\xec\xec\x6c\x2c\x2c\x2e\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x30\x00\x00\x00"
-		"\x60\xe0\x60\x60\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00\x7e\x00\x00\x00\x00\x00"
-		"\x00\x00\xd8\x6c\x36\x6c\xd8\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x42\xc4\x48\x56\x2a\x4f\x82\x02\x00\x00\x00\x00\x00"
-		"\x00\x42\xc4\x48\x56\x2a\x46\x88\x0e\x00\x00\x00\x00\x00"
-		"\xc0\x22\xe4\x28\xd6\x2a\x4f\x82\x02\x00\x00\x00\x00\x00"
-		"\x08\x18\x00\x18\x18\x30\x62\x66\x3c\x00\x00\x00\x00\x00"
-		"\x60\x18\x7c\xc6\xc6\xde\xc6\xc6\xc6\x80\x00\x00\x00\x00"
-		"\x0c\x30\x7c\xc6\xc6\xde\xc6\xc6\xc6\x80\x00\x00\x00\x00"
-		"\x7c\xc6\x7c\xc6\xc6\xde\xc6\xc6\xc6\x80\x00\x00\x00\x00"
-		"\x76\xdc\x7c\xc6\xc6\xde\xc6\xc6\xc6\x80\x00\x00\x00\x00"
-		"\xc6\x00\x7c\xc6\xc6\xde\xc6\xc6\xc6\x80\x00\x00\x00\x00"
-		"\x7c\xc6\x7c\xc6\xc6\xde\xc6\xc6\xc6\x80\x00\x00\x00\x00"
-		"\x00\x7f\xcc\xcc\xde\xcc\xcc\xcc\xcf\x80\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc0\xc0\xc0\xc0\xc6\x7c\x30\x00\x00\x00\x00"
-		"\x60\x30\xfc\x60\x60\x78\x60\x60\xfe\x00\x00\x00\x00\x00"
-		"\x18\x30\xfc\x60\x60\x78\x60\x60\xfe\x00\x00\x00\x00\x00"
-		"\x20\x50\xfc\x60\x60\x78\x60\x60\xfe\x00\x00\x00\x00\x00"
-		"\xcc\x00\xfc\x60\x60\x78\x60\x60\xfe\x00\x00\x00\x00\x00"
-		"\x30\x0c\x7e\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00\x00"
-		"\x0c\x30\x7e\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00\x00"
-		"\x10\x28\x7e\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00\x00"
-		"\x66\x00\x7e\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00\x00"
-		"\x00\xf8\x6c\x6c\xf6\x66\x66\x66\xfc\x00\x00\x00\x00\x00"
-		"\x76\xdc\xc6\xe6\xf6\xde\xce\xc6\xc6\x00\x00\x00\x00\x00"
-		"\x30\x18\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x18\x30\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x10\x28\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x76\xdc\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x6c\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x00\x42\x66\x3c\x18\x3c\x66\x42\x00\x00\x00\x00\x00\x00"
-		"\x00\x7a\xc4\xca\xd6\xd6\xa6\x46\xbc\x00\x00\x00\x00\x00"
-		"\xb0\xda\xc4\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00\x00\x00"
-		"\x98\xb6\xcc\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00\x00\x00"
-		"\x90\xaa\xc4\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00\x00\x00"
-		"\xa8\xce\xcc\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00\x00\x00"
-		"\x0c\x18\xc3\x66\x3c\x18\x18\x18\x3c\x00\x00\x00\x00\x00"
-		"\x00\xf0\x60\x7c\x66\x66\x7c\x60\x60\xf0\x00\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\xdc\xc6\xc6\xc6\xdc\xc0\x00\x00\x00\x00"
-		"\x30\x18\x7c\x06\x06\x76\xc6\xc6\x7e\x00\x00\x00\x00\x00"
-		"\x18\x30\x7c\x06\x06\x76\xc6\xc6\x7e\x00\x00\x00\x00\x00"
-		"\x10\x28\x7c\x06\x06\x76\xc6\xc6\x7e\x00\x00\x00\x00\x00"
-		"\x76\xdc\x7c\x06\x06\x76\xc6\xc6\x7e\x00\x00\x00\x00\x00"
-		"\x6c\x00\x7c\x06\x06\x76\xc6\xc6\x7e\x00\x00\x00\x00\x00"
-		"\x7c\xc6\x7c\x06\x06\x76\xc6\xc6\x7e\x00\x00\x00\x00\x00"
-		"\x00\x10\x7c\x16\x16\x7c\xd0\xd0\x7c\x10\x00\x00\x00\x00"
-		"\x00\x00\x7c\xc6\xc0\xc0\xc0\xc6\x7c\x30\x00\x00\x00\x00"
-		"\x30\x18\x7c\xc6\xc6\xdc\xc0\xc0\x7e\x00\x00\x00\x00\x00"
-		"\x18\x30\x7c\xc6\xc6\xdc\xc0\xc0\x7e\x00\x00\x00\x00\x00"
-		"\x10\x28\x7c\xc6\xc6\xdc\xc0\xc0\x7e\x00\x00\x00\x00\x00"
-		"\x6c\x00\x7c\xc6\xc6\xdc\xc0\xc0\x7e\x00\x00\x00\x00\x00"
-		"\x30\x18\x00\x18\x18\x18\x18\x18\x0c\x00\x00\x00\x00\x00"
-		"\x0c\x18\x00\x18\x18\x18\x18\x18\x0c\x00\x00\x00\x00\x00"
-		"\x08\x14\x00\x18\x18\x18\x18\x18\x0c\x00\x00\x00\x00\x00"
-		"\x00\x14\x00\x18\x18\x18\x18\x18\x0c\x00\x00\x00\x00\x00"
-		"\x18\x7e\x18\x7c\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x76\xdc\xfc\x66\x66\x66\x66\x66\xe6\x02\x00\x00\x00\x00"
-		"\x30\x18\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x18\x30\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x10\x28\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x76\xdc\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x28\x00\x7c\xc6\xc6\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x10\x00\x7c\x00\x10\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x02\x7c\xce\xd6\xd6\xd6\xe6\x7c\x80\x00\x00\x00\x00"
-		"\x76\x9c\xce\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00\x00\x00"
-		"\x18\xb0\xce\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00\x00\x00"
-		"\x10\xa8\xce\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00\x00\x00"
-		"\x28\x80\xce\xcc\xcc\xcc\xcc\xcc\x7e\x00\x00\x00\x00\x00"
-		"\x18\xb0\xc6\xc6\xc6\xc6\xc6\x5e\x06\x06\xfc\x00\x00\x00"
-		"\x00\x00\xf0\x60\x7c\x66\x66\x7c\x60\xf0\x00\x00\x00\x00"
-		"\x28\x80\xc6\xc6\xc6\xc6\xc6\x5e\x06\x06\xfc\x00\x00\x00"
-	, NULL, "P0T NOoDLE (Amiga)", CIOLIB_ISO_8859_1}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x18\x18\x00\x00"
-		"\x6c\x6c\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x6c\x6c\x6c\xfe\xfe\x6c\x6c\xfe\xfe\x6c\x6c\x6c\x6c\x00\x00"
-		"\x18\x18\x3e\x3e\x60\x60\x3c\x3c\x06\x06\x7c\x7c\x18\x18\x00\x00"
-		"\x00\x00\x66\x66\xac\xac\xd8\xd8\x36\x36\x6a\x6a\xcc\xcc\x00\x00"
-		"\x38\x38\x6c\x6c\x68\x68\x76\x76\xdc\xdc\xce\xce\x7b\x7b\x00\x00"
-		"\x18\x18\x18\x18\x30\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0c\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x0c\x00\x00"
-		"\x30\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x30\x00\x00"
-		"\x00\x00\x66\x66\x3c\x3c\xff\xff\x3c\x3c\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x7e\x7e\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x03\x03\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x80\x80"
-		"\x3c\x3c\x66\x66\x6e\x6e\x7e\x7e\x76\x76\x66\x66\x3c\x3c\x00\x00"
-		"\x38\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x3c\x3c\x06\x06\x3c\x3c\x60\x60\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x7c\x7c\x06\x06\x1c\x1c\x06\x06\x06\x06\x06\x06\x7c\x7c\x00\x00"
-		"\x0c\x0c\xcc\xcc\xcc\xcc\xcc\xcc\xfe\xfe\x0c\x0c\x0c\x0c\x00\x00"
-		"\x7c\x7c\x60\x60\x7c\x7c\x06\x06\x06\x06\x06\x06\x7c\x7c\x00\x00"
-		"\x3c\x3c\x60\x60\x7c\x7c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x06\x06\x06\x06\x0c\x0c\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x3c\x3c\x66\x66\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x3e\x3e\x06\x06\x3c\x3c\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x00\x00\x06\x06\x18\x18\x60\x60\x18\x18\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x60\x18\x18\x06\x06\x18\x18\x60\x60\x00\x00\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x1c\x1c\x18\x18\x00\x00\x18\x18\x00\x00"
-		"\x7c\x7c\xc6\xc6\xde\xde\xd6\xd6\xde\xde\xc0\xc0\x78\x78\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x7c\x7c\x66\x66\x7c\x7c\x66\x66\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x1e\x1e\x30\x30\x60\x60\x60\x60\x60\x60\x30\x30\x1e\x1e\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x60\x60\x78\x78\x60\x60\x7e\x7e\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x60\x60\x6e\x6e\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x0e\x0e\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x3c\x3c\x00\x00"
-		"\xc6\xc6\xcc\xcc\xd8\xd8\xf0\xf0\xd8\xd8\xcc\xcc\xc6\xc6\x00\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\xc6\xc6\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\xc6\xc6\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\xc6\xc6\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60\x00\x00"
-		"\x78\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xdc\xdc\x7e\x7e\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x66\x66\x7c\x7c\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x60\x60\x3c\x3c\x06\x06\x06\x06\x06\x06\x7c\x7c\x00\x00"
-		"\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x3c\x3c\x18\x18\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xd6\xfe\xfe\xee\xee\xc6\xc6\x00\x00"
-		"\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x66\x66\xc3\xc3\x00\x00"
-		"\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\xfe\xfe\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\xfc\xfc\x00\x00"
-		"\x3c\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x3c\x00\x00"
-		"\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x06\x03\x03\x01\x01"
-		"\x3c\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x3c\x00\x00"
-		"\x10\x10\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff"
-		"\x18\x18\x18\x18\x0c\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x60\x60\x60\x60\x60\x60\x3c\x3c\x00\x00"
-		"\x06\x06\x06\x06\x3e\x3e\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x1c\x1c\x30\x30\x30\x30\x30\x30\x7c\x7c\x30\x30\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x3e\x3e\x66\x66\x66\x66\x3e\x3e\x06\x06\x3c\x3c"
-		"\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x0c\x0c\x00\x00\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x78\x78"
-		"\x60\x60\x60\x60\x66\x66\x6c\x6c\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x00\x00\x00\x00\xec\xec\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60"
-		"\x00\x00\x00\x00\x3e\x3e\x66\x66\x66\x66\x3e\x3e\x06\x06\x06\x06"
-		"\x00\x00\x00\x00\x3e\x3e\x60\x60\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x60\x60\x3c\x3c\x06\x06\x7c\x7c\x00\x00"
-		"\x30\x30\x30\x30\x7c\x7c\x30\x30\x30\x30\x30\x30\x1c\x1c\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xfe\xfe\x6c\x6c\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x6c\x6c\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x06\x06\x3c\x3c"
-		"\x00\x00\x00\x00\x7e\x7e\x0c\x0c\x18\x18\x30\x30\x7e\x7e\x00\x00"
-		"\x0e\x0e\x18\x18\x18\x18\x70\x70\x18\x18\x18\x18\x0e\x0e\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x70\x70\x18\x18\x18\x18\x0e\x0e\x18\x18\x18\x18\x70\x70\x00\x00"
-		"\x72\x72\x9c\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0f\x0f\x3c\x3c\xf0\xf0\xc3\xc3\x0f\x0f\x3c\x3c\xf0\xf0\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x66\x66\x66\x66\x66\x66\x66\x66\x7e\x7e\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x0c\x0c\x3e\x3e\x6c\x6c\x3e\x3e\x0c\x0c\x00\x00\x00\x00"
-		"\x1c\x1c\x36\x36\x30\x30\x78\x78\x30\x30\x30\x30\x7e\x7e\x00\x00"
-		"\x42\x42\x3c\x3c\x66\x66\x3c\x3c\x42\x42\x00\x00\x00\x00\x00\x00"
-		"\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x18\x18\x18\x18\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x3c\x3c\x60\x60\x3c\x3c\x66\x66\x3c\x3c\x06\x06\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x3c\x42\x42\x9d\x9d\xa1\xa1\xa1\xa1\x9d\x9d\x42\x42\x3c\x3c"
-		"\x1c\x1c\x24\x24\x44\x44\x3c\x3c\x00\x00\x7e\x7e\x00\x00\x00\x00"
-		"\x00\x00\x33\x33\x66\x66\xcc\xcc\x66\x66\x33\x33\x00\x00\x00\x00"
-		"\x3e\x3e\x06\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x3c\x42\x42\xb9\xb9\xa5\xa5\xb9\xb9\xa5\xa5\x42\x42\x3c\x3c"
-		"\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x3c\x66\x66\x3c\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x7e\x7e\x18\x18\x18\x18\x00\x00\x7e\x7e\x00\x00"
-		"\x78\x78\x0c\x0c\x18\x18\x30\x30\x7c\x7c\x00\x00\x00\x00\x00\x00"
-		"\x78\x78\x0c\x0c\x18\x18\x0c\x0c\x78\x78\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x30\x30\x60\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x7f\x7f\x60\x60"
-		"\x3e\x3e\x7a\x7a\x7a\x7a\x3a\x3a\x0a\x0a\x0a\x0a\x0a\x0a\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x30\x30"
-		"\x30\x30\x70\x70\x30\x30\x30\x30\x30\x30\x00\x00\x00\x00\x00\x00"
-		"\x38\x38\x44\x44\x44\x44\x38\x38\x00\x00\x7c\x7c\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\x66\x66\x33\x33\x66\x66\xcc\xcc\x00\x00\x00\x00"
-		"\x40\x40\xc6\xc6\x4c\x4c\x58\x58\x32\x32\x66\x66\xcf\xcf\x02\x02"
-		"\x40\x40\xc6\xc6\x4c\x4c\x58\x58\x3e\x3e\x62\x62\xc4\xc4\x0e\x0e"
-		"\xc0\xc0\x23\x23\x66\x66\x2c\x2c\xd9\xd9\x33\x33\x67\x67\x01\x01"
-		"\x18\x18\x00\x00\x18\x18\x30\x30\x60\x60\x66\x66\x3c\x3c\x00\x00"
-		"\x30\x30\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x71\x71\x8e\x8e\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x66\x66\x00\x00\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x18\x18\x24\x24\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x1f\x1f\x3c\x3c\x3c\x3c\x6f\x6f\x7c\x7c\xcc\xcc\xcf\xcf\x00\x00"
-		"\x1e\x1e\x30\x30\x60\x60\x60\x60\x30\x30\x1e\x1e\x0c\x0c\x18\x18"
-		"\x30\x30\x18\x18\x7e\x7e\x60\x60\x78\x78\x60\x60\x7e\x7e\x00\x00"
-		"\x0c\x0c\x18\x18\x7e\x7e\x60\x60\x78\x78\x60\x60\x7e\x7e\x00\x00"
-		"\x18\x18\x66\x66\x7e\x7e\x60\x60\x78\x78\x60\x60\x7e\x7e\x00\x00"
-		"\x66\x66\x00\x00\x7e\x7e\x60\x60\x78\x78\x60\x60\x7e\x7e\x00\x00"
-		"\x30\x30\x18\x18\x3c\x3c\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x66\x66\x00\x00\x3c\x3c\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x78\x78\x6c\x6c\x66\x66\xf6\xf6\x66\x66\x6c\x6c\x78\x78\x00\x00"
-		"\x71\x71\xce\xce\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\x00\x00"
-		"\x30\x30\x18\x18\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x71\x71\x8e\x8e\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\xc3\xc3\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x3f\x3f\x66\x66\x6e\x6e\x7e\x7e\x76\x76\x66\x66\xfc\xfc\x00\x00"
-		"\x30\x30\x18\x18\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x24\x24\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x06\x06\x08\x08\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x18\x18\x00\x00"
-		"\xc0\xc0\xc0\xc0\xfc\xfc\xc6\xc6\xfc\xfc\xc0\xc0\xc0\xc0\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x6c\x6c\x66\x66\x66\x66\x6c\x6c\x60\x60"
-		"\x30\x30\x18\x18\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x71\x71\x8e\x8e\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x66\x66\x00\x00\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x18\x18\x24\x24\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x1b\x1b\x7f\x7f\xd8\xd8\x77\x77\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x60\x60\x60\x60\x60\x60\x3c\x3c\x18\x18"
-		"\x30\x30\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x66\x66\x00\x00\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x30\x30\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x0c\x0c\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x18\x18\x66\x66\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x00\x00\x66\x66\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x60\x60\xfc\xfc\x18\x18\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x71\x71\x8e\x8e\x00\x00\x7c\x7c\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x30\x30\x18\x18\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x66\x66\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x71\x71\x8e\x8e\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x66\x66\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\xff\xff\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x02\x02\x7c\x7c\xce\xce\xd6\xd6\xe6\xe6\x7c\x7c\x80\x80"
-		"\x30\x30\x18\x18\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x0c\x0c\x18\x18\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x18\x18\x66\x66\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x66\x66\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x0c\x0c\x18\x18\x00\x00\x66\x66\x66\x66\x3c\x3c\x18\x18\x30\x30"
-		"\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60"
-		"\x00\x00\x66\x66\x00\x00\x66\x66\x66\x66\x3c\x3c\x18\x18\x30\x30"
-	, NULL
-	, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x00\x18\x00"
-		"\x6c\x6c\x00\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x18\x3e\x60\x3c\x06\x7c\x18\x00"
-		"\x00\x66\xac\xd8\x36\x6a\xcc\x00"
-		"\x38\x6c\x68\x76\xdc\xce\x7b\x00"
-		"\x18\x18\x30\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x30\x30\x18\x0c\x00"
-		"\x30\x18\x0c\x0c\x0c\x18\x30\x00"
-		"\x00\x66\x3c\xff\x3c\x66\x00\x00"
-		"\x00\x18\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x30"
-		"\x00\x00\x00\xff\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00"
-		"\x03\x06\x0c\x18\x30\x60\xc0\x80"
-		"\x3c\x66\x6e\x7e\x76\x66\x3c\x00"
-		"\x38\x18\x18\x18\x18\x18\x18\x00"
-		"\x3c\x06\x3c\x60\x60\x60\x7e\x00"
-		"\x7c\x06\x1c\x06\x06\x06\x7c\x00"
-		"\x0c\xcc\xcc\xcc\xfe\x0c\x0c\x00"
-		"\x7c\x60\x7c\x06\x06\x06\x7c\x00"
-		"\x3c\x60\x7c\x66\x66\x66\x3c\x00"
-		"\x7e\x06\x06\x0c\x18\x18\x18\x00"
-		"\x3c\x66\x3c\x66\x66\x66\x3c\x00"
-		"\x3c\x66\x66\x66\x3e\x06\x3c\x00"
-		"\x00\x18\x18\x00\x00\x18\x18\x00"
-		"\x00\x18\x18\x00\x00\x18\x18\x30"
-		"\x00\x06\x18\x60\x18\x06\x00\x00"
-		"\x00\x00\xff\x00\xff\x00\x00\x00"
-		"\x00\x60\x18\x06\x18\x60\x00\x00"
-		"\x3c\x66\x06\x1c\x18\x00\x18\x00"
-		"\x7c\xc6\xde\xd6\xde\xc0\x78\x00"
-		"\x3c\x66\x66\x66\x7e\x66\x66\x00"
-		"\x7c\x66\x7c\x66\x66\x66\x7c\x00"
-		"\x1e\x30\x60\x60\x60\x30\x1e\x00"
-		"\x7c\x66\x66\x66\x66\x66\x7c\x00"
-		"\x7e\x60\x60\x60\x78\x60\x7e\x00"
-		"\x7e\x60\x60\x60\x78\x60\x60\x00"
-		"\x3c\x60\x6e\x66\x66\x66\x3e\x00"
-		"\x66\x66\x66\x66\x7e\x66\x66\x00"
-		"\x3c\x18\x18\x18\x18\x18\x3c\x00"
-		"\x0e\x06\x06\x06\x06\x06\x3c\x00"
-		"\xc6\xcc\xd8\xf0\xd8\xcc\xc6\x00"
-		"\x60\x60\x60\x60\x60\x60\x7e\x00"
-		"\xc6\xee\xfe\xd6\xc6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x3c\x66\x66\x66\x66\x66\x3c\x00"
-		"\x7c\x66\x66\x66\x7c\x60\x60\x00"
-		"\x78\xcc\xcc\xcc\xcc\xdc\x7e\x00"
-		"\x7c\x66\x66\x66\x7c\x66\x66\x00"
-		"\x3c\x60\x3c\x06\x06\x06\x7c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\x66\x66\x66\x66\x66\x66\x3c\x00"
-		"\x66\x66\x66\x66\x3c\x3c\x18\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc3\x66\x3c\x18\x3c\x66\xc3\x00"
-		"\xc3\x66\x3c\x18\x18\x18\x18\x00"
-		"\xfe\x0c\x18\x30\x60\xc0\xfc\x00"
-		"\x3c\x30\x30\x30\x30\x30\x3c\x00"
-		"\xc0\x60\x30\x18\x0c\x06\x03\x01"
-		"\x3c\x0c\x0c\x0c\x0c\x0c\x3c\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xff"
-		"\x18\x18\x0c\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x06\x3e\x66\x3e\x00"
-		"\x60\x60\x7c\x66\x66\x66\x7c\x00"
-		"\x00\x00\x3c\x60\x60\x60\x3c\x00"
-		"\x06\x06\x3e\x66\x66\x66\x3e\x00"
-		"\x00\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x1c\x30\x30\x30\x7c\x30\x30\x00"
-		"\x00\x00\x3e\x66\x66\x3e\x06\x3c"
-		"\x60\x60\x7c\x66\x66\x66\x66\x00"
-		"\x18\x00\x18\x18\x18\x18\x0c\x00"
-		"\x0c\x00\x0c\x0c\x0c\x0c\x0c\x78"
-		"\x60\x60\x66\x6c\x78\x6c\x66\x00"
-		"\x18\x18\x18\x18\x18\x18\x0c\x00"
-		"\x00\x00\xec\xfe\xd6\xc6\xc6\x00"
-		"\x00\x00\x7c\x66\x66\x66\x66\x00"
-		"\x00\x00\x3c\x66\x66\x66\x3c\x00"
-		"\x00\x00\x7c\x66\x66\x7c\x60\x60"
-		"\x00\x00\x3e\x66\x66\x3e\x06\x06"
-		"\x00\x00\x3e\x60\x60\x60\x60\x00"
-		"\x00\x00\x3c\x60\x3c\x06\x7c\x00"
-		"\x30\x30\x7c\x30\x30\x30\x1c\x00"
-		"\x00\x00\x66\x66\x66\x66\x3c\x00"
-		"\x00\x00\x66\x66\x66\x3c\x18\x00"
-		"\x00\x00\xc6\xc6\xd6\xfe\x6c\x00"
-		"\x00\x00\xc6\x6c\x38\x6c\xc6\x00"
-		"\x00\x00\x66\x66\x66\x3e\x06\x3c"
-		"\x00\x00\x7e\x0c\x18\x30\x7e\x00"
-		"\x0e\x18\x18\x70\x18\x18\x0e\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x70\x18\x18\x0e\x18\x18\x70\x00"
-		"\x72\x9c\x00\x00\x00\x00\x00\x00"
-		"\x0f\x3c\xf0\xc3\x0f\x3c\xf0\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x7e\x66\x66\x66\x66\x7e\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x00\x18\x18\x18\x18\x18\x00"
-		"\x00\x0c\x3e\x6c\x3e\x0c\x00\x00"
-		"\x1c\x36\x30\x78\x30\x30\x7e\x00"
-		"\x42\x3c\x66\x3c\x42\x00\x00\x00"
-		"\xc3\x66\x3c\x18\x3c\x18\x18\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\x3c\x60\x3c\x66\x3c\x06\x3c\x00"
-		"\x66\x66\x00\x00\x00\x00\x00\x00"
-		"\x3c\x42\x9d\xa1\xa1\x9d\x42\x3c"
-		"\x1c\x24\x44\x3c\x00\x7e\x00\x00"
-		"\x00\x33\x66\xcc\x66\x33\x00\x00"
-		"\x3e\x06\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\xff\x00\x00\x00\x00"
-		"\x3c\x42\xb9\xa5\xb9\xa5\x42\x3c"
-		"\xff\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x66\x3c\x00\x00\x00\x00\x00"
-		"\x18\x18\x7e\x18\x18\x00\x7e\x00"
-		"\x78\x0c\x18\x30\x7c\x00\x00\x00"
-		"\x78\x0c\x18\x0c\x78\x00\x00\x00"
-		"\x18\x30\x60\x00\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x7f\x60"
-		"\x3e\x7a\x7a\x3a\x0a\x0a\x0a\x00"
-		"\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x30"
-		"\x30\x70\x30\x30\x30\x00\x00\x00"
-		"\x38\x44\x44\x38\x00\x7c\x00\x00"
-		"\x00\xcc\x66\x33\x66\xcc\x00\x00"
-		"\x40\xc6\x4c\x58\x32\x66\xcf\x02"
-		"\x40\xc6\x4c\x58\x3e\x62\xc4\x0e"
-		"\xc0\x23\x66\x2c\xd9\x33\x67\x01"
-		"\x18\x00\x18\x30\x60\x66\x3c\x00"
-		"\x30\x18\x3c\x66\x7e\x66\x66\x00"
-		"\x0c\x18\x3c\x66\x7e\x66\x66\x00"
-		"\x18\x66\x3c\x66\x7e\x66\x66\x00"
-		"\x71\x8e\x3c\x66\x7e\x66\x66\x00"
-		"\x66\x00\x3c\x66\x7e\x66\x66\x00"
-		"\x18\x24\x3c\x66\x7e\x66\x66\x00"
-		"\x1f\x3c\x3c\x6f\x7c\xcc\xcf\x00"
-		"\x1e\x30\x60\x60\x30\x1e\x0c\x18"
-		"\x30\x18\x7e\x60\x78\x60\x7e\x00"
-		"\x0c\x18\x7e\x60\x78\x60\x7e\x00"
-		"\x18\x66\x7e\x60\x78\x60\x7e\x00"
-		"\x66\x00\x7e\x60\x78\x60\x7e\x00"
-		"\x30\x18\x3c\x18\x18\x18\x3c\x00"
-		"\x0c\x18\x3c\x18\x18\x18\x3c\x00"
-		"\x18\x66\x3c\x18\x18\x18\x3c\x00"
-		"\x66\x00\x3c\x18\x18\x18\x3c\x00"
-		"\x78\x6c\x66\xf6\x66\x6c\x78\x00"
-		"\x71\xce\xe6\xf6\xde\xce\xc6\x00"
-		"\x30\x18\x3c\x66\x66\x66\x3c\x00"
-		"\x0c\x18\x3c\x66\x66\x66\x3c\x00"
-		"\x18\x66\x3c\x66\x66\x66\x3c\x00"
-		"\x71\x8e\x3c\x66\x66\x66\x3c\x00"
-		"\xc3\x3c\x66\x66\x66\x66\x3c\x00"
-		"\x00\xc6\x6c\x38\x6c\xc6\x00\x00"
-		"\x3f\x66\x6e\x7e\x76\x66\xfc\x00"
-		"\x30\x18\x66\x66\x66\x66\x3c\x00"
-		"\x0c\x18\x66\x66\x66\x66\x3c\x00"
-		"\x18\x24\x66\x66\x66\x66\x3c\x00"
-		"\x66\x00\x66\x66\x66\x66\x3c\x00"
-		"\x06\x08\xc3\x66\x3c\x18\x18\x00"
-		"\xc0\xc0\xfc\xc6\xfc\xc0\xc0\x00"
-		"\x3c\x66\x66\x6c\x66\x66\x6c\x60"
-		"\x30\x18\x3c\x06\x3e\x66\x3e\x00"
-		"\x0c\x18\x3c\x06\x3e\x66\x3e\x00"
-		"\x18\x66\x3c\x06\x3e\x66\x3e\x00"
-		"\x71\x8e\x3c\x06\x3e\x66\x3e\x00"
-		"\x66\x00\x3c\x06\x3e\x66\x3e\x00"
-		"\x18\x24\x3c\x06\x3e\x66\x3e\x00"
-		"\x00\x00\x7e\x1b\x7f\xd8\x77\x00"
-		"\x00\x00\x3c\x60\x60\x60\x3c\x18"
-		"\x30\x18\x3c\x66\x7e\x60\x3c\x00"
-		"\x0c\x18\x3c\x66\x7e\x60\x3c\x00"
-		"\x18\x66\x3c\x66\x7e\x60\x3c\x00"
-		"\x66\x00\x3c\x66\x7e\x60\x3c\x00"
-		"\x30\x18\x00\x18\x18\x18\x0c\x00"
-		"\x0c\x18\x00\x18\x18\x18\x0c\x00"
-		"\x18\x66\x00\x18\x18\x18\x0c\x00"
-		"\x00\x66\x00\x18\x18\x18\x0c\x00"
-		"\x60\xfc\x18\x3c\x66\x66\x3c\x00"
-		"\x71\x8e\x00\x7c\x66\x66\x66\x00"
-		"\x30\x18\x00\x3c\x66\x66\x3c\x00"
-		"\x0c\x18\x00\x3c\x66\x66\x3c\x00"
-		"\x18\x66\x00\x3c\x66\x66\x3c\x00"
-		"\x71\x8e\x00\x3c\x66\x66\x3c\x00"
-		"\x00\x66\x00\x3c\x66\x66\x3c\x00"
-		"\x00\x18\x00\xff\x00\x18\x00\x00"
-		"\x00\x02\x7c\xce\xd6\xe6\x7c\x80"
-		"\x30\x18\x00\x66\x66\x66\x3e\x00"
-		"\x0c\x18\x00\x66\x66\x66\x3e\x00"
-		"\x18\x66\x00\x66\x66\x66\x3e\x00"
-		"\x00\x66\x00\x66\x66\x66\x3e\x00"
-		"\x0c\x18\x00\x66\x66\x3c\x18\x30"
-		"\xc0\xc0\xf8\xcc\xcc\xf8\xc0\xc0"
-		"\x00\x66\x00\x66\x66\x3c\x18\x30"
-	, "mO'sOul (Amiga)", CIOLIB_ISO_8859_1}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x18\x18\x00\x00"
-		"\x6c\x6c\x6c\x6c\x24\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x6c\x6c\x6c\xfe\xfe\x6c\x6c\xfe\xfe\x6c\x6c\x6c\x6c\x00\x00"
-		"\x10\x10\x7c\x7c\xd0\xd0\x7c\x7c\x16\x16\x16\x16\x7c\x7c\x10\x10"
-		"\x60\x60\x96\x96\x6c\x6c\x18\x18\x30\x30\x6c\x6c\xd2\xd2\x0c\x0c"
-		"\x70\x70\xd8\xd8\x70\x70\xf6\xf6\xdc\xdc\xd8\xd8\x7c\x7c\x06\x06"
-		"\x18\x18\x18\x18\x30\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x03\x07\x0e\x0c\x18\x18\x18\x18\x18\x18\x0c\x0e\x07\x03\x00\x00"
-		"\xc0\xe0\x70\x30\x18\x18\x18\x18\x18\x18\x30\x70\xe0\xc0\x00\x00"
-		"\x00\x00\x6c\x6c\x38\x38\xfe\xfe\x38\x38\x6c\x6c\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x7e\x7e\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x03\x03\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x80\x80"
-		"\x00\x00\x78\x78\xcc\xcc\xde\xde\xf6\xf6\xe6\xe6\x7c\x7c\x00\x00"
-		"\x18\x18\x18\x18\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x7c\x7c\x06\x06\x3c\x3c\x60\x60\xc0\xc0\xc0\xc0\xfe\xfe\x00\x00"
-		"\x3c\x3c\x06\x06\x1c\x1c\x06\x06\x46\x46\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x18\x18\x30\x30\x6c\x6c\xcc\xcc\xfe\xfe\x0c\x0c\x00\x00"
-		"\xf8\xf8\xc0\xc0\xfc\xfc\x06\x06\x46\x46\xcc\xcc\x78\x78\x00\x00"
-		"\x70\x70\xc0\xc0\xfc\xfc\xc6\xc6\xc6\xc6\xcc\xcc\x78\x78\x00\x00"
-		"\xfe\xfe\x06\x06\x0c\x0c\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x78\x78\xcc\xcc\x7c\x7c\xc6\xc6\xc6\xc6\xcc\xcc\x78\x78\x00\x00"
-		"\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06\x1c\x1c\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x03\x03\x06\x06\x0c\x0c\x18\x18\x0c\x0c\x06\x06\x03\x03\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00"
-		"\xc0\xc0\x60\x60\x30\x30\x18\x18\x30\x30\x60\x60\xc0\xc0\x00\x00"
-		"\x7c\x7c\xc6\xc6\x06\x06\x3c\x3c\x30\x30\x00\x00\x30\x30\x00\x00"
-		"\x7c\x7c\xc6\xc6\xde\xde\xd6\xd6\xde\xde\xc0\xc0\x7e\x7e\x00\x00"
-		"\x78\x78\xcc\xcc\xc6\xc6\xfe\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\xf8\xf8\xcc\xcc\xfc\xfc\xc6\xc6\xc6\xc6\xcc\xcc\xf8\xf8\x00\x00"
-		"\x78\x78\xcc\xcc\xc0\xc0\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x7c\x00\x00"
-		"\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\xfc\x00\x00"
-		"\xfe\xfe\xc0\xc0\xfc\xfc\xc0\xc0\xc0\xc0\xc0\xc0\xfe\xfe\x00\x00"
-		"\xfe\xfe\xc0\xc0\xfc\xfc\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00"
-		"\x38\x38\x60\x60\xc0\xc0\xce\xce\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\xfe\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x0e\x0e\x06\x06\x06\x06\x06\x06\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\xc6\xc6\xcc\xcc\xd8\xd8\xf0\xf0\xd8\xd8\xcc\xcc\xc6\xc6\x00\x00"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xfe\xfe\x00\x00"
-		"\xc6\xc6\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\xc6\xc6\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\xc6\xc6\x00\x00"
-		"\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xfc\xfc\xc0\xc0\xc0\xc0\x00\x00"
-		"\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xd6\x7c\x7c\x0c\x0c"
-		"\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xfc\xfc\xd8\xd8\xcc\xcc\x06\x06"
-		"\x78\x78\xc0\xc0\x7c\x7c\x06\x06\x46\x46\xc6\xc6\x7c\x7c\x00\x00"
-		"\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x6c\x6c\x6c\x38\x38\x38\x38\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xd6\xfe\xfe\xee\xee\xc6\xc6\x00\x00"
-		"\xc6\xc6\x6c\x6c\x38\x38\x38\x38\x6c\x6c\xc6\xc6\xc6\xc6\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x0c\x0c\x0c\x0c\x0c\x0c\x00\x00"
-		"\xfe\xfe\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\xfe\xfe\x00\x00"
-		"\x3c\x3f\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3f\x3c\x00\x00"
-		"\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x06\x03\x03\x01\x01"
-		"\x3c\xfc\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xfc\x3c\x00\x00"
-		"\x10\x10\x38\x38\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff"
-		"\x18\x18\x18\x18\x0c\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x3c\x06\x06\x7e\x7e\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\xc0\xc0\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xfc\xfc\x00\x00"
-		"\x00\x00\x78\x78\xcc\xcc\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x7c\x00\x00"
-		"\x06\x06\x3e\x3e\x66\x66\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x00\x00\x78\x78\xcc\xcc\xfc\xfc\xc0\xc0\xc6\xc6\x7c\x7c\x00\x00"
-		"\x38\x38\x6c\x6c\x60\x60\x78\x78\x60\x60\x60\x60\x60\x60\x60\x60"
-		"\x00\x00\x7e\x7e\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06\x7c\x7c"
-		"\xc0\xc0\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x18\x18\x00\x00\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x0c\x0c\x00\x00\x1c\x1c\x0c\x0c\x0c\x0c\x0c\x0c\x4c\x4c\x38\x38"
-		"\xc0\xc0\xcc\xcc\xd8\xd8\xf0\xf0\xd8\xd8\xcc\xcc\xc6\xc6\x00\x00"
-		"\x38\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x00\x00\xc4\xc4\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x00\x00\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xfc\xfc\xc0\xc0"
-		"\x00\x00\x3e\x3e\x66\x66\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06"
-		"\x00\x00\xfc\xfc\xc6\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00"
-		"\x00\x00\x78\x78\xc0\xc0\x7c\x7c\x06\x06\xc6\xc6\x7c\x7c\x00\x00"
-		"\x30\x30\x7c\x7c\x30\x30\x30\x30\x30\x30\x32\x32\x1c\x1c\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\x6c\x6c\x6c\x6c\x38\x38\x38\x38\x00\x00"
-		"\x00\x00\xc6\xc6\xd6\xd6\xfe\xfe\x7c\x7c\x6c\x6c\x44\x44\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x38\x38\x6c\x6c\xc6\xc6\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06\x7c\x7c"
-		"\x00\x00\xfe\xfe\x0c\x0c\x18\x18\x30\x30\x60\x60\xfe\xfe\x00\x00"
-		"\x0e\x0f\x19\x18\x18\x18\x70\x70\x18\x18\x18\x19\x0f\x0e\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x70\xf0\x98\x18\x18\x18\x0e\x0e\x18\x18\x18\x98\xf0\x70\x00\x00"
-		"\x72\x72\x9c\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x38\x38\x70\x70\xe0\xe0\xc1\xc1\x83\x83\x07\x07\x0e\x0e\x1c\x1c"
-		"\xcf\xcf\xf7\xf7\x87\x87\x33\x33\x01\x01\x39\x39\x39\x39\xff\xff"
-		"\xe7\xe7\xdf\xdf\x87\x87\x33\x33\x01\x01\x39\x39\x39\x39\xff\xff"
-		"\xcf\xcf\x33\x33\x87\x87\x33\x33\x01\x01\x39\x39\x39\x39\xff\xff"
-		"\x8d\x8d\x63\x63\x87\x87\x33\x33\x01\x01\x39\x39\x39\x39\xff\xff"
-		"\x93\x93\xff\xff\x87\x87\x33\x33\x01\x01\x39\x39\x39\x39\xff\xff"
-		"\x87\x87\x33\x33\x87\x87\x33\x33\x01\x01\x39\x39\x39\x39\xff\xff"
-		"\xc0\xc0\x93\x93\x30\x30\x03\x03\x33\x33\x33\x33\x30\x30\xff\xff"
-		"\x87\x87\x33\x33\x3f\x3f\x3f\x3f\x3f\x3f\x33\x33\x87\x87\xcf\xcf"
-		"\xcf\xcf\xf7\xf7\x01\x01\x3f\x3f\x03\x03\x3f\x3f\x01\x01\xff\xff"
-		"\xe7\xe7\xdf\xdf\x01\x01\x3f\x3f\x03\x03\x3f\x3f\x01\x01\xff\xff"
-		"\xe7\xe7\x99\x99\x01\x01\x3f\x3f\x03\x03\x3f\x3f\x01\x01\xff\xff"
-		"\x93\x93\xff\xff\x01\x01\x3f\x3f\x03\x03\x3f\x3f\x01\x01\xff\xff"
-		"\xcf\xcf\xf7\xf7\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\x81\x81\xff\xff"
-		"\xe7\xe7\xdf\xdf\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\x81\x81\xff\xff"
-		"\xe7\xe7\x99\x99\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\x81\x81\xff\xff"
-		"\x93\x93\xff\xff\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\x81\x81\xff\xff"
-		"\x07\x07\x33\x33\x39\x39\x19\x19\x39\x39\x39\x39\x03\x03\xff\xff"
-		"\x8d\x8d\x63\x63\x19\x19\x09\x09\x21\x21\x31\x31\x39\x39\xff\xff"
-		"\xcf\xcf\xf7\xf7\x87\x87\x33\x33\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xe7\xe7\xdf\xdf\x87\x87\x33\x33\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xcf\xcf\x33\x33\x87\x87\x33\x33\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\x8d\x8d\x63\x63\x87\x87\x33\x33\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\x93\x93\xff\xff\x87\x87\x33\x33\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xff\xff\x83\x83\x29\x29\x00\x00\x24\x24\x38\x38\x81\x81\xff\xff"
-		"\x87\x87\x33\x33\x21\x21\x09\x09\x19\x19\x39\x39\x83\x83\xff\xff"
-		"\xcf\xcf\xf7\xf7\x39\x39\x39\x39\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xe7\xe7\xdf\xdf\x39\x39\x39\x39\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xe7\xe7\x99\x99\x39\x39\x39\x39\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\x93\x93\xff\xff\x39\x39\x39\x39\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xe7\xe7\xdf\xdf\x39\x39\x39\x39\x83\x83\xf3\xf3\xf3\xf3\xff\xff"
-		"\x3f\x3f\x07\x07\x33\x33\x39\x39\x03\x03\x3f\x3f\x3f\x3f\x3f\x3f"
-		"\xff\xff\x87\x87\x33\x33\x23\x23\x39\x39\x39\x39\x23\x23\x3f\x3f"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x30\x30\x78\x78\xcc\xcc\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x7c\x30\x30"
-		"\x38\x38\x6c\x6c\x60\x60\xf8\xf8\x60\x60\x60\x60\xfe\xfe\x00\x00"
-		"\x00\x00\xc6\xc6\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\xc6\xc6\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x0c\x0c\x3e\x3e\x0c\x0c\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18"
-		"\x78\x78\xc0\xc0\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\x06\x06\x3c\x3c"
-		"\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x3c\x42\x42\x99\x99\xa1\xa1\xa1\xa1\x99\x99\x42\x42\x3c\x3c"
-		"\x00\x00\x7e\x7e\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00\x7c\x7c\x00\x00"
-		"\x00\x00\x36\x36\x6c\x6c\xd8\xd8\x6c\x6c\x36\x36\x00\x00\x00\x00"
-		"\xfe\x7f\x03\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x3c\x42\x42\xb9\xb9\xa5\xa5\xb9\xb9\xa5\xa5\x42\x42\x3c\x3c"
-		"\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x7c\x7c\x10\x10\x00\x00\x7c\x7c\x00\x00\x00\x00"
-		"\x70\x70\x18\x18\x30\x30\x60\x60\x78\x78\x00\x00\x00\x00\x00\x00"
-		"\x70\x70\x18\x18\x30\x30\x18\x18\x70\x70\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x30\x30\x60\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\xfc\xc0\xc0"
-		"\x00\x00\x7e\x7e\xf4\xf4\x74\x74\x14\x14\x14\x14\x14\x14\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x30\x30"
-		"\x30\x30\x70\x70\x30\x30\x30\x30\x78\x78\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00\x7c\x7c\x00\x00"
-		"\x00\x00\xd8\xd8\x6c\x6c\x36\x36\x6c\x6c\xd8\xd8\x00\x00\x00\x00"
-		"\x63\x63\xe6\xe6\x6c\x6c\x7b\x7b\x37\x35\x6d\x6f\xc3\xc3\x80\x80"
-		"\x63\x63\xe6\xe6\x6c\x6c\x7e\x7f\x33\x36\x66\x6f\xcf\xc0\x80\x80"
-		"\xc0\xc0\x66\xc6\x6c\x6c\xdb\xdb\x37\x35\x6d\x6f\xc3\xc3\x00\x00"
-		"\x30\x30\x00\x00\x30\x30\x3c\x3c\x06\x06\xc6\xc6\x7c\x7c\x00\x00"
-		"\x30\x30\x08\x08\x78\x78\xcc\xcc\xfe\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x18\x18\x20\x20\x78\x78\xcc\xcc\xfe\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x30\x30\xcc\xcc\x78\x78\xcc\xcc\xfe\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x72\x72\x9c\x9c\x78\x78\xcc\xcc\xfe\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x6c\x6c\x00\x00\x78\x78\xcc\xcc\xfe\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x78\x78\xcc\xcc\x78\x78\xcc\xcc\xfe\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x3f\x3f\x6c\x6c\xcf\xcf\xfc\xfc\xcc\xcc\xcc\xcc\xcf\xcf\x00\x00"
-		"\x78\x78\xcc\xcc\xc0\xc0\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x7c\x30\x30"
-		"\x30\x30\x08\x08\xfe\xfe\xc0\xc0\xfc\xfc\xc0\xc0\xfe\xfe\x00\x00"
-		"\x18\x18\x20\x20\xfe\xfe\xc0\xc0\xfc\xfc\xc0\xc0\xfe\xfe\x00\x00"
-		"\x18\x18\x66\x66\xfe\xfe\xc0\xc0\xfc\xfc\xc0\xc0\xfe\xfe\x00\x00"
-		"\x6c\x6c\x00\x00\xfe\xfe\xc0\xc0\xfc\xfc\xc0\xc0\xfe\xfe\x00\x00"
-		"\x30\x30\x08\x08\x7e\x7e\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x18\x18\x20\x20\x7e\x7e\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x18\x18\x66\x66\x7e\x7e\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x6c\x6c\x00\x00\x7e\x7e\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\xf8\xf8\xcc\xcc\xc6\xc6\xe6\xe6\xc6\xc6\xc6\xc6\xfc\xfc\x00\x00"
-		"\x72\x72\x9c\x9c\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\x00\x00"
-		"\x30\x30\x08\x08\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x20\x20\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x30\x30\xcc\xcc\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x72\x72\x9c\x9c\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x6c\x6c\x00\x00\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x00\x00\x7c\x7c\xd6\xd6\xff\xff\xdb\xdb\xc7\xc7\x7e\x7e\x00\x00"
-		"\x78\x78\xcc\xcc\xde\xde\xf6\xf6\xe6\xe6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x30\x30\x08\x08\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x20\x20\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x66\x66\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x6c\x6c\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x20\x20\xc6\xc6\xc6\xc6\x7c\x7c\x0c\x0c\x0c\x0c\x00\x00"
-		"\xc0\xc0\xf8\xf8\xcc\xcc\xc6\xc6\xfc\xfc\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\x00\x00\x78\x78\xcc\xcc\xdc\xdc\xc6\xc6\xc6\xc6\xdc\xdc\xc0\xc0"
-		"\x30\x30\x08\x08\x3c\x3c\x06\x06\x7e\x7e\xc6\xc6\x7e\x7e\x00\x00"
-		"\x18\x18\x20\x20\x3c\x3c\x06\x06\x7e\x7e\xc6\xc6\x7e\x7e\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x06\x06\x7e\x7e\xc6\xc6\x7e\x7e\x00\x00"
-		"\x72\x72\x9c\x9c\x3c\x3c\x06\x06\x7e\x7e\xc6\xc6\x7e\x7e\x00\x00"
-		"\x6c\x6c\x00\x00\x3c\x3c\x06\x06\x7e\x7e\xc6\xc6\x7e\x7e\x00\x00"
-		"\x3c\x3c\x66\x66\x3c\x3c\x06\x06\x7e\x7e\xc6\xc6\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x1b\x1b\x7f\x7f\xd8\xd8\xd8\xd8\x7f\x7f\x00\x00"
-		"\x00\x00\x78\x78\xcc\xcc\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x7c\x30\x30"
-		"\x30\x30\x08\x08\x78\x78\xfc\xfc\xc0\xc0\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x20\x20\x78\x78\xfc\xfc\xc0\xc0\xc6\xc6\x7c\x7c\x00\x00"
-		"\x30\x30\xcc\xcc\x78\x78\xfc\xfc\xc0\xc0\xc6\xc6\x7c\x7c\x00\x00"
-		"\x6c\x6c\x00\x00\x78\x78\xfc\xfc\xc0\xc0\xc6\xc6\x7c\x7c\x00\x00"
-		"\x30\x30\x08\x08\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x18\x18\x20\x20\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x18\x18\x66\x66\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x6c\x6c\x00\x00\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x0c\x0c\x16\x16\x3e\x3e\x66\x66\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x72\x72\x9c\x9c\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x30\x30\x08\x08\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x20\x20\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x66\x66\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x72\x72\x9c\x9c\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x6c\x6c\x00\x00\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x7f\xfe\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x78\x78\xcc\xcc\xde\xde\xf6\xf6\xe6\xe6\x7c\x7c\x00\x00"
-		"\x30\x30\x08\x08\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x18\x18\x20\x20\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x18\x18\x66\x66\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x6c\x6c\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x18\x18\x20\x20\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06\x7c\x7c"
-		"\xc0\xc0\xc0\xc0\xf8\xf8\xcc\xcc\xc6\xc6\xfc\xfc\xc0\xc0\xc0\xc0"
-		"\x6c\x6c\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06\x7c\x7c"
-	, NULL, NULL , "MicroKnight Plus (Amiga)", CIOLIB_ISO_8859_1}
-	,{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x83\x83\x39\x39\x21\x21\x29\x29\x21\x21\x3f\x3f\x87\x87\xff\xff"
-		"\xc3\xc3\x99\x99\x99\x99\x81\x81\x99\x99\x99\x99\x99\x99\xff\xff"
-		"\x83\x83\x99\x99\x99\x99\x83\x83\x99\x99\x99\x99\x83\x83\xff\xff"
-		"\xe1\xe1\xcf\xcf\x9f\x9f\x9f\x9f\x9f\x9f\xcf\xcf\xe1\xe1\xff\xff"
-		"\x87\x87\x93\x93\x99\x99\x99\x99\x99\x99\x93\x93\x87\x87\xff\xff"
-		"\x81\x81\x9f\x9f\x9f\x9f\x87\x87\x9f\x9f\x9f\x9f\x81\x81\xff\xff"
-		"\x81\x81\x9f\x9f\x9f\x9f\x87\x87\x9f\x9f\x9f\x9f\x9f\x9f\xff\xff"
-		"\xc3\xc3\x99\x99\x9f\x9f\x91\x91\x99\x99\x99\x99\xc1\xc1\xff\xff"
-		"\x99\x99\x99\x99\x99\x99\x81\x81\x99\x99\x99\x99\x99\x99\xff\xff"
-		"\xc3\xc3\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xc3\xc3\xff\xff"
-		"\xf9\xf9\xf9\xf9\xf9\xf9\xf9\xf9\xf9\xf9\x99\x99\xc3\xc3\xff\xff"
-		"\x9c\x9c\x99\x99\x93\x93\x87\x87\x93\x93\x99\x99\x9c\x9c\xff\xff"
-		"\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x81\x81\xff\xff"
-		"\x9c\x9c\x88\x88\x80\x80\x94\x94\x9c\x9c\x9c\x9c\x9c\x9c\xff\xff"
-		"\x9c\x9c\x8c\x8c\x84\x84\x90\x90\x98\x98\x9c\x9c\x9c\x9c\xff\xff"
-		"\xc3\xc3\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\x83\x83\x99\x99\x99\x99\x83\x83\x9f\x9f\x9f\x9f\x9f\x9f\xff\xff"
-		"\xc3\xc3\x99\x99\x99\x99\x99\x99\x99\x99\x91\x91\xc0\xc0\xff\xff"
-		"\x83\x83\x99\x99\x99\x99\x83\x83\x93\x93\x99\x99\x99\x99\xff\xff"
-		"\xc3\xc3\x99\x99\x8f\x8f\xc3\xc3\xf1\xf1\x99\x99\xc3\xc3\xff\xff"
-		"\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xff\xff"
-		"\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\x99\x99\x99\x99\x99\x99\x99\x99\x99\x81\xc3\xc3\xe7\xe7\xff\xff"
-		"\x9c\x9c\x9c\x9c\x9c\x9c\x94\x94\x80\x80\x88\x88\x9c\x9c\xff\xff"
-		"\x3c\x3c\x99\x99\xc3\xc3\xe7\xe7\xc3\xc3\x99\x99\x3c\x3c\xff\xff"
-		"\x3c\x3c\x99\x99\xc3\xc3\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xff\xff"
-		"\x80\x80\xf9\xf9\xf3\xf3\xe7\xe7\xcf\xcf\x9f\x9f\x80\x80\xff\xff"
-		"\xc3\xc0\xcf\xcf\xcf\xcf\xcf\xcf\xcf\xcf\xcf\xcf\xc0\xc3\xff\xff"
-		"\x3f\x3f\x9f\x9f\xcf\xcf\xe7\xe7\xf3\xf3\xf9\xf9\xfc\xfc\xfe\xfe"
-		"\xc3\x03\xf3\xf3\xf3\xf3\xf3\xf3\xf3\xf3\xf3\xf3\x03\xc3\xff\xff"
-		"\xf7\xf7\xe3\xe3\xc9\xc9\x9c\x9c\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x18\x18\x00\x00"
-		"\x6c\x6c\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x6c\x6c\x6c\xfe\xfe\x6c\x6c\xfe\xfe\x6c\x6c\x6c\x6c\x00\x00"
-		"\x18\x18\x3e\x3e\x60\x60\x3c\x3c\x06\x06\x7c\x7c\x18\x18\x00\x00"
-		"\x03\x03\x66\x66\xac\xac\xd8\xd8\x36\x36\x6a\x6a\xcc\xcc\x00\x00"
-		"\x38\x38\x6c\x6c\x68\x68\x76\x76\xdc\xdc\xce\xce\x7b\x7b\x00\x00"
-		"\x18\x18\x18\x18\x30\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x03\x07\x0e\x0c\x18\x18\x18\x18\x18\x18\x0c\x0e\x07\x03\x00\x00"
-		"\xc0\xe0\x70\x30\x18\x18\x18\x18\x18\x18\x30\x70\xe0\xc0\x00\x00"
-		"\x00\x00\x66\x66\x3c\x3c\xff\xff\x3c\x3c\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x7e\x7e\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x03\x03\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x80\x80"
-		"\x3c\x3c\x66\x66\x6e\x6e\x7e\x7e\x76\x76\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x38\x38\x78\x78\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x0c\x0c\x18\x18\x30\x30\x7e\x7e\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x1c\x1c\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x1c\x1c\x3c\x3c\x6c\x6c\xcc\xcc\xfe\xfe\x0c\x0c\x0c\x0c\x00\x00"
-		"\x7e\x7e\x60\x60\x7c\x7c\x06\x06\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x1c\x1c\x30\x30\x60\x60\x7c\x7c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x06\x06\x06\x06\x0c\x0c\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x3e\x3e\x06\x06\x0c\x0c\x38\x38\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x03\x03\x06\x06\x0c\x0c\x18\x18\x0c\x0c\x06\x06\x03\x03\x00\x00"
-		"\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00"
-		"\xc0\xc0\x60\x60\x30\x30\x18\x18\x30\x30\x60\x60\xc0\xc0\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x0c\x0c\x18\x18\x00\x00\x18\x18\x00\x00"
-		"\x7c\x7c\xc6\xc6\xde\xde\xd6\xd6\xde\xde\xc0\xc0\x78\x78\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x1e\x1e\x30\x30\x60\x60\x60\x60\x60\x60\x30\x30\x1e\x1e\x00\x00"
-		"\x78\x78\x6c\x6c\x66\x66\x66\x66\x66\x66\x6c\x6c\x78\x78\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x6e\x6e\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\xc6\xc6\xcc\xcc\xd8\xd8\xf0\xf0\xd8\xd8\xcc\xcc\xc6\xc6\x00\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\xc6\xc6\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\xc6\xc6\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\xc6\xc6\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x78\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xdc\xdc\x7e\x7e\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x6c\x6c\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x66\x66\x70\x70\x3c\x3c\x0e\x0e\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x3c\x3c\x18\x18\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xd6\xfe\xfe\xee\xee\xc6\xc6\x00\x00"
-		"\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x66\x66\xc3\xc3\x00\x00"
-		"\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\xfe\xfe\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\xfe\xfe\x00\x00"
-		"\x3c\x3f\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3f\x3c\x00\x00"
-		"\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x06\x03\x03\x01\x01"
-		"\x3c\xfc\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\xfc\x3c\x00\x00"
-		"\x10\x10\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff"
-		"\x18\x18\x18\x18\x0c\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x60\x60\x60\x60\x60\x60\x3c\x3c\x00\x00"
-		"\x06\x06\x06\x06\x3e\x3e\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x1c\x1c\x30\x30\x7c\x7c\x30\x30\x30\x30\x30\x30\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x3e\x3e\x66\x66\x66\x66\x3e\x3e\x06\x06\x3c\x3c"
-		"\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x0c\x0c\x00\x00\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x78\x78"
-		"\x60\x60\x60\x60\x66\x66\x6c\x6c\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x00\x00\x00\x00\xec\xec\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60"
-		"\x00\x00\x00\x00\x3e\x3e\x66\x66\x66\x66\x3e\x3e\x06\x06\x06\x06"
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x60\x60\x3c\x3c\x06\x06\x7c\x7c\x00\x00"
-		"\x30\x30\x30\x30\x7c\x7c\x30\x30\x30\x30\x30\x30\x1c\x1c\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xfe\xfe\x6c\x6c\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x6c\x6c\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x30\x30"
-		"\x00\x00\x00\x00\x7e\x7e\x0c\x0c\x18\x18\x30\x30\x7e\x7e\x00\x00"
-		"\x0e\x0f\x19\x18\x18\x18\x70\x70\x18\x18\x18\x19\x0f\x0e\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x70\xf0\x98\x18\x18\x18\x0e\x0e\x18\x18\x18\x98\xf0\x70\x00\x00"
-		"\x72\x72\x9c\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0f\x0f\x3c\x3c\xf0\xf0\xc3\xc3\x0f\x0f\x3c\x3c\xf0\xf0\x00\x00"
-		"\xcf\xcf\xe7\xe7\xc3\xc3\x99\x99\x81\x81\x99\x99\x99\x99\xff\xff"
-		"\xf3\xf3\xe7\xe7\xc3\xc3\x99\x99\x81\x81\x99\x99\x99\x99\xff\xff"
-		"\xe7\xe7\x99\x99\xc3\xc3\x99\x99\x81\x81\x99\x99\x99\x99\xff\xff"
-		"\x8e\x8e\x71\x71\xc3\xc3\x99\x99\x81\x81\x99\x99\x99\x99\xff\xff"
-		"\x99\x99\xff\xff\xc3\xc3\x99\x99\x81\x81\x99\x99\x99\x99\xff\xff"
-		"\xe7\xe7\xdb\xdb\xc3\xc3\x99\x99\x81\x81\x99\x99\x99\x99\xff\xff"
-		"\xe0\xe0\xc3\xc3\xc3\xc3\x90\x90\x83\x83\x33\x33\x30\x30\xff\xff"
-		"\xe1\xe1\xcf\xcf\x9f\x9f\x9f\x9f\xcf\xcf\xe1\xe1\xf3\xf3\xe7\xe7"
-		"\xcf\xcf\xe7\xe7\x81\x81\x9f\x9f\x87\x87\x9f\x9f\x81\x81\xff\xff"
-		"\xf3\xf3\xe7\xe7\x81\x81\x9f\x9f\x87\x87\x9f\x9f\x81\x81\xff\xff"
-		"\xe7\xe7\x99\x99\x81\x81\x9f\x9f\x87\x87\x9f\x9f\x81\x81\xff\xff"
-		"\x99\x99\xff\xff\x81\x81\x9f\x9f\x87\x87\x9f\x9f\x81\x81\xff\xff"
-		"\xcf\xcf\xe7\xe7\xc3\xc3\xe7\xe7\xe7\xe7\xe7\xe7\xc3\xc3\xff\xff"
-		"\xf3\xf3\xe7\xe7\xc3\xc3\xe7\xe7\xe7\xe7\xe7\xe7\xc3\xc3\xff\xff"
-		"\xe7\xe7\x99\x99\xc3\xc3\xe7\xe7\xe7\xe7\xe7\xe7\xc3\xc3\xff\xff"
-		"\x99\x99\xff\xff\xc3\xc3\xe7\xe7\xe7\xe7\xe7\xe7\xc3\xc3\xff\xff"
-		"\x87\x87\x93\x93\x99\x99\x09\x09\x99\x99\x93\x93\x87\x87\xff\xff"
-		"\x8e\x8e\x31\x31\x19\x19\x09\x09\x21\x21\x31\x31\x39\x39\xff\xff"
-		"\xcf\xcf\xe7\xe7\xc3\xc3\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\xf3\xf3\xe7\xe7\xc3\xc3\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\xe7\xe7\x99\x99\xc3\xc3\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\x8e\x8e\x71\x71\xc3\xc3\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\x3c\x3c\xc3\xc3\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\xff\xff\x39\x39\x93\x93\xc7\xc7\x93\x93\x39\x39\xff\xff\xff\xff"
-		"\xc0\xc0\x99\x99\x91\x91\x81\x81\x89\x89\x99\x99\x03\x03\xff\xff"
-		"\xcf\xcf\xe7\xe7\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\xf3\xf3\xe7\xe7\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\xe7\xe7\xdb\xdb\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\x99\x99\xff\xff\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\xf9\xf9\xf7\xf7\x3c\x3c\x99\x99\xc3\xc3\xe7\xe7\xe7\xe7\xff\xff"
-		"\x3f\x3f\x3f\x3f\x03\x03\x39\x39\x03\x03\x3f\x3f\x3f\x3f\xff\xff"
-		"\xc3\xc3\x99\x99\x99\x99\x93\x93\x99\x99\x99\x99\x93\x93\x9f\x9f"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00"
-		"\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x0c\x0c\x3e\x3e\x6c\x6c\x3e\x3e\x0c\x0c\x00\x00\x00\x00"
-		"\x1c\x1c\x36\x36\x30\x30\x78\x78\x30\x30\x30\x30\x7e\x7e\x00\x00"
-		"\x42\x42\x3c\x3c\x66\x66\x3c\x3c\x42\x42\x00\x00\x00\x00\x00\x00"
-		"\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x18\x18\x18\x18\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x3c\x3c\x60\x60\x3c\x3c\x66\x66\x3c\x3c\x06\x06\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x7e\x81\x81\x9d\x9d\xb1\xb1\x9d\x9d\x81\x81\x7e\x7e\x00\x00"
-		"\x1c\x1c\x24\x24\x44\x44\x3c\x3c\x00\x00\x7e\x7e\x00\x00\x00\x00"
-		"\x00\x00\x33\x33\x66\x66\xcc\xcc\x66\x66\x33\x33\x00\x00\x00\x00"
-		"\xfe\x7f\x03\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x7e\x81\x81\xb9\xb9\xa5\xa5\xb9\xb9\xa5\xa5\x81\x81\x7e\x7e"
-		"\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x3c\x66\x66\x3c\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x7e\x7e\x18\x18\x18\x18\x00\x00\x7e\x7e\x00\x00"
-		"\x78\x78\x0c\x0c\x18\x18\x30\x30\x7c\x7c\x00\x00\x00\x00\x00\x00"
-		"\x78\x78\x0c\x0c\x18\x18\x0c\x0c\x78\x78\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x30\x30\x60\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x7f\x7f\x60\x60"
-		"\x3e\x3e\x7a\x7a\x7a\x7a\x3a\x3a\x0a\x0a\x0a\x0a\x0a\x0a\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x30\x30"
-		"\x30\x30\x70\x70\x30\x30\x30\x30\x30\x30\x00\x00\x00\x00\x00\x00"
-		"\x38\x38\x44\x44\x44\x44\x38\x38\x00\x00\x7c\x7c\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\x66\x66\x33\x33\x66\x66\xcc\xcc\x00\x00\x00\x00"
-		"\x40\x40\xc6\xc6\x4c\x4c\x58\x58\x30\x32\x62\x66\xc6\xcf\x02\x02"
-		"\x40\x40\xc6\xc6\x4c\x4c\x58\x58\x3e\x3e\x62\x62\xc4\xc4\x0e\x0e"
-		"\xc0\xc0\x23\x23\x66\x66\x2c\x2c\xd8\x1a\x32\x36\x66\x6f\xc2\xc2"
-		"\x18\x18\x00\x00\x18\x18\x30\x30\x60\x60\x66\x66\x3c\x3c\x00\x00"
-		"\x30\x30\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x71\x71\x8e\x8e\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x66\x66\x00\x00\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x18\x18\x24\x24\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x1f\x1f\x3c\x3c\x3c\x3c\x6f\x6f\x7c\x7c\xcc\xcc\xcf\xcf\x00\x00"
-		"\x1e\x1e\x30\x30\x60\x60\x60\x60\x30\x30\x1e\x1e\x0c\x0c\x18\x18"
-		"\x30\x30\x18\x18\x7e\x7e\x60\x60\x78\x78\x60\x60\x7e\x7e\x00\x00"
-		"\x0c\x0c\x18\x18\x7e\x7e\x60\x60\x78\x78\x60\x60\x7e\x7e\x00\x00"
-		"\x18\x18\x66\x66\x7e\x7e\x60\x60\x78\x78\x60\x60\x7e\x7e\x00\x00"
-		"\x66\x66\x00\x00\x7e\x7e\x60\x60\x78\x78\x60\x60\x7e\x7e\x00\x00"
-		"\x30\x30\x18\x18\x3c\x3c\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x66\x66\x00\x00\x3c\x3c\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x78\x78\x6c\x6c\x66\x66\xf6\xf6\x66\x66\x6c\x6c\x78\x78\x00\x00"
-		"\x71\x71\xce\xce\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\x00\x00"
-		"\x30\x30\x18\x18\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x71\x71\x8e\x8e\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\xc3\xc3\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x3f\x3f\x66\x66\x6e\x6e\x7e\x7e\x76\x76\x66\x66\xfc\xfc\x00\x00"
-		"\x30\x30\x18\x18\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x24\x24\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x06\x06\x08\x08\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x18\x18\x00\x00"
-		"\xc0\xc0\xc0\xc0\xfc\xfc\xc6\xc6\xfc\xfc\xc0\xc0\xc0\xc0\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x6c\x6c\x66\x66\x66\x66\x6c\x6c\x60\x60"
-		"\x30\x30\x18\x18\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x71\x71\x8e\x8e\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x66\x66\x00\x00\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x18\x18\x24\x24\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x1b\x1b\x7f\x7f\xd8\xd8\x77\x77\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x60\x60\x60\x60\x60\x60\x3c\x3c\x18\x18"
-		"\x30\x30\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x66\x66\x00\x00\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x30\x30\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x0c\x0c\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x18\x18\x66\x66\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x00\x00\x66\x66\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x60\x60\xfc\xfc\x18\x18\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x71\x71\x8e\x8e\x00\x00\x7c\x7c\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x30\x30\x18\x18\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x66\x66\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x71\x71\x8e\x8e\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x66\x66\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x7e\x7e\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x02\x02\x7c\x7c\xce\xce\xd6\xd6\xe6\xe6\x7c\x7c\x80\x80"
-		"\x30\x30\x18\x18\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x0c\x0c\x18\x18\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x18\x18\x66\x66\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x66\x66\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x0c\x0c\x18\x18\x00\x00\x66\x66\x66\x66\x3c\x3c\x18\x18\x30\x30"
-		"\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60"
-		"\x00\x00\x66\x66\x00\x00\x66\x66\x66\x66\x3c\x3c\x18\x18\x30\x30"
-	, NULL, NULL, "Topaz Plus (Amiga)", CIOLIB_ISO_8859_1}
-	,{ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x18\x18\x00\x00"
-		"\x6c\x6c\x6c\x6c\x24\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x6c\x6c\x6c\xfe\xfe\x6c\x6c\xfe\xfe\x6c\x6c\x6c\x6c\x00\x00"
-		"\x10\x10\x7c\x7c\xd0\xd0\x7c\x7c\x16\x16\x16\x16\x7c\x7c\x10\x10"
-		"\x60\x60\x96\x96\x7c\x7c\x18\x18\x30\x30\x6c\x6c\xd2\xd2\x0c\x0c"
-		"\x70\x70\xd8\xd8\x70\x70\xf6\xf6\xdc\xdc\xd8\xd8\x7c\x7c\x06\x06"
-		"\x18\x18\x18\x18\x30\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x30\x30\x60\x60\x60\x60\x60\x60\x30\x30\x18\x18\x00\x00"
-		"\x30\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x30\x00\x00"
-		"\x00\x00\x6c\x6c\x38\x38\xfe\xfe\x38\x38\x6c\x6c\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x7e\x7e\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x00\x00\x00\x00\x00\x00\x7f\x7f\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x03\x03\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x80\x80"
-		"\x00\x00\x78\x78\xcc\xcc\xde\xde\xf6\xf6\xe6\xe6\x7c\x7c\x00\x00"
-		"\x18\x18\x18\x18\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x7c\x7c\x06\x06\x3c\x3c\x60\x60\xc0\xc0\xc0\xc0\xfe\xfe\x00\x00"
-		"\x3c\x3c\x06\x06\x1c\x1c\x06\x06\x46\x46\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x18\x18\x30\x30\x6c\x6c\xcc\xcc\xfe\xfe\x0c\x0c\x00\x00"
-		"\xf8\xf8\xc0\xc0\xfc\xfc\x06\x06\x46\x46\xcc\xcc\x78\x78\x00\x00"
-		"\x70\x70\xc0\xc0\xfc\xfc\xc6\xc6\xc6\xc6\xcc\xcc\x78\x78\x00\x00"
-		"\xfe\xfe\x06\x06\x0c\x0c\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x78\x78\xcc\xcc\x7c\x7c\xc6\xc6\xc6\xc6\xcc\xcc\x78\x78\x00\x00"
-		"\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06\x1c\x1c\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x00\x00\x18\x18\x30\x30\x60\x60\x30\x30\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00"
-		"\x00\x00\x30\x30\x18\x18\x0c\x0c\x18\x18\x30\x30\x00\x00\x00\x00"
-		"\x7c\x7c\xc6\xc6\x06\x06\x3c\x3c\x30\x30\x00\x00\x30\x30\x00\x00"
-		"\x7c\x7c\xc6\xc6\xde\xde\xd6\xd6\xde\xde\xc0\xc0\x7e\x7e\x00\x00"
-		"\x78\x78\xcc\xcc\xc6\xc6\xfe\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\xf8\xf8\xcc\xcc\xfc\xfc\xc6\xc6\xc6\xc6\xcc\xcc\xf8\xf8\x00\x00"
-		"\x78\x78\xcc\xcc\xc0\xc0\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x7c\x00\x00"
-		"\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\xfc\x00\x00"
-		"\xfe\xfe\xc0\xc0\xfc\xfc\xc0\xc0\xc0\xc0\xc0\xc0\xfe\xfe\x00\x00"
-		"\xfe\xfe\xc0\xc0\xfc\xfc\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00"
-		"\x38\x38\x60\x60\xc0\xc0\xce\xce\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\xfe\xfe\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x0e\x0e\x06\x06\x06\x06\x06\x06\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\xc6\xc6\xcc\xcc\xd8\xd8\xf0\xf0\xd8\xd8\xcc\xcc\xc6\xc6\x00\x00"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xfe\xfe\x00\x00"
-		"\xc6\xc6\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\xc6\xc6\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\xc6\xc6\x00\x00"
-		"\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xfc\xfc\xc0\xc0\xc0\xc0\x00\x00"
-		"\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xd6\x7c\x7c\x0c\x0c"
-		"\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xfc\xfc\xd8\xd8\xcc\xcc\x06\x06"
-		"\x78\x78\xc0\xc0\x7c\x7c\x06\x06\x46\x46\xc6\xc6\x7c\x7c\x00\x00"
-		"\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\x6c\x6c\x6c\x6c\x38\x38\x38\x38\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xd6\xfe\xfe\xee\xee\xc6\xc6\x00\x00"
-		"\xc6\xc6\x6c\x6c\x38\x38\x38\x38\x6c\x6c\xc6\xc6\xc6\xc6\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x0c\x0c\x0c\x0c\x0c\x0c\x00\x00"
-		"\xfe\xfe\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\xfe\xfe\x00\x00"
-		"\x38\x38\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x38\x38\x00\x00"
-		"\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x06\x03\x03\x01\x01"
-		"\x38\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x38\x38\x00\x00"
-		"\x10\x10\x38\x38\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff"
-		"\x18\x18\x18\x18\x0c\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x3c\x3c\x06\x06\x7e\x7e\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\xc0\xc0\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xfc\xfc\x00\x00"
-		"\x00\x00\x78\x78\xcc\xcc\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x7c\x00\x00"
-		"\x06\x06\x3e\x3e\x66\x66\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x00\x00\x78\x78\xcc\xcc\xfc\xfc\xc0\xc0\xc6\xc6\x7c\x7c\x00\x00"
-		"\x38\x38\x6c\x6c\x60\x60\x78\x78\x60\x60\x60\x60\x60\x60\x60\x60"
-		"\x00\x00\x7e\x7e\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06\x7c\x7c"
-		"\xc0\xc0\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x18\x18\x00\x00\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x0c\x0c\x00\x00\x1c\x1c\x0c\x0c\x0c\x0c\x0c\x0c\x4c\x4c\x38\x38"
-		"\xc0\xc0\xcc\xcc\xd8\xd8\xf0\xf0\xd8\xd8\xcc\xcc\xc6\xc6\x00\x00"
-		"\x38\x38\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x00\x00\xc4\xc4\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x00\x00\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\xfc\xfc\xc0\xc0"
-		"\x00\x00\x3e\x3e\x66\x66\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06"
-		"\x00\x00\xfc\xfc\xc6\xc6\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00"
-		"\x00\x00\x78\x78\xc0\xc0\x7c\x7c\x06\x06\xc6\xc6\x7c\x7c\x00\x00"
-		"\x30\x30\x7c\x7c\x30\x30\x30\x30\x30\x30\x32\x32\x1c\x1c\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\x6c\x6c\x6c\x6c\x38\x38\x38\x38\x00\x00"
-		"\x00\x00\xc6\xc6\xd6\xd6\xfe\xfe\x7c\x7c\x6c\x6c\x44\x44\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x38\x38\x6c\x6c\xc6\xc6\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06\x7c\x7c"
-		"\x00\x00\xfe\xfe\x0c\x0c\x18\x18\x30\x30\x60\x60\xfe\xfe\x00\x00"
-		"\x0c\x0c\x18\x18\x18\x18\x30\x30\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x30\x30\x18\x18\x18\x18\x0c\x0c\x18\x18\x18\x18\x30\x30\x00\x00"
-		"\x72\x72\x9c\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x38\x38\x70\x70\xe0\xe0\xc1\xc1\x83\x83\x07\x07\x0e\x0e\x1c\x1c"
-		"\xcf\xcf\xf7\xf7\x87\x87\x33\x33\x01\x01\x39\x39\x39\x39\xff\xff"
-		"\xe7\xe7\xdf\xdf\x87\x87\x33\x33\x01\x01\x39\x39\x39\x39\xff\xff"
-		"\xcf\xcf\x33\x33\x87\x87\x33\x33\x01\x01\x39\x39\x39\x39\xff\xff"
-		"\x8d\x8d\x63\x63\x87\x87\x33\x33\x01\x01\x39\x39\x39\x39\xff\xff"
-		"\x93\x93\xff\xff\x87\x87\x33\x33\x01\x01\x39\x39\x39\x39\xff\xff"
-		"\x87\x87\x33\x33\x87\x87\x33\x33\x01\x01\x39\x39\x39\x39\xff\xff"
-		"\xc0\xc0\x93\x93\x30\x30\x03\x03\x33\x33\x33\x33\x30\x30\xff\xff"
-		"\x87\x87\x33\x33\x3f\x3f\x3f\x3f\x3f\x3f\x33\x33\x87\x87\xcf\xcf"
-		"\xcf\xcf\xf7\xf7\x01\x01\x3f\x3f\x03\x03\x3f\x3f\x01\x01\xff\xff"
-		"\xe7\xe7\xdf\xdf\x01\x01\x3f\x3f\x03\x03\x3f\x3f\x01\x01\xff\xff"
-		"\xe7\xe7\x99\x99\x01\x01\x3f\x3f\x03\x03\x3f\x3f\x01\x01\xff\xff"
-		"\x93\x93\xff\xff\x01\x01\x3f\x3f\x03\x03\x3f\x3f\x01\x01\xff\xff"
-		"\xcf\xcf\xf7\xf7\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\x81\x81\xff\xff"
-		"\xe7\xe7\xdf\xdf\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\x81\x81\xff\xff"
-		"\xe7\xe7\x99\x99\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\x81\x81\xff\xff"
-		"\x93\x93\xff\xff\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\x81\x81\xff\xff"
-		"\x07\x07\x33\x33\x39\x39\x19\x19\x39\x39\x39\x39\x03\x03\xff\xff"
-		"\x8d\x8d\x63\x63\x19\x19\x09\x09\x21\x21\x31\x31\x39\x39\xff\xff"
-		"\xcf\xcf\xf7\xf7\x87\x87\x33\x33\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xe7\xe7\xdf\xdf\x87\x87\x33\x33\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xcf\xcf\x33\x33\x87\x87\x33\x33\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\x8d\x8d\x63\x63\x87\x87\x33\x33\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\x93\x93\xff\xff\x87\x87\x33\x33\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xff\xff\x83\x83\x29\x29\x00\x00\x24\x24\x38\x38\x81\x81\xff\xff"
-		"\x87\x87\x33\x33\x21\x21\x09\x09\x19\x19\x39\x39\x83\x83\xff\xff"
-		"\xcf\xcf\xf7\xf7\x39\x39\x39\x39\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xe7\xe7\xdf\xdf\x39\x39\x39\x39\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xe7\xe7\x99\x99\x39\x39\x39\x39\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\x93\x93\xff\xff\x39\x39\x39\x39\x39\x39\x39\x39\x83\x83\xff\xff"
-		"\xe7\xe7\xdf\xdf\x39\x39\x39\x39\x83\x83\xf3\xf3\xf3\xf3\xff\xff"
-		"\x3f\x3f\x07\x07\x33\x33\x39\x39\x03\x03\x3f\x3f\x3f\x3f\x3f\x3f"
-		"\xff\xff\x87\x87\x33\x33\x23\x23\x39\x39\x39\x39\x23\x23\x3f\x3f"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x30\x30\x78\x78\xcc\xcc\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x7c\x30\x30"
-		"\x38\x38\x6c\x6c\x60\x60\xf8\xf8\x60\x60\x60\x60\xfe\xfe\x00\x00"
-		"\x00\x00\xc6\xc6\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\xc6\xc6\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x0c\x0c\x3e\x3e\x0c\x0c\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x78\x78\xc0\xc0\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\x06\x06\x3c\x3c"
-		"\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x3c\x42\x42\x99\x99\xa1\xa1\xa1\xa1\x99\x99\x42\x42\x3c\x3c"
-		"\x00\x00\x7e\x7e\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00\x7c\x7c\x00\x00"
-		"\x00\x00\x36\x36\x6c\x6c\xd8\xd8\x6c\x6c\x36\x36\x00\x00\x00\x00"
-		"\x7c\x7c\x0c\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x3c\x42\x42\xb9\xb9\xa5\xa5\xb9\xb9\xa5\xa5\x42\x42\x3c\x3c"
-		"\x7c\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x38\x38\x6c\x6c\x6c\x6c\x38\x38\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x10\x10\x7c\x7c\x10\x10\x00\x00\x7c\x7c\x00\x00\x00\x00"
-		"\x70\x70\x18\x18\x30\x30\x60\x60\x78\x78\x00\x00\x00\x00\x00\x00"
-		"\x70\x70\x18\x18\x30\x30\x18\x18\x70\x70\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x30\x30\x60\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xfc\xfc\xc0\xc0"
-		"\x00\x00\x7e\x7e\xf4\xf4\x74\x74\x14\x14\x14\x14\x14\x14\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x30\x30"
-		"\x30\x30\x70\x70\x30\x30\x30\x30\x78\x78\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x7c\x7c\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00\x7c\x7c\x00\x00"
-		"\x00\x00\xd8\xd8\x6c\x6c\x36\x36\x6c\x6c\xd8\xd8\x00\x00\x00\x00"
-		"\x60\x60\xe6\xe6\x6c\x6c\x7a\x7a\x36\x36\x6f\x6f\xcf\xcf\x03\x03"
-		"\x60\x60\xe6\xe6\x6c\x6c\x78\x78\x3e\x3e\x63\x63\xce\xce\x1f\x1f"
-		"\xe0\xe0\x36\x36\x6c\x6c\x3a\x3a\xf6\xf6\x6f\x6f\xcf\xcf\x03\x03"
-		"\x30\x30\x00\x00\x30\x30\x3c\x3c\x06\x06\xc6\xc6\x7c\x7c\x00\x00"
-		"\x30\x30\x08\x08\x78\x78\xcc\xcc\xfe\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x18\x18\x20\x20\x78\x78\xcc\xcc\xfe\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x30\x30\xcc\xcc\x78\x78\xcc\xcc\xfe\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x72\x72\x9c\x9c\x78\x78\xcc\xcc\xfe\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x6c\x6c\x00\x00\x78\x78\xcc\xcc\xfe\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x78\x78\xcc\xcc\x78\x78\xcc\xcc\xfe\xfe\xc6\xc6\xc6\xc6\x00\x00"
-		"\x3f\x3f\x6c\x6c\xcf\xcf\xfc\xfc\xcc\xcc\xcc\xcc\xcf\xcf\x00\x00"
-		"\x78\x78\xcc\xcc\xc0\xc0\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x7c\x30\x30"
-		"\x30\x30\x08\x08\xfe\xfe\xc0\xc0\xfc\xfc\xc0\xc0\xfe\xfe\x00\x00"
-		"\x18\x18\x20\x20\xfe\xfe\xc0\xc0\xfc\xfc\xc0\xc0\xfe\xfe\x00\x00"
-		"\x18\x18\x66\x66\xfe\xfe\xc0\xc0\xfc\xfc\xc0\xc0\xfe\xfe\x00\x00"
-		"\x6c\x6c\x00\x00\xfe\xfe\xc0\xc0\xfc\xfc\xc0\xc0\xfe\xfe\x00\x00"
-		"\x30\x30\x08\x08\x7e\x7e\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x18\x18\x20\x20\x7e\x7e\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x18\x18\x66\x66\x7e\x7e\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x6c\x6c\x00\x00\x7e\x7e\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\xf8\xf8\xcc\xcc\xc6\xc6\xe6\xe6\xc6\xc6\xc6\xc6\xfc\xfc\x00\x00"
-		"\x72\x72\x9c\x9c\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\x00\x00"
-		"\x30\x30\x08\x08\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x20\x20\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x30\x30\xcc\xcc\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x72\x72\x9c\x9c\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x6c\x6c\x00\x00\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x00\x00\x7c\x7c\xd6\xd6\xff\xff\xdb\xdb\xc7\xc7\x7e\x7e\x00\x00"
-		"\x78\x78\xcc\xcc\xde\xde\xf6\xf6\xe6\xe6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x30\x30\x08\x08\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x20\x20\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x66\x66\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x6c\x6c\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x20\x20\xc6\xc6\xc6\xc6\x7c\x7c\x0c\x0c\x0c\x0c\x00\x00"
-		"\xc0\xc0\xf8\xf8\xcc\xcc\xc6\xc6\xfc\xfc\xc0\xc0\xc0\xc0\xc0\xc0"
-		"\x00\x00\x78\x78\xcc\xcc\xdc\xdc\xc6\xc6\xc6\xc6\xdc\xdc\xc0\xc0"
-		"\x30\x30\x08\x08\x3c\x3c\x06\x06\x7e\x7e\xc6\xc6\x7e\x7e\x00\x00"
-		"\x18\x18\x20\x20\x3c\x3c\x06\x06\x7e\x7e\xc6\xc6\x7e\x7e\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x06\x06\x7e\x7e\xc6\xc6\x7e\x7e\x00\x00"
-		"\x72\x72\x9c\x9c\x3c\x3c\x06\x06\x7e\x7e\xc6\xc6\x7e\x7e\x00\x00"
-		"\x6c\x6c\x00\x00\x3c\x3c\x06\x06\x7e\x7e\xc6\xc6\x7e\x7e\x00\x00"
-		"\x3c\x3c\x66\x66\x3c\x3c\x06\x06\x7e\x7e\xc6\xc6\x7e\x7e\x00\x00"
-		"\x00\x00\x7e\x7e\x1b\x1b\x7f\x7f\xd8\xd8\xd8\xd8\x7f\x7f\x00\x00"
-		"\x00\x00\x78\x78\xcc\xcc\xc0\xc0\xc0\xc0\xc6\xc6\x7c\x7c\x30\x30"
-		"\x30\x30\x08\x08\x78\x78\xfc\xfc\xc0\xc0\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x20\x20\x78\x78\xfc\xfc\xc0\xc0\xc6\xc6\x7c\x7c\x00\x00"
-		"\x30\x30\xcc\xcc\x78\x78\xfc\xfc\xc0\xc0\xc6\xc6\x7c\x7c\x00\x00"
-		"\x6c\x6c\x00\x00\x78\x78\xfc\xfc\xc0\xc0\xc6\xc6\x7c\x7c\x00\x00"
-		"\x30\x30\x08\x08\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x18\x18\x20\x20\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x18\x18\x66\x66\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x6c\x6c\x00\x00\x38\x38\x18\x18\x18\x18\x18\x18\x7e\x7e\x00\x00"
-		"\x0c\x0c\x16\x16\x3e\x3e\x66\x66\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x72\x72\x9c\x9c\xf8\xf8\xcc\xcc\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x30\x30\x08\x08\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x20\x20\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x18\x18\x66\x66\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x72\x72\x9c\x9c\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x6c\x6c\x00\x00\x78\x78\xcc\xcc\xc6\xc6\xc6\xc6\x7c\x7c\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x7e\x7e\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x78\x78\xcc\xcc\xde\xde\xf6\xf6\xe6\xe6\x7c\x7c\x00\x00"
-		"\x30\x30\x08\x08\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x18\x18\x20\x20\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x18\x18\x66\x66\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x6c\x6c\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x00\x00"
-		"\x18\x18\x20\x20\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06\x7c\x7c"
-		"\xc0\xc0\xc0\xc0\xf8\xf8\xcc\xcc\xc6\xc6\xfc\xfc\xc0\xc0\xc0\xc0"
-		"\x6c\x6c\x00\x00\xc6\xc6\xc6\xc6\xc6\xc6\x7e\x7e\x06\x06\x7c\x7c"
-		, NULL, "\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x00\x18\x00"
-		"\x6c\x6c\x24\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\xfe\x6c\x6c\x00"
-		"\x10\x7c\xd0\x7c\x16\x16\x7c\x10"
-		"\x60\x96\x7c\x18\x30\x6c\xd2\x0c"
-		"\x70\xd8\x70\xf6\xdc\xd8\x7c\x06"
-		"\x18\x18\x08\x10\x00\x00\x00\x00"
-		"\x18\x30\x60\x60\x60\x30\x18\x00"
-		"\x30\x18\x0c\x0c\x0c\x18\x30\x00"
-		"\x00\x6c\x38\xfe\x38\x6c\x00\x00"
-		"\x00\x18\x18\x7e\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x08\x10"
-		"\x00\x00\x00\x7c\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x18\x18\x00"
-		"\x00\x06\x0c\x18\x30\x60\xc0\x00"
-		"\x00\x78\xcc\xde\xf6\xe6\x7c\x00"
-		"\x18\x18\x38\x18\x18\x18\x7e\x00"
-		"\x7c\x06\x3c\x60\xc0\xc0\xfe\x00"
-		"\x3c\x06\x1c\x06\x46\xc6\x7c\x00"
-		"\x18\x18\x30\x6c\xcc\xfe\x0c\x00"
-		"\xf8\xc0\xfc\x06\x46\xcc\x78\x00"
-		"\x70\xc0\xfc\xc6\xc6\xcc\x78\x00"
-		"\xfe\x06\x0c\x18\x18\x18\x18\x00"
-		"\x78\xcc\x7c\xc6\xc6\xcc\x78\x00"
-		"\x78\xcc\xc6\xc6\x7e\x06\x1c\x00"
-		"\x00\x18\x18\x00\x00\x18\x18\x00"
-		"\x00\x18\x18\x00\x00\x18\x08\x10"
-		"\x00\x18\x30\x60\x30\x18\x00\x00"
-		"\x00\x00\x7c\x00\x7c\x00\x00\x00"
-		"\x00\x30\x18\x0c\x18\x30\x00\x00"
-		"\x7c\xc6\x06\x3c\x30\x00\x30\x00"
-		"\x38\x6c\xde\xf6\xde\xc0\x66\x3c"
-		"\x78\xcc\xc6\xfe\xc6\xc6\xc6\x00"
-		"\xf8\xcc\xfc\xc6\xc6\xcc\xf8\x00"
-		"\x78\xcc\xc0\xc0\xc0\xc6\x7c\x00"
-		"\xf8\xcc\xc6\xc6\xc6\xc6\xfc\x00"
-		"\xfe\xc0\xfc\xc0\xc0\xc0\xfe\x00"
-		"\xfe\xc0\xfc\xc0\xc0\xc0\xc0\x00"
-		"\x38\x60\xc0\xce\xc6\xc6\x7e\x06"
-		"\xc6\xc6\xc6\xfe\xc6\xc6\xc6\x00"
-		"\x7e\x18\x18\x18\x18\x18\x7e\x00"
-		"\x0e\x06\x06\x06\xc6\xc6\x7c\x00"
-		"\xc6\xcc\xd8\xf0\xd8\xcc\xc6\x00"
-		"\xc0\xc0\xc0\xc0\xc0\xc0\xfe\x00"
-		"\xc6\xee\xfe\xd6\xc6\xc6\xc6\x00"
-		"\xc6\xe6\xf6\xde\xce\xc6\xc6\x00"
-		"\x78\xcc\xc6\xc6\xc6\xc6\x7c\x00"
-		"\xf8\xcc\xc6\xc6\xfc\xc0\xc0\x00"
-		"\x78\xcc\xc6\xc6\xc6\xd6\x7c\x0c"
-		"\xf8\xcc\xc6\xc6\xfc\xd8\xcc\x06"
-		"\x78\xc0\x7c\x06\x46\xc6\x7c\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\x7c\x00"
-		"\xc6\xc6\xc6\x6c\x6c\x38\x38\x00"
-		"\xc6\xc6\xc6\xd6\xfe\xee\xc6\x00"
-		"\xc6\x6c\x38\x38\x6c\xc6\xc6\x00"
-		"\xc6\xc6\xc6\x7c\x0c\x0c\x0c\x00"
-		"\xfe\x0c\x18\x30\x60\xc0\xfe\x00"
-		"\x38\x30\x30\x30\x30\x30\x38\x00"
-		"\x00\xc0\x60\x30\x18\x0c\x06\x00"
-		"\x38\x18\x18\x18\x18\x18\x38\x00"
-		"\x10\x38\x6c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\xfe"
-		"\x18\x18\x10\x08\x00\x00\x00\x00"
-		"\x00\x3c\x06\x7e\xc6\xc6\x7e\x00"
-		"\xc0\xf8\xcc\xc6\xc6\xc6\xfc\x00"
-		"\x00\x78\xcc\xc0\xc0\xc6\x7c\x00"
-		"\x06\x3e\x66\xc6\xc6\xc6\x7e\x00"
-		"\x00\x78\xcc\xfc\xc0\xc6\x7c\x00"
-		"\x38\x6c\x60\x78\x60\x60\x60\x60"
-		"\x00\x7e\xc6\xc6\xc6\x7e\x06\x7c"
-		"\xc0\xf8\xcc\xc6\xc6\xc6\xc6\x00"
-		"\x18\x00\x38\x18\x18\x18\x7e\x00"
-		"\x0c\x00\x1c\x0c\x0c\x0c\x4c\x38"
-		"\xc0\xcc\xd8\xf0\xd8\xcc\xc6\x00"
-		"\x38\x18\x18\x18\x18\x18\x7e\x00"
-		"\x00\xc4\xee\xfe\xd6\xc6\xc6\x00"
-		"\x00\xf8\xcc\xc6\xc6\xc6\xc6\x00"
-		"\x00\x78\xcc\xc6\xc6\xc6\x7c\x00"
-		"\x00\xf8\xcc\xc6\xc6\xc6\xfc\xc0"
-		"\x00\x3e\x66\xc6\xc6\xc6\x7e\x06"
-		"\x00\xfc\xc6\xc0\xc0\xc0\xc0\x00"
-		"\x00\x78\xc0\x7c\x06\xc6\x7c\x00"
-		"\x30\x7c\x30\x30\x30\x32\x1c\x00"
-		"\x00\xc6\xc6\xc6\xc6\xc6\x7e\x00"
-		"\x00\xc6\xc6\x6c\x6c\x38\x38\x00"
-		"\x00\xc6\xd6\xfe\x7c\x6c\x44\x00"
-		"\x00\xc6\x6c\x38\x38\x6c\xc6\x00"
-		"\x00\xc6\xc6\xc6\xc6\x7e\x06\x7c"
-		"\x00\xfe\x0c\x18\x30\x60\xfe\x00"
-		"\x0c\x18\x18\x30\x18\x18\x0c\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18"
-		"\x30\x18\x18\x0c\x18\x18\x30\x00"
-		"\x72\x9c\x00\x00\x00\x00\x00\x00"
-		"\x38\x70\xe0\xc1\x83\x07\x0e\x1c"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\xfe\xc6\xc6\xc6\xc6\xc6\xfe\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x00\x18\x18\x18\x18\x18\x00"
-		"\x30\x78\xcc\xc0\xc0\xc6\x7c\x30"
-		"\x38\x6c\x60\xf8\x60\x60\xfe\x00"
-		"\x00\xc6\x7c\xc6\xc6\x7c\xc6\x00"
-		"\xc6\xc6\xc6\x7c\x0c\x3e\x0c\x00"
-		"\x18\x18\x18\x00\x18\x18\x18\x00"
-		"\x78\xc0\x7c\xc6\xc6\x7c\x06\x3c"
-		"\x6c\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x42\x99\xa1\xa1\x99\x42\x3c"
-		"\x00\x7e\xc6\xc6\x7e\x00\x7c\x00"
-		"\x00\x36\x6c\xd8\x6c\x36\x00\x00"
-		"\x7c\x0c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\x00\x00\x00\x00"
-		"\x3c\x42\xb9\xa5\xb9\xa5\x42\x3c"
-		"\x7c\x00\x00\x00\x00\x00\x00\x00"
-		"\x38\x6c\x6c\x38\x00\x00\x00\x00"
-		"\x00\x10\x7c\x10\x00\x7c\x00\x00"
-		"\x70\x18\x30\x60\x78\x00\x00\x00"
-		"\x70\x18\x30\x18\x70\x00\x00\x00"
-		"\x18\x30\x60\x00\x00\x00\x00\x00"
-		"\x00\xc6\xc6\xc6\xc6\xc6\xfc\xc0"
-		"\x00\x7e\xf4\x74\x14\x14\x14\x00"
-		"\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x30"
-		"\x30\x70\x30\x30\x78\x00\x00\x00"
-		"\x00\x7c\xc6\xc6\x7c\x00\x7c\x00"
-		"\x00\xd8\x6c\x36\x6c\xd8\x00\x00"
-		"\x60\xe6\x6c\x7a\x36\x6f\xcf\x03"
-		"\x60\xe6\x6c\x78\x3e\x63\xce\x1f"
-		"\xe0\x36\x6c\x3a\xf6\x6f\xcf\x03"
-		"\x30\x00\x30\x3c\x06\xc6\x7c\x00"
-		"\x30\x08\x78\xcc\xfe\xc6\xc6\x00"
-		"\x18\x20\x78\xcc\xfe\xc6\xc6\x00"
-		"\x30\xcc\x78\xcc\xfe\xc6\xc6\x00"
-		"\x72\x9c\x78\xcc\xfe\xc6\xc6\x00"
-		"\x6c\x00\x78\xcc\xfe\xc6\xc6\x00"
-		"\x78\xcc\x78\xcc\xfe\xc6\xc6\x00"
-		"\x3f\x6c\xcf\xfc\xcc\xcc\xcf\x00"
-		"\x78\xcc\xc0\xc0\xc0\xc6\x7c\x30"
-		"\x30\x08\xfe\xc0\xfc\xc0\xfe\x00"
-		"\x18\x20\xfe\xc0\xfc\xc0\xfe\x00"
-		"\x18\x66\xfe\xc0\xfc\xc0\xfe\x00"
-		"\x6c\x00\xfe\xc0\xfc\xc0\xfe\x00"
-		"\x30\x08\x7e\x18\x18\x18\x7e\x00"
-		"\x18\x20\x7e\x18\x18\x18\x7e\x00"
-		"\x18\x66\x7e\x18\x18\x18\x7e\x00"
-		"\x6c\x00\x7e\x18\x18\x18\x7e\x00"
-		"\xf8\xcc\xc6\xe6\xc6\xc6\xfc\x00"
-		"\x72\x9c\xe6\xf6\xde\xce\xc6\x00"
-		"\x30\x08\x78\xcc\xc6\xc6\x7c\x00"
-		"\x18\x20\x78\xcc\xc6\xc6\x7c\x00"
-		"\x30\xcc\x78\xcc\xc6\xc6\x7c\x00"
-		"\x72\x9c\x78\xcc\xc6\xc6\x7c\x00"
-		"\x6c\x00\x78\xcc\xc6\xc6\x7c\x00"
-		"\x00\x7c\xd6\xff\xdb\xc7\x7e\x00"
-		"\x78\xcc\xde\xf6\xe6\xc6\x7c\x00"
-		"\x30\x08\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x18\x20\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x18\x66\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x6c\x00\xc6\xc6\xc6\xc6\x7c\x00"
-		"\x18\x20\xc6\xc6\x7c\x0c\x0c\x00"
-		"\xc0\xf8\xcc\xc6\xfc\xc0\xc0\xc0"
-		"\x00\x78\xcc\xdc\xc6\xc6\xdc\xc0"
-		"\x30\x08\x3c\x06\x7e\xc6\x7e\x00"
-		"\x18\x20\x3c\x06\x7e\xc6\x7e\x00"
-		"\x18\x66\x3c\x06\x7e\xc6\x7e\x00"
-		"\x72\x9c\x3c\x06\x7e\xc6\x7e\x00"
-		"\x6c\x00\x3c\x06\x7e\xc6\x7e\x00"
-		"\x3c\x66\x3c\x06\x7e\xc6\x7e\x00"
-		"\x00\x7e\x1b\x7f\xd8\xd8\x7f\x00"
-		"\x00\x78\xcc\xc0\xc0\xc6\x7c\x30"
-		"\x30\x08\x78\xfc\xc0\xc6\x7c\x00"
-		"\x18\x20\x78\xfc\xc0\xc6\x7c\x00"
-		"\x30\xcc\x78\xfc\xc0\xc6\x7c\x00"
-		"\x6c\x00\x78\xfc\xc0\xc6\x7c\x00"
-		"\x30\x08\x38\x18\x18\x18\x7e\x00"
-		"\x18\x20\x38\x18\x18\x18\x7e\x00"
-		"\x18\x66\x38\x18\x18\x18\x7e\x00"
-		"\x6c\x00\x38\x18\x18\x18\x7e\x00"
-		"\x0c\x16\x3e\x66\xc6\xc6\x7e\x00"
-		"\x72\x9c\xf8\xcc\xc6\xc6\xc6\x00"
-		"\x30\x08\x78\xcc\xc6\xc6\x7c\x00"
-		"\x18\x20\x78\xcc\xc6\xc6\x7c\x00"
-		"\x18\x66\x78\xcc\xc6\xc6\x7c\x00"
-		"\x72\x9c\x78\xcc\xc6\xc6\x7c\x00"
-		"\x6c\x00\x78\xcc\xc6\xc6\x7c\x00"
-		"\x00\x18\x00\x7e\x00\x18\x00\x00"
-		"\x00\x78\xcc\xde\xf6\xe6\x7c\x00"
-		"\x30\x08\xc6\xc6\xc6\xc6\x7e\x00"
-		"\x18\x20\xc6\xc6\xc6\xc6\x7e\x00"
-		"\x18\x66\xc6\xc6\xc6\xc6\x7e\x00"
-		"\x6c\x00\xc6\xc6\xc6\xc6\x7e\x00"
-		"\x18\x20\xc6\xc6\xc6\x7e\x06\x7c"
-		"\xc0\xc0\xf8\xcc\xc6\xfc\xc0\xc0"
-		"\x6c\x00\xc6\xc6\xc6\x7e\x06\x7c"
-	, "MicroKnight (Amiga)", CIOLIB_ISO_8859_1}
-	,{  "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x83\x83\x39\x39\x21\x21\x29\x29\x21\x21\x3f\x3f\x87\x87\xff\xff"
-		"\xc3\xc3\x99\x99\x99\x99\x81\x81\x99\x99\x99\x99\x99\x99\xff\xff"
-		"\x83\x83\x99\x99\x99\x99\x83\x83\x99\x99\x99\x99\x83\x83\xff\xff"
-		"\xe1\xe1\xcf\xcf\x9f\x9f\x9f\x9f\x9f\x9f\xcf\xcf\xe1\xe1\xff\xff"
-		"\x87\x87\x93\x93\x99\x99\x99\x99\x99\x99\x93\x93\x87\x87\xff\xff"
-		"\x81\x81\x9f\x9f\x9f\x9f\x87\x87\x9f\x9f\x9f\x9f\x81\x81\xff\xff"
-		"\x81\x81\x9f\x9f\x9f\x9f\x87\x87\x9f\x9f\x9f\x9f\x9f\x9f\xff\xff"
-		"\xc3\xc3\x99\x99\x9f\x9f\x91\x91\x99\x99\x99\x99\xc1\xc1\xff\xff"
-		"\x99\x99\x99\x99\x99\x99\x81\x81\x99\x99\x99\x99\x99\x99\xff\xff"
-		"\xc3\xc3\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xc3\xc3\xff\xff"
-		"\xf9\xf9\xf9\xf9\xf9\xf9\xf9\xf9\xf9\xf9\x99\x99\xc3\xc3\xff\xff"
-		"\x9c\x9c\x99\x99\x93\x93\x87\x87\x93\x93\x99\x99\x9c\x9c\xff\xff"
-		"\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x9f\x81\x81\xff\xff"
-		"\x9c\x9c\x88\x88\x80\x80\x94\x94\x9c\x9c\x9c\x9c\x9c\x9c\xff\xff"
-		"\x9c\x9c\x8c\x8c\x84\x84\x90\x90\x98\x98\x9c\x9c\x9c\x9c\xff\xff"
-		"\xc3\xc3\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\x83\x83\x99\x99\x99\x99\x83\x83\x9f\x9f\x9f\x9f\x9f\x9f\xff\xff"
-		"\xc3\xc3\x99\x99\x99\x99\x99\x99\x99\x99\x91\x91\xc0\xc0\xff\xff"
-		"\x83\x83\x99\x99\x99\x99\x83\x83\x93\x93\x99\x99\x99\x99\xff\xff"
-		"\xc3\xc3\x99\x99\x8f\x8f\xc3\xc3\xf1\xf1\x99\x99\xc3\xc3\xff\xff"
-		"\x81\x81\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xff\xff"
-		"\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\x99\x99\x99\x99\x99\x99\x99\x99\x99\x81\xc3\xc3\xe7\xe7\xff\xff"
-		"\x9c\x9c\x9c\x9c\x9c\x9c\x94\x94\x80\x80\x88\x88\x9c\x9c\xff\xff"
-		"\x3c\x3c\x99\x99\xc3\xc3\xe7\xe7\xc3\xc3\x99\x99\x3c\x3c\xff\xff"
-		"\x3c\x3c\x99\x99\xc3\xc3\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xff\xff"
-		"\x80\x80\xf9\xf9\xf3\xf3\xe7\xe7\xcf\xcf\x9f\x9f\x80\x80\xff\xff"
-		"\xc3\xc3\xcf\xcf\xcf\xcf\xcf\xcf\xcf\xcf\xcf\xcf\xc3\xc3\xff\xff"
-		"\x3f\x3f\x9f\x9f\xcf\xcf\xe7\xe7\xf3\xf3\xf9\xf9\xfc\xfc\xff\xff"
-		"\xc3\xc3\xf3\xf3\xf3\xf3\xf3\xf3\xf3\xf3\xf3\xf3\xc3\xc3\xff\xff"
-		"\xf7\xf7\xe3\xe3\xc9\xc9\x9c\x9c\xff\xff\xff\xff\xff\xff\xff\xff"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x18\x18\x00\x00"
-		"\x6c\x6c\x6c\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x6c\x6c\x6c\xfe\xfe\x6c\x6c\xfe\xfe\x6c\x6c\x6c\x6c\x00\x00"
-		"\x18\x18\x3e\x3e\x60\x60\x3c\x3c\x06\x06\x7c\x7c\x18\x18\x00\x00"
-		"\x00\x00\x66\x66\xac\xac\xd8\xd8\x36\x36\x6a\x6a\xcc\xcc\x00\x00"
-		"\x38\x38\x6c\x6c\x68\x68\x76\x76\xdc\xdc\xce\xce\x7b\x7b\x00\x00"
-		"\x18\x18\x18\x18\x30\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0c\x0c\x18\x18\x30\x30\x30\x30\x30\x30\x18\x18\x0c\x0c\x00\x00"
-		"\x30\x30\x18\x18\x0c\x0c\x0c\x0c\x0c\x0c\x18\x18\x30\x30\x00\x00"
-		"\x00\x00\x66\x66\x3c\x3c\xff\xff\x3c\x3c\x66\x66\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x7e\x7e\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x03\x03\x06\x06\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\x00\x00"
-		"\x3c\x3c\x66\x66\x6e\x6e\x7e\x7e\x76\x76\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x38\x38\x78\x78\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x0c\x0c\x18\x18\x30\x30\x7e\x7e\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x1c\x1c\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x1c\x1c\x3c\x3c\x6c\x6c\xcc\xcc\xfe\xfe\x0c\x0c\x0c\x0c\x00\x00"
-		"\x7e\x7e\x60\x60\x7c\x7c\x06\x06\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\x1c\x1c\x30\x30\x60\x60\x7c\x7c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x06\x06\x06\x06\x0c\x0c\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x3e\x3e\x06\x06\x0c\x0c\x38\x38\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x18\x18\x18\x18\x00\x00\x00\x00\x18\x18\x18\x18\x30\x30"
-		"\x00\x00\x06\x06\x18\x18\x60\x60\x18\x18\x06\x06\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x60\x60\x18\x18\x06\x06\x18\x18\x60\x60\x00\x00\x00\x00"
-		"\x3c\x3c\x66\x66\x06\x06\x0c\x0c\x18\x18\x00\x00\x18\x18\x00\x00"
-		"\x7c\x7c\xc6\xc6\xde\xde\xd6\xd6\xde\xde\xc0\xc0\x78\x78\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x1e\x1e\x30\x30\x60\x60\x60\x60\x60\x60\x30\x30\x1e\x1e\x00\x00"
-		"\x78\x78\x6c\x6c\x66\x66\x66\x66\x66\x66\x6c\x6c\x78\x78\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\x7e\x7e\x60\x60\x60\x60\x78\x78\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x3c\x3c\x66\x66\x60\x60\x6e\x6e\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x7e\x7e\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x06\x06\x06\x06\x06\x06\x06\x06\x06\x06\x66\x66\x3c\x3c\x00\x00"
-		"\xc6\xc6\xcc\xcc\xd8\xd8\xf0\xf0\xd8\xd8\xcc\xcc\xc6\xc6\x00\x00"
-		"\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x7e\x7e\x00\x00"
-		"\xc6\xc6\xee\xee\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\xc6\xc6\x00\x00"
-		"\xc6\xc6\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\xc6\xc6\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x78\x78\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xdc\xdc\x7e\x7e\x00\x00"
-		"\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x6c\x6c\x66\x66\x66\x66\x00\x00"
-		"\x3c\x3c\x66\x66\x70\x70\x3c\x3c\x0e\x0e\x66\x66\x3c\x3c\x00\x00"
-		"\x7e\x7e\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x3c\x3c\x18\x18\x00\x00"
-		"\xc6\xc6\xc6\xc6\xc6\xc6\xd6\xd6\xfe\xfe\xee\xee\xc6\xc6\x00\x00"
-		"\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x66\x66\xc3\xc3\x00\x00"
-		"\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\xfe\xfe\x0c\x0c\x18\x18\x30\x30\x60\x60\xc0\xc0\xfe\xfe\x00\x00"
-		"\x3c\x3c\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x3c\x3c\x00\x00"
-		"\xc0\xc0\x60\x60\x30\x30\x18\x18\x0c\x0c\x06\x06\x03\x03\x00\x00"
-		"\x3c\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x3c\x00\x00"
-		"\x10\x10\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe"
-		"\x18\x18\x18\x18\x0c\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x66\x66\x7c\x7c\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x60\x60\x60\x60\x60\x60\x3c\x3c\x00\x00"
-		"\x06\x06\x06\x06\x3e\x3e\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x1c\x1c\x30\x30\x7c\x7c\x30\x30\x30\x30\x30\x30\x30\x30\x00\x00"
-		"\x00\x00\x00\x00\x3e\x3e\x66\x66\x66\x66\x3e\x3e\x06\x06\x3c\x3c"
-		"\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x0c\x0c\x00\x00\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x78\x78"
-		"\x60\x60\x60\x60\x66\x66\x6c\x6c\x78\x78\x6c\x6c\x66\x66\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x00\x00\x00\x00\xec\xec\xfe\xfe\xd6\xd6\xc6\xc6\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60"
-		"\x00\x00\x00\x00\x3e\x3e\x66\x66\x66\x66\x3e\x3e\x06\x06\x06\x06"
-		"\x00\x00\x00\x00\x7c\x7c\x66\x66\x60\x60\x60\x60\x60\x60\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x60\x60\x3c\x3c\x06\x06\x7c\x7c\x00\x00"
-		"\x30\x30\x30\x30\x7c\x7c\x30\x30\x30\x30\x30\x30\x1c\x1c\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\xc6\xc6\xd6\xd6\xfe\xfe\x6c\x6c\x00\x00"
-		"\x00\x00\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x6c\x6c\xc6\xc6\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x3c\x3c\x18\x18\x30\x30"
-		"\x00\x00\x00\x00\x7e\x7e\x0c\x0c\x18\x18\x30\x30\x7e\x7e\x00\x00"
-		"\x0e\x0e\x18\x18\x18\x18\x70\x70\x18\x18\x18\x18\x0e\x0e\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x70\x70\x18\x18\x18\x18\x0e\x0e\x18\x18\x18\x18\x70\x70\x00\x00"
-		"\x72\x72\x9c\x9c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0f\x0f\x3c\x3c\xf0\xf0\xc3\xc3\x0f\x0f\x3c\x3c\xf0\xf0\x00\x00"
-		"\xcf\xcf\xe7\xe7\xc3\xc3\x99\x99\x81\x81\x99\x99\x99\x99\xff\xff"
-		"\xf3\xf3\xe7\xe7\xc3\xc3\x99\x99\x81\x81\x99\x99\x99\x99\xff\xff"
-		"\xe7\xe7\x99\x99\xc3\xc3\x99\x99\x81\x81\x99\x99\x99\x99\xff\xff"
-		"\x8e\x8e\x71\x71\xc3\xc3\x99\x99\x81\x81\x99\x99\x99\x99\xff\xff"
-		"\x99\x99\xff\xff\xc3\xc3\x99\x99\x81\x81\x99\x99\x99\x99\xff\xff"
-		"\xe7\xe7\xdb\xdb\xc3\xc3\x99\x99\x81\x81\x99\x99\x99\x99\xff\xff"
-		"\xe0\xe0\xc3\xc3\xc3\xc3\x90\x90\x83\x83\x33\x33\x30\x30\xff\xff"
-		"\xe1\xe1\xcf\xcf\x9f\x9f\x9f\x9f\xcf\xcf\xe1\xe1\xf3\xf3\xe7\xe7"
-		"\xcf\xcf\xe7\xe7\x81\x81\x9f\x9f\x87\x87\x9f\x9f\x81\x81\xff\xff"
-		"\xf3\xf3\xe7\xe7\x81\x81\x9f\x9f\x87\x87\x9f\x9f\x81\x81\xff\xff"
-		"\xe7\xe7\x99\x99\x81\x81\x9f\x9f\x87\x87\x9f\x9f\x81\x81\xff\xff"
-		"\x99\x99\xff\xff\x81\x81\x9f\x9f\x87\x87\x9f\x9f\x81\x81\xff\xff"
-		"\xcf\xcf\xe7\xe7\xc3\xc3\xe7\xe7\xe7\xe7\xe7\xe7\xc3\xc3\xff\xff"
-		"\xf3\xf3\xe7\xe7\xc3\xc3\xe7\xe7\xe7\xe7\xe7\xe7\xc3\xc3\xff\xff"
-		"\xe7\xe7\x99\x99\xc3\xc3\xe7\xe7\xe7\xe7\xe7\xe7\xc3\xc3\xff\xff"
-		"\x99\x99\xff\xff\xc3\xc3\xe7\xe7\xe7\xe7\xe7\xe7\xc3\xc3\xff\xff"
-		"\x87\x87\x93\x93\x99\x99\x09\x09\x99\x99\x93\x93\x87\x87\xff\xff"
-		"\x8e\x8e\x31\x31\x19\x19\x09\x09\x21\x21\x31\x31\x39\x39\xff\xff"
-		"\xcf\xcf\xe7\xe7\xc3\xc3\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\xf3\xf3\xe7\xe7\xc3\xc3\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\xe7\xe7\x99\x99\xc3\xc3\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\x8e\x8e\x71\x71\xc3\xc3\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\x3c\x3c\xc3\xc3\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\xff\xff\x39\x39\x93\x93\xc7\xc7\x93\x93\x39\x39\xff\xff\xff\xff"
-		"\xc0\xc0\x99\x99\x91\x91\x81\x81\x89\x89\x99\x99\x03\x03\xff\xff"
-		"\xcf\xcf\xe7\xe7\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\xf3\xf3\xe7\xe7\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\xe7\xe7\xdb\xdb\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\x99\x99\xff\xff\x99\x99\x99\x99\x99\x99\x99\x99\xc3\xc3\xff\xff"
-		"\xf9\xf9\xf7\xf7\x3c\x3c\x99\x99\xc3\xc3\xe7\xe7\xe7\xe7\xff\xff"
-		"\x3f\x3f\x3f\x3f\x03\x03\x39\x39\x03\x03\x3f\x3f\x3f\x3f\xff\xff"
-		"\xc3\xc3\x99\x99\x99\x99\x93\x93\x99\x99\x99\x99\x93\x93\x9f\x9f"
-		"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x80\x80"
-		"\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x00\x00\x0c\x0c\x3e\x3e\x6c\x6c\x3e\x3e\x0c\x0c\x00\x00\x00\x00"
-		"\x1c\x1c\x36\x36\x30\x30\x78\x78\x30\x30\x30\x30\x7e\x7e\x00\x00"
-		"\x42\x42\x3c\x3c\x66\x66\x3c\x3c\x42\x42\x00\x00\x00\x00\x00\x00"
-		"\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x3c\x3c\x18\x18\x18\x18\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x00\x00"
-		"\x3c\x3c\x60\x60\x3c\x3c\x66\x66\x3c\x3c\x06\x06\x3c\x3c\x00\x00"
-		"\x66\x66\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x7e\x81\x81\x9d\x9d\xb1\xb1\x9d\x9d\x81\x81\x7e\x7e\x00\x00"
-		"\x1c\x1c\x24\x24\x44\x44\x3c\x3c\x00\x00\x7e\x7e\x00\x00\x00\x00"
-		"\x00\x00\x33\x33\x66\x66\xcc\xcc\x66\x66\x33\x33\x00\x00\x00\x00"
-		"\x3e\x3e\x06\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x7e\x7e\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x7e\x81\x81\xb9\xb9\xa5\xa5\xb9\xb9\xa5\xa5\x81\x81\x7e\x7e"
-		"\x7e\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x3c\x66\x66\x3c\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x7e\x7e\x18\x18\x18\x18\x00\x00\x7e\x7e\x00\x00"
-		"\x78\x78\x0c\x0c\x18\x18\x30\x30\x7c\x7c\x00\x00\x00\x00\x00\x00"
-		"\x78\x78\x0c\x0c\x18\x18\x0c\x0c\x78\x78\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x30\x30\x60\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x7f\x7f\x60\x60"
-		"\x3e\x3e\x7a\x7a\x7a\x7a\x3a\x3a\x0a\x0a\x0a\x0a\x0a\x0a\x00\x00"
-		"\x00\x00\x00\x00\x18\x18\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x30\x30"
-		"\x30\x30\x70\x70\x30\x30\x30\x30\x30\x30\x00\x00\x00\x00\x00\x00"
-		"\x38\x38\x44\x44\x44\x44\x38\x38\x00\x00\x7c\x7c\x00\x00\x00\x00"
-		"\x00\x00\xcc\xcc\x66\x66\x33\x33\x66\x66\xcc\xcc\x00\x00\x00\x00"
-		"\x40\x40\xc6\xc6\x4c\x4c\x58\x58\x32\x32\x66\x66\xcf\xcf\x02\x02"
-		"\x40\x40\xc6\xc6\x4c\x4c\x58\x58\x3e\x3e\x62\x62\xc4\xc4\x0e\x0e"
-		"\xc0\xc0\x23\x23\x66\x66\x2c\x2c\xd9\xd9\x33\x33\x67\x67\x01\x01"
-		"\x18\x18\x00\x00\x18\x18\x30\x30\x60\x60\x66\x66\x3c\x3c\x00\x00"
-		"\x30\x30\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x71\x71\x8e\x8e\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x66\x66\x00\x00\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x18\x18\x24\x24\x3c\x3c\x66\x66\x7e\x7e\x66\x66\x66\x66\x00\x00"
-		"\x1f\x1f\x3c\x3c\x3c\x3c\x6f\x6f\x7c\x7c\xcc\xcc\xcf\xcf\x00\x00"
-		"\x1e\x1e\x30\x30\x60\x60\x60\x60\x30\x30\x1e\x1e\x0c\x0c\x18\x18"
-		"\x30\x30\x18\x18\x7e\x7e\x60\x60\x78\x78\x60\x60\x7e\x7e\x00\x00"
-		"\x0c\x0c\x18\x18\x7e\x7e\x60\x60\x78\x78\x60\x60\x7e\x7e\x00\x00"
-		"\x18\x18\x66\x66\x7e\x7e\x60\x60\x78\x78\x60\x60\x7e\x7e\x00\x00"
-		"\x66\x66\x00\x00\x7e\x7e\x60\x60\x78\x78\x60\x60\x7e\x7e\x00\x00"
-		"\x30\x30\x18\x18\x3c\x3c\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x66\x66\x00\x00\x3c\x3c\x18\x18\x18\x18\x18\x18\x3c\x3c\x00\x00"
-		"\x78\x78\x6c\x6c\x66\x66\xf6\xf6\x66\x66\x6c\x6c\x78\x78\x00\x00"
-		"\x71\x71\xce\xce\xe6\xe6\xf6\xf6\xde\xde\xce\xce\xc6\xc6\x00\x00"
-		"\x30\x30\x18\x18\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x71\x71\x8e\x8e\x3c\x3c\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\xc3\xc3\x3c\x3c\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\xc6\xc6\x6c\x6c\x38\x38\x6c\x6c\xc6\xc6\x00\x00\x00\x00"
-		"\x3f\x3f\x66\x66\x6e\x6e\x7e\x7e\x76\x76\x66\x66\xfc\xfc\x00\x00"
-		"\x30\x30\x18\x18\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x24\x24\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x66\x66\x00\x00\x66\x66\x66\x66\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x06\x06\x08\x08\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x18\x18\x00\x00"
-		"\xc0\xc0\xc0\xc0\xfc\xfc\xc6\xc6\xfc\xfc\xc0\xc0\xc0\xc0\x00\x00"
-		"\x3c\x3c\x66\x66\x66\x66\x6c\x6c\x66\x66\x66\x66\x6c\x6c\x60\x60"
-		"\x30\x30\x18\x18\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x71\x71\x8e\x8e\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x66\x66\x00\x00\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x18\x18\x24\x24\x3c\x3c\x06\x06\x3e\x3e\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x00\x00\x7e\x7e\x1b\x1b\x7f\x7f\xd8\xd8\x77\x77\x00\x00"
-		"\x00\x00\x00\x00\x3c\x3c\x60\x60\x60\x60\x60\x60\x3c\x3c\x18\x18"
-		"\x30\x30\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x18\x18\x66\x66\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x66\x66\x00\x00\x3c\x3c\x66\x66\x7e\x7e\x60\x60\x3c\x3c\x00\x00"
-		"\x30\x30\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x0c\x0c\x18\x18\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x18\x18\x66\x66\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x00\x00\x66\x66\x00\x00\x18\x18\x18\x18\x18\x18\x0c\x0c\x00\x00"
-		"\x60\x60\xfc\xfc\x18\x18\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x71\x71\x8e\x8e\x00\x00\x7c\x7c\x66\x66\x66\x66\x66\x66\x00\x00"
-		"\x30\x30\x18\x18\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x0c\x0c\x18\x18\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x18\x18\x66\x66\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x71\x71\x8e\x8e\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x66\x66\x00\x00\x3c\x3c\x66\x66\x66\x66\x3c\x3c\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x7e\x7e\x00\x00\x18\x18\x00\x00\x00\x00"
-		"\x00\x00\x02\x02\x7c\x7c\xce\xce\xd6\xd6\xe6\xe6\x7c\x7c\x80\x80"
-		"\x30\x30\x18\x18\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x0c\x0c\x18\x18\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x18\x18\x66\x66\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x00\x00\x66\x66\x00\x00\x66\x66\x66\x66\x66\x66\x3e\x3e\x00\x00"
-		"\x0c\x0c\x18\x18\x00\x00\x66\x66\x66\x66\x3c\x3c\x18\x18\x30\x30"
-		"\x60\x60\x60\x60\x7c\x7c\x66\x66\x66\x66\x7c\x7c\x60\x60\x60\x60"
-		"\x00\x00\x66\x66\x00\x00\x66\x66\x66\x66\x3c\x3c\x18\x18\x30\x30"
-		,  "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x3c\x3c\x3c\x18\x18\x18\x00\x18\x00\x00\x00\x00\x00"
-		"\x66\x66\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x6c\x6c\xfe\x6c\x6c\x6c\xfe\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x18\x3e\x60\x60\x3c\x06\x06\x7c\x18\x00\x00\x00\x00\x00"
-		"\x00\xc0\xc6\xcc\x18\x30\x66\xc6\x06\x00\x00\x00\x00\x00"
-		"\x38\x6c\x6c\x68\x76\xdc\xcc\xcc\x76\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x30\x30\x30\x30\x18\x0c\x00\x00\x00\x00\x00"
-		"\x30\x18\x0c\x0c\x0c\x0c\x0c\x18\x30\x00\x00\x00\x00\x00"
-		"\x00\x66\x66\x3c\xff\x3c\x66\x66\x00\x00\x00\x00\x00\x00"
-		"\x00\x18\x18\x18\x7e\x18\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x18\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x03\x06\x04\x0c\x18\x30\x20\x60\xc0\x00\x00\x00\x00"
-		"\x3c\x66\x66\x76\x7e\x6e\x66\x66\x3c\x00\x00\x00\x00\x00"
-		"\x18\x38\x38\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00\x00"
-		"\x3c\x66\x66\x06\x0c\x18\x30\x66\x7e\x00\x00\x00\x00\x00"
-		"\x3c\x66\x06\x06\x1c\x06\x06\x66\x3c\x00\x00\x00\x00\x00"
-		"\x0c\x1c\x3c\x6c\xcc\xfe\x0c\x0c\x1e\x00\x00\x00\x00\x00"
-		"\x7e\x60\x60\x7c\x06\x06\x06\x66\x3c\x00\x00\x00\x00\x00"
-		"\x1c\x30\x60\x60\x7c\x66\x66\x66\x3c\x00\x00\x00\x00\x00"
-		"\x7e\x66\x06\x06\x0c\x18\x18\x18\x18\x00\x00\x00\x00\x00"
-		"\x3c\x66\x66\x66\x3c\x66\x66\x66\x3c\x00\x00\x00\x00\x00"
-		"\x3c\x66\x66\x66\x3e\x06\x06\x0c\x38\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x18\x18\x18\x30\x00\x00\x00\x00"
-		"\x00\x0c\x18\x30\x60\x30\x18\x0c\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x7e\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x30\x18\x0c\x06\x0c\x18\x30\x00\x00\x00\x00\x00\x00"
-		"\x3c\x66\x06\x06\x0c\x18\x00\x18\x18\x00\x00\x00\x00\x00"
-		"\x7c\xc6\xc6\xde\xde\xde\xc0\xc0\x78\x00\x00\x00\x00\x00"
-		"\x18\x3c\x3c\x66\x66\x7e\xc3\xc3\xc3\x00\x00\x00\x00\x00"
-		"\xfc\x66\x66\x66\x7c\x66\x66\x66\xfc\x00\x00\x00\x00\x00"
-		"\x3c\x66\xc0\xc0\xc0\xc0\xc0\x66\x3c\x00\x00\x00\x00\x00"
-		"\xf8\x6c\x66\x66\x66\x66\x66\x6c\xf8\x00\x00\x00\x00\x00"
-		"\xfe\x66\x60\x60\x78\x60\x60\x66\xfe\x00\x00\x00\x00\x00"
-		"\xfe\x66\x60\x60\x78\x60\x60\x60\xf0\x00\x00\x00\x00\x00"
-		"\x3c\x66\xc0\xc0\xce\xc6\xc6\x66\x3e\x00\x00\x00\x00\x00"
-		"\x66\x66\x66\x66\x7e\x66\x66\x66\x66\x00\x00\x00\x00\x00"
-		"\x7e\x18\x18\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00\x00"
-		"\x0e\x06\x06\x06\x06\x66\x66\x66\x3c\x00\x00\x00\x00\x00"
-		"\xe6\x66\x66\x6c\x78\x6c\x66\x66\xe6\x00\x00\x00\x00\x00"
-		"\xf0\x60\x60\x60\x60\x60\x62\x66\xfe\x00\x00\x00\x00\x00"
-		"\x82\x82\xc6\xc6\xee\xfe\xd6\xd6\xc6\x00\x00\x00\x00\x00"
-		"\x86\xc6\xe6\xf6\xfe\xde\xce\xc6\xc2\x00\x00\x00\x00\x00"
-		"\x38\x6c\xc6\xc6\xc6\xc6\xc6\x6c\x38\x00\x00\x00\x00\x00"
-		"\xfc\x66\x66\x66\x7c\x60\x60\x60\xf0\x00\x00\x00\x00\x00"
-		"\x38\x6c\xc6\xc6\xc6\xc6\xc6\x6c\x3c\x06\x03\x00\x00\x00"
-		"\xfc\x66\x66\x66\x7c\x78\x6c\x66\xf3\x00\x00\x00\x00\x00"
-		"\x3c\x66\x66\x30\x18\x0c\x06\x66\x3c\x00\x00\x00\x00\x00"
-		"\x7e\x5a\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00\x00"
-		"\x66\x66\x66\x66\x66\x66\x66\x66\x3e\x00\x00\x00\x00\x00"
-		"\xc3\xc3\xc3\x66\x66\x3c\x3c\x18\x18\x00\x00\x00\x00\x00"
-		"\xc6\xc6\xd6\xd6\xfe\xee\xee\xc6\xc6\x00\x00\x00\x00\x00"
-		"\xc3\xc3\x66\x3c\x18\x3c\x66\xc3\xc3\x00\x00\x00\x00\x00"
-		"\xc3\xc3\xc3\x66\x3c\x18\x18\x18\x3c\x00\x00\x00\x00\x00"
-		"\xfe\xc6\x86\x0c\x18\x30\x62\xc6\xfe\x00\x00\x00\x00\x00"
-		"\x3c\x30\x30\x30\x30\x30\x30\x30\x3c\x00\x00\x00\x00\x00"
-		"\x00\xc0\x60\x20\x30\x18\x0c\x04\x06\x03\x00\x00\x00\x00"
-		"\x3c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x3c\x00\x00\x00\x00\x00"
-		"\x10\x38\x6c\xc6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x00\x00\x00"
-		"\x18\x18\x18\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x3c\x06\x1e\x66\x66\x3b\x00\x00\x00\x00\x00"
-		"\xe0\x60\x60\x6c\x76\x66\x66\x66\x7c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x3c\x66\x60\x60\x66\x3c\x00\x00\x00\x00\x00"
-		"\x0e\x06\x06\x36\x6e\x66\x66\x66\x3b\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x3c\x66\x66\x7e\x60\x3c\x00\x00\x00\x00\x00"
-		"\x1c\x36\x30\x30\x78\x30\x30\x30\x78\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x3b\x66\x66\x66\x3c\xc6\xc6\x7c\x00\x00\x00"
-		"\xe0\x60\x60\x6c\x76\x66\x66\x66\xe6\x00\x00\x00\x00\x00"
-		"\x18\x18\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00\x00\x00"
-		"\x06\x06\x00\x06\x06\x06\x06\x06\x06\x66\x3c\x00\x00\x00"
-		"\xe0\x60\x66\x66\x6c\x78\x6c\x66\xe6\x00\x00\x00\x00\x00"
-		"\x38\x18\x18\x18\x18\x18\x18\x18\x3c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\xcc\xee\xfe\xd6\xd6\xc6\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\x66\x66\x66\x66\x66\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x3c\x66\x66\x66\x66\x3c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\xdc\x66\x66\x66\x7c\x60\x60\xf0\x00\x00\x00"
-		"\x00\x00\x00\x3d\x66\x66\x66\x3e\x06\x06\x07\x00\x00\x00"
-		"\x00\x00\x00\xec\x76\x66\x60\x60\xf0\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x3e\x70\x38\x1c\x0e\x7c\x00\x00\x00\x00\x00"
-		"\x08\x18\x18\x3e\x18\x18\x18\x1a\x0c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x66\x66\x66\x66\x66\x3b\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x66\x66\x66\x3c\x3c\x18\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\xc6\xd6\xd6\xd6\x6c\x6c\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\xc6\x6c\x38\x38\x6c\xc6\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x66\x66\x66\x66\x3c\x18\x30\xe0\x00\x00\x00"
-		"\x00\x00\x00\x7e\x4c\x18\x30\x62\x7e\x00\x00\x00\x00\x00"
-		"\x0e\x18\x18\x18\x70\x18\x18\x18\x0e\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x00\x00\x00\x00"
-		"\x70\x18\x18\x18\x0e\x18\x18\x18\x70\x00\x00\x00\x00\x00"
-		"\x62\xba\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\xcc\x33\xcc\x33\xcc\x33\xcc\x33\xcc\x33\xcc\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x66\x66\x66\x66\x66\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x00\x18\x18\x18\x3c\x3c\x3c\x18\x00\x00\x00\x00\x00"
-		"\x0c\x0c\x3e\x6c\x6c\x6c\x3e\x0c\x0c\x00\x00\x00\x00\x00"
-		"\x1c\x36\x30\x30\x78\x30\x30\x30\x7e\x00\x00\x00\x00\x00"
-		"\x66\x66\x3c\x66\x66\x66\x3c\x66\x66\x00\x00\x00\x00\x00"
-		"\x66\x66\x66\x3c\x18\x7e\x18\x18\x3c\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x18\x00\x18\x18\x18\x18\x00\x00\x00\x00\x00"
-		"\x3c\x60\x60\x3c\x66\x66\x66\x3c\x06\x06\x3c\x00\x00\x00"
-		"\x66\x66\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x81\x81\x9d\xb1\xb1\xb1\x9d\x81\x7e\x00\x00\x00\x00"
-		"\x3c\xcc\xcc\x76\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x33\x66\xcc\x66\x33\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x06\x06\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x7e\x81\xb1\xb9\xb9\xb1\xa9\xa5\x81\x7e\x00\x00\x00\x00"
-		"\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x66\x66\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x18\x18\x18\x7e\x18\x18\x18\x00\x7e\x00\x00\x00\x00\x00"
-		"\x78\x0c\x0c\x18\x30\x60\x7c\x00\x00\x00\x00\x00\x00\x00"
-		"\x78\x0c\x0c\x38\x0c\x0c\x78\x00\x00\x00\x00\x00\x00\x00"
-		"\x0c\x18\x30\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x66\x66\x66\x66\x6e\x7a\x60\x60\x00\x00\x00\x00"
-		"\x7e\xf4\xf4\xf4\x74\x14\x14\x14\x14\x14\x00\x00\x00\x00"
-		"\x00\x00\x18\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x18\x00\x00\x00"
-		"\x18\x38\x38\x18\x18\x18\x18\x00\x00\x00\x00\x00\x00\x00"
-		"\x3c\x66\x66\x66\x3c\x00\x7e\x00\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\xcc\x66\x33\x66\xcc\x00\x00\x00\x00\x00\x00\x00"
-		"\x40\xc6\x4c\x58\x72\x66\xce\x02\x02\x00\x00\x00\x00\x00"
-		"\x20\x63\x26\x2c\x3b\x31\x62\xc4\x0f\x00\x00\x00\x00\x00"
-		"\xc0\x63\xc6\x6c\xd9\x33\x67\xc1\x01\x00\x00\x00\x00\x00"
-		"\x18\x18\x00\x18\x30\x60\x60\x66\x3c\x00\x00\x00\x00\x00"
-		"\x60\x30\x08\x38\x6c\xc6\xfe\xc6\xc6\x00\x00\x00\x00\x00"
-		"\x0c\x18\x20\x38\x6c\xc6\xfe\xc6\xc6\x00\x00\x00\x00\x00"
-		"\x30\x48\x84\x38\x6c\xc6\xfe\xc6\xc6\x00\x00\x00\x00\x00"
-		"\x72\x9c\x00\x38\x6c\xc6\xfe\xc6\xc6\x00\x00\x00\x00\x00"
-		"\xc6\xc6\x10\x38\x6c\xc6\xfe\xc6\xc6\x00\x00\x00\x00\x00"
-		"\x38\x6c\x38\x6c\x6c\xfe\xc6\xc6\xc6\x00\x00\x00\x00\x00"
-		"\x1f\x3c\x3c\x6c\x6f\xfc\xcc\xcc\xcf\x00\x00\x00\x00\x00"
-		"\x3c\x66\xc0\xc0\xc0\xc0\xc0\x66\x3c\x18\x30\x00\x00\x00"
-		"\x60\x18\xfe\x60\x60\x7c\x60\x60\xfe\x00\x00\x00\x00\x00"
-		"\x18\x60\xfe\x60\x60\x7c\x60\x60\xfe\x00\x00\x00\x00\x00"
-		"\x18\x24\xfe\x60\x60\x7c\x60\x60\xfe\x00\x00\x00\x00\x00"
-		"\x66\x00\xfe\x60\x60\x7c\x60\x60\xfe\x00\x00\x00\x00\x00"
-		"\x30\x0c\x7e\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00\x00"
-		"\x0c\x30\x7e\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00\x00"
-		"\x18\x24\x7e\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00\x00"
-		"\x66\x00\x7e\x18\x18\x18\x18\x18\x7e\x00\x00\x00\x00\x00"
-		"\xf8\x6c\x66\x66\xf6\x66\x66\x6c\xf8\x00\x00\x00\x00\x00"
-		"\x71\x8e\xc6\xe6\xf6\xde\xce\xc6\xc2\x00\x00\x00\x00\x00"
-		"\x30\x0c\x3c\x66\xc3\xc3\xc3\x66\x3c\x00\x00\x00\x00\x00"
-		"\x0c\x30\x3c\x66\xc3\xc3\xc3\x66\x3c\x00\x00\x00\x00\x00"
-		"\x18\x24\x3c\x66\xc3\xc3\xc3\x66\x3c\x00\x00\x00\x00\x00"
-		"\x71\x8e\x3c\x66\xc3\xc3\xc3\x66\x3c\x00\x00\x00\x00\x00"
-		"\x66\x00\x3c\x66\xc3\xc3\xc3\x66\x3c\x00\x00\x00\x00\x00"
-		"\x00\x00\x63\x36\x1c\x1c\x36\x63\x00\x00\x00\x00\x00\x00"
-		"\x3c\x66\xc7\xcf\xdb\xf3\xe3\x66\x3c\x00\x00\x00\x00\x00"
-		"\x60\x30\x08\x66\x66\x66\x66\x66\x3e\x00\x00\x00\x00\x00"
-		"\x06\x0c\x10\x66\x66\x66\x66\x66\x3e\x00\x00\x00\x00\x00"
-		"\x18\x24\x00\x66\x66\x66\x66\x66\x3e\x00\x00\x00\x00\x00"
-		"\x66\x66\x00\x66\x66\x66\x66\x66\x3e\x00\x00\x00\x00\x00"
-		"\x06\x18\xc3\x66\x3c\x18\x18\x18\x3c\x00\x00\x00\x00\x00"
-		"\xf0\x60\x7e\x63\x63\x63\x7e\x60\x60\x60\xf0\x00\x00\x00"
-		"\x7c\x66\x66\x66\x6c\x66\x66\x66\x6c\x60\x60\x00\x00\x00"
-		"\x60\x30\x08\x3c\x06\x1e\x66\x66\x3b\x00\x00\x00\x00\x00"
-		"\x06\x0c\x10\x3c\x06\x1e\x66\x66\x3b\x00\x00\x00\x00\x00"
-		"\x18\x24\x42\x3c\x06\x1e\x66\x66\x3b\x00\x00\x00\x00\x00"
-		"\x71\x8e\x00\x3c\x06\x1e\x66\x66\x3b\x00\x00\x00\x00\x00"
-		"\x66\x66\x00\x3c\x06\x1e\x66\x66\x3b\x00\x00\x00\x00\x00"
-		"\x3c\x66\x66\x3c\x06\x1e\x66\x66\x3b\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x7e\x1b\x7f\xd8\xd8\x77\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x3c\x66\x60\x60\x66\x3c\x08\x30\x00\x00\x00"
-		"\x60\x30\x08\x3c\x66\x66\x7e\x60\x3c\x00\x00\x00\x00\x00"
-		"\x06\x0c\x10\x3c\x66\x66\x7e\x60\x3c\x00\x00\x00\x00\x00"
-		"\x18\x24\x42\x3c\x66\x66\x7e\x60\x3c\x00\x00\x00\x00\x00"
-		"\x66\x66\x00\x3c\x66\x66\x7e\x60\x3c\x00\x00\x00\x00\x00"
-		"\x60\x30\x08\x38\x18\x18\x18\x18\x3c\x00\x00\x00\x00\x00"
-		"\x0c\x18\x20\x70\x30\x30\x30\x30\x78\x00\x00\x00\x00\x00"
-		"\x18\x24\x42\x1c\x0c\x0c\x0c\x0c\x1e\x00\x00\x00\x00\x00"
-		"\x66\x66\x00\x38\x18\x18\x18\x18\x3c\x00\x00\x00\x00\x00"
-		"\x6c\x30\xd8\x0c\x7e\xc6\xc6\xc6\x7c\x00\x00\x00\x00\x00"
-		"\x71\x8e\x00\x7c\x66\x66\x66\x66\x66\x00\x00\x00\x00\x00"
-		"\x60\x30\x08\x3c\x66\x66\x66\x66\x3c\x00\x00\x00\x00\x00"
-		"\x06\x0c\x10\x3c\x66\x66\x66\x66\x3c\x00\x00\x00\x00\x00"
-		"\x18\x24\x42\x3c\x66\x66\x66\x66\x3c\x00\x00\x00\x00\x00"
-		"\x71\x8e\x00\x3c\x66\x66\x66\x66\x3c\x00\x00\x00\x00\x00"
-		"\x66\x66\x00\x3c\x66\x66\x66\x66\x3c\x00\x00\x00\x00\x00"
-		"\x00\x18\x18\x00\x7e\x00\x18\x18\x00\x00\x00\x00\x00\x00"
-		"\x00\x00\x00\x7c\xce\xde\xf6\xe6\x7c\x00\x00\x00\x00\x00"
-		"\x60\x30\x08\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00\x00"
-		"\x0c\x18\x20\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00\x00"
-		"\x30\x48\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00\x00"
-		"\xcc\xcc\x00\xcc\xcc\xcc\xcc\xcc\x76\x00\x00\x00\x00\x00"
-		"\x06\x0c\x10\x66\x66\x66\x66\x3c\x18\x18\x70\x00\x00\x00"
-		"\xf0\x60\x60\x7c\x66\x66\x66\x7c\x60\x60\xf0\x00\x00\x00"
-		"\x66\x66\x00\x66\x66\x66\x66\x3c\x18\x18\x70\x00\x00\x00"
-	, NULL, "Topaz (Amiga)", CIOLIB_ISO_8859_1}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-	,{NULL, NULL, NULL, NULL, CIOLIB_CP437}
-};
-#endif
diff --git a/ciolib/ansi_cio.c b/ciolib/ansi_cio.c
deleted file mode 100644
index 83d4b5c70eb463259571bf3bebbf0158ebe2e9af..0000000000000000000000000000000000000000
--- a/ciolib/ansi_cio.c
+++ /dev/null
@@ -1,1036 +0,0 @@
-/* $Id: ansi_cio.c,v 1.86 2020/04/13 18:36:21 deuce Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <fcntl.h>
-#include <stdarg.h>
-#include <stdlib.h>	/* malloc */
-
-#include <genwrap.h>
-#include <threadwrap.h>
-#include <semwrap.h>
-
-#ifdef __unix__
-	#include <termios.h>
-	struct termios tio_default;				/* Initial term settings */
-#endif
-
-#ifdef _WIN32
-	#ifndef ENABLE_VIRTUAL_TERMINAL_INPUT
-	#define ENABLE_VIRTUAL_TERMINAL_INPUT 0x0200
-	#endif
-	#ifndef ENABLE_VIRTUAL_TERMINAL_PROCESSING
-	#define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004
-	#endif
-#endif
-
-
-#include "ciolib.h"
-#include "ansi_cio.h"
-
-int	CIOLIB_ANSI_TIMEOUT=500;
-int  (*ciolib_ansi_readbyte_cb)(void)=ansi_readbyte_cb;
-int  (*ciolib_ansi_writebyte_cb)(const unsigned char ch)=ansi_writebyte_cb;
-int  (*ciolib_ansi_initio_cb)(void)=ansi_initio_cb;
-int  (*ciolib_ansi_writestr_cb)(const unsigned char *str, size_t len)=ansi_writestr_cb;
-
-static sem_t	got_key;
-static sem_t	got_input;
-static sem_t	used_input;
-static sem_t	goahead;
-static sem_t	need_key;
-static BOOL	sent_ga=FALSE;
-static int ansix=1;
-static int ansiy=1;
-
-static int ansi_got_row=0;
-static int doorway_enabled=0;
-
-const int 	ansi_colours[8]={0,4,2,6,1,5,3,7};
-static WORD		ansi_inch;
-static int		ansi_raw_inch;
-static WORD	*ansivmem;
-static int		force_move=1;
-
-/* Control sequence table definitions. */
-typedef struct
-{
-   char *pszSequence;
-   int chExtendedKey;
-} tODKeySequence;
-
-#define ANSI_KEY_UP		72<<8
-#define ANSI_KEY_DOWN	80<<8
-#define ANSI_KEY_RIGHT	0x4d<<8
-#define ANSI_KEY_LEFT	0x4b<<8
-#define ANSI_KEY_HOME	0x47<<8
-#define ANSI_KEY_END	0x4f<<8
-#define ANSI_KEY_F1		0x3b<<8
-#define ANSI_KEY_F2		0x3c<<8
-#define ANSI_KEY_F3		0x3d<<8
-#define ANSI_KEY_F4		0x3e<<8
-#define ANSI_KEY_F5		0x3f<<8
-#define ANSI_KEY_F6		0x40<<8
-#define ANSI_KEY_F7		0x41<<8
-#define ANSI_KEY_F8		0x42<<8
-#define ANSI_KEY_F9		0x43<<8
-#define ANSI_KEY_F10	0x44<<8
-#define ANSI_KEY_PGUP	0x49<<8
-#define ANSI_KEY_PGDN	0x51<<8
-#define ANSI_KEY_INSERT	0x52<<8
-#define ANSI_KEY_DELETE	0x53<<8
-#define ANSI_KEY_F11	0x85<<8
-#define ANSI_KEY_F12	0x86<<8
-
-static tODKeySequence ODaKeySequences[] =
-{
-   /* VT-52 control sequences. */
-   {"\033A", ANSI_KEY_UP},
-   {"\033B", ANSI_KEY_DOWN},
-   {"\033C", ANSI_KEY_RIGHT},
-   {"\033D", ANSI_KEY_LEFT},
-   {"\033H", ANSI_KEY_HOME},
-   {"\033K", ANSI_KEY_END},
-   {"\033P", ANSI_KEY_F1},
-   {"\033Q", ANSI_KEY_F2},
-   {"\033?w", ANSI_KEY_F3},
-   {"\033?x", ANSI_KEY_F4},
-   {"\033?t", ANSI_KEY_F5},
-   {"\033?u", ANSI_KEY_F6},
-   {"\033?q", ANSI_KEY_F7},
-   {"\033?r", ANSI_KEY_F8},
-   {"\033?p", ANSI_KEY_F9},
-
-   /* Control sequences common to VT-100/VT-102/VT-220/VT-320/ANSI. */
-   {"\033[A", ANSI_KEY_UP},
-   {"\033[B", ANSI_KEY_DOWN},
-   {"\033[C", ANSI_KEY_RIGHT},
-   {"\033[D", ANSI_KEY_LEFT},
-   {"\033[M", ANSI_KEY_PGUP},
-   {"\033[H\x1b[2J", ANSI_KEY_PGDN},
-   {"\033[H", ANSI_KEY_HOME},
-   {"\033[K", ANSI_KEY_END},
-   {"\033OP", ANSI_KEY_F1},
-   {"\033OQ", ANSI_KEY_F2},
-   {"\033OR", ANSI_KEY_F3},
-   {"\033OS", ANSI_KEY_F4},
-
-   /* VT-220/VT-320 specific control sequences. */
-   {"\033[1~",  ANSI_KEY_HOME}, /* Windows XP terminal.exe.  Is actually FIND */
-   {"\033[2~",  ANSI_KEY_INSERT},
-   {"\033[3~",  ANSI_KEY_DELETE},
-   {"\033[4~",  ANSI_KEY_END},  /* Windows XP terminal.exe.  Is actually SELECT */
-   {"\033[5~",  ANSI_KEY_PGUP},
-   {"\033[6~",  ANSI_KEY_PGDN},
-   {"\033[17~", ANSI_KEY_F6},
-   {"\033[18~", ANSI_KEY_F7},
-   {"\033[19~", ANSI_KEY_F8},
-   {"\033[20~", ANSI_KEY_F9},
-   {"\033[21~", ANSI_KEY_F10},
-   {"\033[23~", ANSI_KEY_F11},
-   {"\033[24~", ANSI_KEY_F12},
-
-   /* XTerm specific control sequences */
-   {"\033[15~", ANSI_KEY_F5},
-
-   /* Old, deprecated XTerm specific control sequences */
-   {"\033[11~", ANSI_KEY_F1},
-   {"\033[12~", ANSI_KEY_F2},
-   {"\033[13~", ANSI_KEY_F3},
-   {"\033[14~", ANSI_KEY_F4},
-
-   /* ANSI-specific control sequences. */
-   {"\033[L", ANSI_KEY_HOME},
-   {"\033Ow", ANSI_KEY_F3},
-   {"\033Ox", ANSI_KEY_F4},
-   {"\033Ot", ANSI_KEY_F5},
-   {"\033Ou", ANSI_KEY_F6},
-   {"\033Oq", ANSI_KEY_F7},
-   {"\033Or", ANSI_KEY_F8},
-   {"\033Op", ANSI_KEY_F9},
-
-   /* ECMA 048-specific control sequences. */
-   {"\033[V", ANSI_KEY_PGUP},
-   {"\033[U", ANSI_KEY_PGDN},
-   {"\033[@", ANSI_KEY_INSERT},
-   
-   
-   /* PROCOMM-specific control sequences (non-keypad alternatives). */
-   {"\033OA", ANSI_KEY_UP},
-   {"\033OB", ANSI_KEY_DOWN},
-   {"\033OC", ANSI_KEY_RIGHT},
-   {"\033OD", ANSI_KEY_LEFT},
-   {"\033OH", ANSI_KEY_HOME},
-   {"\033OK", ANSI_KEY_END},
-
-   /* Terminator */
-   {"",0}
-};
-
-#ifdef NEEDS_CFMAKERAW
-static void
-cfmakeraw(struct termios *t)
-{
-	t->c_iflag &= ~(IMAXBEL|IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON);
-	t->c_oflag &= ~OPOST;
-	t->c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN);
-	t->c_cflag &= ~(CSIZE|PARENB);
-	t->c_cflag |= CS8;
-}
-#endif
-
-/* Do NOT call this to output to the last column of the last row. */
-/* ONLY call this for chars which will move the cursor */
-static void ansi_sendch(char ch)
-{
-	if(!ch)
-		ch=' ';
-	ansix++;
-	if(ansix>cio_textinfo.screenwidth) {
-		/* Column 80 sux0rz */
-		force_move=1;
-		ansix=1;
-		ansiy++;
-		if(ansiy>cio_textinfo.screenheight) {
-			ansix=cio_textinfo.screenwidth;
-			ansiy=cio_textinfo.screenheight;
-		}
-	}
-	if(doorway_enabled && ch < ' ')
-		ciolib_ansi_writebyte_cb(0);
-	ciolib_ansi_writebyte_cb((unsigned char)ch);
-	/* We sent a control char... better make the next movement explicit */
-	if(ch<' ' && ch > 0) {
-		if(doorway_enabled) {
-			/* In doorway mode, some chars may want to force movement... */
-		}
-		else
-			force_move=1;
-	}
-}
-
-static void ansi_sendstr(const char *str,int len)
-{
-	if(len==-1)
-		len=strlen(str);
-	if(len)
-		ciolib_ansi_writestr_cb((unsigned char *)str, (size_t)len);
-}
-
-static void ansi_gotoxy_abs(int x, int y)
-{
-	char str[16];
-
-	str[0]=0;
-	if(x < 1
-		|| x > cio_textinfo.screenwidth
-		|| y < 1
-		|| y > cio_textinfo.screenheight)
-		return;
-
-	/* ToDo optimizations: use tabs for horizontal movement to tabstops */
-
-	/* Movement forced... always send position code */
-	if(force_move) {
-		sprintf(str,"\033[%d;%dH",y,x);
-		ansi_sendstr(str,-1);
-		force_move=0;
-		ansiy=y;
-		ansix=x;
-		return;
-	}
-
-	/* Moving to col 1 (and not already there)... use \r */
-	if(x==1 && ansix>1) {
-		ansi_sendstr("\r",1);
-		ansix=1;
-	}
-
-	/* Do we even NEED to move? */
-	if(x==ansix && y==ansiy)
-		return;
-
-	/* If we're already on the correct column */
-	if(x==ansix) {
-		/* Do we need to move up? */
-		if(y<ansiy) {
-			if(y==ansiy-1)
-				/* Only up one */
-				strcpy(str,"\033[A");
-			else
-				sprintf(str,"\033[%dA",ansiy-y);
-			ansi_sendstr(str,-1);
-			ansiy=y;
-			return;
-		}
-
-		/* We must have to move down then. */
-		/* Only one, use a newline */
-		if(y-ansiy < 4)
-			ansi_sendstr("\n\n\n",y-ansiy);
-		else {
-			sprintf(str,"\033[%dB",y-ansiy);
-			ansi_sendstr(str,-1);
-		}
-		ansiy=y;
-		return;
-	}
-
-	/* Ok, we need to change the column then... is the row right though? */
-	if(y==ansiy) {
-		/* Do we need to move left then? */
-		if(x<ansix) {
-			if(x==ansix-1)
-				strcpy(str,"\033[D");
-			else
-				sprintf(str,"\033[%dD",ansix-x);
-			ansi_sendstr(str,-1);
-			ansix=x;
-			return;
-		}
-
-		/* Must need to move right then */
-#if 1
-		/* Check if we can use spaces */
-		if(x-ansix < 5) {
-			int i,j;
-			j=1;
-			/* If all the intervening cells are spaces with the current background, we're good */
-			for(i=0; i<x-ansix; i++) {
-				if((ansivmem[(y-1)*cio_textinfo.screenwidth+ansix-1+i] & 0xff) != ' '/* && (ansivmem[(ansiy-1)*cio_textinfo.screenwidth+ansix-1+i]) & 0xff != 0*/) {
-					j=0;
-					break;
-				}
-				if((ansivmem[(y-1)*cio_textinfo.screenwidth+ansix-1+i] & 0x7000) != ((cio_textinfo.attribute<<8) & 0x7000)) {
-					j=0;
-					break;
-				}
-			}
-			if(j) {
-				ansi_sendstr("    ",x-ansix);
-				ansix=x;
-				return;
-			}
-		}
-#endif
-		if(x==ansix+1)
-			strcpy(str,"\033[C");
-		else
-			sprintf(str,"\033[%dC",x-ansix);
-		ansi_sendstr(str,-1);
-		ansix=x;
-		return;
-	}
-
-	/* Changing the row and the column... better use a fill movement then. */
-	sprintf(str,"\033[%d;%dH",y,x);
-	ansi_sendstr(str,-1);
-	ansiy=y;
-	ansix=x;
-	return;
-}
-
-void ansi_gotoxy(int x, int y)
-{
-	ansi_gotoxy_abs(x+cio_textinfo.winleft-1,y+cio_textinfo.wintop-1);
-	cio_textinfo.curx=x;
-	cio_textinfo.cury=y;
-}
-
-int ansi_puttext(int sx, int sy, int ex, int ey, void* buf)
-{
-	int x,y;
-	int cx,cy,i,j;
-	unsigned char *out;
-	WORD	sch;
-	struct text_info	ti;
-	int		attrib;
-	unsigned char *fill = (unsigned char*)buf;
-
-	gettextinfo(&ti);
-
-	if(		   sx < 1
-			|| sy < 1
-			|| ex < 1
-			|| ey < 1
-			|| sx > ti.screenwidth
-			|| sy > ti.screenheight
-			|| sx > ex
-			|| sy > ey
-			|| ex > ti.screenwidth
-			|| ey > ti.screenheight
-			|| fill==NULL)
-		return(0);
-
-	/* Check if this actually does anything */
-	/* TODO: This assumes a little-endian system!  Ack! */
-	if(sx==1 && sy==1 && ex==ti.screenwidth && ey==ti.screenheight
-			&& memcmp(buf,ansivmem,ti.screenwidth*ti.screenheight*2)==0)
-		return(1);
-
-	out=fill;
-	attrib=ti.attribute;
-
-	i=0;		/* Did a nasty. */
-
-	/* Check if this is a nasty screen clear... */
-	j=0;		/* We can clearscreen */
-	if(!i && sx==1 && sy==1 && ex==ti.screenwidth && ey==ti.screenheight && (*out==' ' || *out==0)) {
-		j=1;		/* We can clearscreen */
-		for(cy=sy-1;cy<ey;cy++) {
-			for(cx=sx-1;cx<ex;cx++) {
-				if(out[(cy*ti.screenwidth+cx)*2]!=*out
-						|| out[(cy*ti.screenwidth+cx)*2+1]!=*(out+1)) {
-					j=0;
-					cx=ex;
-					cy=ey;
-				}
-			}
-		}
-	}
-	if(j) {
-		textattr(*(out+1));
-		/* Many terminals make ESC[2J home the cursor */
-		ansi_sendstr("\033[2J\033[1;1H",-1);
-		ansix=1;
-		ansiy=1;
-		memcpy(ansivmem,out,ti.screenwidth*ti.screenheight*2);
-		i=1;
-	}
-#if 0
-	/* Check if this is a scroll */
-	if((!i) && sx==1 && sy==1 && ex==ti.screenwidth && ey==ti.screenheight-1
-			&& memcmp(buf,ansivmem,ti.screenwidth*(ti.screenheight-1)*2)==0) {
-		/* We need to get to the bottom line... */
-		if(ansiy < ti.screenheight) {
-			if(ansiy > ti.screenheight-4) {
-				ansi_sendstr("\n\n\n\n\n",ti.screenheight-ansiy-2);
-			}
-			else {
-				sprintf(str,"\033[%dB",ti.screenheight-ansiy-2);
-				ansi_sendstr(str,-1);
-			}
-		}
-		ansi_sendstr("\n",1);
-		memcpy(ansivmem,buf,ti.screenwidth*(ti.screenheight-1)*2);
-		for(x=0;x<ti.screenwidth;x++)
-			ansivmem[(ti.screenheight-1)*ti.screenwidth+x]=(ti.attribute<<8)|' ';
-		i=1;
-	}
-#endif
-#if 1
-	/* Check if this *includes* a scroll */
-	if((!i) && sx==1 && sy==1 && ex==ti.screenwidth && ey==ti.screenheight
-			&& memcmp(buf,ansivmem+ti.screenwidth,ti.screenwidth*(ti.screenheight-1)*2)==0) {
-		/* We need to get to the bottom line... */
-		if(ansiy < ti.screenheight) {
-			if(ansiy > ti.screenheight-4) {
-				ansi_sendstr("\n\n\n\n\n",ti.screenheight-ansiy-2);
-			}
-			else {
-				char str[6];
-				sprintf(str,"\033[%dB",ti.screenheight-ansiy-2);
-				ansi_sendstr(str,-1);
-			}
-		}
-		ansi_sendstr("\n",1);
-		memcpy(ansivmem,buf,ti.screenwidth*(ti.screenheight-1)*2);
-		for(x=0;x<ti.screenwidth;x++)
-			ansivmem[(ti.screenheight-1)*ti.screenwidth+x]=(ti.attribute<<8)|' ';
-		out += ti.screenwidth*(ti.screenheight-1)*2;
-		sy=ti.screenheight;
-	}
-#endif
-	if(!i) {
-		for(y=sy-1;y<ey;y++) {
-			for(x=sx-1;x<ex;x++) {
-				/*
-				 * Check if we can use clear2eol now... this means  the rest of the
-				 * chars on the line are the same attr, and are all spaces or NULLs
-				 * Also, if there's less than four chars left, it's not worth it.
-				 */
-
-				i=0;	/* number of differing chars from screen */
-				j=0;	/* Can use clrtoeol? */
-				for(cx=x; cx<ti.screenwidth; cx++) {
-					/* First, make sure that the rest are spaces or NULLs */
-					if(out[(cx-x)*2] != ' ' && out[(cx-x)*2] != 0)
-						break;
-					/* Next, make sure that the attribute is the same */
-					if(out[(cx-x)*2+1] != out[1])
-						break;
-					/* Finally, if this isn't what's on screen, increment i */
-					if((ansivmem[y*cio_textinfo.screenwidth+cx] & 0xff) != 0 && (ansivmem[y*cio_textinfo.screenwidth+cx] & 0xff) != ' ')
-						i++;
-					else if(ansivmem[y*cio_textinfo.screenwidth+cx] >> 8 != out[(cx-x)*2+1])
-						i++;
-				}
-				if(cx==ti.screenwidth)
-					j=1;
-
-				if(j && i>3) {
-					ansi_gotoxy_abs(x+1,y+1);
-					textattr(*(out+1));
-					ansi_sendstr("\033[K",-1);
-					for(cx=x; cx<ex; cx++) {
-						ansivmem[y*cio_textinfo.screenwidth+cx]=*(out++);
-						ansivmem[y*cio_textinfo.screenwidth+cx]|=(*(out++))<<8;
-					}
-					break;
-				}
-				sch=*(out++);
-				if(sch==27 && doorway_enabled==0)
-					sch=' ';
-				if(sch==0)
-					sch=' ';
-				sch |= (*(out++))<<8;
-				if(ansivmem[y*cio_textinfo.screenwidth+x]==sch)
-					continue;
-				ansivmem[y*cio_textinfo.screenwidth+x]=sch;
-				ansi_gotoxy_abs(x+1,y+1);
-				if(y>=cio_textinfo.screenheight-1 && x>=cio_textinfo.screenwidth-1)
-					continue;
-				if(attrib!=sch>>8) {
-					textattr(sch>>8);
-					attrib=sch>>8;
-				}
-				ansi_sendch((char)(sch&0xff));
-			}
-		}
-	}
-
-	if(!puttext_can_move)
-		gotoxy(ti.curx,ti.cury);
-	if(attrib!=ti.attribute)
-		textattr(ti.attribute);
-	return(1);
-}
-
-int ansi_gettext(int sx, int sy, int ex, int ey, void* buf)
-{
-	int x,y;
-	unsigned char *out;
-	WORD	sch;
-	struct text_info	ti;
-	unsigned char *fill = (unsigned char*)buf;
-
-	gettextinfo(&ti);
-
-	if(		   sx < 1
-			|| sy < 1
-			|| ex < 1
-			|| ey < 1
-			|| sx > ti.screenwidth
-			|| sy > ti.screenheight
-			|| sx > ex
-			|| sy > ey
-			|| ex > ti.screenwidth
-			|| ey > ti.screenheight
-			|| fill==NULL)
-		return(0);
-
-	out=fill;
-	for(y=sy-1;y<ey;y++) {
-		for(x=sx-1;x<ex;x++) {
-			sch=ansivmem[y*cio_textinfo.screenwidth+x];
-			*(out++)=sch & 0xff;
-			*(out++)=sch >> 8;
-		}
-	}
-	return(1);
-}
-
-void ansi_textattr(int attr)
-{
-	char str[16];
-	int fg,ofg;
-	int bg,obg;
-	int bl,obl;
-	int br,obr;
-	int oa;
-
-	str[0]=0;
-	if(cio_textinfo.attribute==attr)
-		return;
-
-	bl=attr&0x80;
-	bg=(attr>>4)&0x7;
-	fg=attr&0x07;
-	br=attr&0x08;
-
-	oa=cio_textinfo.attribute;
-	obl=oa&0x80;
-	obg=(oa>>4)&0x7;
-	ofg=oa&0x07;
-	obr=oa&0x08;
-
-	cio_textinfo.attribute=attr;
-
-	strcpy(str,"\033[");
-	if(obl!=bl) {
-		if(!bl)
-#if 0
-			strcat(str,"25;");
-#else
-		{
-			strcat(str,"0;");
-			ofg=7;
-			obg=0;
-			obr=0;
-		}
-#endif
-		else
-			strcat(str,"5;");
-	}
-	if(br!=obr) {
-		if(br)
-			strcat(str,"1;");
-		else
-#if 0
-			strcat(str,"22;");
-#else
-		{
-			strcat(str,"0;");
-			if(bl)
-				strcat(str,"5;");
-			ofg=7;
-			obg=0;
-		}
-#endif
-	}
-	if(fg!=ofg)
-		sprintf(str+strlen(str),"3%d;",ansi_colours[fg]);
-	if(bg!=obg)
-		sprintf(str+strlen(str),"4%d;",ansi_colours[bg]);
-	str[strlen(str)-1]='m';
-	ansi_sendstr(str,-1);
-	cio_textinfo.attribute=attr;
-}
-
-#if defined(__BORLANDC__)
-        #pragma argsused
-#endif
-static void ansi_keyparse(void *par)
-{
-	int		gotesc=0;
-	int		gotnull=0;
-	char	seq[64];
-	int		ch;
-	int		i;
-	char	*p;
-	int		timeout=0;
-	int		timedout=0;
-	int		unknown=0;
-
-	SetThreadName("ANSI Keyparse");
-	seq[0]=0;
-	for(;;) {
-		if(ansi_got_row)
-			sem_wait(&goahead);
-		if(timedout || unknown) {
-			for(p=seq;*p;p++) {
-				ansi_inch=*p;
-				sem_post(&got_input);
-				sem_wait(&used_input);
-				sem_wait(&goahead);
-			}
-			gotesc=0;
-			timeout=0;
-			seq[0]=0;
-		}
-		if(!timedout)
-			sem_post(&need_key);
-		timedout=0;
-		unknown=0;
-		if(timeout) {
-			if(sem_trywait_block(&got_key,timeout)) {
-				timedout=1;
-				sem_post(&goahead);
-				continue;
-			}
-		}
-		else
-			sem_wait(&got_key);
-
-		ch=ansi_raw_inch;
-		if(ch==-2) {
-			ansi_inch=0x0100;
-			sem_post(&got_input);
-			/* Two-byte code, need to post twice times and wait for one to
-			   be received */
-			sem_wait(&used_input);
-			sem_wait(&goahead);
-			sem_post(&got_input);
-			sem_wait(&used_input);
-		}
-		if(gotnull==2) {
-			// 0xe0 enhanced keyboard key... translate to 0x00 key for now.
-
-			ansi_inch=ch<<8;	// (ch<<8)|0xe0;
-			sem_post(&got_input);
-			/* Two-byte code, need to post twice times and wait for one to
-			   be received */
-			sem_wait(&used_input);
-			sem_wait(&goahead);
-			sem_post(&got_input);
-			sem_wait(&used_input);
-			gotnull=0;
-			continue;
-		}
-		if(gotnull==1) {
-			if(ch==0xe0) {
-				gotnull=2;
-				// Need another key... keep looping.
-				sem_post(&goahead);
-				continue;
-			}
-			ansi_inch=ch<<8;
-			sem_post(&got_input);
-			/* Two-byte code, need to post twice and wait for one to
-			   be received */
-			sem_wait(&used_input);
-			sem_wait(&goahead);
-			sem_post(&got_input);
-			sem_wait(&used_input);
-			gotnull=0;
-			continue;
-		}
-
-		switch(gotesc) {
-			case 1:	/* Escape Sequence */
-				timeout=CIOLIB_ANSI_TIMEOUT;
-				seq[strlen(seq)+1]=0;
-				seq[strlen(seq)]=ch;
-				if(strlen(seq)>=sizeof(seq)-2) {
-					gotesc=0;
-					break;
-				}
-				if((ch<'0' || ch>'9')		/* End of ESC sequence */
-						&& ch!=';'
-						&& ch!='?'
-						&& (strlen(seq)==2?ch != '[':1)
-						&& (strlen(seq)==2?ch != 'O':1)) {
-					unknown=1;
-					gotesc=0;
-					timeout=0;
-					for(i=0;ODaKeySequences[i].pszSequence[0];i++) {
-						if(!strcmp(seq,ODaKeySequences[i].pszSequence)) {
-							ansi_inch=ODaKeySequences[i].chExtendedKey;
-							sem_post(&got_input);
-							/* Two-byte code, need to post twice and wait for one to
-							   be received */
-							sem_wait(&used_input);
-							sem_wait(&goahead);
-							sem_post(&got_input);
-							sem_wait(&used_input);
-							unknown=0;
-							seq[0]=0;
-							break;
-						}
-					}
-					/* ANSI position report? */
-					if(ch=='R') {
-						if(strspn(seq,"\033[0123456789;R")==strlen(seq)) {
-							p=seq+2;
-							i=strtol(p,&p,10);
-							if(i>cio_textinfo.screenheight) {
-								cio_textinfo.screenheight=i;
-								if(*p==';') {
-									i=strtol(p+1, NULL, 10);
-									if(i>cio_textinfo.screenwidth)
-										cio_textinfo.screenwidth=i;
-								}
-								ansi_got_row=cio_textinfo.screenheight;;
-							}
-						}
-						unknown=0;
-					}
-					if(unknown) {
-						sem_post(&goahead);
-						continue;
-					}
-				}
-				else {
-					/* Need more keys... keep looping */
-					sem_post(&goahead);
-				}
-				break;
-			default:
-				if(ch==27) {
-					seq[0]=27;
-					seq[1]=0;
-					gotesc=1;
-					timeout=CIOLIB_ANSI_TIMEOUT;
-					/* Need more keys... keep going... */
-					sem_post(&goahead);
-					break;
-				}
-				if(ch==10) {
-					/* The \n that goes with the prev \r (hopefully) */
-					/* Eat it and keep chuggin' */
-					sem_post(&goahead);
-					break;
-				}
-				if(doorway_enabled && ch==0) {
-					/* Got a NULL. ASSume this is a doorway mode char */
-					gotnull=1;
-					sem_post(&goahead);
-					break;
-				}
-				ansi_inch=ch;
-				sem_post(&got_input);
-				sem_wait(&used_input);
-				break;
-		}
-	}
-}
-
-#if defined(__BORLANDC__)
-        #pragma argsused
-#endif
-static void ansi_keythread(void *params)
-{
-	int	sval=1;
-
-	SetThreadName("ANSI Key");
-	_beginthread(ansi_keyparse,1024,NULL);
-
-	for(;;) {
-		sem_wait(&need_key);
-		/* If you already have a key, don't get another */
-		sem_getvalue(&got_key,&sval);
-		if(!sval) {
-			ansi_raw_inch=ciolib_ansi_readbyte_cb();
-			if(ansi_raw_inch >= 0 || ansi_raw_inch==-2)
-				sem_post(&got_key);
-			else
-				SLEEP(1);
-		}
-		else
-			SLEEP(1);
-	}
-}
-
-int ansi_kbhit(void)
-{
-	int	sval=1;
-
-	if(!sent_ga) {
-		sem_post(&goahead);
-		sent_ga=TRUE;
-	}
-	sem_getvalue(&got_input,&sval);
-	return(sval);
-}
-
-void ansi_setcursortype(int type)
-{
-	switch(type) {
-		case _NOCURSOR:
-		case _SOLIDCURSOR:
-		default:
-			break;
-	}
-}
-
-int ansi_getch(void)
-{
-	int ch;
-
-	if(!sent_ga) {
-		sem_post(&goahead);
-		sent_ga=TRUE;
-	}
-	sem_wait(&got_input);
-	ch=ansi_inch&0xff;
-	ansi_inch=ansi_inch>>8;
-	sem_post(&used_input);
-	sent_ga=FALSE;
-	return(ch);
-}
-
-void ansi_beep(void)
-{
-	ansi_sendstr("\7",1);
-}
-
-#if defined(__BORLANDC__)
-        #pragma argsused
-#endif
-void ansi_textmode(int mode)
-{
-	cio_textinfo.winleft=1;
-	cio_textinfo.wintop=1;
-	cio_textinfo.winright=cio_textinfo.screenwidth;
-	cio_textinfo.winbottom=cio_textinfo.screenheight;
-	cio_textinfo.attribute=7;
-	cio_textinfo.normattr=7;
-	cio_textinfo.currmode=COLOR_MODE;
-	cio_textinfo.curx=1;
-	cio_textinfo.cury=1;
-	ansix=1;
-	ansiy=1;
-}
-
-#ifdef __unix__
-void ansi_fixterm(void)
-{
-	tcsetattr(STDIN_FILENO,TCSANOW,&tio_default);
-}
-#endif
-
-#ifndef ENABLE_EXTENDED_FLAGS
-#define ENABLE_INSERT_MODE		0x0020
-#define ENABLE_QUICK_EDIT_MODE	0x0040
-#define ENABLE_EXTENDED_FLAGS	0x0080
-#define ENABLE_AUTO_POSITION	0x0100
-#endif
-
-/*
- * Returns -1 if no character read or -2 on abort
- */
-int ansi_readbyte_cb(void)
-{
-	unsigned char ch;
-
-	if(fread(&ch,1,1,stdin)!=1)
-		return(-1);
-	return(ch);
-}
-
-int ansi_writebyte_cb(const unsigned char ch)
-{
-	return(fwrite(&ch,1,1,stdout));
-}
-
-int ansi_writestr_cb(const unsigned char *str, size_t len)
-{
-	return(fwrite(str,len,1,stdout));
-}
-
-int ansi_initio_cb(void)
-{
-#ifdef _WIN32
-	DWORD conmode = 0;
-	if(isatty(fileno(stdin))) {
-		if(!SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), ENABLE_VIRTUAL_TERMINAL_INPUT))
-			return(0);
-
-		GetConsoleMode(GetStdHandle(STD_OUTPUT_HANDLE), &conmode);
-		if(!SetConsoleMode(GetStdHandle(STD_OUTPUT_HANDLE), conmode | ENABLE_VIRTUAL_TERMINAL_PROCESSING))
-			return(0);
-	}
-	setmode(fileno(stdout),_O_BINARY);
-	setmode(fileno(stdin),_O_BINARY);
-	setvbuf(stdout, NULL, _IONBF, 0);
-#else
-	struct termios tio_raw;
-
-	if (isatty(STDIN_FILENO))  {
-		tcgetattr(STDIN_FILENO,&tio_default);
-		tio_raw = tio_default;
-		cfmakeraw(&tio_raw);
-		tcsetattr(STDIN_FILENO,TCSANOW,&tio_raw);
-		setvbuf(stdout, NULL, _IONBF, 0);
-		atexit(ansi_fixterm);
-	}
-#endif
-	return(0);
-}
-
-#if defined(__BORLANDC__)
-        #pragma argsused
-#endif
-int ansi_initciolib(long inmode)
-{
-	int i;
-	char *init="\033[s\033[99B\033[99B\033[99B_\033[99C\033[99C\033[99C_\033[6n\033[u\033[0m_\033[2J\033[H";
-	time_t start;
-
-	cio_api.options = 0;
-
-	ansi_textmode(1);
-	cio_textinfo.screenheight=24;
-	cio_textinfo.screenwidth=80;
-	ciolib_ansi_initio_cb();
-
-	sem_init(&got_key,0,0);
-	sem_init(&got_input,0,0);
-	sem_init(&used_input,0,0);
-	sem_init(&goahead,0,0);
-	sem_init(&need_key,0,0);
-
-	ansi_sendstr(init,-1);
-	_beginthread(ansi_keythread,1024,NULL);
-	start=time(NULL);
-	while(time(NULL)-start < 5 && !ansi_got_row)
-		SLEEP(1);
-	if(!ansi_got_row) {
-		cio_textinfo.screenheight=24;
-		cio_textinfo.screenwidth=80;
-		ansi_got_row=24;
-	}
-	ansivmem=(WORD *)malloc(cio_textinfo.screenheight*cio_textinfo.screenwidth*sizeof(WORD));
-	for(i=0;i<cio_textinfo.screenheight*cio_textinfo.screenwidth;i++)
-		ansivmem[i]=0x0720;
-	/* drain all the semaphores */
-	sem_reset(&got_key);
-	sem_reset(&got_input);
-	sem_reset(&used_input);
-	sem_reset(&goahead);
-	sem_reset(&need_key);
-	return(1);
-}
-
-void ansi_suspend(void)
-{
-#if defined _MSC_VER
-	// Prevents the wait for a key press when exit() is called and the stdin stream is flushed
-	_unlock_file(stdin);
-#endif
-}
-
-CIOLIBEXPORT void ansi_ciolib_setdoorway(int enable)
-{
-	if(cio_api.mode!=CIOLIB_MODE_ANSI)
-		return;
-	switch(enable) {
-	case 0:
-		ansi_sendstr("\033[=255l",7);
-		doorway_enabled=0;
-		break;
-	default:
-		ansi_sendstr("\033[=255h",7);
-		doorway_enabled=1;
-		break;
-	}
-}
diff --git a/ciolib/ansi_cio.h b/ciolib/ansi_cio.h
deleted file mode 100644
index 1a652533a0cbdf97ab569251fc607b1e7585f636..0000000000000000000000000000000000000000
--- a/ciolib/ansi_cio.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/* $Id: ansi_cio.h,v 1.11 2018/07/24 01:10:58 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#if (defined CIOLIB_IMPORTS)
- #undef CIOLIB_IMPORTS
-#endif
-#if (defined CIOLIB_EXPORTS)
- #undef CIOLIB_EXPORTS
-#endif
-
-#include "ciolib.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-extern int	CIOLIB_ANSI_TIMEOUT;
-extern int  (*ciolib_ansi_readbyte_cb)(void);
-extern int  (*ciolib_ansi_writebyte_cb)(const unsigned char ch);
-extern int  (*ciolib_ansi_initio_cb)(void);
-extern int  (*ciolib_ansi_writestr_cb)(const unsigned char *str, size_t len);
-
-int ansi_readbyte_cb(void);
-int ansi_writebyte_cb(const unsigned char ch);
-int ansi_initio_cb(void);
-int ansi_writestr_cb(const unsigned char *str, size_t len);
-
-int ansi_puttext(int sx, int sy, int ex, int ey, void *fill);
-int ansi_gettext(int sx, int sy, int ex, int ey, void *fill);
-void ansi_textattr(int);
-int ansi_kbhit(void);
-void ansi_delay(long msec);
-int ansi_wherey(void);
-int ansi_wherex(void);
-int ansi_putch(int ch);
-void ansi_gotoxy(int x, int y);
-int ansi_initciolib(long inmode);
-void ansi_gettextinfo(struct text_info *info);
-void ansi_setcursortype(int type);
-int ansi_getch(void);
-int ansi_getche(void);
-void ansi_beep(void);
-void ansi_textmode(int mode);
-void ansi_suspend(void);
-#ifdef __cplusplus
-}
-#endif
-
diff --git a/ciolib/bitmap_con.c b/ciolib/bitmap_con.c
deleted file mode 100644
index 06fabef73291b7ecced287fa04b72784f042c4ab..0000000000000000000000000000000000000000
--- a/ciolib/bitmap_con.c
+++ /dev/null
@@ -1,1785 +0,0 @@
-/* $Id: bitmap_con.c,v 1.148 2020/06/27 00:04:44 deuce Exp $ */
-
-#include <stdarg.h>
-#include <stdio.h>		/* NULL */
-#include <stdlib.h>
-#include <string.h>
-
-#include "threadwrap.h"
-#include "semwrap.h"
-#include "gen_defs.h"
-#include "genwrap.h"
-#include "dirwrap.h"
-#include "xpbeep.h"
-#include "scale.h"
-
-#if (defined CIOLIB_IMPORTS)
- #undef CIOLIB_IMPORTS
-#endif
-#if (defined CIOLIB_EXPORTS)
- #undef CIOLIB_EXPORTS
-#endif
-
-#include "ciolib.h"
-#include "vidmodes.h"
-#include "bitmap_con.h"
-
-static uint32_t palette[65536];
-
-#if 0
-
-static int dbg_pthread_mutex_lock(pthread_mutex_t *lptr, unsigned line)
-{
-	int ret = pthread_mutex_lock(lptr);
-
-	if (ret)
-		fprintf(stderr, "pthread_mutex_lock() returned %d at %u\n", ret, line);
-	return ret;
-}
-
-static int dbg_pthread_mutex_unlock(pthread_mutex_t *lptr, unsigned line)
-{
-	int ret = pthread_mutex_unlock(lptr);
-
-	if (ret)
-		fprintf(stderr, "pthread_mutex_lock() returned %d at %u\n", ret, line);
-	return ret;
-}
-
-static int dbg_pthread_mutex_trylock(pthread_mutex_t *lptr, unsigned line)
-{
-	int ret = pthread_mutex_trylock(lptr);
-
-	if (ret)
-		fprintf(stderr, "pthread_mutex_lock() returned %d at %u\n", ret, line);
-	return ret;
-}
-
-#define pthread_mutex_lock(a)		dbg_pthread_mutex_lock(a, __LINE__)
-#define pthread_mutex_unlock(a)		dbg_pthread_mutex_unlock(a, __LINE__)
-#define pthread_mutex_trylock(a)	dbg_pthread_trymutex_lock(a, __LINE__)
-
-#endif
-
-/* Structs */
-
-struct bitmap_screen {
-	uint32_t *screen;
-	int		screenwidth;
-	int		screenheight;
-	pthread_mutex_t	screenlock;
-	int		update_pixels;
-	struct rectlist *rect;
-};
-
-struct bitmap_callbacks {
-	void	(*drawrect)		(struct rectlist *data);
-	void	(*flush)		(void);
-	pthread_mutex_t lock;
-	unsigned rects;
-};
-
-/* Static globals */
-
-static int default_font=-99;
-static int current_font[4]={-99, -99, -99, -99};
-static int bitmap_initialized=0;
-static struct bitmap_screen screena;
-static struct bitmap_screen screenb;
-struct video_stats vstat;
-static struct bitmap_callbacks callbacks;
-static unsigned char *font[4];
-static int force_redraws=0;
-static int force_cursor=0;
-struct rectlist *free_rects;
-pthread_mutex_t free_rect_lock;
-
-/* The read lock must be held here. */
-#define PIXEL_OFFSET(screen, x, y)	( (y)*(screen).screenwidth+(x) )
-
-/* Exported globals */
-
-pthread_mutex_t		vstatlock;
-pthread_mutex_t blinker_lock;
-
-/* Forward declarations */
-
-static int bitmap_loadfont_locked(const char *filename);
-static void set_vmem_cell(struct vstat_vmem *vmem_ptr, size_t pos, uint16_t cell, uint32_t fg, uint32_t bg);
-static int bitmap_attr2palette_locked(uint8_t attr, uint32_t *fgp, uint32_t *bgp);
-static void	cb_drawrect(struct rectlist *data);
-static void request_redraw_locked(void);
-static void request_redraw(void);
-static void memset_u32(void *buf, uint32_t u, size_t len);
-static int bitmap_draw_one_char(unsigned int xpos, unsigned int ypos);
-static void cb_flush(void);
-static int check_redraw(void);
-static void blinker_thread(void *data);
-static __inline void both_screens(struct bitmap_screen** current, struct bitmap_screen** noncurrent);
-static int update_from_vmem(int force);
-static int bitmap_vmem_puttext_locked(int sx, int sy, int ex, int ey, struct vmem_cell *fill);
-static uint32_t color_value(uint32_t col);
-void bitmap_drv_free_rect(struct rectlist *rect);
-
-/**************************************************************/
-/* These functions get called from the driver and ciolib only */
-/**************************************************************/
-
-static int bitmap_loadfont_locked(const char *filename)
-{
-	static char current_filename[MAX_PATH];
-	unsigned int fontsize;
-	int fdw;
-	int fw;
-	int fh;
-	int i;
-	FILE	*fontfile=NULL;
-
-	if(!bitmap_initialized)
-		return(0);
-	if(current_font[0]==-99 || current_font[0]>(sizeof(conio_fontdata)/sizeof(struct conio_font_data_struct)-2)) {
-		for(i=0; conio_fontdata[i].desc != NULL; i++) {
-			if(!strcmp(conio_fontdata[i].desc, "Codepage 437 English")) {
-				current_font[0]=i;
-				break;
-			}
-		}
-		if(conio_fontdata[i].desc==NULL)
-			current_font[0]=0;
-	}
-	if(current_font[0]==-1)
-		filename=current_filename;
-	else if(conio_fontdata[current_font[0]].desc==NULL)
-		return(0);
-
-	for (i=1; i<sizeof(current_font)/sizeof(current_font[0]); i++) {
-		if(current_font[i] == -1)
-			;
-		else if (current_font[i] < 0)
-			current_font[i]=current_font[0];
-		else if(conio_fontdata[current_font[i]].desc==NULL)
-			current_font[i]=current_font[0];
-	}
-
-	fh=vstat.charheight;
-	fdw = vstat.charwidth - (vstat.flags & VIDMODES_FLAG_EXPAND) ? 1 : 0;
-	fw = fdw / 8 + (fdw % 8 ? 1 : 0);
-
-	fontsize=fw*fh*256*sizeof(unsigned char);
-
-	for (i=0; i<sizeof(font)/sizeof(font[0]); i++) {
-		if(font[i])
-			FREE_AND_NULL(font[i]);
-		if((font[i]=(unsigned char *)malloc(fontsize))==NULL)
-			goto error_return;
-	}
-
-	if(filename != NULL) {
-		if(flength(filename)!=fontsize)
-			goto error_return;
-		if((fontfile=fopen(filename,"rb"))==NULL)
-			goto error_return;
-		if(fread(font[0], 1, fontsize, fontfile)!=fontsize)
-			goto error_return;
-		fclose(fontfile);
-		fontfile=NULL;
-		current_font[0]=-1;
-		if(filename != current_filename)
-			SAFECOPY(current_filename,filename);
-		for (i=1; i<sizeof(font)/sizeof(font[0]); i++) {
-			if (current_font[i]==-1)
-				memcpy(font[i], font[0], fontsize);
-		}
-	}
-	for (i=0; i<sizeof(font)/sizeof(font[0]); i++) {
-		if (current_font[i] < 0)
-			continue;
-		switch(fdw) {
-			case 8:
-				switch(vstat.charheight) {
-					case 8:
-						if(conio_fontdata[current_font[i]].eight_by_eight==NULL) {
-							if (i==0)
-								goto error_return;
-							else
-								FREE_AND_NULL(font[i]);
-						}
-						else
-							memcpy(font[i], conio_fontdata[current_font[i]].eight_by_eight, fontsize);
-						break;
-					case 14:
-						if(conio_fontdata[current_font[i]].eight_by_fourteen==NULL) {
-							if (i==0)
-								goto error_return;
-							else
-								FREE_AND_NULL(font[i]);
-						}
-						else
-							memcpy(font[i], conio_fontdata[current_font[i]].eight_by_fourteen, fontsize);
-						break;
-					case 16:
-						if(conio_fontdata[current_font[i]].eight_by_sixteen==NULL) {
-							if (i==0)
-								goto error_return;
-							else
-								FREE_AND_NULL(font[i]);
-						}
-						else
-							memcpy(font[i], conio_fontdata[current_font[i]].eight_by_sixteen, fontsize);
-						break;
-					default:
-						goto error_return;
-				}
-				break;
-			default:
-				goto error_return;
-		}
-	}
-
-    return(1);
-
-error_return:
-	for (i=0; i<sizeof(font)/sizeof(font[0]); i++)
-		FREE_AND_NULL(font[i]);
-	if(fontfile)
-		fclose(fontfile);
-	return(0);
-}
-
-/***************************************************/
-/* These functions get called from the driver only */
-/***************************************************/
-
-/***********************************************/
-/* These functions get called from ciolib only */
-/***********************************************/
-
-static int bitmap_vmem_puttext_locked(int sx, int sy, int ex, int ey, struct vmem_cell *fill)
-{
-	int x,y;
-	struct vstat_vmem *vmem_ptr;
-
-	if(!bitmap_initialized)
-		return(0);
-
-	if(		   sx < 1
-			|| sy < 1
-			|| ex < 1
-			|| ey < 1
-			|| sx > cio_textinfo.screenwidth
-			|| sy > cio_textinfo.screenheight
-			|| sx > ex
-			|| sy > ey
-			|| ex > cio_textinfo.screenwidth
-			|| ey > cio_textinfo.screenheight
-			|| fill==NULL)
-		return(0);
-
-	pthread_mutex_lock(&vstatlock);
-	vmem_ptr = get_vmem(&vstat);
-	for(y=sy-1;y<ey;y++) {
-		for(x=sx-1;x<ex;x++) {
-			memcpy(&vmem_ptr->vmem[y*cio_textinfo.screenwidth+x], fill++, sizeof(*fill));
-			bitmap_draw_one_char(x+1, y+1);
-		}
-	}
-	release_vmem(vmem_ptr);
-	pthread_mutex_unlock(&vstatlock);
-	return(1);
-}
-
-static void
-set_vmem_cell(struct vstat_vmem *vmem_ptr, size_t pos, uint16_t cell, uint32_t fg, uint32_t bg)
-{
-	int		altfont;
-	int		font;
-
-	bitmap_attr2palette_locked(cell>>8, fg == 0xffffff ? &fg : NULL, bg == 0xffffff ? &bg : NULL);
-
-	altfont = (cell>>11 & 0x01) | ((cell>>14) & 0x02);
-	if (!vstat.bright_altcharset)
-		altfont &= ~0x01;
-	if (!vstat.blink_altcharset)
-		altfont &= ~0x02;
-	font=current_font[altfont];
-	if (font == -99)
-		font = default_font;
-	if (font < 0 || font > 255)
-		font = 0;
-
-	vmem_ptr->vmem[pos].legacy_attr = cell >> 8;
-	vmem_ptr->vmem[pos].ch = cell & 0xff;
-	vmem_ptr->vmem[pos].fg = fg;
-	vmem_ptr->vmem[pos].bg = bg;
-	vmem_ptr->vmem[pos].font = font;
-}
-
-static int bitmap_attr2palette_locked(uint8_t attr, uint32_t *fgp, uint32_t *bgp)
-{
-	uint32_t fg = attr & 0x0f;
-	uint32_t bg = (attr >> 4) & 0x0f;
-
-	if(!vstat.bright_background)
-		bg &= 0x07;
-	if(vstat.no_bright)
-		fg &= 0x07;
-
-	if (fgp)
-		*fgp = vstat.palette[fg];
-	if (bgp)
-		*bgp = vstat.palette[bg];
-
-	return 1;
-}
-
-/**********************************************************************/
-/* These functions get called from ciolib and the blinker thread only */
-/**********************************************************************/
-
-static int
-cursor_visible_locked(void)
-{
-	if (!vstat.curs_visible)
-		return 0;
-	if (vstat.curs_start > vstat.curs_end)
-		return 0;
-	if (vstat.curs_blinks) {
-		if (vstat.curs_blink)
-			return 1;
-		return 0;
-	}
-	return 1;
-}
-
-static void	cb_drawrect(struct rectlist *data)
-{
-	int x, y;
-	uint32_t *pixel;
-	uint32_t cv;
-
-	if (data == NULL)
-		return;
-	/*
-	 * Draw the cursor if it's visible
-	 * 1) It's located at vstat.curs_col/vstat.curs_row.
-	 * 2) The size is defined by vstat.curs_start and vstat.curs_end...
-	 *    the are both rows from the top of the cell.
-	 *    If vstat.curs_start > vstat.curs_end, the cursor is not shown.
-	 * 3) If vstat.curs_visible is false, the cursor is not shown.
-	 * 4) If vstat.curs_blinks is false, the cursor does not blink.
-	 * 5) When blinking, the cursor is shown when vstat.blink is true.
-	 */
-	pthread_mutex_lock(&vstatlock);
-	if (cursor_visible_locked()) {
-		cv = color_value(ciolib_fg);
-		for (y = vstat.curs_start; y <= vstat.curs_end; y++) {
-			pixel = &data->data[((vstat.curs_row - 1) * vstat.charheight + y) * data->rect.width + (vstat.curs_col - 1) * vstat.charwidth];
-			for (x = 0; x < vstat.charwidth; x++) {
-				*(pixel++) = cv;
-			}
-		}
-	}
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_lock(&callbacks.lock);
-	callbacks.drawrect(data);
-	callbacks.rects++;
-	pthread_mutex_unlock(&callbacks.lock);
-}
-
-static void request_redraw_locked(void)
-{
-	force_redraws = 1;
-}
-
-static void request_redraw(void)
-{
-	pthread_mutex_lock(&vstatlock);
-	request_redraw_locked();
-	pthread_mutex_unlock(&vstatlock);
-}
-
-/*
- * Called with the screen lock held
- */
-static struct rectlist *alloc_full_rect(struct bitmap_screen *screen)
-{
-	struct rectlist * ret;
-
-	pthread_mutex_lock(&free_rect_lock);
-	while (free_rects) {
-		if (free_rects->rect.width == screen->screenwidth && free_rects->rect.height == screen->screenheight) {
-			ret = free_rects;
-			free_rects = free_rects->next;
-			ret->next = NULL;
-			ret->rect.x = ret->rect.y = 0;
-			pthread_mutex_unlock(&free_rect_lock);
-			return ret;
-		}
-		else {
-			free(free_rects->data);
-			ret = free_rects->next;
-			free(free_rects);
-			free_rects = ret;
-		}
-	}
-	pthread_mutex_unlock(&free_rect_lock);
-
-	ret = malloc(sizeof(struct rectlist));
-	ret->next = NULL;
-	ret->rect.x = 0;
-	ret->rect.y = 0;
-	ret->rect.width = screen->screenwidth;
-	ret->rect.height = screen->screenheight;
-	ret->data = malloc(ret->rect.width * ret->rect.height * sizeof(ret->data[0]));
-	if (ret->data == NULL)
-		FREE_AND_NULL(ret);
-	return ret;
-}
-
-static uint32_t color_value(uint32_t col)
-{
-	if (col & 0x80000000)
-		return col & 0xffffff;
-	if ((col & 0xffffff) < sizeof(palette) / sizeof(palette[0]))
-		return palette[col & 0xffffff] & 0xffffff;
-	fprintf(stderr, "Invalid colour value: %08x\n", col);
-	return 0;
-}
-
-static struct rectlist *get_full_rectangle_locked(struct bitmap_screen *screen)
-{
-	struct rectlist *rect;
-
-	// TODO: Some sort of caching here would make things faster...?
-	if(callbacks.drawrect) {
-		rect = alloc_full_rect(screen);
-		if (!rect)
-			return rect;
-		memcpy(rect->data, screen->rect->data, sizeof(*rect->data) * screen->screenwidth * screen->screenheight);
-		return rect;
-	}
-	return NULL;
-}
-
-static void memset_u32(void *buf, uint32_t u, size_t len)
-{
-	size_t i;
-	char *cbuf = buf;
-
-	for (i = 0; i < len; i++) {
-		memcpy(cbuf, &u, sizeof(uint32_t));
-		cbuf += sizeof(uint32_t);
-	}
-}
-
-/*
- * vstatlock needs to be held.
- */
-static int bitmap_draw_one_char(unsigned int xpos, unsigned int ypos)
-{
-	uint32_t fg;
-	uint32_t bg;
-	int fdw;
-	int		xoffset=(xpos-1)*vstat.charwidth;
-	int		yoffset=(ypos-1)*vstat.charheight;
-	int		x;
-	int		fdx;
-	uint8_t fb = 0;
-	int		y;
-	int		fontoffset;
-	int		pixeloffset;
-	unsigned char *this_font;
-	WORD	sch;
-	struct vstat_vmem *vmem_ptr;
-	BOOL	draw_fg = TRUE;
-
-	if(!bitmap_initialized) {
-		return(-1);
-	}
-
-	vmem_ptr = vstat.vmem;
-
-	if(!vmem_ptr) {
-		return(-1);
-	}
-
-	sch=vmem_ptr->vmem[(ypos-1)*cio_textinfo.screenwidth+(xpos-1)].legacy_attr << 8 | vmem_ptr->vmem[(ypos-1)*cio_textinfo.screenwidth+(xpos-1)].ch;
-	fg = vmem_ptr->vmem[(ypos-1)*cio_textinfo.screenwidth+(xpos-1)].fg;
-	bg = vmem_ptr->vmem[(ypos-1)*cio_textinfo.screenwidth+(xpos-1)].bg;
-
-	if (vstat.forced_font) {
-		this_font = vstat.forced_font;
-	}
-	else {
-		if (current_font[0] == -1)
-			this_font = font[0];
-		else {
-			switch (vstat.charheight) {
-				case 8:
-					this_font = (unsigned char *)conio_fontdata[vmem_ptr->vmem[(ypos-1)*cio_textinfo.screenwidth+(xpos-1)].font].eight_by_eight;
-					break;
-				case 14:
-					this_font = (unsigned char *)conio_fontdata[vmem_ptr->vmem[(ypos-1)*cio_textinfo.screenwidth+(xpos-1)].font].eight_by_fourteen;
-					break;
-				case 16:
-					this_font = (unsigned char *)conio_fontdata[vmem_ptr->vmem[(ypos-1)*cio_textinfo.screenwidth+(xpos-1)].font].eight_by_sixteen;
-					break;
-				default:
-					return(-1);
-			}
-		}
-	}
-	if (this_font == NULL)
-		this_font = font[0];
-	fdw = vstat.charwidth - (vstat.flags & VIDMODES_FLAG_EXPAND) ? 1 : 0;
-	fontoffset=(sch & 0xff) * (vstat.charheight * ((fdw + 7) / 8));
-
-	pthread_mutex_lock(&screena.screenlock);
-	pthread_mutex_lock(&screenb.screenlock);
-
-	if ((xoffset + vstat.charwidth > screena.screenwidth) || (yoffset + vstat.charheight > screena.screenheight) ||
-	    (xoffset + vstat.charwidth > screenb.screenwidth) || (yoffset + vstat.charheight > screenb.screenheight)) {
-		pthread_mutex_unlock(&screenb.screenlock);
-		pthread_mutex_unlock(&screena.screenlock);
-		return(-1);
-	}
-
-	if((!screena.screen) || (!screenb.screen)) {
-		pthread_mutex_unlock(&screenb.screenlock);
-		pthread_mutex_unlock(&screena.screenlock);
-		return(-1);
-	}
-
-	draw_fg = ((!(sch & 0x8000)) || vstat.no_blink);
-	pixeloffset = PIXEL_OFFSET(screena, xoffset, yoffset);
-	for(y=0; y<vstat.charheight; y++) {
-		for(x=0; x<vstat.charwidth; x++) {
-			fdx = x;
-			fb = this_font[fontoffset];
-			if ((x & 0x07) == 7)
-				fontoffset++;
-			if (vstat.flags & VIDMODES_FLAG_EXPAND) {
-				if (x == vstat.charwidth - 1) {
-					fontoffset--;
-					fdx--;
-					if (!(vstat.flags & VIDMODES_FLAG_LINE_GRAPHICS_EXPAND)) {
-						fb = 0;
-					}
-					else if ((sch & 0xff) >= 0xC0 && (sch & 0xff) <= 0xDF) {
-						fb = this_font[fontoffset];
-					}
-					else
-						fb = 0;
-					
-				}
-			}
-
-			if(fb & (0x80 >> (fdx & 7)) && draw_fg) {
-				if (screena.screen[pixeloffset] != fg) {
-					screena.update_pixels = 1;
-					screena.screen[pixeloffset] = fg;
-					screena.rect->data[pixeloffset] = color_value(fg);
-				}
-			}
-			else {
-				if (screena.screen[pixeloffset] != bg) {
-					screena.update_pixels = 1;
-					screena.screen[pixeloffset] = bg;
-					screena.rect->data[pixeloffset] = color_value(bg);
-				}
-			}
-
-			if(fb & (0x80 >> (fdx & 7))) {
-				if (screenb.screen[pixeloffset] != fg) {
-					screenb.update_pixels = 1;
-					screenb.screen[pixeloffset] = fg;
-					screenb.rect->data[pixeloffset] = color_value(fg);
-				}
-			}
-			else {
-				if (screenb.screen[pixeloffset] != bg) {
-					screenb.update_pixels = 1;
-					screenb.screen[pixeloffset]=bg;
-					screenb.rect->data[pixeloffset] = color_value(bg);
-				}
-			}
-			pixeloffset++;
-		}
-		if (x & 0x07)
-			fontoffset++;
-		pixeloffset += screena.screenwidth - vstat.charwidth;
-	}
-	pthread_mutex_unlock(&screenb.screenlock);
-	pthread_mutex_unlock(&screena.screenlock);
-
-	return(0);
-}
-
-/***********************************************************/
-/* These functions get called from the blinker thread only */
-/***********************************************************/
-
-static void cb_flush(void)
-{
-	pthread_mutex_lock(&callbacks.lock);
-	if (callbacks.rects) {
-		callbacks.flush();
-		callbacks.rects = 0;
-	}
-	pthread_mutex_unlock(&callbacks.lock);
-}
-
-static int check_redraw(void)
-{
-	int ret;
-
-	pthread_mutex_lock(&vstatlock);
-	ret = force_redraws;
-	force_redraws = 0;
-	pthread_mutex_unlock(&vstatlock);
-	return ret;
-}
-
-/* Blinker Thread */
-static void blinker_thread(void *data)
-{
-	void *rect;
-	int count=0;
-	int curs_changed;
-	int blink_changed;
-	struct bitmap_screen *screen;
-	struct bitmap_screen *ncscreen;
-
-	SetThreadName("Blinker");
-	while(1) {
-		curs_changed = 0;
-		blink_changed = 0;
-		do {
-			SLEEP(10);
-			both_screens(&screen, &ncscreen);
-		} while (screen->screen == NULL);
-		count++;
-		if (count==25) {
-			pthread_mutex_lock(&vstatlock);
-			curs_changed = cursor_visible_locked();
-			if(vstat.curs_blink)
-				vstat.curs_blink=FALSE;
-			else
-				vstat.curs_blink=TRUE;
-			curs_changed = (curs_changed != cursor_visible_locked());
-			pthread_mutex_unlock(&vstatlock);
-		}
-		if(count==50) {
-			pthread_mutex_lock(&vstatlock);
-			if(vstat.blink)
-				vstat.blink=FALSE;
-			else
-				vstat.blink=TRUE;
-			blink_changed = 1;
-			curs_changed = cursor_visible_locked();
-			if(vstat.curs_blink)
-				vstat.curs_blink=FALSE;
-			else
-				vstat.curs_blink=TRUE;
-			curs_changed = (curs_changed != cursor_visible_locked());
-			count=0;
-			pthread_mutex_unlock(&vstatlock);
-		}
-		/* Lock out ciolib while we handle shit */
-		pthread_mutex_lock(&blinker_lock);
-		if (check_redraw()) {
-			if (update_from_vmem(TRUE))
-				request_redraw();
-		}
-		else {
-			if (count==0)
-				if (update_from_vmem(FALSE))
-					request_redraw();
-		}
-		pthread_mutex_lock(&screen->screenlock);
-		// TODO: Maybe we can optimize the blink_changed forced update?
-		if (screen->update_pixels || curs_changed || blink_changed) {
-			// If the other screen is update_pixels == 2, clear it.
-			pthread_mutex_lock(&ncscreen->screenlock);
-			if (ncscreen->update_pixels == 2)
-				ncscreen->update_pixels = 0;
-			pthread_mutex_unlock(&ncscreen->screenlock);
-			rect = get_full_rectangle_locked(screen);
-			screen->update_pixels = 0;
-			pthread_mutex_unlock(&screen->screenlock);
-			cb_drawrect(rect);
-		}
-		else {
-			if (force_cursor) {
-				rect = get_full_rectangle_locked(screen);
-			}
-			pthread_mutex_unlock(&screen->screenlock);
-			if (force_cursor) {
-				cb_drawrect(rect);
-				force_cursor = 0;
-			}
-		}
-		cb_flush();
-		pthread_mutex_unlock(&blinker_lock);
-	}
-}
-
-static __inline struct bitmap_screen *noncurrent_screen_locked(void)
-{
-	if (vstat.blink)
-		return &screenb;
-	return &screena;
-}
-
-static __inline struct bitmap_screen *current_screen_locked(void)
-{
-	if (vstat.blink)
-		return &screena;
-	return(&screenb);
-}
-
-static __inline void both_screens(struct bitmap_screen** current, struct bitmap_screen** noncurrent)
-{
-	pthread_mutex_lock(&vstatlock);
-	*current = current_screen_locked();
-	*noncurrent = noncurrent_screen_locked();
-	pthread_mutex_unlock(&vstatlock);
-}
-
-/*
- * Updates any changed cells... blinking, modified flags, and the cursor
- * Is also used (with force = TRUE) to completely redraw the screen from
- * vmem (such as in the case of a font load).
- */
-static int update_from_vmem(int force)
-{
-	static struct video_stats vs;
-	struct vstat_vmem *vmem_ptr;
-	int x,y,width,height;
-	unsigned int pos;
-
-	int bright_attr_changed=0;
-	int blink_attr_changed=0;
-
-	if(!bitmap_initialized)
-		return(-1);
-
-	width=cio_textinfo.screenwidth;
-	height=cio_textinfo.screenheight;
-
-	pthread_mutex_lock(&vstatlock);
-
-	if (vstat.vmem == NULL) {
-		pthread_mutex_unlock(&vstatlock);
-		return -1;
-	}
-
-	if(vstat.vmem->vmem == NULL) {
-		pthread_mutex_unlock(&vstatlock);
-		return -1;
-	}
-
-	/* If we change window size, redraw everything */
-	if(vs.cols!=vstat.cols || vs.rows != vstat.rows) {
-		/* Force a full redraw */
-		width=vstat.cols;
-		height=vstat.rows;
-		force=1;
-	}
-
-	/* Did the meaning of the blink bit change? */
-	if (vstat.bright_background != vs.bright_background ||
-			vstat.no_blink != vs.no_blink ||
-			vstat.blink_altcharset != vs.blink_altcharset)
-	    blink_attr_changed = 1;
-
-	/* Did the meaning of the bright bit change? */
-	if (vstat.no_bright != vs.no_bright ||
-			vstat.bright_altcharset != vs.bright_altcharset)
-		bright_attr_changed = 1;
-
-	/* Get vmem pointer */
-	vmem_ptr = get_vmem(&vstat);
-
-	/* 
-	 * Now we go through each character seeing if it's changed (or force is set)
-	 * We combine updates into rectangles by lines...
-	 * 
-	 * First, in the same line, we build this_rect.
-	 * At the end of the line, if this_rect is the same width as the screen,
-	 * we add it to last_rect.
-	 */
-
-	for(y=0;y<height;y++) {
-		pos=y*vstat.cols;
-		for(x=0;x<width;x++) {
-			/* Last this char been updated? */
-			if(force										/* Forced */
-			    || ((vstat.vmem->vmem[pos].legacy_attr & 0x80) && blink_attr_changed)
-			    || ((vstat.vmem->vmem[pos].legacy_attr & 0x08) && bright_attr_changed))	/* Bright char */
-			    {
-				bitmap_draw_one_char(x+1,y+1);
-			}
-			pos++;
-		}
-	}
-	release_vmem(vmem_ptr);
-
-	pthread_mutex_unlock(&vstatlock);
-
-	vs = vstat;
-
-	return(0);
-}
-
-/*************************************/
-
-/**********************/
-/* Called from ciolib */
-/**********************/
-int bitmap_puttext(int sx, int sy, int ex, int ey, void *fill)
-{
-	int x, y;
-	int ret = 1;
-	uint16_t *buf = fill;
-	struct vstat_vmem *vmem_ptr;
-
-	pthread_mutex_lock(&blinker_lock);
-
-	pthread_mutex_lock(&vstatlock);
-	vmem_ptr = get_vmem(&vstat);
-	for(y=sy-1;y<ey;y++) {
-		for(x=sx-1;x<ex;x++) {
-			set_vmem_cell(vmem_ptr, y*cio_textinfo.screenwidth+x, *(buf++), 0x00ffffff, 0x00ffffff);
-			bitmap_draw_one_char(x+1, y+1);
-		}
-	}
-	release_vmem(vmem_ptr);
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-	return ret;
-}
-
-int bitmap_vmem_puttext(int sx, int sy, int ex, int ey, struct vmem_cell *fill)
-{
-	int ret;
-
-	if(!bitmap_initialized)
-		return(0);
-
-	pthread_mutex_lock(&blinker_lock);
-	ret = bitmap_vmem_puttext_locked(sx, sy, ex, ey, fill);
-	pthread_mutex_unlock(&blinker_lock);
-
-	return ret;
-}
-
-int bitmap_vmem_gettext(int sx, int sy, int ex, int ey, struct vmem_cell *fill)
-{
-	int x,y;
-	struct vstat_vmem *vmem_ptr;
-
-	if(!bitmap_initialized)
-		return(0);
-
-	if(		   sx < 1
-			|| sy < 1
-			|| ex < 1
-			|| ey < 1
-			|| sx > ex
-			|| sy > ey
-			|| ex > cio_textinfo.screenwidth
-			|| ey > cio_textinfo.screenheight
-			|| fill==NULL) {
-		return(0);
-	}
-
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&vstatlock);
-	vmem_ptr = get_vmem(&vstat);
-	for(y=sy-1;y<ey;y++) {
-		for(x=sx-1;x<ex;x++)
-			memcpy(fill++, &vmem_ptr->vmem[y*cio_textinfo.screenwidth+x], sizeof(*fill));
-	}
-	release_vmem(vmem_ptr);
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-	return(1);
-}
-
-void bitmap_gotoxy(int x, int y)
-{
-	if(!bitmap_initialized)
-		return;
-	/* Move cursor location */
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&vstatlock);
-	if (vstat.curs_col != x + cio_textinfo.winleft - 1 || vstat.curs_row != y + cio_textinfo.wintop - 1) {
-		cio_textinfo.curx=x;
-		cio_textinfo.cury=y;
-		vstat.curs_col = x + cio_textinfo.winleft - 1;
-		vstat.curs_row = y + cio_textinfo.wintop - 1;
-		if (cursor_visible_locked())
-			force_cursor = 1;
-	}
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-}
-
-void bitmap_setcursortype(int type)
-{
-	if(!bitmap_initialized)
-		return;
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&vstatlock);
-	switch(type) {
-		case _NOCURSOR:
-			vstat.curs_start=0xff;
-			vstat.curs_end=0;
-			break;
-		case _SOLIDCURSOR:
-			vstat.curs_start=0;
-			vstat.curs_end=vstat.charheight-1;
-			force_cursor = 1;
-			break;
-		default:
-		    vstat.curs_start = vstat.default_curs_start;
-		    vstat.curs_end = vstat.default_curs_end;
-			force_cursor = 1;
-			break;
-	}
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-}
-
-int bitmap_setfont(int font, int force, int font_num)
-{
-	int changemode=0;
-	int	newmode=-1;
-	struct text_info ti;
-	struct vmem_cell	*old;
-	int		ow,oh;
-	int		row,col;
-	struct vmem_cell	*new;
-	int		attr;
-	struct vmem_cell	*pold;
-	struct vmem_cell	*pnew;
-
-	if(!bitmap_initialized)
-		return(0);
-	if(font < 0 || font>(sizeof(conio_fontdata)/sizeof(struct conio_font_data_struct)-2))
-		return(0);
-
-	if(conio_fontdata[font].eight_by_sixteen!=NULL)
-		newmode=C80;
-	else if(conio_fontdata[font].eight_by_fourteen!=NULL)
-		newmode=C80X28;
-	else if(conio_fontdata[font].eight_by_eight!=NULL)
-		newmode=C80X50;
-
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&vstatlock);
-	switch(vstat.charheight) {
-		case 8:
-			if(conio_fontdata[font].eight_by_eight==NULL) {
-				if(!force)
-					goto error_return;
-				else
-					changemode=1;
-			}
-			break;
-		case 14:
-			if(conio_fontdata[font].eight_by_fourteen==NULL) {
-				if(!force)
-					goto error_return;
-				else
-					changemode=1;
-			}
-			break;
-		case 16:
-			if(conio_fontdata[font].eight_by_sixteen==NULL) {
-				if(!force)
-					goto error_return;
-				else
-					changemode=1;
-			}
-			break;
-	}
-	if(changemode && (newmode==-1 || font_num > 1))
-		goto error_return;
-	switch(font_num) {
-		case 0:
-			default_font=font;
-			/* Fall-through */
-		case 1:
-			current_font[0]=font;
-			break;
-		case 2:
-		case 3:
-		case 4:
-			current_font[font_num-1]=font;
-			break;
-	}
-
-	if(changemode) {
-		gettextinfo(&ti);
-
-		attr=ti.attribute;
-		ow=ti.screenwidth;
-		oh=ti.screenheight;
-
-		old=malloc(ow*oh*sizeof(*old));
-		if(old) {
-			bitmap_vmem_gettext(1,1,ow,oh,old);
-			textmode(newmode);
-			new=malloc(ti.screenwidth*ti.screenheight*sizeof(*new));
-			if(!new) {
-				free(old);
-				pthread_mutex_unlock(&vstatlock);
-				pthread_mutex_unlock(&blinker_lock);
-				return 0;
-			}
-			pold=old;
-			pnew=new;
-			for(row=0; row<ti.screenheight; row++) {
-				for(col=0; col<ti.screenwidth; col++) {
-					if(row < oh) {
-						if(col < ow) {
-							memcpy(new, old, sizeof(*old));
-							new->font = font;
-							new++;
-							old++;
-						}
-						else {
-							new->ch=' ';
-							new->legacy_attr=attr;
-							new->font = font;
-							new->fg = ciolib_fg;
-							new->bg = ciolib_bg;
-							new++;
-						}
-					}
-					else {
-							new->ch=' ';
-							new->legacy_attr=attr;
-							new->font = font;
-							new->fg = ciolib_fg;
-							new->bg = ciolib_bg;
-							new++;
-					}
-				}
-				if(row < oh) {
-					for(;col<ow;col++)
-						old++;
-				}
-			}
-			bitmap_vmem_puttext(1,1,ti.screenwidth,ti.screenheight,pnew);
-			free(pnew);
-			free(pold);
-		}
-		else {
-			FREE_AND_NULL(old);
-		}
-	}
-	bitmap_loadfont_locked(NULL);
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-	return(1);
-
-error_return:
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-	return(0);
-}
-
-int bitmap_getfont(int font_num)
-{
-	int ret;
-
-	pthread_mutex_lock(&blinker_lock);
-	if (font_num == 0)
-		ret = default_font;
-	else if (font_num > 4)
-		ret = -1;
-	else
-		ret = current_font[font_num - 1];
-	pthread_mutex_unlock(&blinker_lock);
-
-	return ret;
-}
-
-int bitmap_loadfont(const char *filename)
-{
-	int ret;
-
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&vstatlock);
-	ret = bitmap_loadfont_locked(filename);
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-	return ret;
-}
-
-int bitmap_movetext(int x, int y, int ex, int ey, int tox, int toy)
-{
-	int	direction=1;
-	int	cy;
-	int	destoffset;
-	int	sourcepos;
-	int width=ex-x+1;
-	int height=ey-y+1;
-	struct vstat_vmem *vmem_ptr;
-	int32_t sdestoffset;
-	size_t ssourcepos;
-	int32_t screeny;
-
-	if(		   x<1
-			|| y<1
-			|| ex<1
-			|| ey<1
-			|| tox<1
-			|| toy<1
-			|| x>cio_textinfo.screenwidth
-			|| ex>cio_textinfo.screenwidth
-			|| tox>cio_textinfo.screenwidth
-			|| y>cio_textinfo.screenheight
-			|| ey>cio_textinfo.screenheight
-			|| toy>cio_textinfo.screenheight) {
-		return(0);
-	}
-
-	if(toy > y)
-		direction=-1;
-
-	pthread_mutex_lock(&blinker_lock);
-	if (direction == -1) {
-		sourcepos=(y+height-2)*cio_textinfo.screenwidth+(x-1);
-		destoffset=(((toy+height-2)*cio_textinfo.screenwidth+(tox-1))-sourcepos);
-	}
-	else {
-		sourcepos=(y-1)*cio_textinfo.screenwidth+(x-1);
-		destoffset=(((toy-1)*cio_textinfo.screenwidth+(tox-1))-sourcepos);
-	}
-
-	pthread_mutex_lock(&vstatlock);
-	vmem_ptr = get_vmem(&vstat);
-	for(cy=0; cy<height; cy++) {
-		memmove(&(vmem_ptr->vmem[sourcepos+destoffset]), &(vmem_ptr->vmem[sourcepos]), sizeof(vmem_ptr->vmem[0])*width);
-		sourcepos += direction * cio_textinfo.screenwidth;
-	}
-
-	if (direction == -1) {
-		ssourcepos=((y + height - 1)     * vstat.charheight - 1) * vstat.scrnwidth + (x - 1)  * vstat.charwidth;
-		sdestoffset=((((toy + height - 1) * vstat.charheight - 1) * vstat.scrnwidth + (tox - 1) * vstat.charwidth) - ssourcepos);
-	}
-	else {
-		ssourcepos=(y - 1)     * vstat.scrnwidth * vstat.charheight + (x - 1)  * vstat.charwidth;
-		sdestoffset=(((toy - 1) * vstat.scrnwidth * vstat.charheight + (tox - 1) * vstat.charwidth) - ssourcepos);
-	}
-
-	pthread_mutex_lock(&screena.screenlock);
-	for(screeny=0; screeny < height*vstat.charheight; screeny++) {
-		memmove(&(screena.screen[ssourcepos+sdestoffset]), &(screena.screen[ssourcepos]), sizeof(screena.screen[0])*width*vstat.charwidth);
-		memmove(&(screena.rect->data[ssourcepos+sdestoffset]), &(screena.rect->data[ssourcepos]), sizeof(screena.screen[0])*width*vstat.charwidth);
-		ssourcepos += direction * vstat.scrnwidth;
-	}
-	screena.update_pixels = 1;
-	pthread_mutex_unlock(&screena.screenlock);
-
-	if (direction == -1) {
-		ssourcepos=((y+height-1)     *vstat.charheight-1)*vstat.scrnwidth + (x-1)  *vstat.charwidth;
-		sdestoffset=((((toy+height-1)*vstat.charheight-1)*vstat.scrnwidth + (tox-1)*vstat.charwidth)-ssourcepos);
-	}
-	else {
-		ssourcepos=(y-1)     *vstat.scrnwidth*vstat.charheight + (x-1)  *vstat.charwidth;
-		sdestoffset=(((toy-1)*vstat.scrnwidth*vstat.charheight + (tox-1)*vstat.charwidth)-ssourcepos);
-	}
-
-	pthread_mutex_lock(&screenb.screenlock);
-	for(screeny=0; screeny < height*vstat.charheight; screeny++) {
-		memmove(&(screenb.screen[ssourcepos+sdestoffset]), &(screenb.screen[ssourcepos]), sizeof(screenb.screen[0])*width*vstat.charwidth);
-		memmove(&(screenb.rect->data[ssourcepos+sdestoffset]), &(screenb.rect->data[ssourcepos]), sizeof(screenb.screen[0])*width*vstat.charwidth);
-		ssourcepos += direction * vstat.scrnwidth;
-	}
-	screenb.update_pixels = 1;
-	pthread_mutex_unlock(&screenb.screenlock);
-
-	release_vmem(vmem_ptr);
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-
-	return(1);
-}
-
-void bitmap_clreol(void)
-{
-	int pos,x;
-	WORD fill=(cio_textinfo.attribute<<8)|' ';
-	struct vstat_vmem *vmem_ptr;
-	int row;
-
-	pthread_mutex_lock(&blinker_lock);
-	row = cio_textinfo.cury + cio_textinfo.wintop - 1;
-	pos=(row - 1)*cio_textinfo.screenwidth;
-	pthread_mutex_lock(&vstatlock);
-	vmem_ptr = get_vmem(&vstat);
-	for(x=cio_textinfo.curx+cio_textinfo.winleft-2; x<cio_textinfo.winright; x++) {
-		set_vmem_cell(vmem_ptr, pos+x, fill, ciolib_fg, ciolib_bg);
-		bitmap_draw_one_char(x+1, row);
-	}
-	release_vmem(vmem_ptr);
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-}
-
-void bitmap_clrscr(void)
-{
-	int x,y;
-	WORD fill=(cio_textinfo.attribute<<8)|' ';
-	struct vstat_vmem *vmem_ptr;
-
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&vstatlock);
-	vmem_ptr = get_vmem(&vstat);
-	for(y = cio_textinfo.wintop-1; y < cio_textinfo.winbottom && y < vstat.rows; y++) {
-		for(x=cio_textinfo.winleft-1; x<cio_textinfo.winright && x < vstat.cols; x++) {
-			set_vmem_cell(vmem_ptr, y*cio_textinfo.screenwidth+x, fill, ciolib_fg, ciolib_bg);
-			bitmap_draw_one_char(x+1, y+1);
-		}
-	}
-	release_vmem(vmem_ptr);
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-}
-
-void bitmap_getcustomcursor(int *s, int *e, int *r, int *b, int *v)
-{
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&vstatlock);
-	if(s)
-		*s=vstat.curs_start;
-	if(e)
-		*e=vstat.curs_end;
-	if(r)
-		*r=vstat.charheight;
-	if(b)
-		*b=vstat.curs_blinks;
-	if(v)
-		*v=vstat.curs_visible;
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-}
-
-void bitmap_setcustomcursor(int s, int e, int r, int b, int v)
-{
-	double ratio;
-
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&vstatlock);
-	if(r==0)
-		ratio=0;
-	else
-		ratio=vstat.charheight/r;
-	if(s>=0)
-		vstat.curs_start=s*ratio;
-	if(e>=0)
-		vstat.curs_end=e*ratio;
-	if(b>=0)
-		vstat.curs_blinks=b;
-	if(v>=0)
-		vstat.curs_visible=v;
-	force_cursor = 1;
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-}
-
-int bitmap_getvideoflags(void)
-{
-	int flags=0;
-
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&vstatlock);
-	if(vstat.bright_background)
-		flags |= CIOLIB_VIDEO_BGBRIGHT;
-	if(vstat.no_bright)
-		flags |= CIOLIB_VIDEO_NOBRIGHT;
-	if(vstat.bright_altcharset)
-		flags |= CIOLIB_VIDEO_ALTCHARS;
-	if(vstat.no_blink)
-		flags |= CIOLIB_VIDEO_NOBLINK;
-	if(vstat.blink_altcharset)
-		flags |= CIOLIB_VIDEO_BLINKALTCHARS;
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-	return(flags);
-}
-
-void bitmap_setvideoflags(int flags)
-{
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&vstatlock);
-	if(flags & CIOLIB_VIDEO_BGBRIGHT)
-		vstat.bright_background=1;
-	else
-		vstat.bright_background=0;
-
-	if(flags & CIOLIB_VIDEO_NOBRIGHT)
-		vstat.no_bright=1;
-	else
-		vstat.no_bright=0;
-
-	if(flags & CIOLIB_VIDEO_ALTCHARS)
-		vstat.bright_altcharset=1;
-	else
-		vstat.bright_altcharset=0;
-
-	if(flags & CIOLIB_VIDEO_NOBLINK)
-		vstat.no_blink=1;
-	else
-		vstat.no_blink=0;
-
-	if(flags & CIOLIB_VIDEO_BLINKALTCHARS)
-		vstat.blink_altcharset=1;
-	else
-		vstat.blink_altcharset=0;
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-}
-
-int bitmap_attr2palette(uint8_t attr, uint32_t *fgp, uint32_t *bgp)
-{
-	int ret;
-
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&vstatlock);
-	ret = bitmap_attr2palette_locked(attr, fgp, bgp);
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-
-	return ret;
-}
-
-int bitmap_setpixel(uint32_t x, uint32_t y, uint32_t colour)
-{
-	pthread_mutex_lock(&blinker_lock);
-
-	pthread_mutex_lock(&screena.screenlock);
-	if (x < screena.screenwidth && y < screena.screenheight) {
-		if (screena.screen[PIXEL_OFFSET(screena, x, y)] != colour) {
-			screena.screen[PIXEL_OFFSET(screena, x, y)]=colour;
-			screena.update_pixels = 1;
-			screena.rect->data[PIXEL_OFFSET(screena, x, y)]=color_value(colour);
-		}
-	}
-	pthread_mutex_unlock(&screena.screenlock);
-
-	pthread_mutex_lock(&screenb.screenlock);
-	if (x < screenb.screenwidth && y < screenb.screenheight) {
-		if (screenb.screen[PIXEL_OFFSET(screenb, x, y)] != colour) {
-			screenb.screen[PIXEL_OFFSET(screenb, x, y)]=colour;
-			screenb.update_pixels = 1;
-			screenb.rect->data[PIXEL_OFFSET(screenb, x, y)]=color_value(colour);
-		}
-	}
-	pthread_mutex_unlock(&screenb.screenlock);
-
-	pthread_mutex_unlock(&blinker_lock);
-
-	return 1;
-}
-
-int bitmap_setpixels(uint32_t sx, uint32_t sy, uint32_t ex, uint32_t ey, uint32_t x_off, uint32_t y_off, struct ciolib_pixels *pixels, void *mask)
-{
-	uint32_t x, y;
-	uint32_t width,height;
-	char *m = mask;
-	int mask_bit;
-	size_t mask_byte;
-	size_t pos;
-
-	if (pixels == NULL)
-		return 0;
-
-	if (sx > ex || sy > ey)
-		return 0;
-
-	width = ex - sx + 1;
-	height = ey - sy + 1;
-
-	if (width + x_off > pixels->width)
-		return 0;
-
-	if (height + y_off > pixels->height)
-		return 0;
-
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&screena.screenlock);
-	pthread_mutex_lock(&screenb.screenlock);
-	if (ex > screena.screenwidth || ey > screena.screenheight) {
-		pthread_mutex_unlock(&screenb.screenlock);
-		pthread_mutex_unlock(&screena.screenlock);
-		pthread_mutex_unlock(&blinker_lock);
-		return 0;
-	}
-
-	for (y = sy; y <= ey; y++) {
-		pos = pixels->width*(y-sy+y_off)+x_off;
-		if (mask == NULL) {
-			for (x = sx; x <= ex; x++) {
-				screena.screen[PIXEL_OFFSET(screena, x, y)] = pixels->pixels[pos];
-				screena.rect->data[PIXEL_OFFSET(screena, x, y)] = color_value(pixels->pixels[pos]);
-				if (pixels->pixelsb) {
-					screenb.screen[PIXEL_OFFSET(screenb, x, y)] = pixels->pixelsb[pos];
-					screenb.rect->data[PIXEL_OFFSET(screenb, x, y)] = color_value(pixels->pixelsb[pos]);
-				}
-				else {
-					screenb.screen[PIXEL_OFFSET(screenb, x, y)] = pixels->pixels[pos];
-					screenb.rect->data[PIXEL_OFFSET(screenb, x, y)] = color_value(pixels->pixels[pos]);
-				}
-				pos++;
-			}
-		}
-		else {
-			for (x = sx; x <= ex; x++) {
-				mask_byte = pos / 8;
-				mask_bit = pos % 8;
-				mask_bit = 0x80 >> mask_bit;
-				if (m[mask_byte] & mask_bit) {
-					screena.screen[PIXEL_OFFSET(screena, x, y)] = pixels->pixels[pos];
-					screena.rect->data[PIXEL_OFFSET(screena, x, y)] = color_value(pixels->pixels[pos]);
-					if (pixels->pixelsb) {
-						screenb.screen[PIXEL_OFFSET(screenb, x, y)] = pixels->pixelsb[pos];
-						screenb.rect->data[PIXEL_OFFSET(screenb, x, y)] = color_value(pixels->pixelsb[pos]);
-					}
-					else {
-						screenb.screen[PIXEL_OFFSET(screenb, x, y)] = pixels->pixels[pos];
-						screenb.rect->data[PIXEL_OFFSET(screenb, x, y)] = color_value(pixels->pixels[pos]);
-					}
-				}
-				pos++;
-			}
-		}
-	}
-	screena.update_pixels = 1;
-	screenb.update_pixels = 1;
-	pthread_mutex_unlock(&screenb.screenlock);
-	pthread_mutex_unlock(&screena.screenlock);
-	pthread_mutex_unlock(&blinker_lock);
-
-	return 1;
-}
-
-// TODO: Do we ever need to force anymore?
-struct ciolib_pixels *bitmap_getpixels(uint32_t sx, uint32_t sy, uint32_t ex, uint32_t ey, int force)
-{
-	struct ciolib_pixels *pixels;
-	uint32_t width,height;
-	size_t y;
-
-	if (sx > ex || sy > ey)
-		return NULL;
-
-	width = ex - sx + 1;
-	height = ey - sy + 1;
-
-	pixels = malloc(sizeof(*pixels));
-	if (pixels == NULL)
-		return NULL;
-
-	pixels->width = width;
-	pixels->height = height;
-
-	pixels->pixels = malloc(sizeof(pixels->pixels[0])*(width)*(height));
-	if (pixels->pixels == NULL) {
-		free(pixels);
-		return NULL;
-	}
-
-	pixels->pixelsb = malloc(sizeof(pixels->pixelsb[0])*(width)*(height));
-	if (pixels->pixelsb == NULL) {
-		free(pixels->pixels);
-		free(pixels);
-		return NULL;
-	}
-
-	pthread_mutex_lock(&blinker_lock);
-	update_from_vmem(force);
-	pthread_mutex_lock(&vstatlock);
-	pthread_mutex_lock(&screena.screenlock);
-	pthread_mutex_lock(&screenb.screenlock);
-	if (ex >= screena.screenwidth || ey >= screena.screenheight ||
-	    ex >= screenb.screenwidth || ey >= screenb.screenheight) {
-		pthread_mutex_unlock(&screenb.screenlock);
-		pthread_mutex_unlock(&screena.screenlock);
-		pthread_mutex_unlock(&vstatlock);
-		pthread_mutex_unlock(&blinker_lock);
-		free(pixels->pixelsb);
-		free(pixels->pixels);
-		free(pixels);
-		return NULL;
-	}
-
-	for (y = sy; y <= ey; y++) {
-		memcpy(&pixels->pixels[width*(y-sy)], &screena.screen[PIXEL_OFFSET(screena, sx, y)], width * sizeof(pixels->pixels[0]));
-		memcpy(&pixels->pixelsb[width*(y-sy)], &screenb.screen[PIXEL_OFFSET(screenb, sx, y)], width * sizeof(pixels->pixelsb[0]));
-	}
-	pthread_mutex_unlock(&screenb.screenlock);
-	pthread_mutex_unlock(&screena.screenlock);
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-
-	return pixels;
-}
-
-int bitmap_get_modepalette(uint32_t p[16])
-{
-	pthread_mutex_lock(&vstatlock);
-	memcpy(p, vstat.palette, sizeof(vstat.palette));
-	pthread_mutex_unlock(&vstatlock);
-	return 1;
-}
-
-int bitmap_set_modepalette(uint32_t p[16])
-{
-	pthread_mutex_lock(&vstatlock);
-	memcpy(vstat.palette, p, sizeof(vstat.palette));
-	pthread_mutex_unlock(&vstatlock);
-	return 1;
-}
-
-uint32_t bitmap_map_rgb(uint16_t r, uint16_t g, uint16_t b)
-{
-	return (0xff << 24) | ((r & 0xff00) << 8) | ((g & 0xff00)) | (b >> 8);
-}
-
-void bitmap_replace_font(uint8_t id, char *name, void *data, size_t size)
-{
-	pthread_mutex_lock(&blinker_lock);
-
-	if (id < CONIO_FIRST_FREE_FONT) {
-		free(name);
-		free(data);
-		pthread_mutex_unlock(&blinker_lock);
-		return;
-	}
-
-	pthread_mutex_lock(&screena.screenlock);
-	pthread_mutex_lock(&screenb.screenlock);
-	switch (size) {
-		case 4096:
-			FREE_AND_NULL(conio_fontdata[id].eight_by_sixteen);
-			conio_fontdata[id].eight_by_sixteen=data;
-			FREE_AND_NULL(conio_fontdata[id].desc);
-			conio_fontdata[id].desc=name;
-			break;
-		case 3584:
-			FREE_AND_NULL(conio_fontdata[id].eight_by_fourteen);
-			conio_fontdata[id].eight_by_fourteen=data;
-			FREE_AND_NULL(conio_fontdata[id].desc);
-			conio_fontdata[id].desc=name;
-			break;
-		case 2048:
-			FREE_AND_NULL(conio_fontdata[id].eight_by_eight);
-			conio_fontdata[id].eight_by_eight=data;
-			FREE_AND_NULL(conio_fontdata[id].desc);
-			conio_fontdata[id].desc=name;
-			break;
-		default:
-			free(name);
-			free(data);
-	}
-	screena.update_pixels = 1;
-	screenb.update_pixels = 1;
-	pthread_mutex_unlock(&screenb.screenlock);
-	pthread_mutex_unlock(&screena.screenlock);
-	pthread_mutex_unlock(&blinker_lock);
-}
-
-int bitmap_setpalette(uint32_t index, uint16_t r, uint16_t g, uint16_t b)
-{
-	if (index > 65535)
-		return 0;
-
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&screena.screenlock);
-	pthread_mutex_lock(&screenb.screenlock);
-	palette[index] = (0xff << 24) | ((r>>8) << 16) | ((g>>8) << 8) | (b>>8);
-	screena.update_pixels = 1;
-	screenb.update_pixels = 1;
-	pthread_mutex_unlock(&screenb.screenlock);
-	pthread_mutex_unlock(&screena.screenlock);
-	pthread_mutex_unlock(&blinker_lock);
-	return 1;
-}
-
-// Called with vstatlock
-static int init_screen(struct bitmap_screen *screen, int *width, int *height)
-{
-	uint32_t *newscreen;
-
-	pthread_mutex_lock(&screen->screenlock);
-	screen->screenwidth = vstat.scrnwidth;
-	if (width)
-		*width = screen->screenwidth;
-	screen->screenheight = vstat.scrnheight;
-	if (height)
-		*height = screen->screenheight;
-	newscreen = realloc(screen->screen, screen->screenwidth * screen->screenheight * sizeof(screen->screen[0]));
-
-	if (!newscreen) {
-		pthread_mutex_unlock(&screen->screenlock);
-		return(-1);
-	}
-	screen->screen = newscreen;
-	memset_u32(screen->screen, vstat.palette[0], screen->screenwidth * screen->screenheight);
-	screen->update_pixels = 1;
-	bitmap_drv_free_rect(screen->rect);
-	screen->rect = alloc_full_rect(screen);
-	if (screen->rect == NULL) {
-		pthread_mutex_unlock(&screen->screenlock);
-		return(-1);
-	}
-	memset_u32(screen->rect->data, color_value(vstat.palette[0]), screen->rect->rect.width * screen->rect->rect.height);
-	pthread_mutex_unlock(&screen->screenlock);
-	return(0);
-}
-
-/***********************/
-/* Called from drivers */
-/***********************/
-
-/*
- * This function is intended to be called from the driver.
- * as a result, it cannot block waiting for driver status
- *
- * Must be called with vstatlock held.
- * Care MUST be taken to avoid deadlocks...
- * This is where the vmode bits used by the driver are modified...
- * the driver must be aware of this.
- * This is where the driver should grab vstatlock, then it should copy
- * out after this and only grab that lock again briefly to update
- * vstat.scaling.
- */
-int bitmap_drv_init_mode(int mode, int *width, int *height)
-{
-	int i;
-
-	if(!bitmap_initialized)
-		return(-1);
-
-	if(load_vmode(&vstat, mode)) {
-		// TODO: WTF?
-		//pthread_mutex_unlock(&blinker_lock);
-		return(-1);
-	}
-
-	/* Initialize video memory with black background, white foreground */
-	for (i = 0; i < vstat.cols*vstat.rows; ++i) {
-		vstat.vmem->vmem[i].ch = 0;
-		vstat.vmem->vmem[i].legacy_attr = vstat.currattr;
-		vstat.vmem->vmem[i].font = default_font;
-		bitmap_attr2palette_locked(vstat.currattr, &vstat.vmem->vmem[i].fg, &vstat.vmem->vmem[i].bg);
-	}
-
-	if (init_screen(&screena, width, height))
-		return -1;
-	if (init_screen(&screenb, width, height))
-		return -1;
-	for (i=0; i<sizeof(current_font)/sizeof(current_font[0]); i++)
-		current_font[i]=default_font;
-	bitmap_loadfont_locked(NULL);
-
-	cio_textinfo.attribute=vstat.currattr;
-	cio_textinfo.normattr=vstat.currattr;
-	cio_textinfo.currmode=mode;
-
-	if (vstat.rows > 0xff)
-		cio_textinfo.screenheight = 0xff;
-	else
-		cio_textinfo.screenheight = vstat.rows;
-
-	if (vstat.cols > 0xff)
-		cio_textinfo.screenwidth = 0xff;
-	else
-		cio_textinfo.screenwidth = vstat.cols;
-
-	cio_textinfo.curx=1;
-	cio_textinfo.cury=1;
-	cio_textinfo.winleft=1;
-	cio_textinfo.wintop=1;
-	cio_textinfo.winright=cio_textinfo.screenwidth;
-	cio_textinfo.winbottom=cio_textinfo.screenheight;
-
-	return(0);
-}
-
-/*
- * MUST be called only once and before any other bitmap functions
- */
-int bitmap_drv_init(void (*drawrect_cb) (struct rectlist *data)
-				,void (*flush_cb) (void))
-{
-	int i;
-
-	if(bitmap_initialized)
-		return(-1);
-	cio_api.options |= CONIO_OPT_LOADABLE_FONTS | CONIO_OPT_BLINK_ALT_FONT
-			| CONIO_OPT_BOLD_ALT_FONT | CONIO_OPT_BRIGHT_BACKGROUND
-			| CONIO_OPT_SET_PIXEL | CONIO_OPT_CUSTOM_CURSOR
-			| CONIO_OPT_FONT_SELECT | CONIO_OPT_EXTENDED_PALETTE | CONIO_OPT_PALETTE_SETTING
-			| CONIO_OPT_BLOCKY_SCALING;
-	pthread_mutex_init(&blinker_lock, NULL);
-	pthread_mutex_init(&callbacks.lock, NULL);
-	pthread_mutex_init(&vstatlock, NULL);
-	pthread_mutex_init(&screena.screenlock, NULL);
-	pthread_mutex_init(&screenb.screenlock, NULL);
-	pthread_mutex_init(&free_rect_lock, NULL);
-	pthread_mutex_lock(&vstatlock);
-	init_r2y();
-	vstat.vmem=NULL;
-	vstat.flags = VIDMODES_FLAG_PALETTE_VMEM;
-	pthread_mutex_lock(&screena.screenlock);
-	pthread_mutex_lock(&screenb.screenlock);
-	for (i = 0; i < sizeof(dac_default)/sizeof(struct dac_colors); i++) {
-		palette[i] = (0xff << 24) | (dac_default[i].red << 16) | (dac_default[i].green << 8) | dac_default[i].blue;
-	}
-	pthread_mutex_unlock(&screenb.screenlock);
-	pthread_mutex_unlock(&screena.screenlock);
-	pthread_mutex_unlock(&vstatlock);
-
-	callbacks.drawrect=drawrect_cb;
-	callbacks.flush=flush_cb;
-	callbacks.rects = 0;
-	bitmap_initialized=1;
-	_beginthread(blinker_thread,0,NULL);
-
-	return(0);
-}
-
-void bitmap_drv_request_pixels(void)
-{
-	pthread_mutex_lock(&screena.screenlock);
-	if (screena.update_pixels == 0)
-		screena.update_pixels = 2;
-	pthread_mutex_unlock(&screena.screenlock);
-	pthread_mutex_lock(&screenb.screenlock);
-	if (screenb.update_pixels == 0)
-		screenb.update_pixels = 2;
-	pthread_mutex_unlock(&screenb.screenlock);
-}
-
-void bitmap_drv_request_some_pixels(int x, int y, int width, int height)
-{
-	/* TODO: Some sort of queue here? */
-	bitmap_drv_request_pixels();
-}
-
-void bitmap_drv_free_rect(struct rectlist *rect)
-{
-	if (rect == NULL)
-		return;
-	pthread_mutex_lock(&free_rect_lock);
-	rect->next = free_rects;
-	free_rects = rect;
-	pthread_mutex_unlock(&free_rect_lock);
-}
diff --git a/ciolib/bitmap_con.h b/ciolib/bitmap_con.h
deleted file mode 100644
index e6879832f581ff285a4302d17505e6fc7dc84442..0000000000000000000000000000000000000000
--- a/ciolib/bitmap_con.h
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef BITMAP_CON_H
-#define BITMAP_CON_H
-
-#include "vidmodes.h"
-#include "threadwrap.h"
-
-struct rectangle {
-	int x;
-	int y;
-	int width;
-	int height;
-};
-
-struct rectlist {
-	struct rectangle rect;
-	uint32_t *data;
-	struct rectlist *next;
-};
-
-extern struct video_stats vstat;
-extern pthread_mutex_t vstatlock;
-extern pthread_mutex_t blinker_lock;
-
-#ifndef BITMAP_CIOLIB_DRIVER
-/* Called from ciolib */
-int bitmap_puttext(int sx, int sy, int ex, int ey, void *fill);
-int bitmap_vmem_puttext(int sx, int sy, int ex, int ey, struct vmem_cell *fill);
-int bitmap_vmem_gettext(int sx, int sy, int ex, int ey, struct vmem_cell *fill);
-void bitmap_gotoxy(int x, int y);
-void bitmap_setcursortype(int type);
-int bitmap_setfont(int font, int force, int font_no);
-int bitmap_getfont(int fnum);
-int bitmap_loadfont(const char *filename);
-int bitmap_movetext(int x, int y, int ex, int ey, int tox, int toy);
-void bitmap_clreol(void);
-void bitmap_clrscr(void);
-void bitmap_getcustomcursor(int *s, int *e, int *r, int *b, int *v);
-void bitmap_setcustomcursor(int s, int e, int r, int b, int v);
-int bitmap_getvideoflags(void);
-void bitmap_setvideoflags(int flags);
-int bitmap_attr2palette(uint8_t attr, uint32_t *fgp, uint32_t *bgp);
-int bitmap_setpixel(uint32_t x, uint32_t y, uint32_t colour);
-int bitmap_setpixels(uint32_t sx, uint32_t sy, uint32_t ex, uint32_t ey, uint32_t x_off, uint32_t y_off, struct ciolib_pixels *, void *mask);
-struct ciolib_pixels *bitmap_getpixels(uint32_t sx, uint32_t sy, uint32_t ex, uint32_t ey, int force);
-int bitmap_get_modepalette(uint32_t p[16]);
-int bitmap_set_modepalette(uint32_t p[16]);
-uint32_t bitmap_map_rgb(uint16_t r, uint16_t g, uint16_t b);
-void bitmap_replace_font(uint8_t id, char *name, void *data, size_t size);
-int bitmap_setpalette(uint32_t index, uint16_t r, uint16_t g, uint16_t b);
-#endif
-
-#ifdef BITMAP_CIOLIB_DRIVER
-/* Called from drivers */
-int bitmap_drv_init_mode(int mode, int *width, int *height);
-int bitmap_drv_init(void (*drawrect_cb) (struct rectlist *data)
-				,void (*flush) (void));
-void bitmap_drv_request_pixels(void);
-void bitmap_drv_request_some_pixels(int x, int y, int width, int height);
-void bitmap_drv_free_rect(struct rectlist *rect);
-#endif
-
-#endif
diff --git a/ciolib/ciolib.c b/ciolib/ciolib.c
deleted file mode 100644
index 7742eb2ef2b7a49b1139cec7eed442b1cf7feea7..0000000000000000000000000000000000000000
--- a/ciolib/ciolib.c
+++ /dev/null
@@ -1,1942 +0,0 @@
-/* $Id: ciolib.c,v 1.204 2020/07/18 18:15:28 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-/* Icon file! */
-#ifdef __BORLANDC__
-#pragma resource "ciolib.res"
		/* DO NOT REMOVE THE EXTRA \r! */
-#endif
-
-#include <stdarg.h>
-#include <stdlib.h>	/* alloca */
-#include <stdio.h>
-#if defined(_WIN32)
- #include <malloc.h>	/* alloca() on Win32 */
-#endif
-
-#include <threadwrap.h>
-#include <genwrap.h>
-#include <xpbeep.h>
-
-#define CIOLIB_NO_MACROS
-#include "ciolib.h"
-
-#if defined(WITH_SDL)
- #include "sdl_con.h"
- #include "sdlfuncs.h"
-#endif
-#ifdef _WIN32
- #include "win32cio.h"
-#else
- #ifndef NO_X
-  #include "x_cio.h"
- #endif
- #include "curs_cio.h"
- #undef getch
-#endif
-
-#include "bitmap_con.h"
-#include "ansi_cio.h"
-#include "syncicon64.h"
-
-CIOLIBEXPORT cioapi_t	cio_api;
-
-static const int tabs[]={1,9,17,25,33,41,49,57,65,73,81,89,97,105,113,121,129,137,145};
-static int ungotch;
-struct text_info cio_textinfo;
-uint32_t ciolib_fg;
-uint32_t ciolib_bg;
-static int lastmode=C80;
-CIOLIBEXPORT int _wscroll=1;
-CIOLIBEXPORT int directvideo=0;
-CIOLIBEXPORT int hold_update=0;
-CIOLIBEXPORT int puttext_can_move=0;
-CIOLIBEXPORT int ciolib_reaper=TRUE;
-CIOLIBEXPORT char *ciolib_appname=NULL;
-CIOLIBEXPORT int ciolib_initial_window_height = -1;
-CIOLIBEXPORT int ciolib_initial_window_width = -1;
-static int initialized=0;
-
-CIOLIBEXPORT int ciolib_movetext(int sx, int sy, int ex, int ey, int dx, int dy);
-CIOLIBEXPORT char * ciolib_cgets(char *str);
-CIOLIBEXPORT int ciolib_cscanf (char *format , ...);
-CIOLIBEXPORT int ciolib_kbhit(void);
-CIOLIBEXPORT int ciolib_getch(void);
-CIOLIBEXPORT int ciolib_getche(void);
-CIOLIBEXPORT int ciolib_ungetch(int ch);
-CIOLIBEXPORT void ciolib_gettextinfo(struct text_info *info);
-CIOLIBEXPORT int ciolib_wherex(void);
-CIOLIBEXPORT int ciolib_wherey(void);
-CIOLIBEXPORT void ciolib_wscroll(void);
-CIOLIBEXPORT void ciolib_gotoxy(int x, int y);
-CIOLIBEXPORT void ciolib_clreol(void);
-CIOLIBEXPORT void ciolib_clrscr(void);
-CIOLIBEXPORT int ciolib_cputs(const char *str);
-CIOLIBEXPORT int	ciolib_cprintf(const char *fmat, ...);
-CIOLIBEXPORT void ciolib_textbackground(int colour);
-CIOLIBEXPORT void ciolib_textcolor(int colour);
-CIOLIBEXPORT void ciolib_highvideo(void);
-CIOLIBEXPORT void ciolib_lowvideo(void);
-CIOLIBEXPORT void ciolib_normvideo(void);
-CIOLIBEXPORT int ciolib_puttext(int a,int b,int c,int d,void *e);
-CIOLIBEXPORT int ciolib_vmem_puttext(int a,int b,int c,int d,struct vmem_cell *e);
-CIOLIBEXPORT int ciolib_gettext(int a,int b,int c,int d,void *e);
-CIOLIBEXPORT int ciolib_vmem_gettext(int a,int b,int c,int d,struct vmem_cell *e);
-CIOLIBEXPORT void ciolib_textattr(int a);
-CIOLIBEXPORT void ciolib_delay(long a);
-CIOLIBEXPORT int ciolib_putch(int a);
-CIOLIBEXPORT void ciolib_setcursortype(int a);
-CIOLIBEXPORT void ciolib_textmode(int mode);
-CIOLIBEXPORT void ciolib_window(int sx, int sy, int ex, int ey);
-CIOLIBEXPORT void ciolib_delline(void);
-CIOLIBEXPORT void ciolib_insline(void);
-CIOLIBEXPORT char * ciolib_getpass(const char *prompt);
-CIOLIBEXPORT void ciolib_copytext(const char *text, size_t buflen);
-CIOLIBEXPORT char * ciolib_getcliptext(void);
-CIOLIBEXPORT int ciolib_get_window_info(int *width, int *height, int *xpos, int *ypos);
-CIOLIBEXPORT void ciolib_setscaling(int new_value);
-CIOLIBEXPORT int ciolib_getscaling(void);
-CIOLIBEXPORT int ciolib_setpalette(uint32_t entry, uint16_t r, uint16_t g, uint16_t b);
-CIOLIBEXPORT int ciolib_attr2palette(uint8_t attr, uint32_t *fg, uint32_t *bg);
-CIOLIBEXPORT int ciolib_setpixel(uint32_t x, uint32_t y, uint32_t colour);
-CIOLIBEXPORT struct ciolib_pixels * ciolib_getpixels(uint32_t sx, uint32_t sy, uint32_t ex, uint32_t ey, int force);
-CIOLIBEXPORT int ciolib_setpixels(uint32_t sx, uint32_t sy, uint32_t ex, uint32_t ey, uint32_t x_off, uint32_t y_off, struct ciolib_pixels *pixels, void *mask);
-CIOLIBEXPORT void ciolib_freepixels(struct ciolib_pixels *pixels);
-CIOLIBEXPORT struct ciolib_screen * ciolib_savescreen(void);
-CIOLIBEXPORT void ciolib_freescreen(struct ciolib_screen *);
-CIOLIBEXPORT int ciolib_restorescreen(struct ciolib_screen *scrn);
-CIOLIBEXPORT void ciolib_setcolour(uint32_t fg, uint32_t bg);
-CIOLIBEXPORT int ciolib_get_modepalette(uint32_t p[16]);
-CIOLIBEXPORT int ciolib_set_modepalette(uint32_t p[16]);
-CIOLIBEXPORT void ciolib_set_vmem(struct vmem_cell *cell, uint8_t ch, uint8_t attr, uint8_t font);
-CIOLIBEXPORT void ciolib_set_vmem_attr(struct vmem_cell *cell, uint8_t attr);
-CIOLIBEXPORT void ciolib_setwinsize(int width, int height);
-CIOLIBEXPORT void ciolib_setwinposition(int x, int y);
-CIOLIBEXPORT enum ciolib_codepage ciolib_getcodepage(void);
-
-#if defined(WITH_SDL)
-int sdl_video_initialized = 0;
-#endif
-
-#define CIOLIB_INIT()		{ if(initialized != 1) initciolib(CIOLIB_MODE_AUTO); }
-
-#if defined(WITH_SDL)
-static int try_sdl_init(int mode)
-{
-	if(!sdl_initciolib(mode)) {
-		cio_api.mouse=1;
-		cio_api.puttext=bitmap_puttext;
-		cio_api.vmem_puttext=bitmap_vmem_puttext;
-		cio_api.vmem_gettext=bitmap_vmem_gettext;
-		cio_api.gotoxy=bitmap_gotoxy;
-		cio_api.setcursortype=bitmap_setcursortype;
-		cio_api.setfont=bitmap_setfont;
-		cio_api.getfont=bitmap_getfont;
-		cio_api.loadfont=bitmap_loadfont;
-		cio_api.movetext=bitmap_movetext;
-		cio_api.clreol=bitmap_clreol;
-		cio_api.clrscr=bitmap_clrscr;
-		cio_api.getcustomcursor=bitmap_getcustomcursor;
-		cio_api.setcustomcursor=bitmap_setcustomcursor;
-		cio_api.getvideoflags=bitmap_getvideoflags;
-		cio_api.setvideoflags=bitmap_setvideoflags;
-
-		cio_api.kbhit=sdl_kbhit;
-		cio_api.getch=sdl_getch;
-		cio_api.textmode=sdl_textmode;
-		cio_api.showmouse=sdl_showmouse;
-		cio_api.hidemouse=sdl_hidemouse;
-		cio_api.setname=sdl_setname;
-		cio_api.seticon=sdl_seticon;
-		cio_api.settitle=sdl_settitle;
-		cio_api.copytext=sdl_copytext;
-		cio_api.getcliptext=sdl_getcliptext;
-		cio_api.get_window_info=sdl_get_window_info;
-		cio_api.setwinsize=sdl_setwinsize;
-		cio_api.setwinposition=sdl_setwinposition;
-		cio_api.setpalette=bitmap_setpalette;
-		cio_api.attr2palette=bitmap_attr2palette;
-		cio_api.setpixel=bitmap_setpixel;
-		cio_api.getpixels=bitmap_getpixels;
-		cio_api.setpixels=bitmap_setpixels;
-		cio_api.get_modepalette=bitmap_get_modepalette;
-		cio_api.set_modepalette=bitmap_set_modepalette;
-		cio_api.map_rgb = bitmap_map_rgb;
-		cio_api.replace_font = bitmap_replace_font;
-		cio_api.beep = sdl_beep;
-		cio_api.mousepointer=sdl_mousepointer;
-		return(1);
-	}
-	return(0);
-}
-#endif
-
-#ifndef NO_X
-static int try_x_init(int mode)
-{
-#if defined(WITH_SDL)
-	if (sdl_video_initialized) {
-		sdl.QuitSubSystem(SDL_INIT_VIDEO);
-	}
-#endif
-
-	if(!x_init()) {
-		cio_api.mode=CIOLIB_MODE_X;
-		cio_api.mouse=1;
-		cio_api.puttext=bitmap_puttext;
-		cio_api.vmem_puttext=bitmap_vmem_puttext;
-		cio_api.vmem_gettext=bitmap_vmem_gettext;
-		cio_api.gotoxy=bitmap_gotoxy;
-		cio_api.setcursortype=bitmap_setcursortype;
-		cio_api.setfont=bitmap_setfont;
-		cio_api.getfont=bitmap_getfont;
-		cio_api.loadfont=bitmap_loadfont;
-		cio_api.beep=x_beep;
-		cio_api.movetext=bitmap_movetext;
-		cio_api.clreol=bitmap_clreol;
-		cio_api.clrscr=bitmap_clrscr;
-		cio_api.getcustomcursor=bitmap_getcustomcursor;
-		cio_api.setcustomcursor=bitmap_setcustomcursor;
-		cio_api.getvideoflags=bitmap_getvideoflags;
-		cio_api.setvideoflags=bitmap_setvideoflags;
-
-		cio_api.kbhit=x_kbhit;
-		cio_api.getch=x_getch;
-		cio_api.textmode=x_textmode;
-		cio_api.setname=x_setname;
-		cio_api.settitle=x_settitle;
-		cio_api.copytext=x_copytext;
-		cio_api.getcliptext=x_getcliptext;
-		cio_api.get_window_info=x_get_window_info;
-		cio_api.setscaling=x_setscaling;
-		cio_api.getscaling=x_getscaling;
-		cio_api.seticon=x_seticon;
-		cio_api.setpalette=bitmap_setpalette;
-		cio_api.attr2palette=bitmap_attr2palette;
-		cio_api.setpixel=bitmap_setpixel;
-		cio_api.getpixels=bitmap_getpixels;
-		cio_api.setpixels=bitmap_setpixels;
-		cio_api.get_modepalette=bitmap_get_modepalette;
-		cio_api.set_modepalette=bitmap_set_modepalette;
-		cio_api.map_rgb = bitmap_map_rgb;
-		cio_api.replace_font = bitmap_replace_font;
-		cio_api.mousepointer=x_mousepointer;
-		return(1);
-	}
-	return(0);
-}
-#endif
-
-#ifndef _WIN32
-static int try_curses_init(int mode)
-{
-#if defined(WITH_SDL)
-	if (sdl_video_initialized) {
-		sdl.QuitSubSystem(SDL_INIT_VIDEO);
-	}
-#endif
-
-	if(curs_initciolib(mode)) {
-		if(mode==CIOLIB_MODE_AUTO)
-			mode=CIOLIB_MODE_CURSES;
-		cio_api.mode=mode;
-		cio_api.puttext=curs_puttext;
-		cio_api.vmem_puttext=curs_vmem_puttext;
-		cio_api.vmem_gettext=curs_vmem_gettext;
-		cio_api.textattr=curs_textattr;
-		cio_api.kbhit=curs_kbhit;
-		cio_api.gotoxy=curs_gotoxy;
-		cio_api.setcursortype=curs_setcursortype;
-		cio_api.getch=curs_getch;
-		cio_api.textmode=curs_textmode;
-		cio_api.showmouse=curs_showmouse;
-		cio_api.hidemouse=curs_hidemouse;
-		cio_api.suspend=curs_suspend;
-		cio_api.resume=curs_resume;
-		cio_api.beep=curs_beep;
-		cio_api.setvideoflags=curs_setvideoflags;
-		cio_api.getvideoflags=curs_getvideoflags;
-#if defined(NCURSES_VERSION_MAJOR) || defined (__NetBSD__)
-		cio_api.escdelay=&ESCDELAY;
-#endif
-		cio_api.setfont = curs_setfont;
-		cio_api.getfont = curs_getfont;
-		cio_api.setpalette = curs_setpalette;
-		cio_api.get_modepalette = curs_get_modepalette;
-		cio_api.set_modepalette = curs_set_modepalette;
-		cio_api.attr2palette = curs_attr2palette;
-		return(1);
-	}
-	return(0);
-}
-#endif
-
-static int try_ansi_init(int mode)
-{
-#if defined(WITH_SDL)
-	if (sdl_video_initialized) {
-		sdl.QuitSubSystem(SDL_INIT_VIDEO);
-	}
-#endif
-
-	if(ansi_initciolib(mode)) {
-		cio_api.mode=CIOLIB_MODE_ANSI;
-		cio_api.mouse=0;
-		cio_api.puttext=ansi_puttext;
-		cio_api.gettext=ansi_gettext;
-		cio_api.textattr=ansi_textattr;
-		cio_api.kbhit=ansi_kbhit;
-		cio_api.gotoxy=ansi_gotoxy;
-		cio_api.setcursortype=ansi_setcursortype;
-		cio_api.getch=ansi_getch;
-		cio_api.textmode=ansi_textmode;
-		cio_api.escdelay=&CIOLIB_ANSI_TIMEOUT;
-		cio_api.beep=ansi_beep;
-		cio_api.suspend=ansi_suspend;
-		return(1);
-	}
-	return(0);
-}
-
-#ifdef _WIN32
-#if defined(__BORLANDC__)
-        #pragma argsused
-#endif
-static int try_conio_init(int mode)
-{
-#if defined(WITH_SDL)
-	if (sdl_video_initialized) {
-		sdl.QuitSubSystem(SDL_INIT_VIDEO);
-	}
-#endif
-
-	/* This should test for something or other */
-	if(win32_initciolib(mode)) {
-		if(mode==CIOLIB_MODE_AUTO)
-			cio_api.mode=CIOLIB_MODE_CONIO;
-		else
-			cio_api.mode=mode;	/* CIOLIB_MODE_CONIO or CIOLIB_MODE_CONIO_FULLSCREEN */
-		cio_api.mouse=1;
-		cio_api.puttext=win32_puttext;
-		cio_api.gettext=win32_gettext;
-		cio_api.kbhit=win32_kbhit;
-		cio_api.gotoxy=win32_gotoxy;
-		cio_api.setcursortype=win32_setcursortype;
-		cio_api.getch=win32_getch;
-		cio_api.textmode=win32_textmode;
-		cio_api.showmouse=win32_showmouse;
-		cio_api.hidemouse=win32_hidemouse;
-		cio_api.setname=win32_settitle;
-		cio_api.settitle=win32_settitle;
-		cio_api.copytext=win32_copytext;
-		cio_api.getcliptext=win32_getcliptext;
-		cio_api.suspend=win32_suspend;
-		cio_api.resume=win32_resume;
-		cio_api.getcustomcursor=win32_getcustomcursor;
-		cio_api.setcustomcursor=win32_setcustomcursor;
-		cio_api.getvideoflags=win32_getvideoflags;
-		cio_api.setpalette=win32_setpalette;
-		return(1);
-	}
-	return(0);
-}
-#endif
-
-/* Optional */
-CIOLIBEXPORT void suspendciolib(void)
-{
-	ciolib_clrscr();
-	if(cio_api.suspend != NULL)
-		cio_api.suspend();
-	initialized=-1;
-}
-
-CIOLIBEXPORT int initciolib(int mode)
-{
-	switch(initialized) {
-		case 1:
-			return(0);
-		case -1:
-			initialized=1;
-			if(cio_api.resume != NULL)
-				cio_api.resume();
-			ciolib_clrscr();
-			return(0);
-	}
-
-	memset(&cio_api,0,sizeof(cio_api));
-
-	switch(mode) {
-		case CIOLIB_MODE_AUTO:
-#ifndef NO_X
-			if(!try_x_init(mode))
-#endif
-#if defined(WITH_SDL)
-				if(!try_sdl_init(CIOLIB_MODE_SDL))
-#endif
-#ifdef _WIN32
-					if(!try_conio_init(mode))
-#else
-					if(!try_curses_init(mode))
-#endif
-						try_ansi_init(mode);
-			break;
-#ifdef _WIN32
-		case CIOLIB_MODE_CONIO:
-		case CIOLIB_MODE_CONIO_FULLSCREEN:
-			try_conio_init(mode);
-			break;
-#else
-		case CIOLIB_MODE_CURSES:
-		case CIOLIB_MODE_CURSES_IBM:
-		case CIOLIB_MODE_CURSES_ASCII:
-			try_curses_init(mode);
-			break;
-
-		case CIOLIB_MODE_X:
-#ifndef NO_X
-			try_x_init(mode);
-#endif
-			break;
-#endif
-		case CIOLIB_MODE_ANSI:
-			try_ansi_init(mode);
-			break;
-
-#if defined(WITH_SDL)
-		case CIOLIB_MODE_SDL:
-		case CIOLIB_MODE_SDL_FULLSCREEN:
-			try_sdl_init(mode);
-			break;
-#endif
-	}
-	if(cio_api.mode==CIOLIB_MODE_AUTO) {
-		fprintf(stderr,"CIOLIB initialization failed!\n");
-		return(-1);
-	}
-
-	initialized=1;
-	cio_textinfo.winleft=1;
-	cio_textinfo.wintop=1;
-	cio_textinfo.winright=cio_textinfo.screenwidth;
-	cio_textinfo.winbottom=cio_textinfo.screenheight;
-
-	/* Default C64 is Lt Blue on Dark Blue (As per Every picture ever) */
-	switch(cio_textinfo.currmode) {
-		case C64_40X25:
-			cio_textinfo.normattr=0x6e;
-			break;
-		case C128_40X25:
-			cio_textinfo.normattr=0xbd;
-			break;
-		default:
-			cio_textinfo.normattr=LIGHTGRAY;
-			break;
-	}
-	ciolib_seticon(syncicon64, SYNCICON64_WIDTH);
-	ciolib_textattr(cio_textinfo.normattr);
-
-	_beginthread(ciolib_mouse_thread,0,NULL);
-	return(0);
-}
-
-/* **MUST** be implemented */
-/*
- * Returns non-zero if a key is hit
- */
-CIOLIBEXPORT int ciolib_kbhit(void)
-{
-	CIOLIB_INIT();
-	if(ungotch)
-		return(1);
-	return(cio_api.kbhit());
-}
-
-/* **MUST** be implemented */
-CIOLIBEXPORT int ciolib_getch(void)
-{
-	int ch;
-
-	CIOLIB_INIT();
-
-	if(ungotch) {
-		ch=ungotch;
-		ungotch=0;
-		return(ch);
-	}
-	return(cio_api.getch());
-}
-
-/* Optional */
-CIOLIBEXPORT int ciolib_getche(void)
-{
-	int ch;
-
-	CIOLIB_INIT();
-
-	if(ungotch) {
-		ch=ungotch;
-		ungotch=0;
-		ciolib_putch(ch);
-		return(ch);
-	}
-	if(cio_api.getche)
-		return(cio_api.getche());
-	else {
-		while(1) {
-			ch=ciolib_getch();
-			if(ch != 0 && ch != 0xe0) {
-				ciolib_putch(ch);
-				return(ch);
-			}
-			/* Eat extended chars - except ESC which is an abort */
-			if(ciolib_getch()==1)
-				return(EOF);
-		}
-	}
-}
-
-/* Optional */
-/*
- * On success, returns ch, on error, returns EOF
- */
-CIOLIBEXPORT int ciolib_ungetch(int ch)
-{
-	CIOLIB_INIT();
-
-	if(ungotch)
-		return(EOF);
-	if(cio_api.ungetch)
-		return(cio_api.ungetch(ch));
-	ungotch=ch;
-	return(ch);
-}
-
-/* Optional */
-/*
- * Returns non-zero on success
- */
-CIOLIBEXPORT int ciolib_movetext(int sx, int sy, int ex, int ey, int dx, int dy)
-{
-	int width;
-	int height;
-	void *buf;
-
-	CIOLIB_INIT();
-
-	if(cio_api.movetext != NULL)
-		return(cio_api.movetext(sx, sy, ex, ey, dx, dy));
-
-	width=ex-sx;
-	height=ey-sy;
-	if (cio_api.vmem_gettext) {
-		buf=malloc((width+1)*(height+1)*sizeof(struct vmem_cell));
-		if (buf == NULL)
-			return 0;
-		if(!ciolib_vmem_gettext(sx,sy,ex,ey,buf))
-			goto fail;
-		if(!ciolib_vmem_puttext(dx,dy,dx+width,dy+height,buf))
-			goto fail;
-	}
-	else {
-		buf=malloc((width+1)*(height+1)*2);
-		if (buf == NULL)
-			return 0;
-		if(!ciolib_gettext(sx,sy,ex,ey,buf))
-			goto fail;
-		if(!ciolib_puttext(dx,dy,dx+width,dy+height,buf))
-			goto fail;
-	}
-
-	return(1);
-
-fail:
-	free(buf);
-	return 0;
-}
-
-/* Optional */
-/*
- * Returns &str[2]
- * Cannot fail
- */
-CIOLIBEXPORT char * ciolib_cgets(char *str)
-{
-	int	maxlen;
-	int len=0;
-	int ch;
-
-	CIOLIB_INIT();
-
-	if(cio_api.cgets)
-		return(cio_api.cgets(str));
-
-	maxlen=*(unsigned char *)str;
-	while((ch=ciolib_getch())!='\n' && ch !='\r') {
-		switch(ch) {
-			case 0:		/* Skip extended keys */
-			case 0xe0:	/* Skip extended keys */
-				if(ciolib_getche()==1)
-					goto early_return;
-				break;
-			case '\b':
-				if(len==0) {
-					ciolib_putch(7);
-					break;
-				}
-				ciolib_putch('\b');
-				len--;
-				break;
-			default:
-				ciolib_putch(ch);
-				str[(len++)+2]=ch;
-				if(len==maxlen) {
-					str[len+2]=0;
-					*((unsigned char *)(str+1))=(unsigned char)len;
-					ciolib_putch('\r');
-					ciolib_putch('\n');
-					return(&str[2]);
-				}
-				break;
-		}
-	}
-early_return:
-	str[len+2]=0;
-	*((unsigned char *)(str+1))=(unsigned char)len;
-	ciolib_putch('\r');
-	ciolib_putch('\n');
-	return(&str[2]);
-}
-
-#if defined(_MSC_VER) && (_MSC_VER < 1800)	/* Use lame vsscanf() implementation */
-/* This is a way to do _vsscanf without using fancy stack tricks or using the
- * "_input" method provided by Microsoft, which is no longer exported as of .NET.
- * The function has a limit of 25 arguments (or less if you run out of stack space),
- *  but how many arguments do you need?
- */
-/* From "krabsheva" - http://www.codeguru.com/Cpp/Cpp/string/comments.php/c5631/?thread=1051 */
-int vsscanf( const char *buffer, const char *format, va_list arg_ptr )
-{
-	int i, ret;
-	void *arg_arr[25];
-
-	/* Do exception handling in case we go too far // */
-	__try
-	{
-		for ( i = 0; i < 25; i++ )
-			arg_arr[i] = va_arg( arg_ptr, void * );
-	}
-	__except( EXCEPTION_EXECUTE_HANDLER )
-	{
-	}
-
-	/* This is lame, but the extra arguments won't be used by sscanf */
-	ret = sscanf( buffer, format, arg_arr[0], arg_arr[1], arg_arr[2], arg_arr[3],
-		arg_arr[4], arg_arr[5], arg_arr[6], arg_arr[7], arg_arr[8], arg_arr[9],
-		arg_arr[10], arg_arr[11], arg_arr[12], arg_arr[13], arg_arr[14],
-		arg_arr[15], arg_arr[16], arg_arr[17], arg_arr[18], arg_arr[19],
-		arg_arr[20], arg_arr[21], arg_arr[22], arg_arr[23], arg_arr[24] );
-
-	return ret;
-}
-#endif
-
-/* Can't be overridden */
-/* Returns the number of fields converted */
-CIOLIBEXPORT int ciolib_cscanf (char *format , ...)
-{
-	char str[255];
-    va_list argptr;
-	int ret;
-
-	CIOLIB_INIT();
-
-	str[0]=-1;
-	va_start(argptr,format);
-	ret=vsscanf(ciolib_cgets(str),format,argptr);
-	va_end(argptr);
-	return(ret);
-}
-
-/* Optional */
-/* So dumb */
-CIOLIBEXPORT char * ciolib_getpass(const char *prompt)
-{
-	static char pass[9];
-	int len=0;
-	int ch;
-
-	CIOLIB_INIT();
-
-	if(cio_api.getpass)
-		return(cio_api.getpass(prompt));
-
-	ciolib_cputs(prompt);
-	while((ch=ciolib_getch())!='\n') {
-		switch(ch) {
-			case 0:		/* Skip extended keys */
-			case 0xe0:	/* Skip extended keys */
-				if(ciolib_getch()==1)
-					goto early_return;
-				break;
-			case '\r':	/* Skip \r (ToDo: Should this be treeated as a \n? */
-				break;
-			case '\b':
-				if(len==0) {
-					ciolib_putch(7);
-					break;
-				}
-				len--;
-				break;
-			default:
-				if(len==8)
-					ciolib_putch(7);
-				else
-					pass[len++]=ch;
-				break;
-		}
-	}
-early_return:
-	pass[len]=0;
-	return(pass);
-}
-
-/* TODO: Hackery here... must fix */
-/* Optional */
-CIOLIBEXPORT void ciolib_gettextinfo(struct text_info *info)
-{
-	CIOLIB_INIT()
-
-	if(cio_api.gettextinfo)
-		cio_api.gettextinfo(&cio_textinfo);
-
-	if(info!=&cio_textinfo)
-		*info=cio_textinfo;
-}
-
-/* Optional */
-/* Not part of Borland conio? */
-CIOLIBEXPORT void ciolib_wscroll(void)
-{
-	int os;
-
-	CIOLIB_INIT();
-
-	if(cio_api.wscroll!=NULL) {
-		cio_api.wscroll();
-		return;
-	}
-	if(!_wscroll)
-		return;
-	ciolib_movetext(cio_textinfo.winleft
-			,cio_textinfo.wintop+1
-			,cio_textinfo.winright
-			,cio_textinfo.winbottom
-			,cio_textinfo.winleft
-			,cio_textinfo.wintop);
-	ciolib_gotoxy(1,cio_textinfo.winbottom-cio_textinfo.wintop+1);
-	os=_wscroll;
-	_wscroll=0;
-	/* ciolib_cprintf("%*s",ti.winright-ti.winleft+1,""); */
-	ciolib_clreol();
-	_wscroll=os;
-	ciolib_gotoxy(cio_textinfo.curx,cio_textinfo.cury);
-}
-
-/* Optional */
-/* Cannot fail */
-CIOLIBEXPORT int ciolib_wherex(void)
-{
-	int x;
-
-	CIOLIB_INIT();
-
-	if(cio_api.wherex) {
-		/* TODO: This is old hackery... beware */
-		x=cio_api.wherex();
-		x=x-cio_textinfo.winleft+1;
-	}
-	else
-		x=cio_textinfo.curx;
-	return(x);
-}
-
-/* Optional */
-/* Cannot fail */
-CIOLIBEXPORT int ciolib_wherey(void)
-{
-	int y;
-
-	CIOLIB_INIT();
-
-	if(cio_api.wherey) {
-		/* TODO: This is old hackery... beware */
-		y=cio_api.wherey();
-		y=y-cio_textinfo.wintop+1;
-	}
-	else
-		y=cio_textinfo.cury;
-	return(y);
-}
-
-/* **MUST** be implemented */
-CIOLIBEXPORT void ciolib_gotoxy(int x, int y)
-{
-	CIOLIB_INIT();
-
-	if(		x < 1
-			|| x > cio_textinfo.winright-cio_textinfo.winleft+1
-			|| y < 1
-			|| y > cio_textinfo.winbottom-cio_textinfo.wintop+1)
-		return;
-	cio_api.gotoxy(x,y);
-}
-
-/* **MUST** be implemented */
-CIOLIBEXPORT void ciolib_textmode(int mode)
-{
-	CIOLIB_INIT();
-
-	if(mode==LASTMODE) {
-		cio_api.textmode(lastmode);
-		lastmode=cio_textinfo.currmode;
-	}
-	else {
-		if(mode==64)
-			mode=C80X50;
-		if(mode==_ORIGMODE)
-			mode=C80;
-		lastmode=cio_textinfo.currmode;
-		cio_api.textmode(mode);
-	}
-	cio_textinfo.winleft=1;
-	cio_textinfo.wintop=1;
-	cio_textinfo.winright=cio_textinfo.screenwidth;
-	cio_textinfo.winbottom=cio_textinfo.screenheight;
-
-	switch(cio_textinfo.currmode) {
-		case C64_40X25:
-			cio_textinfo.normattr=0x6e;
-			break;
-		case C128_40X25:
-			cio_textinfo.normattr=0xbd;
-			break;
-		default:
-			cio_textinfo.normattr=LIGHTGRAY;
-			break;
-	}
-	ciolib_textattr(cio_textinfo.normattr);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_window(int sx, int sy, int ex, int ey)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.window)
-		cio_api.window(sx,sy,ex,ey);
-
-	if(		   sx < 1
-			|| sy < 1
-			|| ex < 1
-			|| ey < 1
-			|| sx > cio_textinfo.screenwidth
-			|| sy > cio_textinfo.screenheight
-			|| sx > ex
-			|| sy > ey
-			|| ex > cio_textinfo.screenwidth
-			|| ey > cio_textinfo.screenheight) {
-		return;
-	}
-	cio_textinfo.winleft=sx;
-	cio_textinfo.wintop=sy;
-	cio_textinfo.winright=ex;
-	cio_textinfo.winbottom=ey;
-	ciolib_gotoxy(1,1);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_clreol(void)
-{
-	struct vmem_cell *buf;
-	int i;
-	int width,height;
-
-	CIOLIB_INIT();
-
-	if(cio_api.clreol) {
-		cio_api.clreol();
-		return;
-	}
-
-	width=cio_textinfo.winright-cio_textinfo.winleft+1-cio_textinfo.curx+1;
-	height=1;
-	buf=malloc(width*height*sizeof(*buf));
-	if (!buf)
-		return;
-	for(i=0;i<width*height;i++) {
-		buf[i].ch = ' ';
-		buf[i].legacy_attr = cio_textinfo.attribute;
-		buf[i].fg = ciolib_fg;
-		buf[i].bg = ciolib_bg;
-		buf[i].font = ciolib_attrfont(cio_textinfo.attribute);
-	}
-	ciolib_vmem_puttext(
-			cio_textinfo.curx+cio_textinfo.winleft-1,
-			cio_textinfo.cury+cio_textinfo.wintop-1,
-			cio_textinfo.winright,
-			cio_textinfo.cury+cio_textinfo.wintop-1,
-			buf);
-	free(buf);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_clrscr(void)
-{
-	struct vmem_cell *buf;
-	int i;
-	int width,height;
-	int old_ptcm=puttext_can_move;
-
-	CIOLIB_INIT();
-	if(cio_api.clrscr) {
-		cio_api.clrscr();
-		return;
-	}
-
-	width=cio_textinfo.winright-cio_textinfo.winleft+1;
-	height=cio_textinfo.winbottom-cio_textinfo.wintop+1;
-	buf=malloc(width*height*sizeof(*buf));
-	if(!buf)
-		return;
-	for(i=0;i<width*height;i++) {
-		buf[i].ch = ' ';
-		buf[i].legacy_attr = cio_textinfo.attribute;
-		buf[i].fg = ciolib_fg;
-		buf[i].bg = ciolib_bg;
-		buf[i].font = ciolib_attrfont(cio_textinfo.attribute);
-	}
-	puttext_can_move=1;
-	ciolib_vmem_puttext(cio_textinfo.winleft,cio_textinfo.wintop,cio_textinfo.winright,cio_textinfo.winbottom,buf);
-	ciolib_gotoxy(1,1);
-	puttext_can_move=old_ptcm;
-
-	free(buf);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_delline(void)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.delline) {
-		cio_api.delline();
-		return;
-	}
-	ciolib_movetext(cio_textinfo.winleft
-			,cio_textinfo.cury+1
-			,cio_textinfo.winright
-			,cio_textinfo.winbottom
-			,cio_textinfo.winleft
-			,cio_textinfo.cury);
-	ciolib_gotoxy(1,cio_textinfo.winbottom-cio_textinfo.wintop+1);
-	ciolib_clreol();
-	ciolib_gotoxy(cio_textinfo.curx,cio_textinfo.cury);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_insline(void)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.insline) {
-		cio_api.insline();
-		return;
-	}
-	ciolib_movetext(cio_textinfo.winleft,cio_textinfo.cury,cio_textinfo.winright,cio_textinfo.winbottom,cio_textinfo.winleft,cio_textinfo.cury+1);
-	ciolib_gotoxy(1,cio_textinfo.cury);
-	ciolib_clreol();
-	ciolib_gotoxy(cio_textinfo.curx,cio_textinfo.cury);
-}
-
-/* Not overridable due to varargs */
-/* Returns the number of characters or EOF on error */
-CIOLIBEXPORT int ciolib_cprintf(const char *fmat, ...)
-{
-    va_list argptr;
-	int		ret;
-#if defined(_MSC_VER) || defined(__MSVCRT__)	/* Can't figure out a way to allocate a "big enough" buffer for Win32. */
-	char	str[16384];
-#else
-	char	*str;
-#ifndef HAVE_VASPRINTF
-	va_list argptr2;
-#endif
-#endif
-
-	CIOLIB_INIT();
-
-    va_start(argptr,fmat);
-
-#ifdef HAVE_VASPRINTF
-	ret=vasprintf(&str, fmat, argptr);
-	if(ret>=0)
-		ciolib_cputs(str);
-	else
-		ret=EOF;
-	free(str);
-    va_end(argptr);
-#else
-
-#if defined(_MSC_VER) || defined(__MSVCRT__)
-	ret=_vsnprintf(str,sizeof(str)-1,fmat,argptr);
-#else
-
-#ifdef __BORLANDC__
-	argptr2=argptr;
-#else
-	va_copy(argptr2, argptr);
-#endif
-    ret=vsnprintf(NULL,0,fmat,argptr);
-	if(ret<0)
-		return(EOF);
-	str=(char *)alloca(ret+1);
-	if(str==NULL)
-		return(EOF);
-	ret=vsprintf(str,fmat,argptr2);
-#endif
-    va_end(argptr);
-#if !(defined(_MSC_VER) || defined(__MSVCRT__))
-    va_end(argptr2);
-#endif
-	if(ret>=0)
-		ciolib_cputs(str);
-	else
-		ret=EOF;
-
-#endif
-
-    return(ret);
-}
-
-/* Optional */
-/* The Borland version does not translate \n into \r\n... this does.
- * Returns last character printed (!)
- */
-CIOLIBEXPORT int ciolib_cputs(const char *str)
-{
-	int		pos;
-	int		ret=0;
-	int		olddmc;
-
-	CIOLIB_INIT();
-
-	if(cio_api.cputs)
-		return(cio_api.cputs(str));
-
-	olddmc=hold_update;
-	hold_update=1;
-	for(pos=0;str[pos];pos++)
-	{
-		ret=str[pos];
-		if(str[pos]=='\n')
-			ciolib_putch('\r');
-		ciolib_putch(str[pos]);
-	}
-	hold_update=olddmc;
-	ciolib_gotoxy(ciolib_wherex(),ciolib_wherey());
-	return(ret);
-}
-
-/* Optional... and overriding is silly */
-CIOLIBEXPORT void ciolib_textbackground(int colour)
-{
-	unsigned char attr;
-	unsigned char col;
-
-	CIOLIB_INIT();
-
-	if(cio_api.textbackground) {
-		cio_api.textbackground(colour);
-		return;
-	}
-
-	attr=cio_textinfo.attribute;
-	attr&=143;
-	col=(colour & 0x07);
-	attr|=(col<<4);
-	ciolib_textattr(attr);
-}
-
-/* Optional... and overriding is silly */
-CIOLIBEXPORT void ciolib_textcolor(int colour)
-{
-	unsigned char attr;
-	unsigned char col;
-
-	CIOLIB_INIT();
-
-	if(cio_api.textcolor) {
-		cio_api.textcolor(colour);
-		return;
-	}
-
-	attr=cio_textinfo.attribute;
-	attr&=240;
-	col=colour&0x0f;
-	attr|=col;
-	ciolib_textattr(attr);
-}
-
-/* Optional... and overriding is silly */
-CIOLIBEXPORT void ciolib_highvideo(void)
-{
-	int attr;
-
-	CIOLIB_INIT();
-
-	if(cio_api.highvideo) {
-		cio_api.highvideo();
-		return;
-	}
-
-	attr=cio_textinfo.attribute;
-	attr |= 8;
-	ciolib_textattr(attr);
-}
-
-/* Optional... and overriding is silly */
-CIOLIBEXPORT void ciolib_lowvideo(void)
-{
-	int attr;
-
-	CIOLIB_INIT();
-
-	if(cio_api.lowvideo) {
-		cio_api.lowvideo();
-		return;
-	}
-
-	attr=cio_textinfo.attribute;
-	attr &= 0xf7;
-	ciolib_textattr(attr);
-}
-
-/* Optional... and overriding is silly */
-CIOLIBEXPORT void ciolib_normvideo(void)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.normvideo) {
-		cio_api.normvideo();
-		return;
-	}
-	ciolib_textattr(cio_textinfo.normattr);
-}
-
-/* **MUST** be implemented */
-/*
- * Non-zero on success
- */
-CIOLIBEXPORT int ciolib_puttext(int a,int b,int c,int d,void *e)
-{
-	char	*buf=e;
-	int		ret;
-	CIOLIB_INIT();
-
-	ret = cio_api.puttext(a,b,c,d,(void *)buf);
-	if (buf != e)
-		free(buf);
-	return ret;
-}
-
-/* **MUST** be implemented */
-/* 1 on success, 0 on failure */
-CIOLIBEXPORT int ciolib_gettext(int a,int b,int c,int d,void *e)
-{
-	char	*ch;
-	int		i;
-	int		ret;
-	struct vmem_cell *buf;
-	CIOLIB_INIT();
-
-	if (cio_api.gettext == NULL) {
-		buf = malloc((c-a+1)*(d-b+1)*sizeof(*buf));
-		if (buf == NULL)
-			return 0;
-		ch = e;
-		ret = cio_api.vmem_gettext(a,b,c,d,buf);
-		for (i=0; i<(c-a+1)*(d-b+1); i++) {
-			*(ch++)=buf[i].ch;
-			*(ch++)=buf[i].legacy_attr;
-		}
-		free(buf);
-	}
-	else
-		ret = cio_api.gettext(a,b,c,d,e);
-	return ret;
-}
-
-/* Optional */
-/* 1 on success, 0 on failure */
-CIOLIBEXPORT int ciolib_vmem_gettext(int a,int b,int c,int d,struct vmem_cell *e)
-{
-	int ret;
-	uint16_t *buf;
-	int i;
-	CIOLIB_INIT();
-
-	if (cio_api.vmem_gettext == NULL) {
-		buf = malloc((c-a+1)*(d-b+1)*sizeof(*buf));
-		if (buf == NULL)
-			return 0;
-		ret = ciolib_gettext(a, b, c, d, buf);
-		if (ret) {
-			for (i=0; i<(c-a+1)*(d-b+1); i++) {
-				memset(&e[i], 0, sizeof(e[0]));
-				e[i].ch = buf[i] & 0xff;
-				e[i].legacy_attr = buf[i] >> 8;
-			}
-		}
-		free(buf);
-		return ret;
-	}
-	return cio_api.vmem_gettext(a,b,c,d,e);
-}
-
-/* Optional */
-/* Non-zero on success */
-CIOLIBEXPORT int ciolib_vmem_puttext(int a,int b,int c,int d,struct vmem_cell *e)
-{
-	int i;
-	int ret;
-	uint16_t *buf;
-	CIOLIB_INIT();
-
-	if (cio_api.vmem_puttext == NULL) {
-		buf = malloc((c-a+1)*(d-b+1)*sizeof(*buf));
-		if (buf == NULL)
-			return 0;
-		for (i=0; i<(c-a+1)*(d-b+1); i++)
-			buf[i] = (e[i].legacy_attr << 8) | (e[i].ch);
-		ret = ciolib_puttext(a, b, c, d, buf);
-		free(buf);
-		return ret;
-	}
-	return cio_api.vmem_puttext(a,b,c,d,e);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_textattr(int a)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.textattr) {
-		cio_api.textattr(a);
-		return;
-	}
-
-	cio_textinfo.attribute=a;
-	ciolib_attr2palette(a, &ciolib_fg, &ciolib_bg);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_delay(long a)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.delay) {
-		cio_api.delay(a);
-		return;
-	}
-	SLEEP(a);
-}
-
-/* Optional */
-/* Returns ch on success, EOF on error */
-CIOLIBEXPORT int ciolib_putch(int ch)
-{
-	unsigned char a1=ch;
-	struct vmem_cell buf[1];
-	int i;
-	int old_puttext_can_move=puttext_can_move;
-
-	CIOLIB_INIT();
-
-	if(cio_api.putch)
-		return(cio_api.putch(a1));
-
-	puttext_can_move=1;
-
-	buf[0].ch=a1;
-	buf[0].legacy_attr=cio_textinfo.attribute;
-	buf[0].fg = ciolib_fg;
-	buf[0].bg = ciolib_bg;
-	buf[0].font = ciolib_attrfont(cio_textinfo.attribute);
-
-	switch(a1) {
-		case '\r':
-			ciolib_gotoxy(1,cio_textinfo.cury);
-			break;
-		case '\n':
-			if(cio_textinfo.cury==cio_textinfo.winbottom-cio_textinfo.wintop+1)
-				ciolib_wscroll();
-			else
-				ciolib_gotoxy(cio_textinfo.curx, cio_textinfo.cury+1);
-			break;
-		case '\b':
-			if(cio_textinfo.curx>1) {
-				ciolib_gotoxy(cio_textinfo.curx-1,cio_textinfo.cury);
-				buf[0].ch=' ';
-				ciolib_vmem_puttext(cio_textinfo.curx+cio_textinfo.winleft-1
-						,cio_textinfo.cury+cio_textinfo.wintop-1
-						,cio_textinfo.curx+cio_textinfo.winleft-1
-						,cio_textinfo.cury+cio_textinfo.wintop-1
-						,buf);
-			}
-			break;
-		case 7:		/* Bell */
-			ciolib_beep();
-			break;
-		case '\t':
-			for(i=0;i<(sizeof(tabs)/sizeof(int));i++) {
-				if(tabs[i]>cio_textinfo.curx) {
-					buf[0].ch=' ';
-					while(cio_textinfo.curx<tabs[i]) {
-						ciolib_vmem_puttext(cio_textinfo.curx+cio_textinfo.winleft-1
-								,cio_textinfo.cury+cio_textinfo.wintop-1
-								,cio_textinfo.curx+cio_textinfo.winleft-1
-								,cio_textinfo.cury+cio_textinfo.wintop-1
-								,buf);
-						ciolib_gotoxy(cio_textinfo.curx+1,cio_textinfo.cury);
-						if(cio_textinfo.curx==cio_textinfo.screenwidth)
-							break;
-					}
-					break;
-				}
-			}
-			if(cio_textinfo.curx==cio_textinfo.screenwidth) {
-				ciolib_gotoxy(1,cio_textinfo.cury);
-				if(cio_textinfo.cury==cio_textinfo.winbottom-cio_textinfo.wintop+1)
-					ciolib_wscroll();
-				else
-					ciolib_gotoxy(cio_textinfo.curx, cio_textinfo.cury+1);
-			}
-			break;
-		default:
-			if(cio_textinfo.cury==cio_textinfo.winbottom-cio_textinfo.wintop+1
-					&& cio_textinfo.curx==cio_textinfo.winright-cio_textinfo.winleft+1) {
-				ciolib_vmem_puttext(ciolib_wherex()+cio_textinfo.winleft-1
-						,ciolib_wherey()+cio_textinfo.wintop-1
-						,ciolib_wherex()+cio_textinfo.winleft-1
-						,ciolib_wherey()+cio_textinfo.wintop-1
-						,buf);
-				ciolib_wscroll();
-				ciolib_gotoxy(1, cio_textinfo.winbottom-cio_textinfo.wintop+1);
-			}
-			else {
-				if(cio_textinfo.curx==cio_textinfo.winright-cio_textinfo.winleft+1) {
-					ciolib_vmem_puttext(ciolib_wherex()+cio_textinfo.winleft-1
-							,ciolib_wherey()+cio_textinfo.wintop-1
-							,ciolib_wherex()+cio_textinfo.winleft-1
-							,ciolib_wherey()+cio_textinfo.wintop-1
-							,buf);
-					ciolib_gotoxy(1,cio_textinfo.cury+1);
-				}
-				else {
-					ciolib_vmem_puttext(ciolib_wherex()+cio_textinfo.winleft-1
-							,ciolib_wherey()+cio_textinfo.wintop-1
-							,ciolib_wherex()+cio_textinfo.winleft-1
-							,ciolib_wherey()+cio_textinfo.wintop-1
-							,buf);
-					ciolib_gotoxy(cio_textinfo.curx+1, cio_textinfo.cury);
-				}
-			}
-			break;
-	}
-
-	puttext_can_move=old_puttext_can_move;
-
-	return(a1);
-
-}
-
-/* **MUST** be implemented */
-CIOLIBEXPORT void ciolib_setcursortype(int a)
-{
-	CIOLIB_INIT();
-
-	cio_api.setcursortype(a);
-}
-
-/* Optional */
-/* Return Non-zero on success */
-CIOLIBEXPORT int ciolib_showmouse(void) {
-	CIOLIB_INIT();
-
-	if(cio_api.showmouse!=NULL)
-		return(cio_api.showmouse());
-	return(0);
-}
-
-/* Optional */
-/* Return Non-zero on success */
-CIOLIBEXPORT int ciolib_hidemouse(void) {
-	CIOLIB_INIT();
-
-	if(cio_api.hidemouse!=NULL)
-		return(cio_api.hidemouse());
-	return(0);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_setname(const char *name) {
-	CIOLIB_INIT();
-
-	if(cio_api.setname!=NULL)
-		cio_api.setname(name);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_seticon(const void *icon, unsigned long size) {
-	CIOLIB_INIT();
-
-	if(cio_api.seticon!=NULL)
-		cio_api.seticon(icon,size);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_settitle(const char *title) {
-	CIOLIB_INIT();
-
-	if(cio_api.settitle!=NULL)
-		cio_api.settitle(title);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_copytext(const char *text, size_t buflen)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.copytext!=NULL)
-		cio_api.copytext(text,buflen);
-}
-
-/* Optional */
-/* Returns NULL on error */
-CIOLIBEXPORT char * ciolib_getcliptext(void)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.getcliptext!=NULL)
-		return(cio_api.getcliptext());
-	else
-		return(NULL);
-}
-
-/* Optional */
-/* Return Non-zero on success */
-CIOLIBEXPORT int ciolib_setfont(int font, int force, int font_num)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.setfont!=NULL)
-		return(cio_api.setfont(font,force,font_num));
-	else
-		return(0);
-}
-
-/* Optional */
-/* Return -1 if not implemented */
-CIOLIBEXPORT int ciolib_getfont(int font_num)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.getfont!=NULL)
-		return(cio_api.getfont(font_num));
-	else
-		return(-1);
-}
-
-/* Optional */
-/* Return Non-zero on success */
-CIOLIBEXPORT int ciolib_loadfont(const char *filename)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.loadfont!=NULL)
-		return(cio_api.loadfont(filename));
-	else
-		return(0);
-}
-
-/* Optional */
-/* Return Non-zero on success */
-CIOLIBEXPORT int ciolib_get_window_info(int *width, int *height, int *xpos, int *ypos)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.get_window_info!=NULL)
-		return(cio_api.get_window_info(width,height,xpos,ypos));
-	else {
-		if(width)
-			*width=-1;
-		if(height)
-			*height=-1;
-		if(xpos)
-			*xpos=-1;
-		if(ypos)
-			*ypos=-1;
-	}
-	return(0);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_beep(void)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.beep)
-		cio_api.beep();
-	else
-		BEEP(440,100);
-	return;
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_getcustomcursor(int *start, int *end, int *range, int *blink, int *visible)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.getcustomcursor)
-		cio_api.getcustomcursor(start,end,range,blink,visible);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_setcustomcursor(int start, int end, int range, int blink, int visible)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.setcustomcursor)
-		cio_api.setcustomcursor(start,end,range,blink,visible);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_setvideoflags(int flags)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.setvideoflags)
-		cio_api.setvideoflags(flags);
-}
-
-/* Optional */
-CIOLIBEXPORT int ciolib_getvideoflags(void)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.getvideoflags)
-		return(cio_api.getvideoflags());
-	return(0);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_setscaling(int new_value)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.setscaling)
-		cio_api.setscaling(new_value);
-}
-
-/* Optional */
-/* Returns zero on error */
-CIOLIBEXPORT int ciolib_getscaling(void)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.getscaling)
-		return(cio_api.getscaling());
-	return(1);
-}
-
-/* Optional */
-/* Returns non-zero on success */
-CIOLIBEXPORT int ciolib_setpalette(uint32_t entry, uint16_t r, uint16_t g, uint16_t b)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.setpalette)
-		return(cio_api.setpalette(entry, r, g, b));
-	return(0);
-}
-
-/* Returns non-zero on success */
-CIOLIBEXPORT int ciolib_attr2palette(uint8_t attr, uint32_t *fg, uint32_t *bg)
-{
-	CIOLIB_INIT();
-
-	if (cio_api.attr2palette)
-		return cio_api.attr2palette(attr, fg, bg);
-	/*
-	 * TODO: If we want to be able to cross screens, we need some
-	 * mapping for non-plaette aware things.
-	 */
-	return 0;
-}
-
-/* Returns non-zero on success */
-CIOLIBEXPORT int ciolib_setpixel(uint32_t x, uint32_t y, uint32_t colour)
-{
-	CIOLIB_INIT();
-
-	if (cio_api.setpixel)
-		return cio_api.setpixel(x, y, colour);
-	return 0;
-}
-
-/* Returns NULL on failure */
-CIOLIBEXPORT struct ciolib_pixels * ciolib_getpixels(uint32_t sx, uint32_t sy, uint32_t ex, uint32_t ey, int force)
-{
-	CIOLIB_INIT();
-
-	if (cio_api.getpixels)
-		return cio_api.getpixels(sx, sy, ex, ey, force);
-	return NULL;
-}
-
-/* Returns non-zero on success */
-CIOLIBEXPORT int ciolib_setpixels(uint32_t sx, uint32_t sy, uint32_t ex, uint32_t ey, uint32_t x_off, uint32_t y_off, struct ciolib_pixels *pixels, void *mask)
-{
-	CIOLIB_INIT();
-
-	if (cio_api.setpixels)
-		return cio_api.setpixels(sx, sy, ex, ey, x_off, y_off, pixels, mask);
-	return 0;
-}
-
-CIOLIBEXPORT void ciolib_freepixels(struct ciolib_pixels *pixels)
-{
-	if (pixels == NULL)
-		return;
-
-	FREE_AND_NULL(pixels->pixels);
-	FREE_AND_NULL(pixels->pixelsb);
-	FREE_AND_NULL(pixels);
-}
-
-/* Returns NULL on failure */
-CIOLIBEXPORT struct ciolib_screen * ciolib_savescreen(void)
-{
-	struct ciolib_screen *ret;
-	int vmode;
-	int i;
-
-	CIOLIB_INIT();
-
-	ret = malloc(sizeof(*ret));
-	if (ret == NULL)
-		return NULL;
-
-	ciolib_gettextinfo(&ret->text_info);
-	vmode = find_vmode(ret->text_info.currmode);
-	ret->vmem = malloc(ret->text_info.screenwidth * ret->text_info.screenheight * sizeof(struct vmem_cell));
-	if (ret->vmem == NULL) {
-		free(ret);
-		return NULL;
-	}
-
-	if (vmode != -1) {
-		ret->pixels = ciolib_getpixels(0, 0, vparams[vmode].charwidth * vparams[vmode].cols - 1, vparams[vmode].charheight * vparams[vmode].rows - 1, TRUE);
-	}
-	ciolib_vmem_gettext(1, 1, ret->text_info.screenwidth, ret->text_info.screenheight, ret->vmem);
-	ret->fg_colour = ciolib_fg;
-	ret->bg_colour = ciolib_bg;
-	for (i=0; i<5; i++)
-		ret->fonts[i] = ciolib_getfont(i);
-	ret->flags = ciolib_getvideoflags();
-	ciolib_get_modepalette(ret->palette);
-
-	return ret;
-}
-
-CIOLIBEXPORT void ciolib_freescreen(struct ciolib_screen *scrn)
-{
-	if (scrn == NULL)
-		return;
-
-	ciolib_freepixels(scrn->pixels);
-	FREE_AND_NULL(scrn->vmem);
-	free(scrn);
-}
-
-/* Returns non-zero on success */
-CIOLIBEXPORT int ciolib_restorescreen(struct ciolib_screen *scrn)
-{
-	struct text_info ti;
-	int vmode;
-	int i;
-
-	CIOLIB_INIT();
-
-	ciolib_gettextinfo(&ti);
-
-	if (ti.currmode != scrn->text_info.currmode)
-		ciolib_textmode(scrn->text_info.currmode);
-	ciolib_set_modepalette(scrn->palette);
-	ciolib_vmem_puttext(1, 1, scrn->text_info.screenwidth, scrn->text_info.screenheight, scrn->vmem);
-	ciolib_textcolor(scrn->text_info.attribute);
-	ciolib_window(scrn->text_info.winleft, scrn->text_info.wintop, scrn->text_info.winright, scrn->text_info.winbottom);
-	vmode = find_vmode(scrn->text_info.currmode);
-	if (vmode != -1 && scrn->pixels != NULL)
-		ciolib_setpixels(0, 0, vparams[vmode].charwidth * vparams[vmode].cols - 1, vparams[vmode].charheight * vparams[vmode].rows - 1, 0, 0, scrn->pixels, NULL);
-	for (i=0; i<5; i++)
-		ciolib_setfont(scrn->fonts[i], FALSE, i);
-	ciolib_setvideoflags(scrn->flags);
-	ciolib_setcolour(scrn->fg_colour, scrn->bg_colour);
-	ciolib_gotoxy(scrn->text_info.curx, scrn->text_info.cury);
-	return 1;
-}
-
-CIOLIBEXPORT void ciolib_setcolour(uint32_t fg, uint32_t bg)
-{
-	ciolib_fg = fg;
-	ciolib_bg = bg;
-}
-
-/* Returns non-zero on success */
-CIOLIBEXPORT int ciolib_get_modepalette(uint32_t p[16])
-{
-	CIOLIB_INIT();
-
-	if (cio_api.get_modepalette)
-		return cio_api.get_modepalette(p);
-	return 0;
-}
-
-/* Returns non-zero on success */
-CIOLIBEXPORT int ciolib_set_modepalette(uint32_t p[16])
-{
-	CIOLIB_INIT();
-
-	if (cio_api.set_modepalette)
-		return cio_api.set_modepalette(p);
-	return 0;
-}
-
-/* Returns non-zero on success */
-CIOLIBEXPORT uint32_t ciolib_map_rgb(uint16_t r, uint16_t g, uint16_t b)
-{
-	CIOLIB_INIT();
-
-	if (cio_api.map_rgb)
-		return cio_api.map_rgb(r,g,b);
-	return 0;
-}
-
-CIOLIBEXPORT void ciolib_replace_font(uint8_t id, char *name, void *data, size_t size)
-{
-	CIOLIB_INIT();
-
-	if (cio_api.replace_font) {
-		cio_api.replace_font(id, name, data, size);
-		return;
-	}
-	free(name);
-	free(data);
-}
-
-CIOLIBEXPORT int ciolib_attrfont(uint8_t attr)
-{
-	int flags;
-	int font = 0;
-	CIOLIB_INIT();
-
-	flags = ciolib_getvideoflags();
-	if ((flags & CIOLIB_VIDEO_ALTCHARS) && (attr & 0x08))
-		font |= 1;
-	if ((flags & CIOLIB_VIDEO_BLINKALTCHARS) && (attr & 0x80))
-		font |= 2;
-	return ciolib_getfont(font+1);
-}
-
-/* Returns non-zero if fontnum is supported in this mode */
-CIOLIBEXPORT int ciolib_checkfont(int fontnum)
-{
-	int vmode;
-	struct text_info ti;
-
-	CIOLIB_INIT();
-
-	if (fontnum < 0 || fontnum > 255)
-		return 0;
-
-	// Font 0 is always supported.
-	if (fontnum == 0)
-		return 1;
-
-	ciolib_gettextinfo(&ti);
-	vmode = find_vmode(ti.currmode);
-
-	if (cio_api.checkfont != NULL)
-		return cio_api.checkfont(fontnum);
-	if (vmode == -1)
-		return 0;
-
-	if (cio_api.options & CONIO_OPT_FONT_SELECT) {
-		switch (vparams[vmode].charheight) {
-			case 8:
-				if (conio_fontdata[fontnum].eight_by_eight)
-					return 1;
-				return 0;
-			case 14:
-				if (conio_fontdata[fontnum].eight_by_fourteen)
-					return 1;
-				return 0;
-			case 16:
-				if (conio_fontdata[fontnum].eight_by_sixteen)
-					return 1;
-				return 0;
-			default:
-				return 0;
-		}
-	}
-	return 0;
-
-}
-
-CIOLIBEXPORT void
-ciolib_set_vmem(struct vmem_cell *cell, uint8_t ch, uint8_t attr, uint8_t font)
-{
-	CIOLIB_INIT();
-
-	if (cell == NULL)
-		return;
-	cell->ch = ch;
-	cell->font = font;
-	ciolib_set_vmem_attr(cell, attr);
-}
-
-CIOLIBEXPORT void
-ciolib_set_vmem_attr(struct vmem_cell *cell, uint8_t attr)
-{
-	CIOLIB_INIT();
-
-	if (cell == NULL)
-		return;
-	cell->legacy_attr = attr;
-	ciolib_attr2palette(attr, &cell->fg, &cell->bg);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_setwinsize(int w, int h)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.setwinsize)
-		cio_api.setwinsize(w, h);
-}
-
-/* Optional */
-CIOLIBEXPORT void ciolib_setwinposition(int x, int y)
-{
-	CIOLIB_INIT();
-
-	if(cio_api.setwinposition)
-		cio_api.setwinposition(x, y);
-}
-
-CIOLIBEXPORT enum ciolib_codepage ciolib_getcodepage(void)
-{
-	int font = ciolib_getfont(1);
-
-	if (font < 0)
-		return CIOLIB_CP437;
-	if (font >= sizeof(conio_fontdata) / sizeof(conio_fontdata[0]))
-		return CIOLIB_CP437;
-	return conio_fontdata[font].cp;
-}
-
-#if defined(__DARWIN__)
-#ifdef main
-#undef main
-#endif
-
-sem_t startsdl_sem;
-sem_t main_sem;
-int initsdl_ret = -1;
-
-struct main_args {
-	int argc;
-	char **argv;
-	int ret;
-	int no_sdl;
-};
-
-int CIOLIB_main(int, char **);
-void main_stub(void *argptr)
-{
-	struct main_args *args = (struct main_args *)argptr;
-	args->ret = CIOLIB_main(args->argc, args->argv);
-	args->no_sdl = 1;
-	sem_post(&startsdl_sem);
-	sem_post(&main_sem);
-	exit_sdl_con();
-}
-
-int main(int argc, char **argv)
-{
-	struct main_args ma = {argc, argv, -1, 0};
-	sem_init(&startsdl_sem, 0, 0);
-	sem_init(&main_sem, 0, 0);
-	initsdl_ret = init_sdl_video();
-	_beginthread(main_stub, 0, &ma);
-	if (!ma.no_sdl) {
-		if (initsdl_ret != -1) {
-			sem_wait(&startsdl_sem);
-			sdl_video_event_thread(NULL);
-		}
-	}
-	sem_wait(&main_sem);
-	return ma.ret;
-}
-#endif
-
-/* Returns non-zero on success */
-CIOLIBEXPORT uint32_t ciolib_mousepointer(enum ciolib_mouse_ptr type)
-{
-	CIOLIB_INIT();
-
-	if (cio_api.mousepointer)
-		return cio_api.mousepointer(type);
-	return 0;
-}
diff --git a/ciolib/ciolib.h b/ciolib/ciolib.h
deleted file mode 100644
index ba56dfdc91700ed59eef3fc0276d44f58fc6a225..0000000000000000000000000000000000000000
--- a/ciolib/ciolib.h
+++ /dev/null
@@ -1,707 +0,0 @@
-/* $Id: ciolib.h,v 1.125 2020/06/27 00:04:44 deuce Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _CIOLIB_H_
-#define _CIOLIB_H_
-
-#include <string.h>	/* size_t */
-#if defined(__DARWIN__)
-#include <semwrap.h>
-#endif
-#include "gen_defs.h"
-#include "utf8_codepages.h"
-
-#ifdef CIOLIBEXPORT
-        #undef CIOLIBEXPORT
-#endif
-
-#ifdef _WIN32
-        #if defined(CIOLIB_IMPORTS) || defined(CIOLIB_EXPORTS)
-                #if defined(CIOLIB_IMPORTS)
-                        #define CIOLIBEXPORT __declspec( dllimport )
-                        #define CIOLIBEXPORTVAR __declspec( dllimport )
-                #else
-                        #define CIOLIBEXPORT __declspec( dllexport )
-                        #define CIOLIBEXPORTVAR __declspec( dllexport )
-                #endif
-        #else   /* self-contained executable */
-                #define CIOLIBEXPORT
-                #define CIOLIBEXPORTVAR	extern
-        #endif
-#elif defined __unix__
-        #define CIOLIBEXPORT
-        #define CIOLIBEXPORTVAR	extern
-#else
-        #define CIOLIBEXPORT
-        #define CIOLIBEXPORTVAR	extern
-#endif
-
-enum {
-	 CIOLIB_MODE_AUTO
-	,CIOLIB_MODE_CURSES
-	,CIOLIB_MODE_CURSES_IBM
-	,CIOLIB_MODE_CURSES_ASCII
-	,CIOLIB_MODE_ANSI
-	,CIOLIB_MODE_X
-	,CIOLIB_MODE_CONIO
-	,CIOLIB_MODE_CONIO_FULLSCREEN
-	,CIOLIB_MODE_SDL
-	,CIOLIB_MODE_SDL_FULLSCREEN
-};
-
-enum ciolib_mouse_ptr {
-	 CIOLIB_MOUSEPTR_ARROW
-	,CIOLIB_MOUSEPTR_BAR
-};
-
-#if defined(_WIN32)	/* presumably, Win32 */
-
-	#include <io.h>			/* isatty */
-
-#endif
-
-#ifndef __COLORS
-#define __COLORS
-
-enum {
-	 BLACK
-	,BLUE
-	,GREEN
-	,CYAN
-	,RED
-	,MAGENTA
-	,BROWN	
-	,LIGHTGRAY	
-	,DARKGRAY
-	,LIGHTBLUE	
-	,LIGHTGREEN	
-	,LIGHTCYAN
-	,LIGHTRED
-	,LIGHTMAGENTA
-	,YELLOW
-	,WHITE
-};
-
-#endif	/* __COLORS */
-
-#ifndef BLINK
-#define BLINK 128
-#endif
-
-#define CIOLIB_VIDEO_ALTCHARS             (1<<0)	// Attribute bit 3 selects alternate char set
-#define CIOLIB_VIDEO_NOBRIGHT             (1<<1)	// Attribute bit 3 does not increase intensity
-#define CIOLIB_VIDEO_BGBRIGHT             (1<<2)	// Attribute bit 7 selects high intensity background, not blink
-#define CIOLIB_VIDEO_BLINKALTCHARS        (1<<3)	// Attribute bit 7 selects alternate char set
-#define CIOLIB_VIDEO_NOBLINK              (1<<4)	// Attribute bit 7 has no effect
-#define CIOLIB_VIDEO_EXPAND               (1<<5)	// Use an extra blank column between characters from the font
-#define CIOLIB_VIDEO_LINE_GRAPHICS_EXPAND (1<<6)	// Per VGA, when using CIOLIB_VIDEO_EXPAND, repeat the last column for chars 0xC0 - 0xDF inclusive
-
-enum text_modes
-{
-    /* DOS-compatible modes */
-
-    LASTMODE = -1,
-    BW40     = 0,
-    C40,
-    BW80,
-    C80,
-    MONO     = 7,
-
-    /* New Color modes */
-
-    C40X14   = 8,
-    C40X21,
-    C40X28,
-    C40X43,
-    C40X50,
-    C40X60,
-
-    C80X14,
-    C80X21,
-    C80X28,
-    C80X30,
-    C80X43,
-    C80X50,
-    C80X60,
-
-    /* New Black & White modes */
-
-    BW40X14,
-    BW40X21,
-    BW40X28,
-    BW40X43,
-    BW40X50,
-    BW40X60,
-
-    BW80X14,
-    BW80X21,
-    BW80X28,
-    BW80X43,
-    BW80X50,
-    BW80X60,
-
-    /* New Monochrome modes */
-
-    MONO14,             /* Invalid VGA mode */
-    MONO21,
-    MONO28,
-    MONO43,
-    MONO50,
-    MONO60,		// 38
-
-	/* New modes we've added 'cause they're cool */
-
-	ST132X37_16_9,
-	ST132X52_5_4,
-
-	/* New modes we've added 'cause they're stupid */
-	VGA80X25,
-
-	/* New modes we've added because DigitalMan bitched for DAYS! */
-	LCD80X25,
-
-	/* Cruft... */
-
-	C4350    = C80X50,	/* this is actually "64" in the "real" conio */
-
-    _ORIGMODE = 65,      /* original mode at program startup */
-
-	EGA80X25,	/* 80x25 in 640x350 screen */
-    C64_40X25 = 147,	/* Commodore 64 40x25 colour mode */
-    C128_40X25,		/* Commodore 128 40x25 colour mode */
-    C128_80X25,		/* Commodore 128 40x25 colour mode */
-	ATARI_40X24,	/* Atari 800 40x24 colour text mode */
-	ATARI_80X25,	/* Atari 800 XEP80 80x25 mono text mode */
-
-	/* VESA Modes */
-	VESA_132X21	= 235,
-	VESA_132X25	= 231,
-	VESA_132X28	= 228,
-	VESA_132X30	= 226,
-	VESA_132X34	= 222,
-	VESA_132X43	= 213,
-	VESA_132X50	= 206,
-	VESA_132X60	= 196,
-
-	/* Custom Mode */
-	CIOLIB_MODE_CUSTOM = 255,	// Last mode... if it's over 255, text_info can't hold it.
-};
-
-#define COLOR_MODE	C80
-
-enum
-{
-	_NOCURSOR,
-	_SOLIDCURSOR,
-	_NORMALCURSOR
-};
-
-struct text_info {
-	unsigned char winleft;        /* left window coordinate */
-	unsigned char wintop;         /* top window coordinate */
-	unsigned char winright;       /* right window coordinate */
-	unsigned char winbottom;      /* bottom window coordinate */
-	unsigned char attribute;      /* text attribute */
-	unsigned char normattr;       /* normal attribute */
-	unsigned char currmode;       /* current video mode:
-                                	 BW40, BW80, C40, C80, or C4350 */
-	unsigned char screenheight;   /* text screen's height */
-	unsigned char screenwidth;    /* text screen's width */
-	unsigned char curx;           /* x-coordinate in current window */
-	unsigned char cury;           /* y-coordinate in current window */
-};
-
-CIOLIBEXPORTVAR struct text_info cio_textinfo;
-CIOLIBEXPORTVAR uint32_t ciolib_fg;
-CIOLIBEXPORTVAR uint32_t ciolib_bg;
-
-struct mouse_event {
-	int event;
-	int bstate;
-	int kbsm;
-	int startx;
-	int starty;
-	int endx;
-	int endy;
-	int startx_res;
-	int starty_res;
-	int endx_res;
-	int endy_res;
-};
-
-struct conio_font_data_struct {
-        char 	*eight_by_sixteen;
-        char 	*eight_by_fourteen;
-        char 	*eight_by_eight;
-        char 	*desc;
-        enum ciolib_codepage cp;
-};
-
-CIOLIBEXPORTVAR struct conio_font_data_struct conio_fontdata[257];
-
-struct ciolib_pixels {
-	uint32_t	*pixels;
-	uint32_t	*pixelsb;
-	uint32_t	width;
-	uint32_t	height;
-};
-
-struct vmem_cell {
-	uint8_t legacy_attr;
-	uint8_t ch;
-	uint8_t font;
-	uint32_t fg;	// RGB 00RRGGBB High bit indicates palette colour
-	uint32_t bg;	// RGB 00RRGGBB High bit indicates palette colour
-};
-
-struct ciolib_screen {
-	uint32_t		fg_colour;
-	uint32_t		bg_colour;
-	int			flags;
-	int			fonts[5];
-	struct ciolib_pixels	*pixels;
-	struct vmem_cell	*vmem;
-	struct text_info	text_info;
-	uint32_t		palette[16];
-};
-
-#define CONIO_FIRST_FREE_FONT	43
-
-typedef struct {
-	int		mode;
-	int		mouse;
-	uint64_t	options;
-#define	CONIO_OPT_LOADABLE_FONTS	1
-#define CONIO_OPT_BLINK_ALT_FONT	2
-#define CONIO_OPT_BOLD_ALT_FONT		4
-#define CONIO_OPT_BRIGHT_BACKGROUND	8
-#define CONIO_OPT_PALETTE_SETTING	16
-#define CONIO_OPT_SET_PIXEL			32
-#define CONIO_OPT_CUSTOM_CURSOR		64
-#define CONIO_OPT_FONT_SELECT		128
-#define CONIO_OPT_SET_TITLE			256
-#define CONIO_OPT_SET_NAME			512
-#define CONIO_OPT_SET_ICON			1024
-#define CONIO_OPT_EXTENDED_PALETTE	2048
-#define CONIO_OPT_BLOCKY_SCALING	4096
-	void	(*clreol)		(void);
-	int		(*puttext)		(int,int,int,int,void *);
-	int		(*vmem_puttext)		(int,int,int,int,struct vmem_cell *);
-	int		(*gettext)		(int,int,int,int,void *);
-	int		(*vmem_gettext)		(int,int,int,int,struct vmem_cell *);
-	void	(*textattr)		(int);
-	int		(*kbhit)		(void);
-	void	(*delay)		(long);
-	int		(*wherex)		(void);
-	int		(*wherey)		(void);
-	int		(*putch)		(int);
-	void	(*gotoxy)		(int,int);
-	void	(*clrscr)		(void);
-	void	(*gettextinfo)	(struct text_info *);
-	void	(*setcursortype)(int);
-	int		(*getch)		(void);
-	int		(*getche)		(void);
-	void	(*beep)			(void);
-	void	(*highvideo)	(void);
-	void	(*lowvideo)		(void);
-	void	(*normvideo)	(void);
-	void	(*textmode)		(int);
-	int		(*ungetch)		(int);
-	int		(*movetext)		(int,int,int,int,int,int);
-	char	*(*cgets)		(char *);
-	int		(*cscanf)		(char *,...);
-	char	*(*getpass)		(const char *);
-	void	(*wscroll)		(void);
-	void	(*window)		(int,int,int,int);
-	void	(*delline)		(void);
-	void	(*insline)		(void);
-	int		(*cprintf)		(const char *,...);
-	int		(*cputs)		(const char *);
-	void	(*textbackground)	(int);
-	void	(*textcolor)	(int);
-	int		(*getmouse)		(struct mouse_event *mevent);
-	int		(*ungetmouse)	(struct mouse_event *mevent);
-	int		(*hidemouse)	(void);
-	int		(*showmouse)	(void);
-	int		(*mousepointer)	(enum ciolib_mouse_ptr);
-	void	(*settitle)		(const char *);
-	void	(*setname)		(const char *);
-	void	(*seticon)		(const void *, unsigned long);
-	void	(*copytext)		(const char *, size_t);
-	char 	*(*getcliptext)	(void);
-	void	(*suspend)		(void);
-	void	(*resume)		(void);
-	int		(*setfont)		(int font, int force, int font_num);
-	int		(*getfont)		(int font_num);
-	int		(*loadfont)		(const char *filename);
-	int		(*get_window_info)		(int* width, int* height, int* xpos, int* ypos);
-	void	(*getcustomcursor)	(int *startline, int *endline, int *range, int *blink, int *visible);
-	void	(*setcustomcursor)	(int startline, int endline, int range, int blink, int visible);
-	void	(*setvideoflags)	(int flags);
-	int		(*getvideoflags)	(void);
-	void	(*setscaling)	(int new_value);
-	int		(*getscaling)	(void);
-	int		*escdelay;
-	int		(*setpalette)	(uint32_t entry, uint16_t r, uint16_t g, uint16_t b);
-	int		(*attr2palette)	(uint8_t attr, uint32_t *fg, uint32_t *bg);
-	int		(*setpixel)	(uint32_t x, uint32_t y, uint32_t colour);
-	struct ciolib_pixels *(*getpixels)(uint32_t sx, uint32_t sy, uint32_t ex, uint32_t ey, int force);
-	int		(*setpixels)(uint32_t sx, uint32_t sy, uint32_t ex, uint32_t ey, uint32_t x_off, uint32_t y_off, struct ciolib_pixels *pixels, void *mask);
-	int 	(*get_modepalette)(uint32_t[16]);
-	int	(*set_modepalette)(uint32_t[16]);
-	uint32_t	(*map_rgb)(uint16_t r, uint16_t g, uint16_t b);
-	void	(*replace_font)(uint8_t id, char *name, void *data, size_t size);
-	int	(*checkfont)(int font_num);
-	void	(*setwinsize)	(int width, int height);
-	void	(*setwinposition)	(int x, int y);
-} cioapi_t;
-
-CIOLIBEXPORTVAR cioapi_t cio_api;
-CIOLIBEXPORTVAR int _wscroll;
-CIOLIBEXPORTVAR int directvideo;
-CIOLIBEXPORTVAR int hold_update;
-CIOLIBEXPORTVAR int puttext_can_move;
-CIOLIBEXPORTVAR int ciolib_reaper;
-CIOLIBEXPORTVAR char *ciolib_appname;
-CIOLIBEXPORTVAR int ciolib_initial_window_height;
-CIOLIBEXPORTVAR int ciolib_initial_window_width;
-
-#define _conio_kbhit()		kbhit()
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-CIOLIBEXPORT int initciolib(int mode);
-CIOLIBEXPORT void suspendciolib(void);
-
-CIOLIBEXPORT int ciolib_movetext(int sx, int sy, int ex, int ey, int dx, int dy);
-CIOLIBEXPORT char * ciolib_cgets(char *str);
-CIOLIBEXPORT int ciolib_cscanf (char *format , ...);
-CIOLIBEXPORT int ciolib_kbhit(void);
-CIOLIBEXPORT int ciolib_getch(void);
-CIOLIBEXPORT int ciolib_getche(void);
-CIOLIBEXPORT int ciolib_ungetch(int ch);
-CIOLIBEXPORT void ciolib_gettextinfo(struct text_info *info);
-CIOLIBEXPORT int ciolib_wherex(void);
-CIOLIBEXPORT int ciolib_wherey(void);
-CIOLIBEXPORT void ciolib_wscroll(void);
-CIOLIBEXPORT void ciolib_gotoxy(int x, int y);
-CIOLIBEXPORT void ciolib_clreol(void);
-CIOLIBEXPORT void ciolib_clrscr(void);
-CIOLIBEXPORT int ciolib_cputs(const char *str);
-CIOLIBEXPORT int ciolib_cprintf(const char *fmat, ...);
-CIOLIBEXPORT void ciolib_textbackground(int colour);
-CIOLIBEXPORT void ciolib_textcolor(int colour);
-CIOLIBEXPORT void ciolib_highvideo(void);
-CIOLIBEXPORT void ciolib_lowvideo(void);
-CIOLIBEXPORT void ciolib_normvideo(void);
-CIOLIBEXPORT int ciolib_puttext(int a,int b,int c,int d,void *e);
-CIOLIBEXPORT int ciolib_vmem_puttext(int a,int b,int c,int d,struct vmem_cell *e);
-CIOLIBEXPORT int ciolib_gettext(int a,int b,int c,int d,void *e);
-CIOLIBEXPORT int ciolib_vmem_gettext(int a,int b,int c,int d,struct vmem_cell *e);
-CIOLIBEXPORT void ciolib_textattr(int a);
-CIOLIBEXPORT void ciolib_delay(long a);
-CIOLIBEXPORT int ciolib_putch(int a);
-CIOLIBEXPORT void ciolib_setcursortype(int a);
-CIOLIBEXPORT void ciolib_textmode(int mode);
-CIOLIBEXPORT void ciolib_window(int sx, int sy, int ex, int ey);
-CIOLIBEXPORT void ciolib_delline(void);
-CIOLIBEXPORT void ciolib_insline(void);
-CIOLIBEXPORT char * ciolib_getpass(const char *prompt);
-CIOLIBEXPORT void ciolib_settitle(const char *title);
-CIOLIBEXPORT void ciolib_setname(const char *title);
-CIOLIBEXPORT void ciolib_seticon(const void *icon,unsigned long size);
-CIOLIBEXPORT int ciolib_showmouse(void);
-CIOLIBEXPORT int ciolib_hidemouse(void);
-CIOLIBEXPORT int ciolib_mousepointeer(enum ciolib_mouse_ptr);
-CIOLIBEXPORT void ciolib_copytext(const char *text, size_t buflen);
-CIOLIBEXPORT char * ciolib_getcliptext(void);
-CIOLIBEXPORT int ciolib_setfont(int font, int force, int font_num);
-CIOLIBEXPORT int ciolib_getfont(int font_num);
-CIOLIBEXPORT int ciolib_loadfont(const char *filename);
-CIOLIBEXPORT int ciolib_get_window_info(int *width, int *height, int *xpos, int *ypos);
-CIOLIBEXPORT void ciolib_beep(void);
-CIOLIBEXPORT void ciolib_getcustomcursor(int *startline, int *endline, int *range, int *blink, int *visible);
-CIOLIBEXPORT void ciolib_setcustomcursor(int startline, int endline, int range, int blink, int visible);
-CIOLIBEXPORT void ciolib_setvideoflags(int flags);
-CIOLIBEXPORT int ciolib_getvideoflags(void);
-CIOLIBEXPORT void ciolib_setscaling(int flags);
-CIOLIBEXPORT int ciolib_getscaling(void);
-CIOLIBEXPORT int ciolib_setpalette(uint32_t entry, uint16_t r, uint16_t g, uint16_t b);
-CIOLIBEXPORT int ciolib_attr2palette(uint8_t attr, uint32_t *fg, uint32_t *bg);
-CIOLIBEXPORT int ciolib_setpixel(uint32_t x, uint32_t y, uint32_t colour);
-CIOLIBEXPORT struct ciolib_pixels * ciolib_getpixels(uint32_t sx, uint32_t sy, uint32_t ex, uint32_t ey, int force);
-CIOLIBEXPORT int ciolib_setpixels(uint32_t sx, uint32_t sy, uint32_t ex, uint32_t ey, uint32_t x_off, uint32_t y_off, struct ciolib_pixels *pixels, void *mask);
-CIOLIBEXPORT void ciolib_freepixels(struct ciolib_pixels *pixels);
-CIOLIBEXPORT struct ciolib_screen * ciolib_savescreen(void);
-CIOLIBEXPORT void ciolib_freescreen(struct ciolib_screen *);
-CIOLIBEXPORT int ciolib_restorescreen(struct ciolib_screen *scrn);
-CIOLIBEXPORT void ciolib_setcolour(uint32_t fg, uint32_t bg);
-CIOLIBEXPORT int ciolib_get_modepalette(uint32_t[16]);
-CIOLIBEXPORT int ciolib_set_modepalette(uint32_t[16]);
-CIOLIBEXPORT uint32_t ciolib_map_rgb(uint16_t r, uint16_t g, uint16_t b);
-CIOLIBEXPORT void ciolib_replace_font(uint8_t id, char *name, void *data, size_t size);
-CIOLIBEXPORT int ciolib_attrfont(uint8_t attr);
-CIOLIBEXPORT int ciolib_checkfont(int font_num);
-CIOLIBEXPORT void ciolib_set_vmem(struct vmem_cell *cell, uint8_t ch, uint8_t attr, uint8_t font);
-CIOLIBEXPORT void ciolib_set_vmem_attr(struct vmem_cell *cell, uint8_t attr);
-CIOLIBEXPORT void ciolib_setwinsize(int width, int height);
-CIOLIBEXPORT void ciolib_setwinposition(int x, int y);
-CIOLIBEXPORT enum ciolib_codepage ciolib_getcodepage(void);
-
-/* DoorWay specific stuff that's only applicable to ANSI mode. */
-CIOLIBEXPORT void ansi_ciolib_setdoorway(int enable);
-#ifdef __cplusplus
-}
-#endif
-
-#ifndef CIOLIB_NO_MACROS
-	#define cscanf					ciolib_cscanf
-	#define cprintf					ciolib_cprintf
-
-	#define movetext(a,b,c,d,e,f)	ciolib_movetext(a,b,c,d,e,f)
-	#define cgets(a)				ciolib_cgets(a)
-	#define kbhit()					ciolib_kbhit()
-	#define getch()					ciolib_getch()
-	#define getche()				ciolib_getche()
-	#define ungetch(a)				ciolib_ungetch(a)
-	#define gettextinfo(a)			ciolib_gettextinfo(a)
-	#define wherex()				ciolib_wherex()
-	#define wherey()				ciolib_wherey()
-	#define	wscroll()				ciolib_wscroll()
-	#define gotoxy(a,b)				ciolib_gotoxy(a,b)
-	#define clreol()				ciolib_clreol()
-	#define clrscr()				ciolib_clrscr()
-	#define cputs(a)				ciolib_cputs(a)
-	#define textbackground(a)		ciolib_textbackground(a)
-	#define textcolor(a)			ciolib_textcolor(a)
-	#define highvideo()				ciolib_highvideo()
-	#define lowvideo()				ciolib_lowvideo()
-	#define normvideo()				ciolib_normvideo()
-	#define puttext(a,b,c,d,e)		ciolib_puttext(a,b,c,d,e)
-	#define vmem_puttext(a,b,c,d,e)	ciolib_vmem_puttext(a,b,c,d,e)
-	#define gettext(a,b,c,d,e)		ciolib_gettext(a,b,c,d,e)
-	#define vmem_gettext(a,b,c,d,e)	ciolib_vmem_gettext(a,b,c,d,e)
-	#define textattr(a)				ciolib_textattr(a)
-	#define delay(a)				ciolib_delay(a)
-	#define putch(a)				ciolib_putch(a)
-	#define _setcursortype(a)		ciolib_setcursortype(a)
-	#define textmode(a)				ciolib_textmode(a)
-	#define window(a,b,c,d)			ciolib_window(a,b,c,d)
-	#define delline()				ciolib_delline()
-	#define insline()				ciolib_insline()
-	#define getpass(a)				ciolib_getpass(a)
-	#define getmouse(a)				ciolib_getmouse(a)
-	#define ungetmouse(a)			ciolib_ungetmouse(a)
-	#define	hidemouse()				ciolib_hidemouse()
-	#define showmouse()				ciolib_showmouse()
-	#define mousepointer(a)				ciolib_mousepointer(a)
-	#define setname(a)				ciolib_setname(a)
-	#define seticon(a,b)			ciolib_seticon(a,b)
-	#define settitle(a)				ciolib_settitle(a)
-	#define copytext(a,b)			ciolib_copytext(a,b)
-	#define getcliptext()			ciolib_getcliptext()
-	#define setfont(a,b,c)			ciolib_setfont(a,b,c)
-	#define getfont(a)				ciolib_getfont(a)
-	#define loadfont(a)				ciolib_loadfont(a)
-	#define get_window_info(a,b,c,d)	ciolib_get_window_info(a,b,c,d)
-	#define beep()				ciolib_beep()
-	#define getcustomcursor(a,b,c,d,e)	ciolib_getcustomcursor(a,b,c,d,e)
-	#define setcustomcursor(a,b,c,d,e)	ciolib_setcustomcursor(a,b,c,d,e)
-	#define setvideoflags(a)		ciolib_setvideoflags(a)
-	#define getvideoflags()			ciolib_getvideoflags()
-	#define setscaling(a)			ciolib_setscaling(a)
-	#define getscaling()			ciolib_getscaling()
-	#define setpalette(e,r,g,b)		ciolib_setpalette(e,r,g,b)
-	#define attr2palette(a,b,c)		ciolib_attr2palette(a,b,c)
-	#define setpixel(a,b,c)			ciolib_setpixel(a,b,c)
-	#define getpixels(a,b,c,d, e)		ciolib_getpixels(a,b,c,d, e)
-	#define setpixels(a,b,c,d,e,f,g,h)	ciolib_setpixels(a,b,c,d,e,f,g,h)
-	#define freepixels(a)			ciolib_freepixels(a)
-	#define savescreen()			ciolib_savescreen()
-	#define freescreen(a)			ciolib_freescreen(a)
-	#define restorescreen(a)		ciolib_restorescreen(a)
-	#define setcolour(a,b)			ciolib_setcolour(a,b)
-	#define get_modepalette(a)		ciolib_get_modepalette(a)
-	#define set_modepalette(a)		ciolib_set_modepalette(a)
-	#define map_rgb(a,b,c)			ciolib_map_rgb(a,b,c)
-	#define replace_font(a,b,c,d)	ciolib_replace_font(a,b,c,d)
-	#define attrfont(a)				ciolib_attrfont(a)
-	#define checkfont(a)			ciolib_checkfont(a)
-	#define set_vmem(a, b, c, d)		ciolib_set_vmem(a, b, c, d)
-	#define set_vmem_attr(a, b)		ciolib_set_vmem_attr(a, b)
-	#define setwinsize(a,b)			ciolib_setwinsize(a,b)
-	#define setwinposition(a,b)		ciolib_setwinposition(a,b)
-	#define getcodepage()			ciolib_getcodepage()
-#endif
-
-#ifdef WITH_SDL
-	#include <gen_defs.h>
-	#include <SDL.h>
-
-#if defined(_WIN32) || defined(__DARWIN__)
-	#ifdef main
-		#undef main
-	#endif
-	#define main	CIOLIB_main
-#endif
-
-#if defined(__DARWIN__)
-	extern sem_t main_sem;
-	extern sem_t startsdl_sem;
-	extern int initsdl_ret;
-#endif
-#endif
-
-#define CIOLIB_BUTTON_1	1
-#define CIOLIB_BUTTON_2	2
-#define CIOLIB_BUTTON_3	4
-#define CIOLIB_BUTTON_4	8
-#define CIOLIB_BUTTON_5	16
-
-#define CIOLIB_BUTTON(x)	(1<<(x-1))
-
-enum {
-	 CIOLIB_MOUSE_MOVE			/* 0 */
-	,CIOLIB_BUTTON_1_PRESS
-	,CIOLIB_BUTTON_1_RELEASE
-	,CIOLIB_BUTTON_1_CLICK
-	,CIOLIB_BUTTON_1_DBL_CLICK
-	,CIOLIB_BUTTON_1_TRPL_CLICK
-	,CIOLIB_BUTTON_1_QUAD_CLICK
-	,CIOLIB_BUTTON_1_DRAG_START
-	,CIOLIB_BUTTON_1_DRAG_MOVE
-	,CIOLIB_BUTTON_1_DRAG_END
-	,CIOLIB_BUTTON_2_PRESS			/* 10 */
-	,CIOLIB_BUTTON_2_RELEASE
-	,CIOLIB_BUTTON_2_CLICK
-	,CIOLIB_BUTTON_2_DBL_CLICK
-	,CIOLIB_BUTTON_2_TRPL_CLICK
-	,CIOLIB_BUTTON_2_QUAD_CLICK
-	,CIOLIB_BUTTON_2_DRAG_START
-	,CIOLIB_BUTTON_2_DRAG_MOVE
-	,CIOLIB_BUTTON_2_DRAG_END
-	,CIOLIB_BUTTON_3_PRESS
-	,CIOLIB_BUTTON_3_RELEASE		/* 20 */
-	,CIOLIB_BUTTON_3_CLICK
-	,CIOLIB_BUTTON_3_DBL_CLICK
-	,CIOLIB_BUTTON_3_TRPL_CLICK
-	,CIOLIB_BUTTON_3_QUAD_CLICK
-	,CIOLIB_BUTTON_3_DRAG_START
-	,CIOLIB_BUTTON_3_DRAG_MOVE
-	,CIOLIB_BUTTON_3_DRAG_END
-	,CIOLIB_BUTTON_4_PRESS
-	,CIOLIB_BUTTON_4_RELEASE
-	,CIOLIB_BUTTON_4_CLICK			/* 30 */
-	,CIOLIB_BUTTON_4_DBL_CLICK
-	,CIOLIB_BUTTON_4_TRPL_CLICK
-	,CIOLIB_BUTTON_4_QUAD_CLICK
-	,CIOLIB_BUTTON_4_DRAG_START
-	,CIOLIB_BUTTON_4_DRAG_MOVE
-	,CIOLIB_BUTTON_4_DRAG_END
-	,CIOLIB_BUTTON_5_PRESS
-	,CIOLIB_BUTTON_5_RELEASE
-	,CIOLIB_BUTTON_5_CLICK
-	,CIOLIB_BUTTON_5_DBL_CLICK		/* 40 */
-	,CIOLIB_BUTTON_5_TRPL_CLICK
-	,CIOLIB_BUTTON_5_QUAD_CLICK
-	,CIOLIB_BUTTON_5_DRAG_START
-	,CIOLIB_BUTTON_5_DRAG_MOVE
-	,CIOLIB_BUTTON_5_DRAG_END		/* 45 */
-};
-
-#define CIOLIB_BUTTON_PRESS(x)		((x-1)*9+1)
-#define CIOLIB_BUTTON_RELEASE(x)	((x-1)*9+2)
-#define CIOLIB_BUTTON_CLICK(x)		((x-1)*9+3)
-#define CIOLIB_BUTTON_DBL_CLICK(x)	((x-1)*9+4)
-#define CIOLIB_BUTTON_TRPL_CLICK(x)	((x-1)*9+5)
-#define CIOLIB_BUTTON_QUAD_CLICK(x)	((x-1)*9+6)
-#define CIOLIB_BUTTON_DRAG_START(x)	((x-1)*9+7)
-#define CIOLIB_BUTTON_DRAG_MOVE(x)	((x-1)*9+8)
-#define CIOLIB_BUTTON_DRAG_END(x)	((x-1)*9+9)
-
-#define CIOLIB_BUTTON_NUMBER(x)		((x+8)/9)
-
-#define CIOLIB_BUTTON_BASE(x)		(x!=CIOLIB_MOUSE_MOVE?x-9*(CIOLIB_BUTTON_NUMBER(x)-1):CIOLIB_MOUSE_MOVE)
-
-extern int ciolib_mouse_initialized;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-CIOLIBEXPORT void ciomouse_gotevent(int event, int x, int y, int x_res, int y_res);
-CIOLIBEXPORT int mouse_trywait(void);
-CIOLIBEXPORT int mouse_wait(void);
-CIOLIBEXPORT int mouse_pending(void);
-CIOLIBEXPORT int ciolib_getmouse(struct mouse_event *mevent);
-CIOLIBEXPORT int ciolib_ungetmouse(struct mouse_event *mevent);
-CIOLIBEXPORT void ciolib_mouse_thread(void *data);
-CIOLIBEXPORT uint64_t ciomouse_setevents(uint64_t events);
-CIOLIBEXPORT uint64_t ciomouse_addevents(uint64_t events);
-CIOLIBEXPORT uint64_t ciomouse_delevents(uint64_t events);
-CIOLIBEXPORT uint64_t ciomouse_addevent(uint64_t event);
-CIOLIBEXPORT uint64_t ciomouse_delevent(uint64_t event);
-CIOLIBEXPORT uint32_t ciolib_mousepointer(enum ciolib_mouse_ptr type);
-CIOLIBEXPORT void mousestate(int *x, int *y, uint8_t *buttons);
-CIOLIBEXPORT void mousestate_res(int *x_res, int *y_res, uint8_t *buttons);
-#ifdef __cplusplus
-}
-#endif
-
-#define CIO_KEY_HOME      (0x47 << 8)
-#define CIO_KEY_UP        (0x48 << 8)
-#define CIO_KEY_END       (0x4f << 8)
-#define CIO_KEY_DOWN      (0x50 << 8)
-#define CIO_KEY_F(x)      ((x<11)?((0x3a+x) << 8):((0x7a+x) << 8))
-#define CIO_KEY_IC        (0x52 << 8)
-#define CIO_KEY_DC        (0x53 << 8)
-#define CIO_KEY_SHIFT_IC  (0x05 << 8)	/* Shift-Insert */
-#define CIO_KEY_SHIFT_DC  (0x07 << 8)	/* Shift-Delete */
-#define CIO_KEY_CTRL_IC   (0x04 << 8)	/* Ctrl-Insert */
-#define CIO_KEY_CTRL_DC   (0x06 << 8)	/* Ctrl-Delete */
-#define CIO_KEY_ALT_IC    (0xA2 << 8)	/* Alt-Insert */
-#define CIO_KEY_ALT_DC    (0xA3 << 8)	/* Alt-Delete */
-#define CIO_KEY_LEFT      (0x4b << 8)
-#define CIO_KEY_RIGHT     (0x4d << 8)
-#define CIO_KEY_PPAGE     (0x49 << 8)
-#define CIO_KEY_NPAGE     (0x51 << 8)
-#define CIO_KEY_SHIFT_F(x)((x<11)?((0x53 + x) << 8):((0x7c + x) << 8))
-#define CIO_KEY_CTRL_F(x) ((x<11)?((0x5d + x) << 8):((0x7e + x) << 8))
-#define CIO_KEY_ALT_F(x)  ((x<11)?((0x67 + x) << 8):((0x80 + x) << 8))
-#define CIO_KEY_BACKTAB   (0x0f << 8)
-
-#define CIO_KEY_MOUSE     0x7dE0	// This is the right mouse on Schneider/Amstrad PC1512 PC keyboards "F-14"
-#define CIO_KEY_QUIT	  0x7eE0	// "F-15"
-#define CIO_KEY_ABORTED   0x01E0	// ESC key by scancode
-
-#endif	/* Do not add anything after this line */
diff --git a/ciolib/ciolib.rc b/ciolib/ciolib.rc
deleted file mode 100644
index 015d875df543bddcd979457d63b60d926948f980..0000000000000000000000000000000000000000
--- a/ciolib/ciolib.rc
+++ /dev/null
@@ -1,5 +0,0 @@
-/* ========================================================================= */
-/* Icons.                                                                    */
-/* ========================================================================= */
-
-1	ICON	"syncicon64.ico"
diff --git a/ciolib/conv2vid.pl b/ciolib/conv2vid.pl
deleted file mode 100755
index abe75550edcc6d1c6b4d80e969e5cc9c5f4b82cc..0000000000000000000000000000000000000000
--- a/ciolib/conv2vid.pl
+++ /dev/null
@@ -1,130 +0,0 @@
-#!/usr/bin/perl
-
-use MIME::Decoder;
-
-my @fontfiles=glob("/usr/share/syscons/fonts/*.fnt");
-$decoder = new MIME::Decoder 'x-uuencode' or die "unsupported";
-
-my $fonts=0;
-
-open COUT, "> allfonts.c";
-print COUT "#include <stdio.h>		/* NULL */\n\n";
-print COUT "#include \"allfonts.h\"\n\n";
-my $started;
-my %fontdata;
-foreach my $fontfile (@fontfiles) {
-	my $width,$height;
-	my $decoded=`uudecode -o /dev/stdout $fontfile`;
-	my $bytes=length($decoded);
-	my $fname=$fontfile;
-	$fname =~ s/\.fnt$//;
-	$fname =~ s/^.*\///;
-	$fname =~ s/-/_/g;
-	if($fname =~ /([0-9]+)x([0-9]+)/) {
-		$width=$1;
-		$height=$2;
-	}
-
-	my $lines=0;
-	$started=0;
-	$fontdata{$fname}="\"";
-	while(length($decoded)) {
-		my $ch=substr($decoded,0,1);
-		$decoded=substr($decoded,1);
-		$fontdata{$fname}.='\x'.unpack("H2",$ch);
-		$lines++;
-		if($height && !($lines % $height)) {
-			if(length($decoded)) {
-				$fontdata{$fname}.="\"\n\t\t\"";
-			}
-		}
-	}
-	$fontdata{$fname}.="\"\n\t";
-	$fonts++;
-}
-
-open IN, "< /usr/share/syscons/fonts/INDEX.fonts";
-my %fonts;
-my %fontsizes;
-while (<IN>) {
-	next if(/^\s*#/);
-	chomp;
-	my ($filename, $lang, $desc) = split(/:/);
-	next unless ($lang eq 'en');
-	next if ($filename !~ /\.fnt$/);
-	$filename =~ s/\..*?$//;
-	$filename =~ s/-/_/g;
-	$filename =~ s/_(8x[0-9]*)$//;
-	if($1 eq '8x16') {
-		$fontsizes{$filename} |=1;
-	}
-	elsif($1 eq '8x14') {
-		$fontsizes{$filename} |=2;
-	}
-	elsif($1 eq '8x8') {
-		$fontsizes{$filename} |=4;
-	}
-	else {
-		print STDERR "Unknown font size: $1\n";
-	}
-	$desc =~ s/"/\\"/g;
-	$desc =~ s/\s+8x[0-9]*//g;
-	$desc =~ s/,\s*$//g;
-	$fonts{$filename}=$desc;
-}
-close IN;
-my $arraysize=(scalar keys %fonts)+1;
-print COUT "struct conio_font_data_struct conio_fontdata[".$arraysize."] = {\n";
-$started=0;
-foreach my $font (keys %fonts) {
-	if($started) {
-		print COUT "\t,{";
-	}
-	else {
-		print COUT "\t {";
-		$started=1;
-	}
-	if($fontsizes{$font} & 1) {
-		print COUT $fontdata{"$font\_8x16"};
-		print COUT ", ";
-	}
-	else {
-		print COUT "NULL, ";
-	}
-	if($fontsizes{$font} & 2) {
-		print COUT $fontdata{"$font\_8x14"};
-		print COUT ", ";
-	}
-	else {
-		print COUT "NULL, ";
-	}
-	if($fontsizes{$font} & 4) {
-		print COUT $fontdata{"$font\_8x8"};
-		print COUT ", ";
-	}
-	else {
-		print COUT "NULL, ";
-	}
-	print COUT "\"$fonts{$font}\"}\n";
-}
-print COUT "\t,{NULL, NULL, NULL, NULL}\n";
-print COUT "};\n";
-
-close COUT;
-
-open HOUT,"> allfonts.h";
-print HOUT <<ENDOFHEADER;
-#ifndef _ALLFONTS_H_
-#define _ALLFONTS_H_
-
-struct conio_font_data_struct {
-        char *eight_by_sixteen;
-        char *eight_by_fourteen;
-        char *eight_by_eight;
-        char *desc;
-};
-
-extern struct conio_font_data_struct conio_fontdata[$arraysize];
-
-#endif
-ENDOFHEADER
diff --git a/ciolib/cterm.c b/ciolib/cterm.c
deleted file mode 100644
index 66b778215a49f73ba2c98c1bbbad5ae5658c5db1..0000000000000000000000000000000000000000
--- a/ciolib/cterm.c
+++ /dev/null
@@ -1,5609 +0,0 @@
-/* $Id: cterm.c,v 1.313 2020/06/27 00:04:45 deuce Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-/*
- * Coordinate systems in use here... text is 1-based.
- * "pixel"   the ciolib screen in pixels.  sixel commands happen here.
- * "screen"  the ciolib screen... gettext/puttext/movetext and mouse
- *           are in this space.
- * "absterm" position inside the full terminal area.  These coordinates
- *           are used when origin mode is off.
- * "term"    The scrolling region.  These coordinates are used when origin
- *           mode is on.
- * "curr"    Either absterm or term depending on the state of origin mode
- *           This is what's sent to and received from the remote, and
- *           matches the CTerm window.
- */
-
-#include <ctype.h>
-#include <stdlib.h>
-#include <string.h>
-#if defined(_WIN32)
- #include <malloc.h>	/* alloca() on Win32 */
- #include <xpprintf.h>	/* asprintf() on Win32 */
-#endif
-
-#include <genwrap.h>
-#include <xpbeep.h>
-#include <link_list.h>
-#ifdef __unix__
-	#include <xpsem.h>
-#endif
-#include <threadwrap.h>
-#if !(defined __BORLANDC__ || defined _MSC_VER)
- #include <stdbool.h>
-#else
- #define bool int
- enum { false, true };
-#endif
-
-
-#include "ciolib.h"
-
-#include "cterm.h"
-#include "vidmodes.h"
-#include "base64.h"
-#include <crc16.h>
-
-#define	BUFSIZE	2048
-
-const int cterm_tabs[]={1,9,17,25,33,41,49,57,65,73,81,89,97,105,113,121,129,137,145};
-
-const char *octave="C#D#EF#G#A#B";
-
-/* Characters allowed in music strings... if one that is NOT in here is
- * found, CTerm leaves music capture mode and tosses the buffer away */
-const char *musicchars="aAbBcCdDeEfFgGlLmMnNoOpPsStT0123456789.-+#<> ";
-const uint note_frequency[]={	/* Hz*1000 */
-/* Octave 0 (Note 1) */
-	 65406
-	,69296
-	,73416
-	,77782
-	,82407
-	,87307
-	,92499
-	,97999
-	,103820
-	,110000
-	,116540
-	,123470
-/* Octave 1 */
-	,130810
-	,138590
-	,146830
-	,155560
-	,164810
-	,174610
-	,185000
-	,196000
-	,207650
-	,220000
-	,233080
-	,246940
-/* Octave 2 */
-	,261620
-	,277180
-	,293660
-	,311130
-	,329630
-	,349230
-	,369990
-	,392000
-	,415300
-	,440000
-	,466160
-	,493880
-/* Octave 3 */
-	,523250
-	,554370
-	,587330
-	,622250
-	,659260
-	,698460
-	,739990
-	,783990
-	,830610
-	,880000
-	,932330
-	,987770
-/* Octave 4 */
-	,1046500
-	,1108700
-	,1174700
-	,1244500
-	,1318500
-	,1396900
-	,1480000
-	,1568000
-	,1661200
-	,1760000
-	,1864600
-	,1975500
-/* Octave 5 */
-	,2093000
-	,2217500
-	,2349300
-	,2489000
-	,2637000
-	,2793800
-	,2959900
-	,3136000
-	,3322400
-	,3520000
-	,3729300
-	,3951100
-/* Octave 6 */
-	,4186000
-	,4435000
-	,4698600
-	,4978000
-	,5274000
-	,5587000
-	,5920000
-	,6272000
-	,6644000
-	,7040000
-	,7458600
-	,7902200
-};
-
-struct note_params {
-	int notenum;
-	int	notelen;
-	int	dotted;
-	int	tempo;
-	int	noteshape;
-	int	foreground;
-};
-
-#ifdef CTERM_WITHOUT_CONIO
-	#define GOTOXY(x,y)				cterm->ciolib_gotoxy(cterm, x, y)
-	#define WHEREX()				cterm->ciolib_wherex(cterm)
-	#define WHEREY()				cterm->ciolib_wherey(cterm)
-	#define GETTEXT(a,b,c,d,e)		cterm->ciolib_gettext(cterm, a,b,c,d,e)
-	#define GETTEXTINFO(a)			cterm->ciolib_gettextinfo(cterm,a)
-	#define TEXTATTR(a)				cterm->ciolib_textattr(cterm,a)
-	#define SETCURSORTYPE(a)		cterm->ciolib_setcursortype(cterm,a)
-	#define MOVETEXT(a,b,c,d,e,f)	cterm->ciolib_movetext(cterm,a,b,c,d,e,f)
-	#define CLREOL()				cterm->ciolib_clreol(cterm)
-	#define CLRSCR()				cterm->ciolib_clrscr(cterm)
-	#define SETVIDEOFLAGS(a)		cterm->ciolib_setvideoflags(cterm,a)
-	#define GETVIDEOFLAGS()			cterm->ciolib_getvideoflags(cterm)
-	#define PUTCH(a)				cterm->ciolib_putch(cterm,a)
-	#define PUTTEXT(a,b,c,d,e)		cterm->ciolib_puttext(cterm,a,b,c,d,e)
-	#define WINDOW(a,b,c,d)			cterm->ciolib_window(cterm,a,b,c,d)
-	#define CPUTS(a)				cterm->ciolib_cputs(cterm,a)
-	#define SETFONT(a,b,c)			cterm->ciolib_setfont(cterm,a,b,c)
-#else
-	#define GOTOXY(x,y)				cterm->ciolib_gotoxy(x, y)
-	#define WHEREX()				cterm->ciolib_wherex()
-	#define WHEREY()				cterm->ciolib_wherey()
-	#define GETTEXT(a,b,c,d,e)		cterm->ciolib_gettext(a,b,c,d,e)
-	#define GETTEXTINFO(a)			cterm->ciolib_gettextinfo(a)
-	#define TEXTATTR(a)				cterm->ciolib_textattr(a)
-	#define SETCURSORTYPE(a)		cterm->ciolib_setcursortype(a)
-	#define MOVETEXT(a,b,c,d,e,f)	cterm->ciolib_movetext(a,b,c,d,e,f)
-	#define CLREOL()				cterm->ciolib_clreol()
-	#define CLRSCR()				cterm->ciolib_clrscr()
-	#define SETVIDEOFLAGS(a)		cterm->ciolib_setvideoflags(a)
-	#define GETVIDEOFLAGS()			cterm->ciolib_getvideoflags()
-	#define PUTCH(a)				cterm->ciolib_putch(a)
-	#define PUTTEXT(a,b,c,d,e)		cterm->ciolib_puttext(a,b,c,d,e)
-	#define WINDOW(a,b,c,d)			cterm->ciolib_window(a,b,c,d)
-	#define CPUTS(a)				cterm->ciolib_cputs(a)
-	#define SETFONT(a,b,c)			cterm->ciolib_setfont(a,b,c)
-#endif
-
-static void ctputs(struct cterminal *cterm, char *buf);
-static void cterm_reset(struct cterminal *cterm);
-
-#ifdef CTERM_WITHOUT_CONIO
-/***************************************************************/
-/* These funcions are used when conio is not                   */
-/* They are mostly copied from either ciolib.c or bitmap_con.c */
-/***************************************************************/
-#define BD	((struct buffer_data *)cterm->extra)
-#define CTERM_INIT()	while(BD==NULL) ciolib_init(cterm)
-
-struct buffer_data {
-	unsigned char	x;
-	unsigned char	y;
-	unsigned char	winleft;        /* left window coordinate */
-	unsigned char	wintop;         /* top window coordinate */
-	unsigned char	winright;       /* right window coordinate */
-	unsigned char	winbottom;      /* bottom window coordinate */
-	unsigned char	attr;    		  /* text attribute */
-	unsigned char	currmode;       /* current video mode */
-	unsigned char	cursor;
-	unsigned char 	*vmem;
-	int				vflags;
-};
-
-static void ciolib_init(struct cterminal *cterm)
-{
-	BD=malloc(sizeof(struct buffer_data));
-	if(!BD)
-		return
-	BD->x=1;
-	BD->y=1;
-	BD->winleft=1;
-	BD->wintop=1;
-	BD->winright=cterm->width;
-	BD->winbottom=cterm->height;
-	BD->attr=7;
-	BD->currmode=C80;	// TODO: Adjust based on size...
-	BD->cursor=_NORMALCURSOR;
-	BD->vmem=malloc(2*cterm->height*cterm->width);
-	if(BD->vmem==NULL) {
-		free(BD)
-		return;
-	}
-	BD->vflags=0;
-}
-
-static void ciolib_gotoxy(struct cterminal *cterm,int x,int y)
-{
-	CTERM_INIT();
-
-	if(x < 1
-			|| x > BD->winright-BD->winleft+1
-			|| y < 1
-			|| y > BD->winbottom-BD->wintop+1)
-		return;
-
-	BD->x=x;
-	BD->y=y;
-}
-
-static int ciolib_wherex(struct cterminal *cterm)
-{
-	CTERM_INIT();
-	return BD->x
-}
-
-static int ciolib_wherey(struct cterminal *cterm)
-{
-	CTERM_INIT();
-	return BD->y
-}
-
-static int ciolib_gettext(struct cterminal *cterm,int sx, int sy, int ex, int ey, void *fill)
-{
-	int x,y;
-	unsigned char *out;
-	WORD	sch;
-
-	CTERM_INIT();
-	if(		   sx < 1
-			|| sy < 1
-			|| ex < 1
-			|| ey < 1
-			|| sx > ex
-			|| sy > ey
-			|| ex > cterm->width
-			|| ey > cterm->height
-			|| fill==NULL)
-		return(0);
-
-	out=fill;
-	for(y=sy-1;y<ey;y++) {
-		for(x=sx-1;x<ex;x++) {
-			sch=BD->vmem[y*cio_textinfo.screenwidth+x];
-			*(out++)=sch & 0xff;
-			*(out++)=sch >> 8;
-		}
-	}
-	return(1);
-}
-
-static void ciolib_gettextinfo(struct cterminal *cterm,struct text_info *ti)
-{
-	CTERM_INIT();
-	ti->winleft=>BD->winleft;
-	ti->wintop=BD->wintop;
-	ti->winright=BD->winright;
-	ti->winbottom=BD->winbottom;
-	ti->attribute=BD->attr;
-	ti->normattr=7;
-	ti->currmode=BD->currmode;
-	if (cterm->height > 0xff)
-		ti->screenheight = 0xff;
-	else
-		ti->screenheight = cterm->height;
-	if (cterm->width > 0xff)
-		ti->screenwidth = 0xff;
-	else
-		ti->screenwidth = cterm->width;
-	ti->curx=BD->x;
-	ti->cury=BD->y;
-}
-
-static void ciolib_textattr(struct cterminal *cterm,int attr)
-{
-	CTERM_INIT();
-	BD->attr=attr;
-}
-
-static void ciolib_setcursortype(struct cterminal *cterm,int cursor)
-{
-	CTERM_INIT();
-	BD->cursor=cursor;
-}
-
-static int ciolib_movetext(struct cterminal *cterm, int x, int y, int ex, int ey, int tox, int toy)
-{
-	int	direction=1;
-	int	cy;
-	int	sy;
-	int	destoffset;
-	int	sourcepos;
-	int width=ex-x+1;
-	int height=ey-y+1;
-
-	CTERM_INIT();
-	if(		   x<1
-			|| y<1
-			|| ex<1
-			|| ey<1
-			|| tox<1
-			|| toy<1
-			|| x>cterm->width
-			|| ex>cterm->width
-			|| tox>cterm->width
-			|| y>cterm->height
-			|| ey>cterm->height
-			|| toy>cterm->height)
-		return(0);
-
-	if(toy > y)
-		direction=-1;
-
-	sourcepos=(y-1)*cterm->width+(x-1);
-	destoffset=(((toy-1)*cterm->width+(tox-1))-sourcepos);
-
-	for(cy=(direction==-1?(height-1):0); cy<height && cy>=0; cy+=direction) {
-		sourcepos=((y-1)+cy)*cio_textinfo.screenwidth+(x-1);
-		memmove(&(BD->vmem[sourcepos+destoffset]), &(BD->vmem[sourcepos]), sizeof(BD->vmem[0])*width);
-	}
-	return(1);
-}
-
-static void conio_clreol(struct cterminal *cterm)
-{
-	int pos,x;
-	WORD fill=(BD->attr<<8)|space;
-
-	CTERM_INIT();
-	pos=(BD->y+BD->wintop-2)*cterm->width;
-	for(x=BD->x+BD->winleft-2; x<BD->right; x++)
-		BD->vmem[pos+x]=fill;
-}
-
-static void ciolib_clrscr(struct cterminal *cterm)
-{
-	int x,y;
-	WORD fill=(BD->attr<<8)|space;
-
-	CTERM_INIT();
-	for(y=cio_textinfo.wintop-1; y<cio_textinfo.winbottom; y++) {
-		for(x=BD->winleft-1; x<BD->winright; x++)
-			BD->vmem[y*cterm->width+x]=fill;
-	}
-}
-
-static void ciolib_setvideoflags(struct cterminal *cterm, int flags)
-{
-	CTERM_INIT();
-	BD->vflags=flags;
-}
-
-static int ciolib_getvideoflags(struct cterminal *cterm)
-{
-	CTERM_INIT();
-	return BD->vflags;
-}
-
-static void ciolib_wscroll(struct cterminal *cterm)
-{
-	int os;
-
-	CTERM_INIT();
-	MOVETEXT(BD->winleft
-			,BD->wintop+1
-			,BD->winright
-			,BD->winbottom
-			,BD->winleft
-			,BD->wintop);
-	GOTOXY(cterm, 1,BD->winbottom-BD->wintop+1);
-	os=_wscroll;
-	_wscroll=0;
-	CLREOL(cterm);
-	_wscroll=os;
-	GOTOXY(cterm, BD->x,BD->y);
-}
-
-static int ciolib_putch(struct cterminal *cterm,int a)
-{
-	unsigned char a1=a;
-	unsigned char buf[2];
-	int i;
-
-	CTERM_INIT();
-	buf[0]=a1;
-	buf[1]=BD->attr;
-
-	switch(a1) {
-		case '\r':
-			GOTOXY(1,cio_textinfo.cury);
-			break;
-		case '\n':
-			if(BD->y==BD->winbottom-BD->wintop+1)
-				ciolib_wscroll(cterm);
-			else
-				GOTOXY(BD->x, BD->y+1);
-			break;
-		case '\b':
-			if(BD->x>1) {
-				GOTOXY(BD->x-1,BD->y);
-				buf[0]=' ';
-				PUTTEXT(BD->x+BD->winleft-1
-						,BD->y+BD->wintop-1
-						,BD->x+BD->winleft-1
-						,BD->y+BD->wintop-1
-						,buf);
-			}
-			break;
-		case 7:		/* Bell */
-			break;
-		case '\t':
-			for(i = 0; i < cterm->tab_count;i++) {
-				if(cterm->tabs[i] > BD->x) {
-					buf[0]=' ';
-					while(BD->x < cterm->tabs[i]) {
-						PUTTEXT(BD->x+BD->winleft-1
-								,BD->y+BD->wintop-1
-								,BD->x+BD->winleft-1
-								,BD->y+BD->wintop-1
-								,buf);
-						GOTOXY(BD->x+1,BD->y);
-						if(BD->x==cterm->width)
-							break;
-					}
-					break;
-				}
-			}
-			if(BD->x==cterm->width) {
-				GOTOXY(1,BD->y);
-				if(BD->y==BD->winbottom-BD->wintop+1)
-					ciolib_wscroll(cterm);
-				else
-					GOTOXY(BD->x, BD->y+1);
-			}
-			break;
-		default:
-			if(BD->y==BD->winbottom-BD->wintop+1
-					&& BD->x==BD->winright-BD->winleft+1) {
-				PUTTEXT(WHEREX()+BD->winleft-1
-						,WHEREY()+BD->wintop-1
-						,WHEREX()+BD->winleft-1
-						,WHEREY()+BD->wintop-1
-						,buf);
-				ciolib_wscroll(cterm);
-				GOTOXY(1, BD->winbottom-BD->wintop+1);
-			}
-			else {
-				if(BD->x==BD->winright-BD->winleft+1) {
-					PUTTEXT(WHEREX()+BD->winleft-1
-							,WHEREY()+BD->wintop-1
-							,WHEREX()+BD->winleft-1
-							,WHEREY()+BD->wintop-1
-							,buf);
-					GOTOXY(1,BD->y+1);
-				}
-				else {
-					PUTTEXT(WHEREX()+BD->winleft-1
-							,WHEREY()+BD->wintop-1
-							,WHEREX()+BD->winleft-1
-							,WHEREY()+BD->wintop-1
-							,buf);
-					GOTOXY(BD->x+1, BD->y);
-				}
-			}
-			break;
-	}
-
-	return(a1);
-}
-
-static int ciolib_puttext(struct cterminal *cterm,int sx, int sy, int ex, int ey, void *fill)
-{
-	int x,y;
-	unsigned char *out;
-	WORD	sch;
-
-	CTERM_INIT();
-	if(		   sx < 1
-			|| sy < 1
-			|| ex < 1
-			|| ey < 1
-			|| sx > cterm->width
-			|| sy > cterm->height
-			|| sx > ex
-			|| sy > ey
-			|| ex > cterm->width
-			|| ey > cterm->height
-			|| fill==NULL)
-		return(0);
-
-	out=fill;
-	for(y=sy-1;y<ey;y++) {
-		for(x=sx-1;x<ex;x++) {
-			sch=*(out++);
-			sch |= (*(out++))<<8;
-			BD->vmem[y*cterm->width+x]=sch;
-		}
-	}
-	return(1);
-}
-
-static void ciolib_window(struct cterminal *cterm,int sx, int sy, int ex, int ey)
-{
-	CTERM_INIT();
-	if(		   sx < 1
-			|| sy < 1
-			|| ex < 1
-			|| ey < 1
-			|| sx > cterm->width
-			|| sy > cterm->height
-			|| sx > ex
-			|| sy > ey
-			|| ex > cterm->width
-			|| ey > cterm->height)
-		return;
-	BD->winleft=sx;
-	BD->wintop=sy;
-	BD->winright=ex;
-	BD->winbottom=ey;
-	GOTOXY(1,1);
-}
-
-static int ciolib_cputs(struct cterminal *cterm, const char *str)
-{
-	int		pos;
-	int		ret=0;
-	int		olddmc;
-
-	CTERM_INIT();
-	for(pos=0;str[pos];pos++)
-	{
-		ret=str[pos];
-		if(str[pos]=='\n')
-			PUTCH('\r');
-		PUTCH(str[pos]);
-	}
-	GOTOXY(WHEREX(),WHEREY());
-	return(ret);
-}
-
-static int ciolib_setfont(struct cterminal *,int font, int force, int font_num)
-{
-	CTERM_INIT();
-	return -1;
-}
-#endif
-
-enum cterm_coordinates {
-	CTERM_COORD_SCREEN,
-	CTERM_COORD_ABSTERM,
-	CTERM_COORD_TERM,
-	CTERM_COORD_CURR,
-};
-
-#define SCR_MINX	1
-#define ABS_MINX	1
-#define TERM_MINX	1
-#define CURR_MINX	1
-
-#if 0
-static int
-scr_maxx(struct cterminal *cterm)
-{
-	struct text_info ti;
-
-	GETTEXTINFO(&ti);
-	return ti.screenwidth;
-}
-#endif
-//#define SCR_MAXX	coord_maxx(cterm, CTERM_COORD_SCREEN)
-#define ABS_MAXX	cterm->width
-#define TERM_MAXX	(cterm->right_margin - cterm->left_margin + 1)
-#define CURR_MAXX	((cterm->extattr & CTERM_EXTATTR_ORIGINMODE) ? TERM_MAXX : ABS_MAXX)
-
-#define SCR_MINY	1
-#define ABS_MINY	1
-#define TERM_MINY	1
-#define CURR_MINY	1
-
-
-#if 0
-static int
-scr_maxy(struct cterminal *cterm, enum cterm_coordinates coord)
-{
-	struct text_info ti;
-
-	GETTEXTINFO(&ti);
-	return ti.screenheight;
-}
-#endif
-//#define SCR_MAXY	scr_maxy(cterm)
-#define ABS_MAXY	cterm->height
-#define TERM_MAXY	(cterm->bottom_margin - cterm->top_margin + 1)
-#define CURR_MAXY	((cterm->extattr & CTERM_EXTATTR_ORIGINMODE) ? TERM_MAXY : ABS_MAXY)
-
-static void
-coord_conv_xy(struct cterminal *cterm, enum cterm_coordinates from_coord, 
-    enum cterm_coordinates to_coord, int *x, int *y)
-{
-	if (from_coord == to_coord)
-		return;
-
-	if (x) {
-		if (from_coord == CTERM_COORD_CURR) {
-			if (cterm->extattr & CTERM_EXTATTR_ORIGINMODE)
-				from_coord = CTERM_COORD_TERM;
-			else
-				from_coord = CTERM_COORD_ABSTERM;
-		}
-		switch(from_coord) {
-			case CTERM_COORD_SCREEN:
-				break;
-			case CTERM_COORD_TERM:
-				*x += cterm->left_margin - 1;
-				// Fall-through
-			case CTERM_COORD_ABSTERM:
-				*x += cterm->x - 1;
-				break;
-			case CTERM_COORD_CURR:
-				// Silence warnings
-				break;
-		}
-		if (to_coord == CTERM_COORD_CURR) {
-			if (cterm->extattr & CTERM_EXTATTR_ORIGINMODE)
-				to_coord = CTERM_COORD_TERM;
-			else
-				to_coord = CTERM_COORD_ABSTERM;
-		}
-		switch(to_coord) {
-			case CTERM_COORD_SCREEN:
-				break;
-			case CTERM_COORD_TERM:
-				*x -= cterm->left_margin - 1;
-				// Fall-through
-			case CTERM_COORD_ABSTERM:
-				*x -= cterm->x - 1;
-				break;
-			case CTERM_COORD_CURR:
-				// Silence warnings
-				break;
-		}
-	}
-	if (y) {
-		if (from_coord == CTERM_COORD_CURR) {
-			if (cterm->extattr & CTERM_EXTATTR_ORIGINMODE)
-				from_coord = CTERM_COORD_TERM;
-			else
-				from_coord = CTERM_COORD_ABSTERM;
-		}
-		switch(from_coord) {
-			case CTERM_COORD_SCREEN:
-				break;
-			case CTERM_COORD_TERM:
-				*y += cterm->top_margin - 1;
-				// Fall-through
-			case CTERM_COORD_ABSTERM:
-				*y += cterm->y - 1;
-				break;
-			case CTERM_COORD_CURR:
-				// Silence warnings
-				break;
-		}
-		if (to_coord == CTERM_COORD_CURR) {
-			if (cterm->extattr & CTERM_EXTATTR_ORIGINMODE)
-				to_coord = CTERM_COORD_TERM;
-			else
-				to_coord = CTERM_COORD_ABSTERM;
-		}
-		switch(to_coord) {
-			case CTERM_COORD_SCREEN:
-				break;
-			case CTERM_COORD_TERM:
-				*y -= cterm->top_margin - 1;
-				// Fall-through
-			case CTERM_COORD_ABSTERM:
-				*y -= cterm->y - 1;
-				break;
-			case CTERM_COORD_CURR:
-				// Silence warnings
-				break;
-		}
-	}
-}
-
-static void
-coord_get_xy(struct cterminal *cterm, enum cterm_coordinates coord, int *x, int *y)
-{
-	if (x)
-		*x = WHEREX();
-	if (y)
-		*y = WHEREY();
-
-	coord_conv_xy(cterm, CTERM_COORD_CURR, coord, x, y);
-}
-#define SCR_XY(x,y)	coord_get_xy(cterm, CTERM_COORD_SCREEN, x, y)
-#define ABS_XY(x,y)	coord_get_xy(cterm, CTERM_COORD_ABSTERM, x, y)
-#define TERM_XY(x,y)	coord_get_xy(cterm, CTERM_COORD_TERM, x, y)
-#define CURR_XY(x,y)	coord_get_xy(cterm, CTERM_COORD_CURR, x, y)
-void
-setwindow(struct cterminal *cterm)
-{
-	int col, row, max_col, max_row;
-
-	col = CURR_MINX;
-	row = CURR_MINY;
-	coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &col, &row);
-	max_col = CURR_MAXX;
-	max_row = CURR_MAXY;
-	coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &max_col, &max_row);
-	WINDOW(col, row, max_col, max_row);
-}
-
-void
-cterm_gotoxy(struct cterminal *cterm, int x, int y)
-{
-	coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_CURR, &x, &y);
-	GOTOXY(x, y);
-	ABS_XY(&cterm->xpos, &cterm->ypos);
-}
-
-static void
-insert_tabstop(struct cterminal *cterm, int pos)
-{
-	int i;
-	int *new_stops;
-
-	for (i = 0; i < cterm->tab_count && cterm->tabs[i] < pos; i++);
-	if (cterm->tabs[i] == pos)
-		return;
-
-	new_stops = realloc(cterm->tabs, (cterm->tab_count + 1) * sizeof(cterm->tabs[0]));
-	if (new_stops == NULL)
-		return;
-	cterm->tabs = new_stops;
-	if (i < cterm->tab_count)
-		memmove(&cterm->tabs[i + 1], &cterm->tabs[i], (cterm->tab_count - i) * sizeof(cterm->tabs[0]));
-	cterm->tabs[i] = pos;
-	cterm->tab_count++;
-}
-
-static void
-delete_tabstop(struct cterminal *cterm, int pos)
-{
-	int i;
-
-	for (i = 0; i < cterm->tab_count && cterm->tabs[i] <= pos; i++) {
-		if (cterm->tabs[i] == pos) {
-			memmove(&cterm->tabs[i], &cterm->tabs[i+1], (cterm->tab_count - i - 1) * sizeof(cterm->tabs[0]));
-			cterm->tab_count--;
-			return;
-		}
-	}
-	return;
-}
-
-static void tone_or_beep(double freq, int duration, int device_open)
-{
-	if(device_open)
-		xptone(freq,duration,WAVE_SHAPE_SINE_SAW_HARM);
-	else
-		xpbeep(freq,duration);
-}
-
-static void playnote_thread(void *args)
-{
-	/* Tempo is quarter notes per minute */
-	int duration;
-	int pauselen;
-	struct note_params *note;
-	int	device_open=FALSE;
-	struct cterminal *cterm=(struct cterminal *)args;
-
-
-	SetThreadName("PlayNote");
-	cterm->playnote_thread_running=TRUE;
-	while(1) {
-		if(device_open) {
-			if(!listSemTryWaitBlock(&cterm->notes,5000)) {
-				xptone_close();
-				listSemWait(&cterm->notes);
-			}
-		}
-		else
-			listSemWait(&cterm->notes);
-		note=listShiftNode(&cterm->notes);
-		if(note==NULL)
-			break;
-		device_open=xptone_open();
-		if(note->dotted)
-			duration=360000/note->tempo;
-		else
-			duration=240000/note->tempo;
-		duration/=note->notelen;
-		switch(note->noteshape) {
-			case CTERM_MUSIC_STACATTO:
-				pauselen=duration/4;
-				break;
-			case CTERM_MUSIC_LEGATO:
-				pauselen=0;
-				break;
-			case CTERM_MUSIC_NORMAL:
-			default:
-				pauselen=duration/8;
-				break;
-		}
-		duration-=pauselen;
-		if(note->notenum < 72 && note->notenum >= 0)
-			tone_or_beep(((double)note_frequency[note->notenum])/1000,duration,device_open);
-		else
-			tone_or_beep(0,duration,device_open);
-		if(pauselen)
-			tone_or_beep(0,pauselen,device_open);
-		if(note->foreground)
-			sem_post(&cterm->note_completed_sem);
-		free(note);
-	}
-	if (device_open)
-		xptone_close();
-	sem_post(&cterm->playnote_thread_terminated);
-	cterm->playnote_thread_running=FALSE;
-}
-
-static void play_music(struct cterminal *cterm)
-{
-	int		i;
-	char	*p;
-	char	*out;
-	int		offset;
-	char	note;
-	int		notelen;
-	char	numbuf[10];
-	int		dotted;
-	int		notenum;
-	struct	note_params *np;
-	int		fore_count;
-
-	if(cterm->quiet) {
-		cterm->music=0;
-		cterm->musicbuf[0]=0;
-		return;
-	}
-	p=cterm->musicbuf;
-	fore_count=0;
-	if(cterm->music==1) {
-		switch(toupper(*p)) {
-			case 'F':
-				cterm->musicfore=TRUE;
-				p++;
-				break;
-			case 'B':
-				cterm->musicfore=FALSE;
-				p++;
-				break;
-			case 'N':
-				if(!isdigit(*(p+1))) {
-					cterm->noteshape=CTERM_MUSIC_NORMAL;
-					p++;
-				}
-				break;
-			case 'L':
-				cterm->noteshape=CTERM_MUSIC_LEGATO;
-				p++;
-				break;
-			case 'S':
-				cterm->noteshape=CTERM_MUSIC_STACATTO;
-				p++;
-				break;
-		}
-	}
-	for(;*p;p++) {
-		notenum=0;
-		offset=0;
-		switch(toupper(*p)) {
-			case 'M':
-				p++;
-				switch(toupper(*p)) {
-					case 'F':
-						cterm->musicfore=TRUE;
-						break;
-					case 'B':
-						cterm->musicfore=FALSE;
-						break;
-					case 'N':
-						cterm->noteshape=CTERM_MUSIC_NORMAL;
-						break;
-					case 'L':
-						cterm->noteshape=CTERM_MUSIC_LEGATO;
-						break;
-					case 'S':
-						cterm->noteshape=CTERM_MUSIC_STACATTO;
-						break;
-					default:
-						p--;
-				}
-				break;
-			case 'T':						/* Tempo */
-				out=numbuf;
-				while(isdigit(*(p+1)))
-					*(out++)=*(++p);
-				*out=0;
-				cterm->tempo=strtoul(numbuf,NULL,10);
-				if(cterm->tempo>255)
-					cterm->tempo=255;
-				if(cterm->tempo<32)
-					cterm->tempo=32;
-				break;
-			case 'O':						/* Octave */
-				out=numbuf;
-				while(isdigit(*(p+1)))
-					*(out++)=*(++p);
-				*out=0;
-				cterm->octave=strtoul(numbuf,NULL,10);
-				if(cterm->octave>6)
-					cterm->octave=6;
-				break;
-			case 'L':
-				out=numbuf;
-				while(isdigit(*(p+1)))
-					*(out++)=*(++p);
-				*out=0;
-				cterm->notelen=strtoul(numbuf,NULL,10);
-				if(cterm->notelen<1)
-					cterm->notelen=1;
-				if(cterm->notelen>64)
-					cterm->notelen=64;
-				break;
-			case 'N':						/* Note by number */
-				if(isdigit(*(p+1))) {
-					out=numbuf;
-					while(isdigit(*(p+1))) {
-						*(out++)=*(p+1);
-						p++;
-					}
-					*out=0;
-					notenum=strtoul(numbuf,NULL,10);
-				}
-				if(notenum==0) {
-					notenum=-1;
-					offset=1;
-				}
-				/* Fall-through */
-			case 'A':						/* Notes in current octave by letter */
-			case 'B':
-			case 'C':
-			case 'D':
-			case 'E':
-			case 'F':
-			case 'G':
-			case 'P':
-				note=toupper(*p);
-				notelen=cterm->notelen;
-				dotted=0;
-				i=1;
-				while(i) {
-					i=0;
-					if(*(p+1)=='+' || *(p+1)=='#') {	/* SHARP */
-						offset+=1;
-						p++;
-						i=1;
-					}
-					if(*(p+1)=='-') {					/* FLAT */
-						offset-=1;
-						p++;
-						i=1;
-					}
-					if(*(p+1)=='.') {					/* Dotted note (1.5*notelen) */
-						dotted=1;
-						p++;
-						i=1;
-					}
-					if(isdigit(*(p+1))) {
-						out=numbuf;
-						while(isdigit(*(p+1))) {
-							*(out++)=*(p+1);
-							p++;
-						}
-						*out=0;
-						notelen=strtoul(numbuf,NULL,10);
-						i=1;
-					}
-				}
-				if(note=='P') {
-					notenum=-1;
-					offset=0;
-				}
-				if(notenum==0) {
-					out=strchr(octave,note);
-					if(out==NULL) {
-						notenum=-1;
-						offset=1;
-					}
-					else {
-						notenum=cterm->octave*12+1;
-						notenum+=(out-octave);
-					}
-				}
-				notenum+=offset;
-				np=(struct note_params *)malloc(sizeof(struct note_params));
-				if(np!=NULL) {
-					np->notenum=notenum;
-					np->notelen=notelen;
-					np->dotted=dotted;
-					np->tempo=cterm->tempo;
-					np->noteshape=cterm->noteshape;
-					np->foreground=cterm->musicfore;
-					listPushNode(&cterm->notes, np);
-					if(cterm->musicfore)
-						fore_count++;
-				}
-				break;
-			case '<':							/* Down one octave */
-				cterm->octave--;
-				if(cterm->octave<0)
-					cterm->octave=0;
-				break;
-			case '>':							/* Up one octave */
-				cterm->octave++;
-				if(cterm->octave>6)
-					cterm->octave=6;
-				break;
-		}
-	}
-	cterm->music=0;
-	cterm->musicbuf[0]=0;
-	while(fore_count) {
-		sem_wait(&cterm->note_completed_sem);
-		fore_count--;
-	}
-	xptone_complete();
-}
-
-void
-cterm_clreol(struct cterminal *cterm)
-{
-	int x, y;
-	int rm;
-	struct vmem_cell *buf;
-	int i;
-	int width;
-
-	CURR_XY(&x, &y);
-	rm = CURR_MAXX;
-
-	width = rm - x + 1;
-	if (width < 1)
-		return;
-	buf = malloc(width * sizeof(*buf));
-	if (!buf)
-		return;
-	for (i = 0; i < width; i++) {
-		buf[i].ch = ' ';
-		buf[i].legacy_attr = cterm->attr;
-		buf[i].fg = cterm->fg_color;
-		buf[i].bg = cterm->bg_color;
-		buf[i].font = ciolib_attrfont(cterm->attr);
-	}
-	coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &x, &y);
-	coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &rm, NULL);
-	vmem_puttext(x, y, rm, y, buf);
-	free(buf);
-}
-
-void
-cterm_clrblk(struct cterminal *cterm, int sx, int sy, int ex, int ey)
-{
-	int i;
-	struct vmem_cell *buf;
-	int chars = (ex - sx + 1) * (ey - sy + 1);
-
-	buf = malloc(chars * sizeof(*buf));
-	if (!buf)
-		return;
-	for (i = 0; i < chars ; i++) {
-		buf[i].ch = ' ';
-		buf[i].legacy_attr = cterm->attr;
-		buf[i].fg = cterm->fg_color;
-		buf[i].bg = cterm->bg_color;
-		buf[i].font = ciolib_attrfont(cterm->attr);
-	}
-	vmem_puttext(sx, sy, ex, ey, buf);
-	free(buf);
-}
-
-static void
-scrolldown(struct cterminal *cterm)
-{
-	int minx = TERM_MINX;
-	int miny = TERM_MINY;
-	int maxx = TERM_MAXX;
-	int maxy = TERM_MAXY;
-	int x,y;
-
-	coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &minx, &miny);
-	coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &maxx, &maxy);
-	MOVETEXT(minx, miny, maxx, maxy - 1, minx, miny + 1);
-	CURR_XY(&x, &y);
-	cterm_clrblk(cterm, minx, miny, minx + TERM_MAXX - 1, miny);
-	GOTOXY(x, y);
-}
-
-void
-cterm_scrollup(struct cterminal *cterm)
-{
-	int minx = TERM_MINX;
-	int miny = TERM_MINY;
-	int maxx = TERM_MAXX;
-	int maxy = TERM_MAXY;
-	int x,y;
-	int getw;
-
-	cterm->backpos++;
-	coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &minx, &miny);
-	coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &maxx, &maxy);
-	if(cterm->scrollback!=NULL) {
-		if(cterm->backpos>cterm->backlines) {
-			memmove(cterm->scrollback, cterm->scrollback + cterm->backwidth, cterm->backwidth * sizeof(*cterm->scrollback) * (cterm->backlines - 1));
-			cterm->backpos--;
-		}
-		getw = cterm->backwidth;
-		if (getw > cterm->width)
-			getw = cterm->width;
-		if (getw < cterm->backwidth) {
-			memset(cterm->scrollback + (cterm->backpos - 1) * cterm->backwidth, 0, sizeof(*cterm->scrollback) * cterm->backwidth);
-		}
-		vmem_gettext(cterm->x, miny, cterm->x + getw - 1, miny, cterm->scrollback + (cterm->backpos - 1) * cterm->backwidth);
-	}
-	MOVETEXT(minx, miny + 1, maxx, maxy, minx, miny);
-	CURR_XY(&x, &y);
-	cterm_clrblk(cterm, minx, maxy, minx + TERM_MAXX - 1, maxy);
-	GOTOXY(x, y);
-}
-
-static void
-cond_scrollup(struct cterminal *cterm)
-{
-	int x, y;
-
-	TERM_XY(&x, &y);
-	if (x >= TERM_MINX && x <= TERM_MAXX &&
-	    y >= TERM_MINY && y <= TERM_MAXY)
-		cterm_scrollup(cterm);
-}
-
-static void
-dellines(struct cterminal * cterm, int lines)
-{
-	int i;
-	int minx = TERM_MINX;
-	int miny = TERM_MINY;
-	int maxx = TERM_MAXX;
-	int maxy = TERM_MAXY;
-	int sx,sy;
-	int x,y;
-
-	if(lines<1)
-		return;
-	coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &minx, &miny);
-	coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &maxx, &maxy);
-	TERM_XY(&x, &y);
-	// Can't delete lines outside of window
-	if (x < TERM_MINX || x > TERM_MAXX || y < TERM_MINY || y > TERM_MAXY)
-		return;
-	SCR_XY(&sx, &sy);
-	MOVETEXT(minx, sy + lines, maxx, maxy, minx, sy);
-	for(i = TERM_MAXY - lines; i <= TERM_MAXY; i++) {
-		cterm_gotoxy(cterm, TERM_MINX, i);
-		cterm_clreol(cterm);
-	}
-	cterm_gotoxy(cterm, x, y);
-}
-
-static void
-clear2bol(struct cterminal * cterm)
-{
-	struct vmem_cell *buf;
-	int i;
-	int x, y;
-	int minx = CURR_MINX;
-
-	CURR_XY(&x, &y);
-	buf = malloc(x * sizeof(*buf));
-	for(i = 0; i < x; i++) {
-		buf[i].ch = ' ';
-		buf[i].legacy_attr = cterm->attr;
-		buf[i].fg = cterm->fg_color;
-		buf[i].bg = cterm->bg_color;
-		buf[i].font = ciolib_attrfont(cterm->attr);
-	}
-	coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &x, &y);
-	coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &minx, NULL);
-	vmem_puttext(minx, y, x, y, buf);
-	free(buf);
-}
-
-void
-cterm_clearscreen(struct cterminal *cterm, char attr)
-{
-	int getw;
-
-	if(!cterm->started)
-		cterm_start(cterm);
-
-	if(cterm->scrollback!=NULL) {
-		cterm->backpos+=cterm->height;
-		if(cterm->backpos>cterm->backlines) {
-			memmove(cterm->scrollback, cterm->scrollback + cterm->backwidth * (cterm->backpos - cterm->backlines), cterm->backwidth * sizeof(*cterm->scrollback) * (cterm->backlines - (cterm->backpos - cterm->backlines)));
-			cterm->backpos=cterm->backlines;
-		}
-		getw = cterm->backwidth;
-		if (getw > cterm->width)
-			getw = cterm->width;
-		if (getw < cterm->backwidth) {
-			memset(cterm->scrollback + (cterm->backpos - cterm->height) * cterm->backwidth, 0, sizeof(*cterm->scrollback) * cterm->backwidth * cterm->height);
-		}
-		vmem_gettext(cterm->x, cterm->y, cterm->x + getw - 1, cterm->y + cterm->height - 1,
-		    cterm->scrollback + (cterm->backpos - cterm->height) * cterm->backwidth);
-	}
-	CLRSCR();
-	GOTOXY(CURR_MINX, CURR_MINY);
-}
-
-/*
- * Parses an ESC sequence and returns it broken down
- */
-
-struct esc_seq {
-	char c1_byte;			// Character after the ESC.  If '[', ctrl_func and param_str will be non-NULL.
-					// For nF sequences (ESC I...I F), this will be NUL and ctrl_func will be
-					// non-NULL
-	char final_byte;		// Final Byte (or NUL if c1 function);
-	char *ctrl_func;		// Intermediate Bytes and Final Byte as NULL-terminated string.
-	char *param_str;		// The parameter bytes
-	int param_count;		// The number of parameters, or -1 if parameters were not parsed.
-	str_list_t param;		// The parameters as strings
-	uint64_t *param_int;	// The parameter bytes parsed as integers UINT64_MAX for default value.
-};
-
-struct sub_params {
-	int param_count;		// The number of parameters, or -1 if parameters were not parsed.
-	uint64_t *param_int;	// The parameter bytes parsed as integers UINT64_MAX for default value.
-};
-
-static bool parse_sub_parameters(struct sub_params *sub, struct esc_seq *seq, unsigned param)
-{
-	int i;
-	char *p;
-
-	sub->param_count = 1;
-	sub->param_int = NULL;
-
-	if (param >= seq->param_count)
-		return false;
-	for (p=seq->param[param]; *p; p++)
-		if (*p == ':')
-			sub->param_count++;
-	if (sub->param_count == 0)
-		return true;
-	sub->param_int = malloc(sub->param_count * sizeof(sub->param_int[0]));
-	if (sub->param_int == NULL)
-		return false;
-	p = seq->param[param];
-	for (i=0; i<sub->param_count; i++) {
-		p++;
-		sub->param_int[i] = strtoull(p, &p, 10);
-		if (*p != ':' && *p != 0) {
-			free(seq->param_int);
-			return false;
-		}
-	}
-	return true;
-}
-
-static void free_sub_parameters(struct sub_params *sub)
-{
-	FREE_AND_NULL(sub->param_int);
-}
-
-static bool parse_parameters(struct esc_seq *seq)
-{
-	char *p;
-	char *dup;
-	char *start = NULL;
-	bool last_was_sc = false;
-	int i;
-
-	if (seq == NULL)
-		return false;
-	if (seq->param_str == NULL)
-		return false;
-
-	dup = strdup(seq->param_str);
-	if (dup == NULL)
-		return false;
-	p = dup;
-
-	// First, skip past any private extension indicator...
-	if (*p >= 0x3c && *p <= 0x3f)
-		p++;
-
-	seq->param_count = 0;
-
-	seq->param = strListInit();
-
-	for (; *p; p++) {
-		/* Ensure it's a legal value */
-		if (*p < 0x30 || *p > 0x3b) {
-			seq->param_count = -1;
-			strListFree(&seq->param);
-			seq->param = NULL;
-			free(dup);
-			return false;
-		}
-		/* Mark the start of the parameter */
-		if (start == NULL)
-			start = p;
-
-		if (*p == ';') {
-			/* End of parameter, add to string list */
-			last_was_sc = true;
-			*p = 0;
-			while(*start == '0' && start[1])
-				start++;
-			strListAppend(&seq->param, start, seq->param_count);
-			seq->param_count++;
-			start = NULL;
-		}
-		else
-			last_was_sc = false;
-	}
-	/* If the string ended with a semi-colon, there's a final zero-length parameter */
-	if (last_was_sc) {
-		strListAppend(&seq->param, "", seq->param_count);
-		seq->param_count++;
-	}
-	else if (start) {
-		/* End of parameter, add to string list */
-		*p = 0;
-		while(*start == '0' && start[1])
-			start++;
-		strListAppend(&seq->param, start, seq->param_count);
-		seq->param_count++;
-	}
-
-	seq->param_int = malloc(seq->param_count * sizeof(seq->param_int[0]));
-	if (seq->param_int == NULL) {
-			seq->param_count = -1;
-			strListFree(&seq->param);
-			seq->param = NULL;
-			free(dup);
-			return false;
-	}
-
-	/* Now, parse all the integer values... */
-	for (i=0; i<seq->param_count; i++) {
-		if (seq->param[i][0] == 0 || seq->param[i][0] == ':') {
-			seq->param_int[i] = UINT64_MAX;
-			continue;
-		}
-		seq->param_int[i] = strtoull(seq->param[i], NULL, 10);
-		if (seq->param_int[i] == ULLONG_MAX) {
-			seq->param_count = -1;
-			strListFree(&seq->param);
-			seq->param = NULL;
-			FREE_AND_NULL(seq->param_int);
-			free(dup);
-			return false;
-		}
-	}
-
-	free(dup);
-	return true;
-}
-
-static void seq_default(struct esc_seq *seq, int index, uint64_t val)
-{
-	char	tmpnum[24];
-
-	// Params not parsed
-	if (seq->param_count == -1)
-		return;
-
-	/* Do we need to add on to get defaults? */
-	if (index >= seq->param_count) {
-		uint64_t *np;
-
-		np = realloc(seq->param_int, (index + 1) * sizeof(seq->param_int[0]));
-		if (np == NULL)
-			return;
-		seq->param_int = np;
-		for (; seq->param_count <= index; seq->param_count++) {
-			if (seq->param_count == index) {
-				seq->param_int[index] = val;
-				sprintf(tmpnum, "%" PRIu64, val);
-				strListAppend(&seq->param, tmpnum, seq->param_count);
-			}
-			else {
-				seq->param_int[seq->param_count] = UINT64_MAX;
-				strListAppend(&seq->param, "", seq->param_count);
-			}
-		}
-		return;
-	}
-	if (seq->param_int[index] == UINT64_MAX) {
-		seq->param_int[index] = val;
-		sprintf(tmpnum, "%" PRIu64, val);
-		strListReplace(seq->param, index, tmpnum);
-	}
-}
-
-static void free_sequence(struct esc_seq * seq)
-{
-	if (seq == NULL)
-		return;
-	if (seq->param)
-		strListFree(&seq->param);
-	FREE_AND_NULL(seq->param_int);
-	seq->param_count = -1;
-	FREE_AND_NULL(seq->param_str);
-	FREE_AND_NULL(seq->ctrl_func);
-	free(seq);
-}
-
-/*
- * Returns true if the sequence is legal so far
- */
-
-static enum {
-	SEQ_BROKEN,
-	SEQ_INCOMPLETE,
-	SEQ_COMPLETE
-} legal_sequence(const char *seq, size_t max_len)
-{
-	size_t intermediate_len;
-
-	if (seq == NULL)
-		return SEQ_BROKEN;
-
-	if (seq[0] == 0)
-		goto incomplete;
-
-	/* Check that it's part of C1 set, part of the Independent control functions, or an nF sequence type (ECMA 35)*/
-	intermediate_len = strspn(&seq[0], " !\"#$%&'()*+,-./");
-	if (seq[intermediate_len] == 0)
-		goto incomplete;
-	if (seq[intermediate_len] < 0x30 || seq[intermediate_len] > 0x7e)
-		return SEQ_BROKEN;
-
-	/* Check if it's CSI */
-	if (seq[0] == '[') {
-		size_t parameter_len;
-
-		if (seq[1] >= '<' && seq[1] <= '?')
-			parameter_len = strspn(&seq[1], "0123456789:;<=>?");
-		else
-			parameter_len = strspn(&seq[1], "0123456789:;");
-
-		if (seq[1+parameter_len] == 0)
-			goto incomplete;
-
-		intermediate_len = strspn(&seq[1+parameter_len], " !\"#$%&'()*+,-./");
-		if (seq[1+parameter_len+intermediate_len] == 0)
-			goto incomplete;
-
-		if (seq[1+parameter_len+intermediate_len] < 0x40 || seq[1+parameter_len+intermediate_len] > 0x7e)
-			return SEQ_BROKEN;
-	}
-	return SEQ_COMPLETE;
-
-incomplete:
-	if (strlen(seq) >= max_len)
-		return SEQ_BROKEN;
-	return SEQ_INCOMPLETE;
-}
-
-static struct esc_seq *parse_sequence(const char *seq)
-{
-	struct esc_seq *ret;
-	size_t intermediate_len;
-
-	ret = calloc(1, sizeof(struct esc_seq));
-	if (ret == NULL)
-		return ret;
-	ret->param_count = -1;
-
-	/* Check that it's part of C1 set, part of the Independent control functions, or an nF sequence type (ECMA 35)*/
-	intermediate_len = strspn(&seq[0], " !\"#$%&'()*+,-./");
-	if (seq[intermediate_len] == 0)
-		goto fail;
-
-	/* Validate C1 final byte */
-	if (seq[intermediate_len] < 0x30 || seq[intermediate_len] > 0x7e)
-		goto fail;
-
-	if (intermediate_len == 0)
-		ret->c1_byte = seq[intermediate_len];
-
-	/* Check if it's CSI */
-	if (seq[0] == '[') {
-		size_t parameter_len;
-
-		parameter_len = strspn(&seq[1], "0123456789:;<=>?");
-		ret->param_str = malloc(parameter_len + 1);
-		if (!ret->param_str)
-			goto fail;
-		memcpy(ret->param_str, &seq[1], parameter_len);
-		ret->param_str[parameter_len] = 0;
-
-		intermediate_len = strspn(&seq[1+parameter_len], " !\"#$%&'()*+,-./");
-		if (seq[1+parameter_len+intermediate_len] < 0x40 || seq[1+parameter_len+intermediate_len] > 0x7e)
-			goto fail;
-		ret->ctrl_func = malloc(intermediate_len + 2);
-		if (!ret->ctrl_func)
-			goto fail;
-		memcpy(ret->ctrl_func, &seq[1+parameter_len], intermediate_len);
-
-		ret->final_byte = ret->ctrl_func[intermediate_len] = seq[1+parameter_len+intermediate_len];
-		/* Validate final byte */
-		if (ret->final_byte < 0x40 || ret->final_byte > 0x7e)
-			goto fail;
-
-		ret->ctrl_func[intermediate_len+1] = 0;
-
-		/*
-		 * Is this a private extension?
-		 * If so, return now, the caller can parse the parameter sequence itself
-		 * if the standard format is used.
-		 */
-		if (ret->param_str[0] >= 0x3c && ret->param_str[0] <= 0x3f)
-			return ret;
-
-		if (!parse_parameters(ret))
-			goto fail;
-	}
-	else {
-		ret->ctrl_func = malloc(intermediate_len + 2);
-		if (!ret->ctrl_func)
-			goto fail;
-		memcpy(ret->ctrl_func, seq, intermediate_len + 1);
-		ret->ctrl_func[intermediate_len + 1] = 0;
-	}
-	return ret;
-
-fail:
-	FREE_AND_NULL(ret->ctrl_func);
-	FREE_AND_NULL(ret->param_str);
-	free(ret);
-	return NULL;
-}
-
-static void parse_sixel_string(struct cterminal *cterm, bool finish)
-{
-	char *p = cterm->strbuf;
-	char *end;
-	int i, j, k;
-	int vmode;
-	int pos;
-	struct text_info ti;
- 	int palette_offset = 0;
-
-	if (cio_api.options & CONIO_OPT_EXTENDED_PALETTE)
-		palette_offset = 16;
-
-	if (cterm->strbuflen == 0) {
-		if (finish)
-			goto all_done;
-		return;
-	}
-
-	end = p+cterm->strbuflen-1;
-
-	if ((*end < '?' || *end > '~') && !finish)
-		return;
-
-	/*
-	 * TODO: Sixel interaction with scrolling margins...
-	 * This one is interesting because there is no real terminal
-	 * which supported left/right margins *and* sixel graphics.
-	 */
-	while (p <= end) {
-		if (*p >= '?' && *p <= '~') {
-			unsigned data = *p - '?';
-
-			cterm->sx_pixels_sent = 1;
-			GETTEXTINFO(&ti);
-			vmode = find_vmode(ti.currmode);
-			if (vmode == -1)
-				return;
-			if (cterm->sx_pixels == NULL) {
-				cterm->sx_pixels = malloc(sizeof(struct ciolib_pixels));
-				cterm->sx_pixels->pixels = malloc(sizeof(cterm->sx_pixels->pixels[0]) * cterm->sx_iv * ti.screenwidth * vparams[vmode].charwidth * 6);
-				cterm->sx_pixels->pixelsb = NULL;
-				cterm->sx_pixels->width = ti.screenwidth * vparams[vmode].charwidth;
-				cterm->sx_pixels->height = cterm->sx_iv * 6;
-				cterm->sx_mask = malloc((cterm->sx_iv * 6 * ti.screenwidth * vparams[vmode].charwidth * 6 + 7)/8);
-				memset(cterm->sx_mask, 0, (cterm->sx_iv * 6 * ti.screenwidth * vparams[vmode].charwidth * 6 + 7)/8);
-			}
-			if (cterm->sx_x == cterm->sx_left && cterm->sx_height && cterm->sx_width && cterm->sx_first_pass) {
-				/* Fill in the background of the line */
-				for (i = 0; i < (cterm->sx_height > 6 ? 6 : cterm->sx_height); i++) {
-					for (j = 0; j < cterm->sx_iv; j++) {
-						for (k = 0; k < cterm->sx_ih; k++) {
-							pos = i * cterm->sx_iv * cterm->sx_pixels->width + j * cterm->sx_pixels->width + cterm->sx_x + k;
-							cterm->sx_pixels->pixels[pos] = cterm->sx_bg;
-							cterm->sx_mask[pos/8] |= (0x80 >> (pos % 8));
-						}
-					}
-				}
-			}
-			if (cterm->sx_x < ti.screenwidth * vparams[vmode].charwidth) {
-				for (i=0; i<6; i++) {
-					if (data & (1<<i)) {
-						for (j = 0; j < cterm->sx_iv; j++) {
-							for (k = 0; k < cterm->sx_ih; k++) {
-								pos = i * cterm->sx_iv * cterm->sx_pixels->width + j * cterm->sx_pixels->width + cterm->sx_x + k;
-								cterm->sx_pixels->pixels[pos] = cterm->sx_fg;
-								cterm->sx_mask[pos/8] |= (0x80 >> (pos % 8));
-							}
-						}
-					}
-					else {
-						if (cterm->sx_first_pass && !cterm->sx_trans) {
-							for (j = 0; j < cterm->sx_iv; j++) {
-								for (k = 0; k < cterm->sx_ih; k++) {
-									pos = i * cterm->sx_iv * cterm->sx_pixels->width + j * cterm->sx_pixels->width + cterm->sx_x + k;
-									cterm->sx_pixels->pixels[pos] = cterm->sx_bg;
-									cterm->sx_mask[pos/8] |= (0x80 >> (pos % 8));
-								}
-							}
-						}
-						else {
-							for (j = 0; j < cterm->sx_iv; j++) {
-								for (k = 0; k < cterm->sx_ih; k++) {
-									pos = i * cterm->sx_iv * cterm->sx_pixels->width + j * cterm->sx_pixels->width + cterm->sx_x + k;
-									if (cterm->sx_first_pass)
-										cterm->sx_mask[pos/8] &= ~(0x80 >> (pos % 8));
-								}
-							}
-						}
-					}
-				}
-				if (cterm->sx_x > cterm->sx_row_max_x)
-					cterm->sx_row_max_x = cterm->sx_x;
-			}
-
-			cterm->sx_x+=cterm->sx_ih;
-			if (cterm->sx_repeat)
-				cterm->sx_repeat--;
-			if (!cterm->sx_repeat)
-				p++;
-		}
-		else {
-			switch(*p) {
-				case '"':	// Raster Attributes
-					if (!cterm->sx_pixels_sent) {
-						p++;
-						cterm->sx_iv = strtoul(p, &p, 10);
-						cterm->sx_height = cterm->sx_width = 0;
-						if (*p == ';') {
-							p++;
-							cterm->sx_ih = strtoul(p, &p, 10);
-						}
-						if (*p == ';') {
-							p++;
-							cterm->sx_width = strtoul(p, &p, 10);
-						}
-						if (*p == ';') {
-							p++;
-							cterm->sx_height = strtoul(p, &p, 10);
-						}
-					}
-					else
-						p++;
-					break;
-				case '!':	// Repeat
-					p++;
-					if (!*p)
-						continue;
-					cterm->sx_repeat = strtoul(p, &p, 10);
-					break;
-				case '#':	// Colour Introducer
-					p++;
-					if (!*p)
-						continue;
-					cterm->sx_fg = strtoul(p, &p, 10) + TOTAL_DAC_SIZE + palette_offset;
-					/* Do we want to redefine it while we're here? */
-					if (*p == ';') {
-						unsigned long t,r,g,b;
-
-						p++;
-						r=g=b=0;
-						t = strtoul(p, &p, 10);
-						if (*p == ';') {
-							p++;
-							r = strtoul(p, &p, 10);
-						}
-						if (*p == ';') {
-							p++;
-							g = strtoul(p, &p, 10);
-						}
-						if (*p == ';') {
-							p++;
-							b = strtoul(p, &p, 10);
-						}
-						if (t == 2)	// Only support RGB
-							setpalette(cterm->sx_fg, UINT16_MAX*r/100, UINT16_MAX*g/100, UINT16_MAX*b/100);
-					}
-					break;
-				case '$':	// Graphics Carriage Return
-					cterm->sx_x = cterm->sx_left;
-					cterm->sx_first_pass = 0;
-					p++;
-					break;
-				case '-':	// Graphics New Line
-					{
-						int max_row = TERM_MAXY;
-						coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_CURR, &max_row, NULL);
-						GETTEXTINFO(&ti);
-						vmode = find_vmode(ti.currmode);
-
-						if (vmode == -1)
-							return;
-						setpixels(cterm->sx_left, cterm->sx_y, cterm->sx_row_max_x, cterm->sx_y + 6 * cterm->sx_iv - 1, cterm->sx_left, 0, cterm->sx_pixels, cterm->sx_mask);
-						cterm->sx_row_max_x = 0;
-
-						if ((!(cterm->extattr & CTERM_EXTATTR_SXSCROLL)) && (((cterm->sx_y + 6 * cterm->sx_iv) + 6*cterm->sx_iv - 1) >= (cterm->y + max_row - 1) * vparams[vmode].charheight)) {
-							p++;
-							break;
-						}
-
-						cterm->sx_x = cterm->sx_left;
-						cterm->sx_y += 6*cterm->sx_iv;
-						if (cterm->sx_height)
-							cterm->sx_height -= cterm->sx_height > 6 ? 6 : cterm->sx_height;
-						while ((cterm->sx_y + 6 * cterm->sx_iv - 1) >= (cterm->y + max_row - 1) * vparams[vmode].charheight) {
-							cond_scrollup(cterm);
-							cterm->sx_y -= vparams[vmode].charheight;
-						}
-						cterm->sx_first_pass = 1;
-						p++;
-					}
-					break;
-				default:
-					p++;
-			}
-		}
-	}
-	cterm->strbuflen = 0;
-	if (finish)
-		goto all_done;
-	return;
-
-all_done:
-	GETTEXTINFO(&ti);
-	vmode = find_vmode(ti.currmode);
-
-	if (cterm->sx_row_max_x) {
-		setpixels(cterm->sx_left, cterm->sx_y, cterm->sx_row_max_x, cterm->sx_y + 6 * cterm->sx_iv - 1, cterm->sx_left, 0, cterm->sx_pixels, cterm->sx_mask);
-	}
-
-	*cterm->hold_update=cterm->sx_hold_update;
-
-	/* Finish off the background */
-	cterm->sx_x = cterm->sx_left;
-	cterm->sx_y += 6 * cterm->sx_iv;
-	if (cterm->sx_height)
-		cterm->sx_height -= cterm->sx_height > 6 ? 6 : cterm->sx_height;
-
-	if (cterm->sx_height && cterm->sx_width) {
-		struct ciolib_pixels px;
-
-		px.pixels = malloc(sizeof(px.pixels[0])*cterm->sx_width*cterm->sx_height*cterm->sx_iv*cterm->sx_ih);
-		px.height = cterm->sx_height;
-		px.width = cterm->sx_width;
-		for (i = 0; i<cterm->sx_height*cterm->sx_iv; i++) {
-			for (j = 0; j < cterm->sx_width*cterm->sx_ih; j++)
-				px.pixels[i*cterm->sx_width*cterm->sx_ih + j] = cterm->sx_bg;
-		}
-		setpixels(cterm->sx_x, cterm->sx_y, cterm->sx_x + cterm->sx_width - 1, cterm->sx_y + cterm->sx_height - 1, 0, 0, &px, NULL);
-		free(px.pixels);
-	}
-
-	if (cterm->extattr & CTERM_EXTATTR_SXSCROLL) {
-		if (vmode != -1) {
-			cterm->sx_x = cterm->sx_x / vparams[vmode].charwidth + 1;
-			cterm->sx_x -= (cterm->x - 1);
-
-			cterm->sx_y = (cterm->sx_y - 1) / vparams[vmode].charheight + 1;
-			cterm->sx_y -= (cterm->y - 1);
-
-			cterm_gotoxy(cterm, cterm->sx_x, cterm->sx_y);
-		}
-	}
-	else {
-		cterm_gotoxy(cterm, cterm->sx_start_x, cterm->sx_start_y);
-	}
-	cterm->cursor = cterm->sx_orig_cursor;
-	SETCURSORTYPE(cterm->cursor);
-	cterm->sixel = SIXEL_INACTIVE;
-	if (cterm->sx_pixels)
-		FREE_AND_NULL(cterm->sx_pixels->pixels);
-	FREE_AND_NULL(cterm->sx_pixels);
-	FREE_AND_NULL(cterm->sx_mask);
-}
-
-static int
-is_hex(char ch)
-{
-	if ((ch >= '0' && ch <= '9') || (ch >= 'a' && ch <= 'f') || (ch >= 'A' && ch <= 'F'))
-		return 1;
-	return 0;
-}
-
-static int
-get_hexstrlen(char *str, char *end)
-{
-	int ret = 0;
-
-	for (;str <= end; str++) {
-		if (is_hex(*str)) {
-			if (str == end)
-				return -1;
-			if (!is_hex(*(str+1)))
-				return -1;
-			ret++;
-			str++;
-		}
-		else
-			return ret;
-	}
-	return ret;
-}
-
-static int
-nibble_val(char ch)
-{
-	if (ch >= '0' && ch <= '9')
-		return ch - '0';
-	if (ch >= 'a' && ch <= 'f')
-		return (ch - 'a') + 10;
-	if (ch >= 'A' && ch <= 'F')
-		return (ch - 'A') + 10;
-	return -1;
-}
-
-static void
-get_hexstr(char *str, char *end, char *out)
-{
-	for (;str <= end; str++) {
-		if (is_hex(*str)) {
-			if (str == end)
-				return;
-			if (!is_hex(*(str+1)))
-				return;
-			*(out++) = nibble_val(*str) << 4 | nibble_val(*(str + 1));
-			str++;
-		}
-		else
-			return;
-	}
-}
-
-static void parse_macro_string(struct cterminal *cterm, bool finish)
-{
-	char *p = cterm->strbuf;
-	char *end;
-	int i;
-
-	if (cterm->strbuflen == 0) {
-		if (finish)
-			goto all_done;
-		return;
-	}
-
-	end = p+cterm->strbuflen-1;
-
-	if (*end >= '\x08' && *end <= '\x0d') {
-		cterm->strbuflen--;
-		if (finish)
-			goto all_done;
-		return;
-	}
-	if (cterm->macro_encoding == MACRO_ENCODING_ASCII) {
-		if ((*end >= ' ' && *end <= '\x7e') || (*end >= '\xa0' && *end <= '\xff')) {
-			if (finish)
-				goto all_done;
-			return;
-		}
-	}
-	if (cterm->macro_encoding == MACRO_ENCODING_HEX &&
-	    (is_hex(*end) || (*end == '!') || (*end == ';'))) {
-		if (finish)
-			goto all_done;
-		return;
-	}
-
-	cterm->macro = MACRO_INACTIVE;
-	return;
-
-all_done:
-	if (cterm->macro_del == MACRO_DELETE_ALL) {
-		for (i = 0; i < (sizeof(cterm->macros) / sizeof(cterm->macros[0])); i++) {
-			FREE_AND_NULL(cterm->macros[i]);
-			cterm->macro_lens[i] = 0;
-		}
-	}
-	else {
-		FREE_AND_NULL(cterm->macros[cterm->macro_num]);
-		cterm->macro_lens[cterm->macro_num] = 0;
-	}
-	if (cterm->strbuflen == 0)
-		return;
-	if (cterm->macro_encoding == MACRO_ENCODING_ASCII) {
-		cterm->macros[cterm->macro_num] = malloc(cterm->strbuflen + 1);
-		if (cterm->macros[cterm->macro_num]) {
-			cterm->macro_lens[cterm->macro_num] = cterm->strbuflen;
-			memcpy(cterm->macros[cterm->macro_num], cterm->strbuf, cterm->strbuflen);
-			cterm->macros[cterm->macro_num][cterm->strbuflen] = 0;
-		}
-	}
-	else {
-		// Hex string...
-		int plen;
-		unsigned long ul;
-		size_t mlen = 0;
-		char *out;
-
-		// First, calculate the required length...
-		for (p = cterm->strbuf; p <= end;) {
-			if (*p == '!') {
-				if (p == end)
-					return;
-				p++;
-				if (p == end)
-					return;
-				if (*p == ';')
-					ul = 1;
-				else {
-					if (memchr(p, ';', cterm->strbuflen - (p - cterm->strbuf)) == NULL)
-						return;
-					ul = strtoul(p, &p, 10);
-					if (*p != ';')
-						return;
-					if (ul == ULONG_MAX)
-						return;
-					p++;
-				}
-				plen = get_hexstrlen(p, end);
-				p += plen * 2;
-				if (plen == -1)
-					return;
-				mlen += ul * plen;
-				if (p <= end) {
-					if (*p == ';')
-						p++;
-					else
-						return;
-				}
-			}
-			else {
-				plen = get_hexstrlen(p, end);
-				if (plen == -1)
-					return;
-				p += plen * 2;
-				mlen += plen;
-			}
-		}
-		cterm->macros[cterm->macro_num] = malloc(mlen + 1);
-		if (cterm->macros[cterm->macro_num] == NULL)
-			return;
-		cterm->macro_lens[cterm->macro_num] = mlen;
-		out = cterm->macros[cterm->macro_num];
-		for (p = cterm->strbuf; p <= end;) {
-			if (*p == '!') {
-				p++;
-				if (*p == ';')
-					ul = 1;
-				else {
-					ul = strtoul(p, &p, 10);
-					p++;
-				}
-				plen = get_hexstrlen(p, end);
-				for (i = 0; i < ul; i++) {
-					get_hexstr(p, end, out);
-					out += plen;
-				}
-				p += plen * 2;
-				if (p <= end && *p == ';')
-					p++;
-			}
-			else {
-				plen = get_hexstrlen(p, end);
-				get_hexstr(p, end, out);
-				out += plen;
-				p += plen * 2;
-			}
-		}
-	}
-}
-
-static void save_extended_colour_seq(struct cterminal *cterm, int fg, struct esc_seq *seq, int seqoff, int count)
-{
-	char **str = fg ? &cterm->fg_tc_str : &cterm->bg_tc_str;
-
-	if (*str)
-		FREE_AND_NULL(*str);
-
-	switch (count) {
-		case 1:
-			asprintf(str, "%s", seq->param[seqoff]);
-			break;
-		case 2:
-			asprintf(str, "%s;%s", seq->param[seqoff], seq->param[seqoff+1]);
-			break;
-		case 3:
-			asprintf(str, "%s;%s;%s", seq->param[seqoff], seq->param[seqoff+1], seq->param[seqoff+2]);
-			break;
-		case 5:
-			asprintf(str, "%s;%s;%s;%s;%s", seq->param[seqoff], seq->param[seqoff+1], seq->param[seqoff+2], seq->param[seqoff+3], seq->param[seqoff+4]);
-			break;
-	}
-}
-
-static void parse_extended_colour(struct esc_seq *seq, int *i, struct cterminal *cterm, int fg)
-{
-	struct sub_params sub = {0};
-	uint32_t nc;
-	uint32_t *co;
- 	int palette_offset = 0;
-
-	if (cio_api.options & CONIO_OPT_EXTENDED_PALETTE)
-		palette_offset = 16;
-
-	if (seq == NULL || cterm == NULL || i == NULL)
-		return;
-	if (fg)
-		FREE_AND_NULL(cterm->fg_tc_str);
-	else
-		FREE_AND_NULL(cterm->bg_tc_str);
-	co = fg ? (&cterm->fg_color) : (&cterm->bg_color);
-	if (*i>=seq->param_count)
-		return;
-
-	if (seq->param[*i][2] == ':') {
-		// CSI 38 : 5 : X m variant
-		// CSI 38 : 2 : Z? : R : G : B m variant
-
-		if (parse_sub_parameters(&sub, seq, *i)) {
-			if (sub.param_count == 3 && sub.param_int[1] == 5) {
-				*co = sub.param_int[2];
-				save_extended_colour_seq(cterm, fg, seq, *i, 1);
-			}
-			else if (sub.param_int[1] == 2) {
-				if (sub.param_count == 5) {
-					nc = map_rgb(sub.param_int[2]<<8, sub.param_int[3]<<8, sub.param_int[4]<<8);
-					if (nc != UINT32_MAX)
-						*co = nc;
-					save_extended_colour_seq(cterm, fg, seq, *i, 1);
-				}
-				else if (sub.param_count > 5) {
-					nc = map_rgb(sub.param_int[3]<<8, sub.param_int[4]<<8, sub.param_int[5]<<8);
-					if (nc != UINT32_MAX)
-						*co = nc;
-					save_extended_colour_seq(cterm, fg, seq, *i, 1);
-				}
-			}
-		}
-	}
-	else if ((*i)+1 < seq->param_count && seq->param_int[(*i)+1] == 5 && seq->param[(*i)+1][1] == ':') {
-		// CSI 38 ; 5 : X m variant
-		if (parse_sub_parameters(&sub, seq, (*i)+1)) {
-			if (sub.param_count == 2)
-				*co = sub.param_int[1];
-			save_extended_colour_seq(cterm, fg, seq, *i, 2);
-			(*i)++;
-		}
-	}
-	else if ((*i)+2 < seq->param_count && seq->param_int[(*i)+1] == 5) {
-		// CSI 38 ; 5 ; X m variant
-		*co = seq->param_int[(*i)+2] + palette_offset;
-		save_extended_colour_seq(cterm, fg, seq, *i, 3);
-		*i+=2;
-	}
-	else if ((*i)+1 < seq->param_count && seq->param_int[(*i)+1] == 2 && seq->param[(*i)+1][1] == ':') {
-		// CSI 38 ; 2 : Z? : R : G : B m variant
-		if (parse_sub_parameters(&sub, seq, (*i)+1)) {
-			nc = UINT32_MAX;
-			if (sub.param_count > 4)
-				nc = map_rgb(sub.param_int[2]<<8, sub.param_int[3]<<8, sub.param_int[4]<<8);
-			else if (sub.param_count == 4)
-				nc = map_rgb(sub.param_int[1]<<8, sub.param_int[2]<<8, sub.param_int[3]<<8);
-			if (nc != UINT32_MAX)
-				*co = nc;
-			save_extended_colour_seq(cterm, fg, seq, *i, 2);
-			*i += 1;
-		}
-	}
-	else if ((*i)+4 < seq->param_count && seq->param_int[(*i)+1] == 2) {
-		// CSI 38 ; 2 ; R ; G ; B m variant
-		nc = map_rgb(seq->param_int[(*i)+2]<<8, seq->param_int[(*i)+3]<<8, seq->param_int[(*i)+4]<<8);
-		if (nc != UINT32_MAX)
-			*co = nc;
-		save_extended_colour_seq(cterm, fg, seq, *i, 5);
-		*i += 4;
-	}
-	free_sub_parameters(&sub);
-}
-
-static void
-do_tab(struct cterminal *cterm)
-{
-	int i;
-	int cx, cy, ox;
-	int lm, rm, bm;
-
-	rm = TERM_MAXX;
-	bm = TERM_MAXY;
-	coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_CURR, &rm, &bm);
-	lm = TERM_MINX;
-	coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_CURR, &lm, NULL);
-
-	CURR_XY(&cx, &cy);
-	ox = cx;
-	for (i = 0; i < cterm->tab_count; i++) {
-		if (cterm->tabs[i] > cx) {
-			cx = cterm->tabs[i];
-			break;
-		}
-	}
-	if ((ox > rm && cx > CURR_MAXX) || (ox <= rm && cx > rm) || i == cterm->tab_count) {
-		cx = lm;
-		if (cy == bm) {
-			cond_scrollup(cterm);
-			cy = bm;
-		}
-		else if(cy < CURR_MAXY)
-			cy++;
-	}
-	GOTOXY(cx, cy);
-}
-
-static void
-do_backtab(struct cterminal *cterm)
-{
-	int i;
-	int cx, cy, ox;
-	int lm;
-
-	lm = TERM_MINX;
-	coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_CURR, &lm, NULL);
-
-	CURR_XY(&cx, &cy);
-	ox = cx;
-	for (i = cterm->tab_count - 1; i >= 0; i--) {
-		if (cterm->tabs[i] < cx) {
-			cx = cterm->tabs[i];
-			break;
-		}
-	}
-	if (ox >= lm && cx < lm)
-		cx = lm;
-	GOTOXY(cx, cy);
-}
-
-static void
-adjust_currpos(struct cterminal *cterm, int xadj, int yadj, int scroll)
-{
-	int x, y;
-	int tx, ty;
-
-	/*
-	 * If we're inside the scrolling margins, we simply move inside
-	 * them, and scrolling works.
-	 */
-	TERM_XY(&tx, &ty);
-	if (tx >= TERM_MINX && tx <= TERM_MAXX &&
-	    ty >= TERM_MINY && ty <= TERM_MAXY) {
-		if (xadj == INT_MIN)
-			tx = TERM_MINX;
-		else
-			tx += xadj;
-		if (yadj == INT_MIN)
-			ty = TERM_MINX;
-		else
-			ty += yadj;
-		if (scroll) {
-			while(ty > TERM_MAXY) {
-				cterm_scrollup(cterm);
-				ty--;
-			}
-			while(ty < TERM_MINY) {
-				scrolldown(cterm);
-				ty++;
-			}
-		}
-		else {
-			if (ty > TERM_MAXY)
-				ty = TERM_MAXY;
-			if (ty < TERM_MINY)
-				ty = TERM_MINY;
-		}
-		if (tx > TERM_MAXX)
-			tx = TERM_MAXX;
-		if (tx < TERM_MINX)
-			tx = TERM_MINX;
-		cterm_gotoxy(cterm, tx, ty);
-		return;
-	}
-	/*
-	 * Outside of the scrolling margins, we can cross a margin
-	 * into the scrolling region, but can't cross going out.
-	 */
-	coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_CURR, &tx, &ty);
-	x = tx;
-	y = ty;
-	if (xadj == INT_MIN)
-		tx = TERM_MINX;
-	else
-		tx += xadj;
-	if (yadj == INT_MIN)
-		ty = TERM_MINX;
-	else
-		ty += yadj;
-	if (x <= cterm->right_margin && tx > cterm->right_margin)
-		tx = cterm->right_margin;
-	if (y <= cterm->bottom_margin && ty > cterm->bottom_margin)
-		ty = cterm->bottom_margin;
-	if (tx < cterm->left_margin && x >= cterm->left_margin)
-		tx = cterm->left_margin;
-	if (ty < cterm->top_margin && y >= cterm->top_margin)
-		ty = cterm->top_margin;
-	GOTOXY(tx, ty);
-}
-
-static int
-skypix_color(struct cterminal *cterm, int color)
-{
-	if (!cterm->skypix)
-		return color;
-	switch(color) {
-		case BLACK:
-			return 0;
-		case RED:
-			return 3;
-		case GREEN:
-			return 4;
-		case BROWN:
-			return 6;
-		case BLUE:
-			return 1;
-		case MAGENTA:
-			return 7;
-		case CYAN:
-			return 5;
-		case LIGHTGRAY:
-			return 2;
-		case DARKGRAY:
-			return 8;
-		case LIGHTRED:
-			return 11;
-		case LIGHTGREEN:
-			return 12;
-		case YELLOW:
-			return 14;
-		case LIGHTBLUE:
-			return 9;
-		case LIGHTMAGENTA:
-			return 15;
-		case LIGHTCYAN:
-			return 13;
-		case WHITE:
-			return 10;
-	}
-	return color;
-}
-
-static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int *speed, char last)
-{
-	char	*p;
-	char	*p2;
-	char	tmp[1024];
-	int		i,j,k,l;
-	int	flags;
-	int		row,col;
-	int		row2,col2;
-	int		max_row;
-	int		max_col;
-	struct text_info ti;
-	struct esc_seq *seq;
-	uint32_t oldfg, oldbg;
-	bool updfg, updbg;
-	struct vmem_cell *vc;
-	int palette_offset = 0;
-
-	if (cio_api.options & CONIO_OPT_EXTENDED_PALETTE)
-		palette_offset = 16;
-	seq = parse_sequence(cterm->escbuf);
-	if (seq != NULL) {
-		switch(seq->c1_byte) {
-			case '[':
-				/* ANSI stuff */
-				p=cterm->escbuf+strlen(cterm->escbuf)-1;
-				if(seq->param_str[0]>=60 && seq->param_str[0] <= 63) {	/* Private extensions */
-					switch(seq->final_byte) {
-						case 'M':
-							if(seq->param_str[0] == '=' && parse_parameters(seq)) {	/* ANSI Music setup */
-								seq_default(seq, 0, 0);
-								switch(seq->param_int[0]) {
-									case 0:					/* Disable ANSI Music */
-										cterm->music_enable=CTERM_MUSIC_SYNCTERM;
-										break;
-									case 1:					/* BANSI (ESC[N) music only) */
-										cterm->music_enable=CTERM_MUSIC_BANSI;
-										break;
-									case 2:					/* ESC[M ANSI music */
-										cterm->music_enable=CTERM_MUSIC_ENABLED;
-										break;
-								}
-							}
-							break;
-						case 'S':		// XTerm graphics query
-							if (seq->param_str[0] == '?' && parse_parameters(seq)) {
-								if (seq->param_int[0] == 2 && seq->param_int[1] == 1) {
-									struct text_info ti;
-									int vmode;
-
-									tmp[0] = 0;
-									GETTEXTINFO(&ti);
-									vmode = find_vmode(ti.currmode);
-									if (vmode != -1)
-										sprintf(tmp, "\x1b[?2;0;%u;%uS", vparams[vmode].charwidth*cterm->width, vparams[vmode].charheight*cterm->height);
-									if(*tmp && strlen(retbuf) + strlen(tmp) < retsize)
-										strcat(retbuf, tmp);
-								}
-							}
-							break;
-						case 'c':
-							/* SyncTERM Device Attributes */
-							if (seq->param_str[0] == '<' && parse_parameters(seq)) {
-								seq_default(seq, 0, 0);
-								tmp[0] = 0;
-								for (i=0; i<seq->param_count; i++) {
-									switch (seq->param_int[i]) {
-										case 0:		/* Advanced features */
-											strcpy(tmp, "\x1b[<0");
-											if (cio_api.options & CONIO_OPT_LOADABLE_FONTS)
-												strcat(tmp, ";1");
-											if (cio_api.options & CONIO_OPT_BRIGHT_BACKGROUND)
-												strcat(tmp, ";2");
-											if (cio_api.options & CONIO_OPT_PALETTE_SETTING)
-												strcat(tmp, ";3");
-											if (cio_api.options & CONIO_OPT_SET_PIXEL)
-												strcat(tmp, ";4");
-											if (cio_api.options & CONIO_OPT_FONT_SELECT)
-												strcat(tmp, ";5");
-											if (cio_api.options & CONIO_OPT_EXTENDED_PALETTE)
-												strcat(tmp, ";6");
-											if (cio_api.mouse)
-												strcat(tmp, ";7");
-											strcat(tmp, "c");
-									}
-								}
-								if(*tmp && strlen(retbuf) + strlen(tmp) < retsize)
-									strcat(retbuf, tmp);
-							}
-							break;
-						case 'h':
-							if (seq->param_str[0] == '?' && parse_parameters(seq)) {
-								attr2palette(cterm->attr, &oldfg, &oldbg);
-								updfg = (oldfg == cterm->fg_color);
-								updbg = (oldbg == cterm->bg_color);
-								for (i=0; i<seq->param_count; i++) {
-									switch(seq->param_int[i]) {
-										case 6:
-											cterm->extattr |= CTERM_EXTATTR_ORIGINMODE;
-											setwindow(cterm);
-											break;
-										case 7:
-											cterm->extattr |= CTERM_EXTATTR_AUTOWRAP;
-											break;
-										case 25:
-											cterm->cursor=_NORMALCURSOR;
-											SETCURSORTYPE(cterm->cursor);
-											break;
-										case 31:
-											flags = GETVIDEOFLAGS();
-											flags |= CIOLIB_VIDEO_ALTCHARS;
-											SETVIDEOFLAGS(flags);
-											break;
-										case 32:
-											flags = GETVIDEOFLAGS();
-											flags |= CIOLIB_VIDEO_NOBRIGHT;
-											SETVIDEOFLAGS(flags);
-											break;
-										case 33:
-											flags = GETVIDEOFLAGS();
-											flags |= CIOLIB_VIDEO_BGBRIGHT;
-											SETVIDEOFLAGS(flags);
-											break;
-										case 34:
-											flags = GETVIDEOFLAGS();
-											flags |= CIOLIB_VIDEO_BLINKALTCHARS;
-											SETVIDEOFLAGS(flags);
-											break;
-										case 35:
-											flags = GETVIDEOFLAGS();
-											flags |= CIOLIB_VIDEO_NOBLINK;
-											SETVIDEOFLAGS(flags);
-											break;
-										case 69:
-											cterm->extattr |= CTERM_EXTATTR_DECLRMM;
-											break;
-										case 80:
-											cterm->extattr |= CTERM_EXTATTR_SXSCROLL;
-											break;
-										case 9:
-										case 1000:
-										case 1001:
-										case 1002:
-										case 1003:
-										case 1004:
-										case 1005:
-										case 1006:
-										case 1007:
-										case 1015:
-											if (cterm->mouse_state_change)
-												cterm->mouse_state_change(seq->param_int[i], 1, cterm->mouse_state_change_cbdata);
-											break;
-									}
-								}
-								if (updfg || updbg) {
-									attr2palette(cterm->attr, updfg ? &cterm->fg_color : NULL, updbg ? &cterm->bg_color : NULL);
-									if (updfg)
-										FREE_AND_NULL(cterm->fg_tc_str);
-									if (updbg)
-										FREE_AND_NULL(cterm->bg_tc_str);
-								}
-							}
-							else if(!strcmp(seq->param_str,"=255"))
-								cterm->doorway_mode=1;
-							break;
-						case 'l':
-							if (seq->param_str[0] == '?' && parse_parameters(seq)) {
-								attr2palette(cterm->attr, &oldfg, &oldbg);
-								updfg = (oldfg == cterm->fg_color);
-								updbg = (oldbg == cterm->bg_color);
-								for (i=0; i<seq->param_count; i++) {
-									switch(seq->param_int[i]) {
-										case 6:
-											cterm->extattr &= ~CTERM_EXTATTR_ORIGINMODE;
-											setwindow(cterm);
-											break;
-										case 7:
-											cterm->extattr &= ~(CTERM_EXTATTR_AUTOWRAP);
-											break;
-										case 25:
-											cterm->cursor=_NOCURSOR;
-											SETCURSORTYPE(cterm->cursor);
-											break;
-										case 31:
-											flags = GETVIDEOFLAGS();
-											flags &= ~CIOLIB_VIDEO_ALTCHARS;
-											SETVIDEOFLAGS(flags);
-											break;
-										case 32:
-											flags = GETVIDEOFLAGS();
-											flags &= ~CIOLIB_VIDEO_NOBRIGHT;
-											SETVIDEOFLAGS(flags);
-											break;
-										case 33:
-											flags = GETVIDEOFLAGS();
-											flags &= ~CIOLIB_VIDEO_BGBRIGHT;
-											SETVIDEOFLAGS(flags);
-											break;
-										case 34:
-											flags = GETVIDEOFLAGS();
-											flags &= ~CIOLIB_VIDEO_BLINKALTCHARS;
-											SETVIDEOFLAGS(flags);
-											break;
-										case 35:
-											flags = GETVIDEOFLAGS();
-											flags &= ~CIOLIB_VIDEO_NOBLINK;
-											SETVIDEOFLAGS(flags);
-											break;
-										case 69:
-											cterm->extattr &= ~(CTERM_EXTATTR_DECLRMM);
-											break;
-										case 80:
-											cterm->extattr &= ~CTERM_EXTATTR_SXSCROLL;
-											break;
-										case 9:
-										case 1000:
-										case 1001:
-										case 1002:
-										case 1003:
-										case 1004:
-										case 1005:
-										case 1006:
-										case 1007:
-										case 1015:
-											if (cterm->mouse_state_change)
-												cterm->mouse_state_change(seq->param_int[i], 0, cterm->mouse_state_change_cbdata);
-											break;
-									}
-								}
-								if (updfg || updbg) {
-									attr2palette(cterm->attr, updfg ? &cterm->fg_color : NULL, updbg ? &cterm->bg_color : NULL);
-									if (updfg)
-										FREE_AND_NULL(cterm->fg_tc_str);
-									if (updbg)
-										FREE_AND_NULL(cterm->bg_tc_str);
-								}
-							}
-							else if(!strcmp(seq->param_str,"=255"))
-								cterm->doorway_mode=0;
-							break;
-						case 'n':	/* Query (extended) state information */
-							if (seq->param_str[0] == '=' && parse_parameters(seq)) {
-								int vidflags;
-
-								if(retbuf == NULL)
-									break;
-								tmp[0] = 0;
-								if (seq->param_count > 1)
-									break;
-								seq_default(seq, 0, 1);
-								switch(seq->param_int[0]) {
-									case 1:
-										sprintf(tmp, "\x1b[=1;%u;%u;%u;%u;%u;%un"
-											,CONIO_FIRST_FREE_FONT
-											,(uint8_t)cterm->setfont_result
-											,(uint8_t)cterm->altfont[0]
-											,(uint8_t)cterm->altfont[1]
-											,(uint8_t)cterm->altfont[2]
-											,(uint8_t)cterm->altfont[3]
-										);
-										break;
-									case 2:
-										vidflags = GETVIDEOFLAGS();
-										strcpy(tmp, "\x1b[=2");
-										if(cterm->extattr & CTERM_EXTATTR_ORIGINMODE)
-											strcat(tmp, ";6");
-										if (cterm->extattr & CTERM_EXTATTR_AUTOWRAP)
-											strcat(tmp, ";7");
-										if (cterm->mouse_state_query(9, cterm->mouse_state_query_cbdata))
-											strcat(tmp, ";9");
-										if(cterm->cursor == _NORMALCURSOR)
-											strcat(tmp, ";25");
-										if(vidflags & CIOLIB_VIDEO_ALTCHARS)
-											strcat(tmp, ";31");
-										if(vidflags & CIOLIB_VIDEO_NOBRIGHT)
-											strcat(tmp, ";32");
-										if(vidflags & CIOLIB_VIDEO_BGBRIGHT)
-											strcat(tmp, ";33");
-										if(vidflags & CIOLIB_VIDEO_BLINKALTCHARS)
-											strcat(tmp, ";34");
-										if(vidflags & CIOLIB_VIDEO_NOBLINK)
-											strcat(tmp, ";35");
-										if (cterm->extattr & CTERM_EXTATTR_DECLRMM)
-											strcat(tmp, ";69");
-										if (cterm->extattr & CTERM_EXTATTR_SXSCROLL)
-											strcat(tmp, ";80");
-										if (cterm->mouse_state_query(1000, cterm->mouse_state_query_cbdata))
-											strcat(tmp, ";1000");
-										if (cterm->mouse_state_query(1001, cterm->mouse_state_query_cbdata))
-											strcat(tmp, ";1001");
-										if (cterm->mouse_state_query(1002, cterm->mouse_state_query_cbdata))
-											strcat(tmp, ";1002");
-										if (cterm->mouse_state_query(1003, cterm->mouse_state_query_cbdata))
-											strcat(tmp, ";1003");
-										if (cterm->mouse_state_query(1004, cterm->mouse_state_query_cbdata))
-											strcat(tmp, ";1004");
-										if (cterm->mouse_state_query(1005, cterm->mouse_state_query_cbdata))
-											strcat(tmp, ";1005");
-										if (cterm->mouse_state_query(1006, cterm->mouse_state_query_cbdata))
-											strcat(tmp, ";1006");
-										if (cterm->mouse_state_query(1007, cterm->mouse_state_query_cbdata))
-											strcat(tmp, ";1007");
-										if (cterm->mouse_state_query(1015, cterm->mouse_state_query_cbdata))
-											strcat(tmp, ";1015");
-										if (strlen(tmp) == 4) {	// Nothing set
-											strcat(tmp, ";");
-										}
-										strcat(tmp, "n");
-										break;
-									case 3:	/* Query font char dimensions */
-									{
-										struct text_info ti;
-										int vmode;
-
-										GETTEXTINFO(&ti);
-										vmode = find_vmode(ti.currmode);
-										if (vmode != -1)
-											sprintf(tmp, "\x1b[=3;%u;%un", vparams[vmode].charheight, vparams[vmode].charwidth);
-										break;
-									}
-								}
-								if(*tmp && strlen(retbuf) + strlen(tmp) < retsize)
-									strcat(retbuf, tmp);
-							}
-							else if (seq->param_str[0] == '?' && parse_parameters(seq)) {
-								if(retbuf == NULL)
-									break;
-								seq_default(seq, 0, 1);
-								tmp[0] = 0;
-								switch(seq->param_int[0]) {
-									case 62: /* Query macro space available */
-									{
-										if (seq->param_count > 1)
-											break;
-										// Just fake it as int16_max
-										strcpy(tmp, "\x1b[32767*{");
-										break;
-									}
-									case 63: /* Quero macro space "checksum" */
-									{
-										uint16_t crc = 0;
-										if (seq->param_count > 2)
-											break;
-										seq_default(seq, 1, 1);
-										for (k = 0; k < (sizeof(cterm->macros) / sizeof(cterm->macros[0])); k++) {
-											if (cterm->macros[k]) {
-												for (i = 0; i <= cterm->macro_lens[k]; i++)
-													crc = ucrc16(cterm->macros[k][i], crc);
-											}
-											else
-												crc = ucrc16(0, crc);
-										}
-										*tmp = 0;
-										snprintf(tmp, sizeof(tmp), "\x1bP%u!~%04X\x1b\\", (unsigned)seq->param_int[1], crc);
-										break;
-									}
-								}
-								if(*tmp && strlen(retbuf) + strlen(tmp) < retsize)
-									strcat(retbuf, tmp);
-							}
-							break;
-						case 's':
-							if (seq->param_str[0] == '?' && parse_parameters(seq)) {
-								GETTEXTINFO(&ti);
-								flags = GETVIDEOFLAGS();
-								if(seq->param_count == 0) {
-									/* All the save stuff... */
-									cterm->saved_mode_mask |= (CTERM_SAVEMODE_AUTOWRAP|CTERM_SAVEMODE_CURSOR|CTERM_SAVEMODE_ALTCHARS|
-									    CTERM_SAVEMODE_NOBRIGHT|CTERM_SAVEMODE_BGBRIGHT|CTERM_SAVEMODE_ORIGIN|CTERM_SAVEMODE_SIXEL_SCROLL|
-									    CTERM_SAVEMODE_MOUSE_X10|CTERM_SAVEMODE_MOUSE_NORMAL|CTERM_SAVEMODE_MOUSE_HIGHLIGHT|
-									    CTERM_SAVEMODE_MOUSE_BUTTONTRACK|CTERM_SAVEMODE_MOUSE_ANY|CTERM_SAVEMODE_MOUSE_FOCUS|
-									    CTERM_SAVEMODE_MOUSE_UTF8|CTERM_SAVEMODE_MOUSE_SGR|CTERM_SAVEMODE_MOUSE_ALTSCROLL|CTERM_SAVEMODE_MOUSE_URXVT|CTERM_SAVEMODE_DECLRMM);
-									cterm->saved_mode &= ~(cterm->saved_mode_mask);
-									cterm->saved_mode |= (cterm->extattr & CTERM_EXTATTR_AUTOWRAP)?CTERM_SAVEMODE_AUTOWRAP:0;
-									cterm->saved_mode |= (cterm->cursor==_NORMALCURSOR)?CTERM_SAVEMODE_CURSOR:0;
-									cterm->saved_mode |= (flags & CIOLIB_VIDEO_ALTCHARS)?CTERM_SAVEMODE_ALTCHARS:0;
-									cterm->saved_mode |= (flags & CIOLIB_VIDEO_NOBRIGHT)?CTERM_SAVEMODE_NOBRIGHT:0;
-									cterm->saved_mode |= (flags & CIOLIB_VIDEO_BGBRIGHT)?CTERM_SAVEMODE_BGBRIGHT:0;
-									cterm->saved_mode |= (flags & CIOLIB_VIDEO_BLINKALTCHARS)?CTERM_SAVEMODE_BLINKALTCHARS:0;
-									cterm->saved_mode |= (flags & CIOLIB_VIDEO_NOBLINK)?CTERM_SAVEMODE_NOBLINK:0;
-									cterm->saved_mode |= (cterm->extattr & CTERM_EXTATTR_ORIGINMODE)?CTERM_SAVEMODE_ORIGIN:0;
-									cterm->saved_mode |= (cterm->extattr & CTERM_EXTATTR_SXSCROLL)?CTERM_SAVEMODE_SIXEL_SCROLL:0;
-									cterm->saved_mode |= (cterm->mouse_state_query(9, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_X10 : 0);
-									cterm->saved_mode |= (cterm->mouse_state_query(1000, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_NORMAL : 0);
-									cterm->saved_mode |= (cterm->mouse_state_query(1001, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_HIGHLIGHT : 0);
-									cterm->saved_mode |= (cterm->mouse_state_query(1002, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_BUTTONTRACK : 0);
-									cterm->saved_mode |= (cterm->mouse_state_query(1003, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_ANY : 0);
-									cterm->saved_mode |= (cterm->mouse_state_query(1004, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_FOCUS : 0);
-									cterm->saved_mode |= (cterm->mouse_state_query(1005, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_UTF8 : 0);
-									cterm->saved_mode |= (cterm->mouse_state_query(1006, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_SGR : 0);
-									cterm->saved_mode |= (cterm->mouse_state_query(1007, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_ALTSCROLL : 0);
-									cterm->saved_mode |= (cterm->mouse_state_query(1015, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_URXVT : 0);
-									cterm->saved_mode |= (cterm->extattr & CTERM_EXTATTR_DECLRMM) ? CTERM_SAVEMODE_DECLRMM : 0;
-									setwindow(cterm);
-									break;
-								}
-								else {
-									for (i=0; i<seq->param_count; i++) {
-										switch(seq->param_int[i]) {
-											case 6:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_ORIGIN;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_ORIGIN);
-												cterm->saved_mode |= (cterm->extattr & CTERM_EXTATTR_ORIGINMODE)?CTERM_SAVEMODE_ORIGIN:0;
-												setwindow(cterm);
-												break;
-											case 7:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_AUTOWRAP;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_AUTOWRAP);
-												cterm->saved_mode |= (cterm->extattr & CTERM_EXTATTR_AUTOWRAP)?CTERM_SAVEMODE_AUTOWRAP:0;
-												break;
-											case 9:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_MOUSE_X10;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_MOUSE_X10);
-												cterm->saved_mode |= (cterm->mouse_state_query(9, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_X10 : 0);
-												break;
-											case 25:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_CURSOR;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_CURSOR);
-												cterm->saved_mode |= (cterm->cursor==_NORMALCURSOR)?CTERM_SAVEMODE_CURSOR:0;
-												break;
-											case 31:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_ALTCHARS;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_ALTCHARS);
-												cterm->saved_mode |= (flags & CIOLIB_VIDEO_ALTCHARS)?CTERM_SAVEMODE_ALTCHARS:0;
-												break;
-											case 32:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_NOBRIGHT;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_NOBRIGHT);
-												cterm->saved_mode |= (flags & CIOLIB_VIDEO_NOBRIGHT)?CTERM_SAVEMODE_NOBRIGHT:0;
-												break;
-											case 33:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_BGBRIGHT;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_BGBRIGHT);
-												cterm->saved_mode |= (flags & CIOLIB_VIDEO_BGBRIGHT)?CTERM_SAVEMODE_BGBRIGHT:0;
-												break;
-											case 34:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_BLINKALTCHARS;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_BLINKALTCHARS);
-												cterm->saved_mode |= (flags & CIOLIB_VIDEO_BLINKALTCHARS)?CTERM_SAVEMODE_BLINKALTCHARS:0;
-												break;
-											case 35:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_NOBLINK;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_NOBLINK);
-												cterm->saved_mode |= (flags & CIOLIB_VIDEO_NOBLINK)?CTERM_SAVEMODE_NOBLINK:0;
-												break;
-											case 69:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_DECLRMM;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_DECLRMM);
-												cterm->saved_mode |= (cterm->extattr & CTERM_EXTATTR_DECLRMM) ? CTERM_SAVEMODE_DECLRMM : 0;
-												break;
-											case 80:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_SIXEL_SCROLL;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_SIXEL_SCROLL);
-												cterm->saved_mode |= (cterm->extattr & CTERM_EXTATTR_SXSCROLL)?CTERM_SAVEMODE_SIXEL_SCROLL:0;
-												break;
-											case 1000:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_MOUSE_NORMAL;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_MOUSE_NORMAL);
-												cterm->saved_mode |= (cterm->mouse_state_query(1000, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_NORMAL : 0);
-												break;
-											case 1001:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_MOUSE_HIGHLIGHT;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_MOUSE_HIGHLIGHT);
-												cterm->saved_mode |= (cterm->mouse_state_query(1001, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_HIGHLIGHT : 0);
-												break;
-											case 1002:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_MOUSE_BUTTONTRACK;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_MOUSE_BUTTONTRACK);
-												cterm->saved_mode |= (cterm->mouse_state_query(1002, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_BUTTONTRACK : 0);
-												break;
-											case 1003:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_MOUSE_ANY;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_MOUSE_ANY);
-												cterm->saved_mode |= (cterm->mouse_state_query(1003, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_ANY : 0);
-												break;
-											case 1004:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_MOUSE_FOCUS;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_MOUSE_FOCUS);
-												cterm->saved_mode |= (cterm->mouse_state_query(1004, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_FOCUS : 0);
-												break;
-											case 1005:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_MOUSE_UTF8;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_MOUSE_UTF8);
-												cterm->saved_mode |= (cterm->mouse_state_query(1005, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_UTF8 : 0);
-												break;
-											case 1006:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_MOUSE_SGR;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_MOUSE_SGR);
-												cterm->saved_mode |= (cterm->mouse_state_query(1006, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_SGR : 0);
-												break;
-											case 1007:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_MOUSE_ALTSCROLL;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_MOUSE_ALTSCROLL);
-												cterm->saved_mode |= (cterm->mouse_state_query(1007, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_ALTSCROLL : 0);
-												break;
-											case 1015:
-												cterm->saved_mode_mask |= CTERM_SAVEMODE_MOUSE_URXVT;
-												cterm->saved_mode &= ~(CTERM_SAVEMODE_MOUSE_URXVT);
-												cterm->saved_mode |= (cterm->mouse_state_query(1015, cterm->mouse_state_query_cbdata) ? CTERM_SAVEMODE_MOUSE_URXVT : 0);
-												break;
-										}
-									}
-								}
-							}
-							break;
-						case 'u':
-							if (seq->param_str[0] == '?' && parse_parameters(seq)) {
-								GETTEXTINFO(&ti);
-								flags = GETVIDEOFLAGS();
-								attr2palette(cterm->attr, &oldfg, &oldbg);
-								updfg = (oldfg == cterm->fg_color);
-								updbg = (oldbg == cterm->bg_color);
-								if(seq->param_count == 0) {
-									/* All the save stuff... */
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_ORIGIN) {
-										if (cterm->saved_mode & CTERM_SAVEMODE_ORIGIN)
-											cterm->extattr |= CTERM_EXTATTR_ORIGINMODE;
-										else
-											cterm->extattr &= ~CTERM_EXTATTR_ORIGINMODE;
-										setwindow(cterm);
-									}
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_AUTOWRAP) {
-										if (cterm->saved_mode & CTERM_SAVEMODE_AUTOWRAP)
-											cterm->extattr |= CTERM_EXTATTR_AUTOWRAP;
-										else
-											cterm->extattr &= ~CTERM_EXTATTR_AUTOWRAP;
-									}
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_SIXEL_SCROLL) {
-										if (cterm->saved_mode & CTERM_SAVEMODE_SIXEL_SCROLL)
-											cterm->extattr |= CTERM_EXTATTR_SXSCROLL;
-										else
-											cterm->extattr &= ~CTERM_EXTATTR_SXSCROLL;
-									}
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_CURSOR) {
-										cterm->cursor = (cterm->saved_mode & CTERM_SAVEMODE_CURSOR) ? _NORMALCURSOR : _NOCURSOR;
-										SETCURSORTYPE(cterm->cursor);
-									}
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_ALTCHARS) {
-										if(cterm->saved_mode & CTERM_SAVEMODE_ALTCHARS)
-											flags |= CIOLIB_VIDEO_ALTCHARS;
-										else
-											flags &= ~CIOLIB_VIDEO_ALTCHARS;
-									}
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_BLINKALTCHARS) {
-										if(cterm->saved_mode & CTERM_SAVEMODE_BLINKALTCHARS)
-											flags |= CIOLIB_VIDEO_BLINKALTCHARS;
-										else
-											flags &= ~CIOLIB_VIDEO_BLINKALTCHARS;
-									}
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_NOBRIGHT) {
-										if(cterm->saved_mode & CTERM_SAVEMODE_NOBRIGHT)
-											flags |= CIOLIB_VIDEO_NOBRIGHT;
-										else
-											flags &= ~CIOLIB_VIDEO_NOBRIGHT;
-									}
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_NOBLINK) {
-										if(cterm->saved_mode & CTERM_SAVEMODE_NOBLINK)
-											flags |= CIOLIB_VIDEO_NOBLINK;
-										else
-											flags &= ~CIOLIB_VIDEO_NOBLINK;
-									}
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_BGBRIGHT) {
-										if(cterm->saved_mode & CTERM_SAVEMODE_BGBRIGHT)
-											flags |= CIOLIB_VIDEO_BGBRIGHT;
-										else
-											flags &= ~CIOLIB_VIDEO_BGBRIGHT;
-									}
-									SETVIDEOFLAGS(flags);
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_X10)
-										cterm->mouse_state_change(9, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_X10, cterm->mouse_state_change_cbdata);
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_NORMAL)
-										cterm->mouse_state_change(1000, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_NORMAL, cterm->mouse_state_change_cbdata);
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_HIGHLIGHT)
-										cterm->mouse_state_change(1001, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_HIGHLIGHT, cterm->mouse_state_change_cbdata);
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_BUTTONTRACK)
-										cterm->mouse_state_change(1002, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_BUTTONTRACK, cterm->mouse_state_change_cbdata);
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_ANY)
-										cterm->mouse_state_change(1003, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_ANY, cterm->mouse_state_change_cbdata);
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_FOCUS)
-										cterm->mouse_state_change(1004, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_FOCUS, cterm->mouse_state_change_cbdata);
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_UTF8)
-										cterm->mouse_state_change(1005, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_UTF8, cterm->mouse_state_change_cbdata);
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_SGR)
-										cterm->mouse_state_change(1006, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_SGR, cterm->mouse_state_change_cbdata);
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_ALTSCROLL)
-										cterm->mouse_state_change(1007, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_ALTSCROLL, cterm->mouse_state_change_cbdata);
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_URXVT)
-										cterm->mouse_state_change(1015, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_URXVT, cterm->mouse_state_change_cbdata);
-									if(cterm->saved_mode_mask & CTERM_SAVEMODE_DECLRMM) {
-										if (cterm->saved_mode & CTERM_SAVEMODE_DECLRMM)
-											cterm->extattr |= CTERM_EXTATTR_DECLRMM;
-										else
-											cterm->extattr &= ~CTERM_EXTATTR_DECLRMM;
-									}
-									break;
-								}
-								else {
-									for (i=0; i<seq->param_count; i++) {
-										switch(seq->param_int[i]) {
-											case 6:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_ORIGIN) {
-													if (cterm->saved_mode & CTERM_SAVEMODE_ORIGIN)
-														cterm->extattr |= CTERM_EXTATTR_ORIGINMODE;
-													else
-														cterm->extattr &= ~CTERM_EXTATTR_ORIGINMODE;
-												}
-												setwindow(cterm);
-												break;
-											case 7:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_AUTOWRAP) {
-													if (cterm->saved_mode & CTERM_SAVEMODE_AUTOWRAP)
-														cterm->extattr |= CTERM_EXTATTR_AUTOWRAP;
-													else
-														cterm->extattr &= ~CTERM_EXTATTR_AUTOWRAP;
-												}
-												break;
-											case 9:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_X10)
-													cterm->mouse_state_change(9, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_X10, cterm->mouse_state_change_cbdata);
-												break;
-											case 25:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_CURSOR) {
-													cterm->cursor = (cterm->saved_mode & CTERM_SAVEMODE_CURSOR) ? _NORMALCURSOR : _NOCURSOR;
-													SETCURSORTYPE(cterm->cursor);
-												}
-												break;
-											case 31:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_ALTCHARS) {
-													if(cterm->saved_mode & CTERM_SAVEMODE_ALTCHARS)
-														flags |= CIOLIB_VIDEO_ALTCHARS;
-													else
-														flags &= ~CIOLIB_VIDEO_ALTCHARS;
-													SETVIDEOFLAGS(flags);
-												}
-												break;
-											case 32:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_NOBRIGHT) {
-													if(cterm->saved_mode & CTERM_SAVEMODE_NOBRIGHT)
-														flags |= CIOLIB_VIDEO_NOBRIGHT;
-													else
-														flags &= ~CIOLIB_VIDEO_NOBRIGHT;
-													SETVIDEOFLAGS(flags);
-												}
-												break;
-											case 33:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_BGBRIGHT) {
-													if(cterm->saved_mode & CTERM_SAVEMODE_BGBRIGHT)
-														flags |= CIOLIB_VIDEO_BGBRIGHT;
-													else
-														flags &= ~CIOLIB_VIDEO_BGBRIGHT;
-													SETVIDEOFLAGS(flags);
-												}
-												break;
-											case 34:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_BLINKALTCHARS) {
-													if(cterm->saved_mode & CTERM_SAVEMODE_BLINKALTCHARS)
-														flags |= CIOLIB_VIDEO_BLINKALTCHARS;
-													else
-														flags &= ~CIOLIB_VIDEO_BLINKALTCHARS;
-													SETVIDEOFLAGS(flags);
-												}
-												break;
-											case 35:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_NOBLINK) {
-													if(cterm->saved_mode & CTERM_SAVEMODE_NOBLINK)
-														flags |= CIOLIB_VIDEO_NOBLINK;
-													else
-														flags &= ~CIOLIB_VIDEO_NOBLINK;
-													SETVIDEOFLAGS(flags);
-												}
-												break;
-											case 69:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_DECLRMM) {
-													if (cterm->saved_mode & CTERM_SAVEMODE_DECLRMM)
-														cterm->extattr |= CTERM_EXTATTR_DECLRMM;
-													else
-														cterm->extattr &= ~CTERM_EXTATTR_DECLRMM;
-												}
-												break;
-											case 80:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_SIXEL_SCROLL) {
-													if (cterm->saved_mode & CTERM_SAVEMODE_SIXEL_SCROLL)
-														cterm->extattr |= CTERM_EXTATTR_SXSCROLL;
-													else
-														cterm->extattr &= ~CTERM_EXTATTR_SXSCROLL;
-												}
-												break;
-											case 1000:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_NORMAL)
-													cterm->mouse_state_change(1000, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_NORMAL, cterm->mouse_state_change_cbdata);
-												break;
-											case 1001:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_HIGHLIGHT)
-													cterm->mouse_state_change(1001, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_HIGHLIGHT, cterm->mouse_state_change_cbdata);
-												break;
-											case 1002:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_BUTTONTRACK)
-													cterm->mouse_state_change(1002, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_BUTTONTRACK, cterm->mouse_state_change_cbdata);
-												break;
-											case 1003:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_ANY)
-													cterm->mouse_state_change(1003, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_ANY, cterm->mouse_state_change_cbdata);
-												break;
-											case 1004:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_FOCUS)
-													cterm->mouse_state_change(1004, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_FOCUS, cterm->mouse_state_change_cbdata);
-												break;
-											case 1005:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_UTF8)
-													cterm->mouse_state_change(1005, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_UTF8, cterm->mouse_state_change_cbdata);
-												break;
-											case 1006:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_SGR)
-													cterm->mouse_state_change(1006, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_SGR, cterm->mouse_state_change_cbdata);
-												break;
-											case 1007:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_ALTSCROLL)
-													cterm->mouse_state_change(1007, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_ALTSCROLL, cterm->mouse_state_change_cbdata);
-												break;
-											case 1015:
-												if(cterm->saved_mode_mask & CTERM_SAVEMODE_MOUSE_URXVT)
-													cterm->mouse_state_change(1015, cterm->saved_mode & CTERM_SAVEMODE_MOUSE_URXVT, cterm->mouse_state_change_cbdata);
-												break;
-										}
-									}
-								}
-								if (updfg || updbg) {
-									attr2palette(cterm->attr, updfg ? &cterm->fg_color : NULL, updbg ? &cterm->bg_color : NULL);
-									if (updfg)
-										FREE_AND_NULL(cterm->fg_tc_str);
-									if (updbg)
-										FREE_AND_NULL(cterm->bg_tc_str);
-								}
-							}
-							break;
-						case '{':
-							if(seq->param_str[0] == '=' && parse_parameters(seq)) {	/* Font loading */
-								seq_default(seq, 0, 255);
-								seq_default(seq, 1, 0);
-								if(seq->param_int[0]>255)
-									break;
-								cterm->font_read=0;
-								cterm->font_slot=seq->param_int[0];
-								switch(seq->param_int[1]) {
-									case 0:
-										cterm->font_size=4096;
-										break;
-									case 1:
-										cterm->font_size=3584;
-										break;
-									case 2:
-										cterm->font_size=2048;
-										break;
-									default:
-										cterm->font_size=0;
-										break;
-								}
-							}
-							break;
-					}
-					break;
-				}
-				else if (seq->ctrl_func[1]) {	// Control Function with Intermediate Character
-					// Shift left
-					if (strcmp(seq->ctrl_func, " @") == 0) {
-						row = TERM_MINY;
-						col = TERM_MINX;
-						max_row = TERM_MAXY;
-						max_col = TERM_MAXX;
-
-						coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &col, &row);
-						coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &max_col, &max_row);
-						seq_default(seq, 0, 1);
-						i = seq->param_int[0];
-						if(i > TERM_MAXX)
-							i = TERM_MAXX;
-						MOVETEXT(col + i, row, max_col, max_row, col, row);
-						j = i * TERM_MAXY;
-						vc = malloc(j * sizeof(*vc));
-						if (vc != NULL) {
-							for(k=0; k < j; k++) {
-								vc[k].ch=' ';
-								vc[k].legacy_attr=cterm->attr;
-								vc[k].fg=cterm->fg_color;
-								vc[k].bg=cterm->bg_color;
-								vc[k].font = ciolib_attrfont(cterm->attr);
-							}
-							vmem_puttext(max_col - i + 1, row, max_col, max_row, vc);
-							free(vc);
-						}
-					}
-					// Shift right
-					else if (strcmp(seq->ctrl_func, " A") == 0) {
-						row = TERM_MINY;
-						col = TERM_MINX;
-						max_row = TERM_MAXY;
-						max_col = TERM_MAXX;
-
-						coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &col, &row);
-						coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &max_col, &max_row);
-						seq_default(seq, 0, 1);
-						i = seq->param_int[0];
-						if(i > cterm->width)
-							i = cterm->width;
-						MOVETEXT(col, row, max_col - i, max_row, col + i, row);
-						j = i * TERM_MAXY;
-						vc = malloc(j * sizeof(*vc));
-						if (vc != NULL) {
-							for(k=0; k < j; k++) {
-								vc[k].ch=' ';
-								vc[k].legacy_attr=cterm->attr;
-								vc[k].fg=cterm->fg_color;
-								vc[k].bg=cterm->bg_color;
-								vc[k].font = ciolib_attrfont(cterm->attr);
-							}
-							vmem_puttext(col, row, col + i - 1, max_row, vc);
-							free(vc);
-						}
-					}
-					// Font Select
-					else if (strcmp(seq->ctrl_func, " D") == 0) {
-						seq_default(seq, 0, 0);
-						seq_default(seq, 1, 0);
-						switch(seq->param_int[0]) {
-							case 0:	/* Four fonts are currently supported */
-							case 1:
-							case 2:
-							case 3:
-								/* For compatibility with ciolib.c v1.136-v1.164 */
-								/* Feature introduced in CTerm v1.160, return value modified later */
-								if (SETFONT(seq->param_int[1],FALSE,seq->param_int[0]+1) == 0)
-									cterm->setfont_result = 1;
-								else
-									cterm->setfont_result = 0;
-								if(cterm->setfont_result == 0)
-									cterm->altfont[seq->param_int[0]] = seq->param_int[1];
-								break;
-						}
-					}
-					else if (strcmp(seq->ctrl_func, " d") == 0) {
-						if (seq->param_count > 0) {
-							delete_tabstop(cterm, seq->param_int[0]);
-						}
-					}
-					/* 
-					 * END OF STANDARD CONTROL FUNCTIONS
-					 * AFTER THIS IS ALL PRIVATE EXTENSIONS
-					 */
-					// Tab report
-					else if (strcmp(seq->ctrl_func, "$w") == 0) {
-						seq_default(seq, 0, 0);
-						if (seq->param_int[0] == 2) {
-							strcpy(tmp, "\x1bP2$u");
-							p2 = strchr(tmp, 0);
-							for (i = 0; i < cterm->tab_count && cterm->tabs[i] <= cterm->width; i++) {
-								if (i != 0)
-									*(p2++) = '/';
-								p2 += sprintf(p2, "%d", cterm->tabs[i]);
-							}
-							strcat(p2, "\x1b\\");
-							if(*tmp && strlen(retbuf) + strlen(tmp) < retsize)
-								strcat(retbuf, tmp);
-						}
-					}
-					// Communication speed
-					else if (strcmp(seq->ctrl_func, "*r") == 0) {
-						/*
-						 * Ps1 			Comm Line 		Ps2 		Communication Speed
-						 * none, 0, 1 	Host Transmit 	none, 0 	Use default speed.
-						 * 2		 	Host Receive 	1 			300
-						 * 3 			Printer 		2 			600
-						 * 4		 	Modem Hi 		3 			1200
-						 * 5		 	Modem Lo 		4 			2400
-						 * 								5 			4800
-						 * 								6 			9600
-						 * 								7 			19200
-						 * 								8 			38400
-						 * 								9 			57600
-						 * 								10 			76800
-						 * 								11 			115200
-						 */
-						int newspeed=-1;
-
-						seq_default(seq, 0, 0);
-						seq_default(seq, 1, 0);
-
-						if (seq->param_int[0] < 2) {
-							switch(seq->param_int[1]) {
-								case 0:
-									newspeed=0;
-									break;
-								case 1:
-									newspeed=300;
-									break;
-								case 2:
-									newspeed=600;
-									break;
-								case 3:
-									newspeed=1200;
-									break;
-								case 4:
-									newspeed=2400;
-									break;
-								case 5:
-									newspeed=4800;
-									break;
-								case 6:
-									newspeed=9600;
-									break;
-								case 7:
-									newspeed=19200;
-									break;
-								case 8:
-									newspeed=38400;
-									break;
-								case 9:
-									newspeed=57600;
-									break;
-								case 10:
-									newspeed=76800;
-									break;
-								case 11:
-									newspeed=115200;
-									break;
-							}
-						}
-						if(newspeed >= 0)
-							*speed = newspeed;
-					}
-					else if (strcmp(seq->ctrl_func, "*y") == 0) {
-						if (seq->param_count >= 6) {
-							if (seq->param_int[0] != UINT64_MAX &&
-							    seq->param_int[0] <= UINT16_MAX &&
-							    seq->param_int[1] == 1 &&
-							    seq->param_int[2] != UINT64_MAX &&
-							    seq->param_int[3] != UINT64_MAX &&
-							    seq->param_int[4] != UINT64_MAX &&
-							    seq->param_int[5] != UINT64_MAX) {
-								struct ciolib_pixels *pix;
-								uint16_t crc;
-								int good = 0;
-								int vmode;
-								gettextinfo(&ti);
-								vmode = find_vmode(ti.currmode);
-								if (vmode != -1 &&
-								    (seq->param_int[3] > 0 && seq->param_int[3] < vparams[vmode].charwidth*cterm->width) &&
-								    (seq->param_int[2] > 0 && seq->param_int[2] < vparams[vmode].charwidth*cterm->width) &&
-								    (seq->param_int[5] > 0 && seq->param_int[5] < vparams[vmode].charwidth*cterm->width) &&
-								    (seq->param_int[4] > 0 && seq->param_int[4] < vparams[vmode].charwidth*cterm->width) &&
-								    (seq->param_int[2] <= seq->param_int[4]) &&
-								    (seq->param_int[3] <= seq->param_int[5]) &&
-								    (pix = getpixels(
-								      (seq->param_int[3] - 1 + cterm->x - 1)*vparams[vmode].charwidth, 
-								      (seq->param_int[2] - 1 + cterm->y - 1)*vparams[vmode].charheight, 
-								      (seq->param_int[5] + cterm->x - 1)*vparams[vmode].charwidth - 1, 
-								      (seq->param_int[4] + cterm->y - 1)*vparams[vmode].charheight - 1, true)) != NULL) {
-									crc = crc16((void *)pix->pixels, sizeof(pix->pixels[0])*pix->width*pix->height);
-									good = 1;
-									freepixels(pix);
-								}
-								else {
-									size_t sz = sizeof(struct vmem_cell) * (seq->param_int[2] - seq->param_int[4] + 1) * (seq->param_int[3] - seq->param_int[5] + 1);
-									struct vmem_cell *vm = malloc(sz);
-									if (vm != NULL) {
-										vmem_gettext(seq->param_int[3], seq->param_int[2], seq->param_int[5], seq->param_int[4], vm);
-										crc = crc16((void *)vm, sz);
-										good = 1;
-									}
-								}
-								if (good) {
-									*tmp = 0;
-									snprintf(tmp, sizeof(tmp), "\x1bP%u!~%04X\x1b\\", (unsigned)seq->param_int[0], crc);
-									if(*tmp && strlen(retbuf) + strlen(tmp) < retsize)
-										strcat(retbuf, tmp);
-								}
-							}
-						}
-					}
-					else if (strcmp(seq->ctrl_func, "*z") == 0) {
-						if (seq->param_count > 0 && seq->param_int[0] <= 63) {
-							if (cterm->macros[seq->param_int[0]]) {
-								if ((cterm->in_macro & (1<<seq->param_int[0])) == 0) {
-									cterm->escbuf[0]=0;
-									cterm->sequence=0;
-									cterm->in_macro |= (1<<seq->param_int[0]);
-									cterm_write(cterm, cterm->macros[seq->param_int[0]], cterm->macro_lens[seq->param_int[0]], retbuf + strlen(retbuf), retsize - strlen(retbuf), speed);
-									cterm->in_macro &= ~(1<<seq->param_int[0]);
-								}
-							}
-						}
-					}
-				}
-				else {
-					switch(seq->final_byte) {
-						case '@':	/* Insert Char */
-							TERM_XY(&i, &j);
-							if (i < TERM_MINX || i > TERM_MAXX || j < TERM_MINY || j > TERM_MAXY)
-								break;
-							col = i;
-							row = j;
-							coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &col, &row);
-							max_col = TERM_MAXX;
-							coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &max_col, NULL);
-							seq_default(seq, 0, 1);
-							if(seq->param_int[0] < 1)
-								seq->param_int[0] = 1;
-							if(seq->param_int[0] > cterm->width - j)
-								seq->param_int[0] = cterm->width - j;
-							MOVETEXT(col, row, max_col - seq->param_int[0], row, col + seq->param_int[0], row);
-							for(l=0; l < seq->param_int[0]; l++)
-								PUTCH(' ');
-							cterm_gotoxy(cterm, i, j);
-							break;
-						case 'A':	/* Cursor Up */
-						case 'k':	/* Line Position Backward */
-							seq_default(seq, 0, 1);
-							if (seq->param_int[0] < 1)
-								break;
-							adjust_currpos(cterm, 0, 0 - seq->param_int[0], 0);
-							break;
-						case 'B':	/* Cursor Down */
-						case 'e':	/* Line Position Forward */
-							seq_default(seq, 0, 1);
-							if (seq->param_int[0] < 1)
-								break;
-							adjust_currpos(cterm, 0, seq->param_int[0], 0);
-							break;
-						case 'a':	/* Character Position Forward */
-						case 'C':	/* Cursor Right */
-							seq_default(seq, 0, 1);
-							if (seq->param_int[0] < 1)
-								break;
-							adjust_currpos(cterm, seq->param_int[0], 0, 0);
-							break;
-						case 'j':	/* Character Position Backward */
-						case 'D':	/* Cursor Left */
-							seq_default(seq, 0, 1);
-							if (seq->param_int[0] < 1)
-								break;
-							adjust_currpos(cterm, 0 - seq->param_int[0], 0, 0);
-							break;
-						case 'E':	/* Cursor next line */
-							seq_default(seq, 0, 1);
-							if (seq->param_int[0] < 1)
-								break;
-							adjust_currpos(cterm, INT_MIN, seq->param_int[0], 0);
-							break;
-						case 'F':	/* Cursor preceding line */
-							seq_default(seq, 0, 1);
-							if (seq->param_int[0] < 1)
-								break;
-							adjust_currpos(cterm, INT_MIN, 0 - seq->param_int[0], 0);
-							break;
-						case '`':
-						case 'G':	/* Cursor Position Absolute */
-							seq_default(seq, 0, 1);
-							CURR_XY(NULL, &row);
-							col = seq->param_int[0];
-							if(col >= CURR_MINX && col <= CURR_MAXX) {
-								GOTOXY(col, row);
-							}
-							break;
-						case 'f':	/* Character And Line Position */
-						case 'H':	/* Cursor Position */
-							seq_default(seq, 0, 1);
-							seq_default(seq, 1, 1);
-							row=seq->param_int[0];
-							col=seq->param_int[1];
-							if (row < CURR_MINY)
-								row = CURR_MINY;
-							if(col < CURR_MINX)
-								col = CURR_MINX;
-							if(row > CURR_MAXY)
-								row = CURR_MAXY;
-							if(col > CURR_MAXX)
-								col = CURR_MAXX;
-							GOTOXY(col, row);
-							break;
-						case 'I':	/* Cursor Forward Tabulation */
-						case 'Y':	/* Cursor Line Tabulation */
-							seq_default(seq, 0, 1);
-							if (seq->param_int[0] < 1)
-								break;
-							for (i = 0; i < seq->param_int[0]; i++)
-								do_tab(cterm);
-							break;
-						case 'J':	/* Erase In Page */
-							seq_default(seq, 0, 0);
-							switch(seq->param_int[0]) {
-								case 0:
-									CLREOL();
-									CURR_XY(&col, &row);
-									for (i = row + 1; i <= TERM_MAXY; i++) {
-										cterm_gotoxy(cterm, TERM_MINY, i);
-										CLREOL();
-									}
-									GOTOXY(col, row);
-									break;
-								case 1:
-									clear2bol(cterm);
-									CURR_XY(&col, &row);
-									for (i = row - 1; i >= TERM_MINY; i--) {
-										cterm_gotoxy(cterm, TERM_MINX, i);
-										CLREOL();
-									}
-									GOTOXY(col, row);
-									break;
-								case 2:
-									cterm_clearscreen(cterm, (char)cterm->attr);
-									GOTOXY(CURR_MINX, CURR_MINY);
-									break;
-							}
-							break;
-						case 'K':	/* Erase In Line */
-							seq_default(seq, 0, 0);
-							switch(seq->param_int[0]) {
-								case 0:
-									CLREOL();
-									break;
-								case 1:
-									clear2bol(cterm);
-									break;
-								case 2:
-									CURR_XY(&col, &row);
-									cterm_gotoxy(cterm, CURR_MINX, row);
-									CLREOL();
-									GOTOXY(col, row);
-									break;
-							}
-							break;
-						case 'L':		/* Insert line */
-							TERM_XY(&col, &row);
-							if(row < TERM_MINY || row > TERM_MAXY || col < TERM_MINX || col > TERM_MAXX)
-								break;
-							seq_default(seq, 0, 1);
-							i = seq->param_int[0];
-							if(i > TERM_MAXY - row)
-								i = TERM_MAXY - row;
-							col2 = TERM_MINX;
-							row2 = row;
-							coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &col2, &row2);
-							max_col = TERM_MAXX;
-							max_row = TERM_MAXY;
-							coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &max_col, &max_row);
-							if(i)
-								MOVETEXT(col2, row2, max_col, max_row - i, col2, row2 + i);
-							for (j = 0; j < i; j++) {
-								cterm_gotoxy(cterm, TERM_MINX, row+j);
-								cterm_clreol(cterm);
-							}
-							cterm_gotoxy(cterm, col, row);
-							break;
-						case 'M':	/* Delete Line (also ANSI music) */
-							if(cterm->music_enable==CTERM_MUSIC_ENABLED) {
-								cterm->music=1;
-							}
-							else {
-								TERM_XY(&col, &row);
-								if(col >= TERM_MINX && col <= TERM_MAXX && row >= TERM_MINY && row <= TERM_MAXY) {
-									seq_default(seq, 0, 1);
-									i = seq->param_int[0];
-									dellines(cterm, i);
-								}
-							}
-							break;
-						case 'N':	/* Erase In Field (also ANSI Music) */
-							/* BananANSI style... does NOT start with MF or MB */
-							/* This still conflicts (ANSI erase field) */
-							if(cterm->music_enable >= CTERM_MUSIC_BANSI)
-								cterm->music=2;
-							break;
-						case 'O':	/* TODO? Erase In Area */
-							break;
-						case 'P':	/* Delete char */
-							seq_default(seq, 0, 1);
-							TERM_XY(&col, &row);
-							if (col < TERM_MINX || col > TERM_MAXX || row < TERM_MINY || row > TERM_MAXY)
-								break;
-							i = seq->param_int[0];
-							if(i > TERM_MAXX - col + 1)
-								i = TERM_MAXX - col + 1;
-							max_col = TERM_MAXX;
-							coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &max_col, NULL);
-							col2 = col;
-							row2 = row;
-							coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_SCREEN, &col2, &row2);
-							MOVETEXT(col2 + i, row2, max_col, row2, col2, row2);
-							cterm_gotoxy(cterm, TERM_MAXX - i, row);
-							cterm_clreol(cterm);
-							cterm_gotoxy(cterm, col, row);
-							break;
-						case 'Q':	/* TODO? Select Editing Extent */
-							break;
-						case 'R':	/* TODO? Active Position Report */
-							break;
-						case 'S':	/* Scroll Up */
-							seq_default(seq, 0, 1);
-							for(j=0; j<seq->param_int[0]; j++)
-								cterm_scrollup(cterm);
-							break;
-						case 'T':	/* Scroll Down */
-							seq_default(seq, 0, 1);
-							for(j=0; j<seq->param_int[0]; j++)
-								scrolldown(cterm);
-							break;
-						case 'U':	/* TODO? Next Page */
-							break;
-						case 'V':	/* TODO? Preceding Page */
-							break;
-						case 'W':	/* TODO? Cursor Tabulation Control */
-							break;
-						case 'X':	/* Erase Character */
-							seq_default(seq, 0, 1);
-							i=seq->param_int[0];
-							CURR_XY(&col, &row);
-							if(i > CURR_MAXX - col)
-								i=CURR_MAXX - col;
-							vc=malloc(i * sizeof(*vc));
-							for(k=0; k < i; k++) {
-								vc[k].ch=' ';
-								vc[k].legacy_attr=cterm->attr;
-								vc[k].fg=cterm->fg_color;
-								vc[k].bg=cterm->bg_color;
-								vc[k].font = ciolib_attrfont(cterm->attr);
-							}
-							col2 = col;
-							row2 = row;
-							coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &col2, &row2);
-							max_col = CURR_MAXX;
-							coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &max_col, NULL);
-							vmem_puttext(col2, row2, col2 + i - 1, row2, vc);
-							free(vc);
-							break;
-						// for case 'Y': see case 'I':
-						case 'Z':	/* Cursor Backward Tabulation */
-							seq_default(seq, 0, 1);
-							if (seq->param_int[0] < 1)
-								break;
-							for (i = 0; i < seq->param_int[0]; i++)
-								do_backtab(cterm);
-							break;
-						case '[':	/* TODO? Start Reversed String */
-							break;
-						case '\\':	/* TODO? Parallel Texts */
-							break;
-						case ']':	/* TODO? Start Directed String */
-							break;
-						case '^':	/* TODO? Select Implicit Movement Direction */
-							break;
-						case '_':	/* NOT DEFIFINED IN STANDARD */
-							break;
-						// for case '`': see case 'G':
-						// for case 'a': see case 'C':
-						case 'b':	/* Repeat */
-							if (last != 0) {
-								seq_default(seq, 0, 1);
-								i = seq->param_int[0];
-								if (i > 0) {
-									p2 = malloc(i+1);
-									if (p2) {
-										memset(p2, last, i);
-										p2[i] = 0;
-										ctputs(cterm, p2);
-										free(p2);
-									}
-								}
-							}
-							break;
-						case 'c':	/* Device Attributes */
-							seq_default(seq, 0, 0);
-							if(!seq->param_int[0]) {
-								if(retbuf!=NULL) {
-									if(strlen(retbuf) + strlen(cterm->DA)  < retsize)
-										strcat(retbuf,cterm->DA);
-								}
-							}
-							break;
-						case 'd':	/* Line Position Absolute */
-							seq_default(seq, 0, 1);
-							CURR_XY(&col, NULL);
-							row = seq->param_int[0];
-							if (row < CURR_MINY)
-								row = CURR_MINY;
-							if (row > CURR_MAXY)
-								row = CURR_MAXY;
-							GOTOXY(col, row);
-							break;
-						// for case 'e': see case 'B':
-						// for case 'f': see case 'H':
-						case 'g':	/* Tabulation Clear */
-							seq_default(seq, 0, 0);
-							switch(seq->param_int[0]) {
-								case 0:
-									delete_tabstop(cterm, WHEREX());
-									break;
-								case 3:
-									cterm->tab_count = 0;
-									break;
-							}
-							break;
-						case 'h':	/* TODO? Set Mode */
-							break;
-						case 'i':	/* ToDo?  Media Copy (Printing) */
-							break;
-						// for case 'j': see case 'D':
-						// for case 'k': see case 'A':
-						case 'l':	/* TODO? Reset Mode */
-							break;
-						case 'm':	/* Select Graphic Rendition */
-							seq_default(seq, 0, 0);
-							GETTEXTINFO(&ti);
-							flags = GETVIDEOFLAGS();
-							for (i=0; i < seq->param_count; i++) {
-								switch(seq->param_int[i]) {
-									case 0:
-										cterm->attr=ti.normattr;
-										attr2palette(cterm->attr, &cterm->fg_color, &cterm->bg_color);
-										FREE_AND_NULL(cterm->fg_tc_str);
-										FREE_AND_NULL(cterm->bg_tc_str);
-										break;
-									case 1:
-										if (!cterm->skypix)
-											cterm->attr|=8;
-										if (!(flags & CIOLIB_VIDEO_NOBRIGHT)) {
-											attr2palette(cterm->attr, &cterm->fg_color, NULL);
-											FREE_AND_NULL(cterm->fg_tc_str);
-										}
-										break;
-									case 2:
-										if (!cterm->skypix)
-											cterm->attr&=247;
-										if (!(flags & CIOLIB_VIDEO_NOBRIGHT)) {
-											attr2palette(cterm->attr, &cterm->fg_color, NULL);
-											FREE_AND_NULL(cterm->fg_tc_str);
-										}
-										break;
-									case 4:	/* Underscore */
-										break;
-									case 5:
-									case 6:
-										if (!cterm->skypix)
-											cterm->attr|=128;
-										if (flags & CIOLIB_VIDEO_BGBRIGHT) {
-											attr2palette(cterm->attr, NULL, &cterm->bg_color);
-											FREE_AND_NULL(cterm->bg_tc_str);
-										}
-										break;
-									case 7:
-										j=cterm->attr&112;
-										cterm->attr = (cterm->attr << 4) & 0x70;
-										cterm->attr |= j>>4;
-										attr2palette(cterm->attr, &cterm->fg_color, &cterm->bg_color);
-										FREE_AND_NULL(cterm->fg_tc_str);
-										FREE_AND_NULL(cterm->bg_tc_str);
-										break;
-									case 8:
-										j=cterm->attr&112;
-										cterm->attr&=112;
-										cterm->attr |= j>>4;
-										attr2palette(cterm->attr, &cterm->fg_color, &cterm->bg_color);
-										FREE_AND_NULL(cterm->fg_tc_str);
-										FREE_AND_NULL(cterm->bg_tc_str);
-										break;
-									case 22:
-										cterm->attr &= 0xf7;
-										if (!(flags & CIOLIB_VIDEO_NOBRIGHT)) {
-											attr2palette(cterm->attr, &cterm->fg_color, NULL);
-											FREE_AND_NULL(cterm->fg_tc_str);
-										}
-										break;
-									case 25:
-										cterm->attr &= 0x7f;
-										if (flags & CIOLIB_VIDEO_BGBRIGHT) {
-											attr2palette(cterm->attr, NULL, &cterm->bg_color);
-											FREE_AND_NULL(cterm->bg_tc_str);
-										}
-										break;
-									case 27:
-										i=cterm->attr&7;
-										j=cterm->attr&112;
-										cterm->attr &= 136;
-										cterm->attr |= j>>4;
-										cterm->attr |= i<<4;
-										attr2palette(cterm->attr, &cterm->fg_color, &cterm->bg_color);
-										FREE_AND_NULL(cterm->fg_tc_str);
-										FREE_AND_NULL(cterm->bg_tc_str);
-										break;
-									case 30:
-										cterm->attr&=248;
-										cterm->attr |= skypix_color(cterm, 0);
-										attr2palette(cterm->attr, &cterm->fg_color, NULL);
-										FREE_AND_NULL(cterm->fg_tc_str);
-										break;
-									case 31:
-										cterm->attr&=248;
-										cterm->attr |= skypix_color(cterm, 4);
-										attr2palette(cterm->attr, &cterm->fg_color, NULL);
-										FREE_AND_NULL(cterm->fg_tc_str);
-										break;
-									case 32:
-										cterm->attr&=248;
-										cterm->attr |= skypix_color(cterm, 2);
-										attr2palette(cterm->attr, &cterm->fg_color, NULL);
-										FREE_AND_NULL(cterm->fg_tc_str);
-										break;
-									case 33:
-										cterm->attr&=248;
-										cterm->attr |= skypix_color(cterm, 6);
-										attr2palette(cterm->attr, &cterm->fg_color, NULL);
-										FREE_AND_NULL(cterm->fg_tc_str);
-										break;
-									case 34:
-										cterm->attr&=248;
-										cterm->attr |= skypix_color(cterm, 1);
-										attr2palette(cterm->attr, &cterm->fg_color, NULL);
-										FREE_AND_NULL(cterm->fg_tc_str);
-										break;
-									case 35:
-										cterm->attr&=248;
-										cterm->attr |= skypix_color(cterm, 5);
-										attr2palette(cterm->attr, &cterm->fg_color, NULL);
-										FREE_AND_NULL(cterm->fg_tc_str);
-										break;
-									case 36:
-										cterm->attr&=248;
-										cterm->attr |= skypix_color(cterm, 3);
-										attr2palette(cterm->attr, &cterm->fg_color, NULL);
-										FREE_AND_NULL(cterm->fg_tc_str);
-										break;
-									case 38:
-										parse_extended_colour(seq, &i, cterm, 1);
-										break;
-									case 37:
-									case 39:
-										cterm->attr&=248;
-										cterm->attr |= skypix_color(cterm, 7);
-										attr2palette(cterm->attr, &cterm->fg_color, NULL);
-										FREE_AND_NULL(cterm->fg_tc_str);
-										break;
-									case 49:
-									case 40:
-										cterm->attr&=143;
-										cterm->attr |= skypix_color(cterm, 0) << 4;
-										attr2palette(cterm->attr, NULL, &cterm->bg_color);
-										FREE_AND_NULL(cterm->bg_tc_str);
-										break;
-									case 41:
-										cterm->attr&=143;
-										cterm->attr |= skypix_color(cterm, 4) << 4;
-										attr2palette(cterm->attr, NULL, &cterm->bg_color);
-										FREE_AND_NULL(cterm->bg_tc_str);
-										break;
-									case 42:
-										cterm->attr&=143;
-										cterm->attr |= skypix_color(cterm, 2) << 4;
-										attr2palette(cterm->attr, NULL, &cterm->bg_color);
-										FREE_AND_NULL(cterm->bg_tc_str);
-										break;
-									case 43:
-										cterm->attr&=143;
-										cterm->attr |= skypix_color(cterm, 6) << 4;
-										attr2palette(cterm->attr, NULL, &cterm->bg_color);
-										FREE_AND_NULL(cterm->bg_tc_str);
-										break;
-									case 44:
-										cterm->attr&=143;
-										cterm->attr |= skypix_color(cterm, 1) << 4;
-										attr2palette(cterm->attr, NULL, &cterm->bg_color);
-										FREE_AND_NULL(cterm->bg_tc_str);
-										break;
-									case 45:
-										cterm->attr&=143;
-										cterm->attr |= skypix_color(cterm, 5) << 4;
-										attr2palette(cterm->attr, NULL, &cterm->bg_color);
-										FREE_AND_NULL(cterm->bg_tc_str);
-										break;
-									case 46:
-										cterm->attr&=143;
-										cterm->attr |= skypix_color(cterm, 3) << 4;
-										attr2palette(cterm->attr, NULL, &cterm->bg_color);
-										FREE_AND_NULL(cterm->bg_tc_str);
-										break;
-									case 47:
-										cterm->attr&=143;
-										cterm->attr |= skypix_color(cterm, 7) << 4;
-										attr2palette(cterm->attr, NULL, &cterm->bg_color);
-										FREE_AND_NULL(cterm->bg_tc_str);
-										break;
-									case 48:
-										parse_extended_colour(seq, &i, cterm, 0);
-										break;
-								}
-							}
-							TEXTATTR(cterm->attr);
-							setcolour(cterm->fg_color, cterm->bg_color);
-							break;
-						case 'n':	/* Device Status Report */
-							seq_default(seq, 0, 0);
-							switch(seq->param_int[0]) {
-								case 5:
-									if(retbuf!=NULL) {
-										strcpy(tmp,"\x1b[0n");
-										if(strlen(retbuf)+strlen(tmp) < retsize)
-											strcat(retbuf,tmp);
-									}
-									break;
-								case 6:
-									if(retbuf!=NULL) {
-										CURR_XY(&col, &row);
-										sprintf(tmp,"\x1b[%d;%dR",row,col);
-										if(strlen(retbuf)+strlen(tmp) < retsize)
-											strcat(retbuf,tmp);
-									}
-									break;
-								case 255:
-									if (retbuf != NULL) {
-										sprintf(tmp, "\x1b[%d;%dR", CURR_MAXY, CURR_MAXX);
-										if (strlen(retbuf) + strlen(tmp) < retsize) {
-											strcat(retbuf, tmp);
-										}
-									}
-									break;
-							}
-							break;
-						case 'o': /* ToDo?  Define Area Qualification */
-							break;
-						/* 
-						 * END OF STANDARD CONTROL FUNCTIONS
-						 * AFTER THIS IS ALL PRIVATE EXTENSIONS
-						 */
-						case 'p': /* ToDo?  ANSI keyboard reassignment, pointer mode */
-							break;
-						case 'q': /* ToDo?  VT100 keyboard lights, cursor style, protection */
-							break;
-						case 'r': /* Scrolling reigon */
-							seq_default(seq, 0, 1);
-							seq_default(seq, 1, cterm->height);
-							row = seq->param_int[0];
-							max_row = seq->param_int[1];
-							if(row >= ABS_MINY && max_row > row && max_row <= ABS_MAXY) {
-								cterm->top_margin = row;
-								cterm->bottom_margin = max_row;
-								setwindow(cterm);
-								GOTOXY(CURR_MINX, CURR_MINY);
-							}
-							break;
-						case 's':
-							if (cterm->extattr & CTERM_EXTATTR_DECLRMM) {
-								seq_default(seq, 0, ABS_MINX);
-								seq_default(seq, 1, ABS_MAXX);
-								col = seq->param_int[0];
-								if (col == 0)
-									col = cterm->left_margin;
-								max_col = seq->param_int[1];
-								if (max_col == 0)
-									max_col = cterm->right_margin;
-								if(col >= ABS_MINX && max_col > col && max_col <= ABS_MAXX) {
-									cterm->left_margin = col;
-									cterm->right_margin = max_col;
-									setwindow(cterm);
-									GOTOXY(CURR_MINX, CURR_MINY);
-								}
-							}
-							else {
-								CURR_XY(&cterm->save_xpos, &cterm->save_ypos);
-							}
-							break;
-						case 't':
-							if (seq->param_count >= 4) {
-								uint32_t *c = NULL;
-								uint32_t nc;
-
-								if (seq->param_int[0] == 0)
-									c = &cterm->bg_color;
-								else if (seq->param_int[0] == 1)
-									c = &cterm->fg_color;
-								if (c == NULL)
-									break;
-								nc = map_rgb(seq->param_int[1]<<8, seq->param_int[2]<<8, seq->param_int[3]<<8);
-								if (nc != UINT32_MAX)
-									*c = nc;
-								setcolour(cterm->fg_color, cterm->bg_color);
-							}
-							break;
-						case 'u':
-							if(cterm->save_ypos>0 && cterm->save_ypos<=cterm->height
-									&& cterm->save_xpos>0 && cterm->save_xpos<=cterm->width) {
-								// TODO: What to do about the window when position is restored...
-								//       Absolute position stored?  Relative?
-								if(cterm->save_ypos < CURR_MINY || cterm->save_ypos > CURR_MAXY || cterm->save_xpos < CURR_MINX || cterm->save_xpos > CURR_MAXX)
-									break;
-								GOTOXY(cterm->save_xpos, cterm->save_ypos);
-							}
-							break;
-						case 'y':	/* ToDo?  VT100 Tests */
-							break;
-						case 'z':	/* ToDo?  Reset */
-							break;
-						case '|':	/* SyncTERM ANSI Music */
-							cterm->music=1;
-							break;
-					}
-				}
-				break;
-			case 'E':	// Next Line
-				adjust_currpos(cterm, INT_MIN, 1, 1);
-				break;
-			case 'H':
-				insert_tabstop(cterm, WHEREX());
-				break;
-			case 'M':	// Previous line
-				adjust_currpos(cterm, 0, -1, 1);
-				break;
-			case 'P':	// Device Control String - DCS
-				cterm->string = CTERM_STRING_DCS;
-				cterm->sixel = SIXEL_POSSIBLE;
-				cterm->macro = MACRO_POSSIBLE;
-				FREE_AND_NULL(cterm->strbuf);
-				cterm->strbuf = malloc(1024);
-				cterm->strbufsize = 1024;
-				cterm->strbuflen = 0;
-				break;
-			case 'X':	// Start Of String - SOS
-				cterm->string = CTERM_STRING_SOS;
-				FREE_AND_NULL(cterm->strbuf);
-				cterm->strbuf = malloc(1024);
-				cterm->strbufsize = 1024;
-				cterm->strbuflen = 0;
-				break;
-			case 'c':
-				CLRSCR();
-				cterm_reset(cterm);
-				cterm_gotoxy(cterm, CURR_MINX, CURR_MINY);
-				break;
-			case '\\':
-				if (cterm->strbuf) {
-					if (cterm->strbufsize == cterm->strbuflen-1) {
-						p = realloc(cterm->strbuf, cterm->strbufsize+1);
-						if (p == NULL) {
-							// SO CLOSE!
-							cterm->string = 0;
-						}
-						else {
-							cterm->strbuf = p;
-							cterm->strbufsize++;
-						}
-					}
-					cterm->strbuf[cterm->strbuflen] = 0;
-					switch (cterm->string) {
-						case CTERM_STRING_APC:
-							if (cterm->apc_handler)
-								cterm->apc_handler(cterm->strbuf, cterm->strbuflen, cterm->apc_handler_data);
-							break;
-						case CTERM_STRING_DCS:
-							if (cterm->sixel == SIXEL_STARTED)
-								parse_sixel_string(cterm, true);
-							else if (cterm->macro == MACRO_STARTED)
-								parse_macro_string(cterm, true);
-							else {
-								if (strncmp(cterm->strbuf, "CTerm:Font:", 11) == 0) {
-									cterm->font_slot = strtoul(cterm->strbuf+11, &p, 10);
-									if(cterm->font_slot < CONIO_FIRST_FREE_FONT)
-										break;
-									if (cterm->font_slot > 255)
-										break;
-									if (p && *p == ':') {
-										p++;
-										i = b64_decode(cterm->fontbuf, sizeof(cterm->fontbuf), p, 0);
-										p2 = malloc(i);
-										if (p2) {
-											memcpy(p2, cterm->fontbuf, i);
-											replace_font(cterm->font_slot, strdup("Remote Defined Font"), p2, i);
-										}
-									}
-								}
-								else if (strncmp(cterm->strbuf, "$q", 2) == 0) {
-									// DECRQSS - VT-420
-									switch (cterm->strbuf[2]) {
-										case 'm':
-											if (cterm->strbuf[3] == 0) {
-												strcpy(tmp, "\x1bP1$r0");
-												if (cterm->attr & 8)
-													strcat(tmp, ";1");
-												if (cterm->attr & 128)
-													strcat(tmp, ";5");
-												if (cterm->fg_tc_str == NULL) {
-													switch (cterm->attr & 7) {
-														case 0:
-															strcat(tmp, ";30");
-															break;
-														case 1:
-															strcat(tmp, ";34");
-															break;
-														case 2:
-															strcat(tmp, ";32");
-															break;
-														case 3:
-															strcat(tmp, ";36");
-															break;
-														case 4:
-															strcat(tmp, ";31");
-															break;
-														case 5:
-															strcat(tmp, ";35");
-															break;
-														case 6:
-															strcat(tmp, ";33");
-															break;
-													}
-												}
-												if (cterm->bg_tc_str == NULL) {
-													switch ((cterm->attr >> 4) & 7) {
-														case 1:
-															strcat(tmp, ";44");
-															break;
-														case 2:
-															strcat(tmp, ";42");
-															break;
-														case 3:
-															strcat(tmp, ";46");
-															break;
-														case 4:
-															strcat(tmp, ";41");
-															break;
-														case 5:
-															strcat(tmp, ";45");
-															break;
-														case 6:
-															strcat(tmp, ";43");
-															break;
-														case 7:
-															strcat(tmp, ";47");
-															break;
-													}
-												}
-												if (cterm->fg_tc_str) {
-													strcat(tmp, ";");
-													strcat(tmp, cterm->fg_tc_str);
-												}
-												if (cterm->bg_tc_str) {
-													strcat(tmp, ";");
-													strcat(tmp, cterm->bg_tc_str);
-												}
-												strcat(tmp, "m\x1b\\");
-												if(strlen(retbuf)+strlen(tmp) < retsize)
-													strcat(retbuf, tmp);
-											}
-											break;
-										case 'r':
-											if (cterm->strbuf[3] == 0) {
-												sprintf(tmp, "\x1bP1$r%d;%dr\x1b\\", cterm->top_margin, cterm->bottom_margin);
-												if(strlen(retbuf)+strlen(tmp) < retsize)
-													strcat(retbuf, tmp);
-											}
-											break;
-										case 's':
-											if (cterm->strbuf[3] == 0) {
-												sprintf(tmp, "\x1bP1$r%d;%dr\x1b\\", cterm->left_margin, cterm->right_margin);
-												if(strlen(retbuf)+strlen(tmp) < retsize)
-													strcat(retbuf, tmp);
-											}
-											break;
-										case 't':
-											if (cterm->strbuf[3] == 0) {
-												sprintf(tmp, "\x1bP1$r%dt\x1b\\", cterm->height);
-												if(strlen(retbuf)+strlen(tmp) < retsize)
-													strcat(retbuf, tmp);
-											}
-											break;
-										case '$':
-											if (cterm->strbuf[3] == '|' && cterm->strbuf[4] == 0) {
-												sprintf(tmp, "\x1bP1$r%d$|\x1b\\", cterm->width);
-												if(strlen(retbuf)+strlen(tmp) < retsize)
-													strcat(retbuf, tmp);
-											}
-											break;
-										case '*':
-											if (cterm->strbuf[3] == '|' && cterm->strbuf[4] == 0) {
-												sprintf(tmp, "\x1bP1$r%d$|\x1b\\", cterm->height);
-												if(strlen(retbuf)+strlen(tmp) < retsize)
-													strcat(retbuf, tmp);
-											}
-											break;
-										default:
-											if(retbuf!=NULL) {
-												strcpy(tmp,"\x1b[0n");
-												// TODO: If the string is too long, this is likely terrible.
-												if (strlen(retbuf)+5 < retsize)
-													strcat(retbuf, "\x1bP0$r");
-												if (strlen(retbuf)+strlen(&cterm->strbuf[2]) < retsize)
-													strcat(retbuf, &cterm->strbuf[2]);
-												if (strlen(retbuf)+2 < retsize)
-													strcat(retbuf, "\x1b_");
-											}
-									}
-								}
-							}
-							cterm->sixel = SIXEL_INACTIVE;
-							break;
-						case CTERM_STRING_OSC:
-							/* Is this an xterm Change Color(s)? */
-							if (cterm->strbuf[0] == '4' && cterm->strbuf[1] == ';') {
-								unsigned long index = ULONG_MAX;
-								char *seqlast;
-
-								p2 = &cterm->strbuf[2];
-								while ((p = strtok_r(p2, ";", &seqlast)) != NULL) {
-									p2=NULL;
-									if (index == ULONG_MAX) {
-										index = strtoull(p, NULL, 10);
-										if (index == ULONG_MAX || index > 13200)
-											break;
-									}
-									else {
-
-										if (strncmp(p, "rgb:", 4))
-											break;
-										char *p3;
-										char *p4;
-										char *collast;
-										uint16_t rgb[3];
-										int ccount = 0;
-										bool broken=false;
-
-										p4 = &p[4];
-										while (ccount < 3 && (p3 = strtok_r(p4, "/", &collast))!=NULL) {
-											p4 = NULL;
-											unsigned long v;
-											v = strtoul(p3, NULL, 16);
-											if (v > UINT16_MAX)
-												break;
-											switch(strlen(p3)) {
-												case 1:	// 4-bit colour
-													rgb[ccount] = v | (v<<4) | (v<<8) | (v<<12);
-													break;
-												case 2:	// 8-bit colour
-													rgb[ccount] = v | (v<<8);
-													break;
-												case 3:	// 12-bit colour
-													rgb[ccount] = (v & 0x0f) | (v<<4);
-													break;
-												case 4:
-													rgb[ccount] = v;
-													break;
-												default:
-													broken = true;
-													break;
-											}
-											ccount++;
-										}
-										if (ccount == 3 && !broken)
-											setpalette(index + palette_offset, rgb[0], rgb[1], rgb[2]);
-										index = ULONG_MAX;
-									}
-								}
-							}
-							else if (strncmp("104", cterm->strbuf, 3)==0) {
-								if (strlen(cterm->strbuf) == 3) {
-									// Reset all colours
-									for (i=0; i < sizeof(dac_default)/sizeof(struct dac_colors); i++)
-										setpalette(i + palette_offset, dac_default[i].red << 8 | dac_default[i].red, dac_default[i].green << 8 | dac_default[i].green, dac_default[i].blue << 8 | dac_default[i].blue);
-								}
-								else if(cterm->strbuf[3] == ';') {
-									char *seqlast;
-									unsigned long pi;
-
-									p2 = &cterm->strbuf[4];
-									while ((p = strtok_r(p2, ";", &seqlast)) != NULL) {
-										p2=NULL;
-										pi = strtoull(p, NULL, 10);
-										if (pi < sizeof(dac_default)/sizeof(struct dac_colors))
-											setpalette(pi + palette_offset, dac_default[pi].red << 8 | dac_default[pi].red, dac_default[pi].green << 8 | dac_default[pi].green, dac_default[pi].blue << 8 | dac_default[pi].blue);
-									}
-								}
-							}
-							break;
-					}
-				}
-				FREE_AND_NULL(cterm->strbuf);
-				cterm->strbufsize = cterm->strbuflen = 0;
-				cterm->string = 0;
-				break;
-			case ']':	// Operating System Command - OSC
-				cterm->string = CTERM_STRING_OSC;
-				FREE_AND_NULL(cterm->strbuf);
-				cterm->strbuf = malloc(1024);
-				cterm->strbufsize = 1024;
-				cterm->strbuflen = 0;
-				break;
-			case '^':	// Privacy Message - PM
-				cterm->string = CTERM_STRING_PM;
-				FREE_AND_NULL(cterm->strbuf);
-				cterm->strbuf = malloc(1024);
-				cterm->strbufsize = 1024;
-				cterm->strbuflen = 0;
-				break;
-			case '_':	// Application Program Command - APC
-				cterm->string = CTERM_STRING_APC;
-				FREE_AND_NULL(cterm->strbuf);
-				cterm->strbuf = malloc(1024);
-				cterm->strbufsize = 1024;
-				cterm->strbuflen = 0;
-				break;
-		}
-	}
-	free_sequence(seq);
-	cterm->escbuf[0]=0;
-	cterm->sequence=0;
-}
-
-static void
-c64_set_reverse(struct cterminal *cterm, int on)
-{
-	if (on != cterm->c64reversemode)
-		cterm->c64reversemode = on;
-}
-
-static uint8_t
-c64_get_attr(struct cterminal *cterm)
-{
-	if (cterm->c64reversemode)
-		return (cterm->attr >> 4 | cterm->attr << 4);
-	return cterm->attr;
-}
-
-static void
-cterm_reset(struct cterminal *cterm)
-{
-	int  i;
-	struct text_info ti;
-
-	cterm->altfont[0] = cterm->altfont[1] = cterm->altfont[2] = cterm->altfont[3] = getfont(1);
-	cterm->top_margin=1;
-	cterm->bottom_margin=cterm->height;
-	cterm->left_margin=1;
-	cterm->right_margin=cterm->width;
-	cterm->save_xpos=0;
-	cterm->save_ypos=0;
-	cterm->escbuf[0]=0;
-	cterm->sequence=0;
-	cterm->string = 0;
-	FREE_AND_NULL(cterm->strbuf);
-	cterm->strbuflen = 0;
-	cterm->strbufsize = 0;
-	cterm->musicbuf[0] = 0;
-	cterm->music_enable=CTERM_MUSIC_BANSI;
-	cterm->music=0;
-	cterm->tempo=120;
-	cterm->octave=4;
-	cterm->notelen=4;
-	cterm->noteshape=CTERM_MUSIC_NORMAL;
-	cterm->musicfore=TRUE;
-	cterm->backpos=0;
-	cterm->xpos = TERM_MINX;
-	cterm->ypos = TERM_MINY;
-	cterm->cursor=_NORMALCURSOR;
-	cterm->extattr = CTERM_EXTATTR_AUTOWRAP | CTERM_EXTATTR_SXSCROLL;
-	FREE_AND_NULL(cterm->tabs);
-	cterm->tabs = malloc(sizeof(cterm_tabs));
-	if (cterm->tabs) {
-		memcpy(cterm->tabs, cterm_tabs, sizeof(cterm_tabs));
-		cterm->tab_count = sizeof(cterm_tabs) / sizeof(cterm_tabs[0]);
-	}
-	else
-		cterm->tab_count = 0;
-	cterm->setfont_result = CTERM_NO_SETFONT_REQUESTED;
-	cterm->saved_mode = 0;
-	cterm->saved_mode_mask = 0;
-	cterm->c64reversemode = 0;
-	gettextinfo(&ti);
-	switch (ti.currmode) {
-		case C64_40X25:
-		case C128_40X25:
-		case C128_80X25:
-			cterm->attr = 15;
-			break;
-		default:
-			cterm->attr = ti.normattr;
-			break;
-	}
-	attr2palette(cterm->attr, &cterm->fg_color, &cterm->bg_color);
-	cterm->doorway_mode = 0;
-	cterm->doorway_char = 0;
-	FREE_AND_NULL(cterm->fg_tc_str);
-	FREE_AND_NULL(cterm->bg_tc_str);
-	cterm->sixel = SIXEL_INACTIVE;
-	cterm->sx_iv = 0;
-	cterm->sx_ih = 0;
-	cterm->sx_trans = 0;
-	cterm->sx_repeat = 0;
-	cterm->sx_left = 0;
-	cterm->sx_x = 0;
-	cterm->sx_y = 0;
-	cterm->sx_bg = 0;
-	cterm->sx_fg = 0;
-	cterm->sx_pixels_sent = 0;
-	cterm->sx_first_pass = 0;
-	cterm->sx_hold_update = 0;
-	cterm->sx_start_x = 0;
-	cterm->sx_start_y = 0;
-	cterm->sx_row_max_x = 0;
-	FREE_AND_NULL(cterm->sx_pixels);
-	cterm->sx_width = 0;
-	cterm->sx_height = 0;
-	FREE_AND_NULL(cterm->sx_mask);
-	for (i = 0; i < (sizeof(cterm->macros) / sizeof(cterm->macros[0])); i++) {
-		FREE_AND_NULL(cterm->macros[i]);
-		cterm->macro_lens[i] = 0;
-	}
-	setwindow(cterm);
-
-	/* Set up tabs for ATASCII */
-	if(cterm->emulation == CTERM_EMULATION_ATASCII) {
-		for(i=0; i<cterm->tab_count; i++)
-			cterm->escbuf[cterm->tabs[i]]=1;
-	}
-
-	/* Set up a shadow palette */
-	if (cio_api.options & CONIO_OPT_EXTENDED_PALETTE) {
-		for (i=0; i < sizeof(dac_default)/sizeof(struct dac_colors); i++)
-			setpalette(i + 16, dac_default[i].red << 8 | dac_default[i].red, dac_default[i].green << 8 | dac_default[i].green, dac_default[i].blue << 8 | dac_default[i].blue);
-	}
-
-	/* Reset mouse state */
-	if (cterm->mouse_state_change) {
-		cterm->mouse_state_change(9, 0, cterm->mouse_state_change_cbdata);
-		cterm->mouse_state_change(1000, 0, cterm->mouse_state_change_cbdata);
-		cterm->mouse_state_change(1001, 0, cterm->mouse_state_change_cbdata);
-		cterm->mouse_state_change(1002, 0, cterm->mouse_state_change_cbdata);
-		cterm->mouse_state_change(1003, 0, cterm->mouse_state_change_cbdata);
-		cterm->mouse_state_change(1004, 0, cterm->mouse_state_change_cbdata);
-		cterm->mouse_state_change(1005, 0, cterm->mouse_state_change_cbdata);
-		cterm->mouse_state_change(1006, 0, cterm->mouse_state_change_cbdata);
-		cterm->mouse_state_change(1007, 0, cterm->mouse_state_change_cbdata);
-		cterm->mouse_state_change(1015, 0, cterm->mouse_state_change_cbdata);
-	}
-}
-
-struct cterminal* cterm_init(int height, int width, int xpos, int ypos, int backlines, int backcols, struct vmem_cell *scrollback, int emulation)
-{
-	char	*revision="$Revision: 1.314 $";
-	char *in;
-	char	*out;
-	struct cterminal *cterm;
-
-	if((cterm=calloc(1, sizeof(struct cterminal)))==NULL)
-		return cterm;
-
-#ifndef CTERM_WITHOUT_CONIO
-	cterm->ciolib_gotoxy=ciolib_gotoxy;
-	cterm->ciolib_wherex=ciolib_wherex;
-	cterm->ciolib_wherey=ciolib_wherey;
-	cterm->ciolib_vmem_gettext=ciolib_vmem_gettext;
-	cterm->ciolib_gettext=ciolib_gettext;
-	cterm->ciolib_gettextinfo=ciolib_gettextinfo;
-	cterm->ciolib_textattr=ciolib_textattr;
-	cterm->ciolib_setcursortype=ciolib_setcursortype;
-	cterm->ciolib_movetext=ciolib_movetext;
-	cterm->ciolib_clreol=ciolib_clreol;
-	cterm->ciolib_clrscr=ciolib_clrscr;
-	cterm->ciolib_setvideoflags=ciolib_setvideoflags;
-	cterm->ciolib_getvideoflags=ciolib_getvideoflags;
-	cterm->ciolib_setscaling=ciolib_setscaling;
-	cterm->ciolib_getscaling=ciolib_getscaling;
-	cterm->ciolib_putch=ciolib_putch;
-	cterm->ciolib_puttext=ciolib_puttext;
-	cterm->ciolib_window=ciolib_window;
-	cterm->ciolib_cputs=ciolib_cputs;
-	cterm->ciolib_setfont=ciolib_setfont;
-	cterm->_wscroll=&_wscroll;
-	cterm->puttext_can_move=&puttext_can_move;
-	cterm->hold_update=&hold_update;
-#endif
-
-	cterm->x=xpos;
-	cterm->y=ypos;
-	cterm->height=height;
-	cterm->width=width;
-	cterm->backlines=backlines;
-	cterm->backwidth = backcols;
-	cterm->scrollback=scrollback;
-	cterm->log=CTERM_LOG_NONE;
-	cterm->logfile=NULL;
-	cterm->emulation=emulation;
-	cterm_reset(cterm);
-	if(cterm->scrollback!=NULL)
-		memset(cterm->scrollback, 0, cterm->backwidth * cterm->backlines * sizeof(*cterm->scrollback));
-	strcpy(cterm->DA,"\x1b[=67;84;101;114;109;");
-	out=strchr(cterm->DA, 0);
-	if(out != NULL) {
-		for(in=revision; *in; in++) {
-			if(isdigit(*in))
-				*(out++)=*in;
-			if(*in=='.')
-				*(out++)=';';
-		}
-		*out=0;
-	}
-	strcat(cterm->DA,"c");
-	/* Fire up note playing thread */
-	if(!cterm->playnote_thread_running) {
-		listInit(&cterm->notes, LINK_LIST_SEMAPHORE|LINK_LIST_MUTEX);
-		sem_init(&cterm->note_completed_sem,0,0);
-		sem_init(&cterm->playnote_thread_terminated,0,0);
-		_beginthread(playnote_thread, 0, cterm);
-	}
-
-	return cterm;
-}
-
-void cterm_start(struct cterminal *cterm)
-{
-	struct text_info ti;
-
-	if (!cterm->started) {
-		GETTEXTINFO(&ti);
-		switch (ti.currmode) {
-			case C64_40X25:
-			case C128_40X25:
-			case C128_80X25:
-				cterm->attr = 15;
-				break;
-			default:
-				cterm->attr = ti.normattr;
-				break;
-		}
-		attr2palette(cterm->attr, &cterm->fg_color, &cterm->bg_color);
-		FREE_AND_NULL(cterm->fg_tc_str);
-		FREE_AND_NULL(cterm->bg_tc_str);
-		cterm->fg_color += 16;
-		cterm->bg_color += 16;
-		TEXTATTR(cterm->attr);
-		ciolib_setcolour(cterm->fg_color, cterm->bg_color);
-		SETCURSORTYPE(cterm->cursor);
-		cterm->started=1;
-		setwindow(cterm);
-		cterm_clearscreen(cterm, cterm->attr);
-		cterm_gotoxy(cterm, 1, 1);
-	}
-}
-
-static void
-advance_char(struct cterminal *cterm, int *x, int *y, int move)
-{
-	int lm = cterm->left_margin;
-	int rm = cterm->right_margin;
-	int bm = cterm->bottom_margin;
-
-	if((*x == rm || *x == CURR_MAXX) && (!(cterm->extattr & CTERM_EXTATTR_AUTOWRAP))) {
-		GOTOXY(*x, *y);
-		return;
-	}
-	else {
-		if(*y == bm && (*x == rm || *x == CURR_MAXX)) {
-			cond_scrollup(cterm);
-			move = 1;
-			*x = lm;
-		}
-		else {
-			if(*x == rm || *x == CURR_MAXX) {
-				*x=lm;
-				if (*y < CURR_MAXY)
-					(*y)++;
-				if (move)
-					GOTOXY(*x, *y);
-			}
-			else {
-				(*x)++;
-			}
-		}
-	}
-	if (move)
-		GOTOXY(*x, *y);
-}
-
-static void
-ctputs(struct cterminal *cterm, char *buf)
-{
-	char *outp;
-	char *p;
-	int		oldscroll;
-	int cx, cy;
-	int lm, rm, bm;
-
-	if (cterm->font_render) {
-		cterm->font_render(buf);
-		return;
-	}
-
-	outp = buf;
-	oldscroll = *cterm->_wscroll;
-	*cterm->_wscroll = 0;
-	CURR_XY(&cx, &cy);
-	if (cterm->log == CTERM_LOG_ASCII && cterm->logfile != NULL)
-		fputs(buf, cterm->logfile);
-	lm = TERM_MINX;
-	coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_CURR, &lm, NULL);
-	rm = TERM_MAXX;
-	bm = TERM_MAXY;
-	coord_conv_xy(cterm, CTERM_COORD_TERM, CTERM_COORD_CURR, &rm, &bm);
-	for (p = buf; *p; p++) {
-		switch(*p) {
-			case '\r':
-				*p = 0;
-				CPUTS(outp);
-				outp = p + 1;
-				adjust_currpos(cterm, INT_MIN, 0, 0);
-				CURR_XY(&cx, &cy);
-				break;
-			case '\n':
-				*p = 0;
-				CPUTS(outp);
-				outp = p + 1;
-				adjust_currpos(cterm, 0, 1, 1);
-				CURR_XY(&cx, &cy);
-				break;
-			case '\b':
-				*p=0;
-				CPUTS(outp);
-				outp = p + 1;
-				adjust_currpos(cterm, -1, 0, 0);
-				CURR_XY(&cx, &cy);
-				break;
-			case 7:		/* Bell */
-				break;
-			case '\t':
-				*p=0;
-				CPUTS(outp);
-				outp=p+1;
-				do_tab(cterm);
-				CURR_XY(&cx, &cy);
-				break;
-			default:
-				if (cx == cterm->right_margin || cx == CURR_MAXX) {
-					char ch;
-					ch = *(p + 1);
-					*(p + 1) = 0;
-					CPUTS(outp);
-					*(p+1) = ch;
-					outp = p + 1;
-				}
-				advance_char(cterm, &cx, &cy, 0);
-				break;
-		}
-	}
-	CPUTS(outp);
-	*cterm->_wscroll=oldscroll;
-}
-
-static void parse_sixel_intro(struct cterminal *cterm)
-{
-	size_t i;
-
-	if (cterm->sixel != SIXEL_POSSIBLE)
-		return;
-
-	i = strspn(cterm->strbuf, "0123456789;");
-
-	if (i >= cterm->strbuflen)
-		return;
-
-	if (cterm->strbuf[i] == 'q') {
-		int ratio, hgrid;
-		int vmode;
-		struct text_info ti;
-		char *p;
-
-		cterm->sixel = SIXEL_STARTED;
-		cterm->sx_repeat = 0;
-		cterm->sx_pixels_sent = 0;
-		cterm->sx_first_pass = 1;
-		cterm->sx_height = 0;
-		cterm->sx_width = 0;
-		cterm->sx_hold_update = *cterm->hold_update;
-		*cterm->hold_update = 0;
-
-		GETTEXTINFO(&ti);
-		vmode = find_vmode(ti.currmode);
-		if (vmode == -1) {
-			cterm->sixel = SIXEL_INACTIVE;
-			return;
-		}
-		attr2palette(ti.attribute, &cterm->sx_fg, &cterm->sx_bg);
-		if (cterm->extattr & CTERM_EXTATTR_SXSCROLL) {
-			TERM_XY(&cterm->sx_start_x, &cterm->sx_start_y);
-			cterm->sx_left = cterm->sx_x = (cterm->sx_start_x - 1) * vparams[vmode].charwidth;
-			cterm->sx_y = (cterm->sx_start_y - 1) * vparams[vmode].charheight;
-		}
-		else {
-			cterm->sx_x = cterm->sx_left = cterm->sx_y = 0;
-			TERM_XY(&cterm->sx_start_x, &cterm->sx_start_y);
-		}
-		cterm->sx_orig_cursor = cterm->cursor;
-		cterm->cursor = _NOCURSOR;
-		SETCURSORTYPE(cterm->cursor);
-		cterm_gotoxy(cterm, TERM_MINX, TERM_MINY);
-		*cterm->hold_update = 1;
-		cterm->sx_trans = hgrid = 0;
-		ratio = strtoul(cterm->strbuf, &p, 10);
-		if (*p == ';') {
-			p++;
-			cterm->sx_trans = strtoul(p, &p, 10);
-		}
-		if (*p == ';') {
-			p++;
-			hgrid = strtoul(p, &p, 10);
-		}
-		switch (ratio) {
-			default:
-			case 0:
-			case 1:
-				cterm->sx_iv = 2;
-				cterm->sx_ih = 1;
-				break;
-			case 2:
-				cterm->sx_iv = 5;
-				cterm->sx_ih = 1;
-				break;
-			case 3:
-			case 4:
-				cterm->sx_iv = 3;
-				cterm->sx_ih = 1;
-				break;
-			case 5:
-			case 6:
-				cterm->sx_iv = 2;
-				cterm->sx_ih = 1;
-				break;
-			case 7:
-			case 8:
-			case 9:
-				cterm->sx_iv = 1;
-				cterm->sx_ih = 1;
-				break;
-		}
-		cterm->strbuflen = 0;
-	}
-	else if (cterm->strbuf[i] != 'q')
-		cterm->sixel = SIXEL_INACTIVE;
-}
-
-static void parse_macro_intro(struct cterminal *cterm)
-{
-	size_t i;
-
-	if (cterm->macro != MACRO_POSSIBLE)
-		return;
-
-	i = strspn(cterm->strbuf, "0123456789;");
-
-	if (i >= cterm->strbuflen)
-		return;
-
-	if (cterm->strbuf[i] != '!') {
-		cterm->macro = MACRO_INACTIVE;
-		return;
-	}
-	i++;
-	if (i >= cterm->strbuflen)
-		return;
-
-	if (cterm->strbuf[i] == 'z') {
-		char *p;
-		unsigned long res;
-
-		// Parse parameters...
-		cterm->macro_num = -1;
-		cterm->macro_del = MACRO_DELETE_OLD;
-		cterm->macro_encoding = MACRO_ENCODING_ASCII;
-		res = strtoul(cterm->strbuf, &p, 10);
-		if (res != ULONG_MAX)
-			cterm->macro_num = res;
-		if (*p == ';') {
-			p++;
-			res = strtoul(p, &p, 10);
-			if (res != ULONG_MAX)
-				cterm->macro_del = res;
-			else
-				cterm->macro_del = -1;
-		}
-		if (*p == ';') {
-			p++;
-			res = strtoul(p, &p, 10);
-			if (res != ULONG_MAX)
-				cterm->macro_encoding = res;
-			else
-				cterm->macro_encoding = -1;
-		}
-		if (cterm->macro_num < 0 || cterm->macro_num > 63)
-			cterm->macro = MACRO_INACTIVE;
-		else if (cterm->macro_del < 0 || cterm->macro_del > 1)
-			cterm->macro = MACRO_INACTIVE;
-		else if (cterm->macro_encoding < 0 || cterm->macro_encoding > 1)
-			cterm->macro = MACRO_INACTIVE;
-		else {
-			cterm->macro = MACRO_STARTED;
-			cterm->strbuflen = 0;
-		}
-	}
-	else if (cterm->strbuf[i] != 'z')
-		cterm->macro = MACRO_INACTIVE;
-}
-
-#define ustrlen(s)	strlen((const char *)s)
-#define uctputs(c, p)	ctputs(c, (char *)p)
-#define ustrcat(b, s)	strcat((char *)b, (const char *)s)
-
-CIOLIBEXPORT char* cterm_write(struct cterminal * cterm, const void *vbuf, int buflen, char *retbuf, size_t retsize, int *speed)
-{
-	const unsigned char *buf = (unsigned char *)vbuf;
-	unsigned char ch[2];
-	unsigned char prn[BUFSIZE];
-	int i, j, k, x, y;
-	int sx, sy, ex, ey;
-	struct text_info	ti;
-	int	olddmc;
-	int oldptnm;
-	uint32_t palette[16];
-	int mpalette;
-	struct vmem_cell tmpvc[1];
-	int orig_fonts[4];
-	char lastch = 0;
- 	int palette_offset = 0;
-
-	if(!cterm->started)
-		cterm_start(cterm);
-
-	/* Now rejigger the current modes palette... */
-	if (cio_api.options & CONIO_OPT_EXTENDED_PALETTE)
-		palette_offset = 16;
-	mpalette = get_modepalette(palette);
-	if (mpalette) {
-		for (i=0; i < 16; i++)
-			palette[i] += palette_offset;
-		set_modepalette(palette);
-	}
-	
-	/* Deedle up the fonts */
-	orig_fonts[0] = getfont(1);
-	orig_fonts[1] = getfont(2);
-	orig_fonts[2] = getfont(3);
-	orig_fonts[3] = getfont(4);
-	setfont(cterm->altfont[0], FALSE, 1);
-	setfont(cterm->altfont[1], FALSE, 2);
-	setfont(cterm->altfont[2], FALSE, 3);
-	setfont(cterm->altfont[3], FALSE, 4);
-
-	oldptnm=*cterm->puttext_can_move;
-	*cterm->puttext_can_move=1;
-	olddmc=*cterm->hold_update;
-	*cterm->hold_update=1;
-	if(retbuf!=NULL)
-		retbuf[0]=0;
-	GETTEXTINFO(&ti);
-	setwindow(cterm);
-	x = cterm->xpos;
-	y = cterm->ypos;
-	coord_conv_xy(cterm, CTERM_COORD_ABSTERM, CTERM_COORD_CURR, &x, &y);
-	GOTOXY(x, y);
-	TEXTATTR(cterm->attr);
-	setcolour(cterm->fg_color, cterm->bg_color);
-	SETCURSORTYPE(cterm->cursor);
-	ch[1]=0;
-	if(buflen==-1)
-		buflen=ustrlen(buf);
-	switch(buflen) {
-		case 0:
-			break;
-		default:
-			if(cterm->log==CTERM_LOG_RAW && cterm->logfile != NULL)
-				fwrite(buf, buflen, 1, cterm->logfile);
-			prn[0]=0;
-			for(j=0;j<buflen;j++) {
-				if(ustrlen(prn) >= sizeof(prn)-sizeof(cterm->escbuf)) {
-					uctputs(cterm, prn);
-					prn[0]=0;
-				}
-				ch[0]=buf[j];
-				if (cterm->string && !cterm->sequence) {
-					switch (cterm->string) {
-						case CTERM_STRING_DCS:
-							/* 0x08-0x0d, 0x20-0x7e */
-						case CTERM_STRING_APC:
-							/* 0x08-0x0d, 0x20-0x7e */
-						case CTERM_STRING_OSC:
-							/* 0x08-0x0d, 0x20-0x7e */
-						case CTERM_STRING_PM:
-							/* 0x08-0x0d, 0x20-0x7e */
-							if (ch[0] < 8 || (ch[0] > 0x0d && ch[0] < 0x20) || ch[0] > 0x7e) {
-								if (ch[0] == 27) {
-									uctputs(cterm, prn);
-									prn[0]=0;
-									cterm->sequence=1;
-									break;
-								}
-								else {
-									cterm->string = 0;
-									/* Just toss out the string and this char */
-									FREE_AND_NULL(cterm->strbuf);
-									cterm->strbuflen = cterm->strbufsize = 0;
-									cterm->sixel = SIXEL_INACTIVE;
-								}
-							}
-							else {
-								if (cterm->strbuf) {
-									cterm->strbuf[cterm->strbuflen++] = ch[0];
-									if (cterm->strbuflen == cterm->strbufsize) {
-										char *p;
-
-										cterm->strbufsize *= 2;
-										if (cterm->strbufsize > 1024 * 1024 * 512) {
-											FREE_AND_NULL(cterm->strbuf);
-											cterm->strbuflen = cterm->strbufsize = 0;
-										}
-										else {
-											p = realloc(cterm->strbuf, cterm->strbufsize);
-											if (p == NULL) {
-												FREE_AND_NULL(cterm->strbuf);
-												cterm->strbuflen = cterm->strbufsize = 0;
-											}
-											else
-												cterm->strbuf = p;
-										}
-									}
-									cterm->strbuf[cterm->strbuflen] = 0;
-									switch(cterm->sixel) {
-										case SIXEL_STARTED:
-											parse_sixel_string(cterm, false);
-											break;
-										case SIXEL_POSSIBLE:
-											parse_sixel_intro(cterm);
-											break;
-									}
-									switch(cterm->macro) {
-										case MACRO_STARTED:
-											parse_macro_string(cterm, false);
-											break;
-										case MACRO_POSSIBLE:
-											parse_macro_intro(cterm);
-											break;
-									}
-								}
-							}
-							break;
-						case CTERM_STRING_SOS:
-							/* Anything but SOS or ST (ESC X or ESC \) */
-							if ((ch[0] == 'X' || ch[0] == '\\') && 
-							    cterm->strbuf && cterm->strbuflen &&
-							    cterm->strbuf[cterm->strbuflen-1] == '\x1b') {
-								cterm->strbuflen--;
-								cterm->string = 0;
-								FREE_AND_NULL(cterm->strbuf);
-								cterm->strbuflen = cterm->strbufsize = 0;
-								if (retbuf) {
-									cterm_write(cterm, "\x1b", 1, retbuf+strlen(retbuf), retsize-strlen(retbuf), speed);
-									cterm_write(cterm, &ch[0], 1, retbuf+strlen(retbuf), retsize-strlen(retbuf), speed);
-								}
-							}
-							else {
-								if (cterm->strbuf == NULL) {
-									cterm->string = 0;
-									cterm->strbuflen = cterm->strbufsize = 0;
-								}
-								else {
-									cterm->strbuf[cterm->strbuflen++] = ch[0];
-									if (cterm->strbuflen == cterm->strbufsize) {
-										char *p;
-
-										cterm->strbufsize *= 2;
-										if (cterm->strbufsize > 1024 * 1024 * 512) {
-											FREE_AND_NULL(cterm->strbuf);
-											cterm->string = 0;
-											cterm->strbuflen = cterm->strbufsize = 0;
-										}
-										else {
-											p = realloc(cterm->strbuf, cterm->strbufsize);
-											if (p == NULL) {
-												cterm->string = 0;
-												FREE_AND_NULL(cterm->strbuf);
-												cterm->strbuflen = cterm->strbufsize = 0;
-											}
-											else
-												cterm->strbuf = p;
-										}
-									}
-									cterm->strbuf[cterm->strbuflen] = 0;
-								}
-							}
-							break;
-					}
-				}
-				else if(cterm->font_size) {
-					cterm->fontbuf[cterm->font_read++]=ch[0];
-					if(cterm->font_read == cterm->font_size) {
-#ifndef CTERM_WITHOUT_CONIO
-						char *buf2;
-
-						if((buf2=(char *)malloc(cterm->font_size))!=NULL) {
-							memcpy(buf2,cterm->fontbuf,cterm->font_size);
-							if(cterm->font_slot >= CONIO_FIRST_FREE_FONT && cterm->font_slot < 256) {
-								replace_font(cterm->font_slot, strdup("Remote Defined Font"), buf2, cterm->font_size);
-							}
-							else
-								FREE_AND_NULL(buf2);
-						}
-#endif
-						cterm->font_size=0;
-					}
-				}
-				else if(cterm->sequence) {
-					ustrcat(cterm->escbuf,ch);
-					switch(legal_sequence(cterm->escbuf, sizeof(cterm->escbuf)-1)) {
-						case SEQ_BROKEN:
-							/* Broken sequence detected */
-							ustrcat(prn,"\033");
-							ustrcat(prn,cterm->escbuf);
-							cterm->escbuf[0]=0;
-							cterm->sequence=0;
-							if(ch[0]=='\033') {	/* Broken sequence followed by a legal one! */
-								if(prn[0])	/* Don't display the ESC */
-									prn[ustrlen(prn)-1]=0;
-								uctputs(cterm, prn);
-								prn[0]=0;
-								cterm->sequence=1;
-							}
-							break;
-						case SEQ_INCOMPLETE:
-							break;
-						case SEQ_COMPLETE:
-							do_ansi(cterm, retbuf, retsize, speed, lastch);
-							lastch = 0;
-							break;
-					}
-				}
-				else if (cterm->music) {
-					if(ch[0]==14) {
-						*cterm->hold_update=0;
-						*cterm->puttext_can_move=0;
-						CURR_XY(&x, &y);
-						GOTOXY(x, y);
-						SETCURSORTYPE(cterm->cursor);
-						*cterm->hold_update=1;
-						*cterm->puttext_can_move=1;
-						play_music(cterm);
-					}
-					else {
-						if(strchr(musicchars,ch[0])!=NULL)
-							ustrcat(cterm->musicbuf,ch);
-						else {
-							/* Kill non-music strings */
-							cterm->music=0;
-							cterm->musicbuf[0]=0;
-						}
-					}
-				}
-				else {
-					if(cterm->emulation == CTERM_EMULATION_ATASCII) {
-						if(cterm->attr==7) {
-							switch(buf[j]) {
-								case 27:	/* ESC */
-									cterm->attr=1;
-									break;
-								case 28:	/* Up (TODO: Wraps??) */
-									CURR_XY(&x, &y);
-									y--;
-									if(y < CURR_MINY)
-										y = CURR_MINY;
-									GOTOXY(x, y);
-									break;
-								case 29:	/* Down (TODO: Wraps??) */
-									CURR_XY(&x, &y);
-									y++;
-									if(y > CURR_MAXY)
-										y = CURR_MAXY;
-									GOTOXY(x, y);
-									break;
-								case 30:	/* Left (TODO: Wraps around to same line?) */
-									CURR_XY(&x, &y);
-									x--;
-									if(x < CURR_MINX)
-										y = CURR_MINX;
-									GOTOXY(x, y);
-									break;
-								case 31:	/* Right (TODO: Wraps around to same line?) */
-									CURR_XY(&x, &y);
-									x++;
-									if(x > CURR_MAXX)
-										y = CURR_MAXX;
-									GOTOXY(x, y);
-									break;
-								case 125:	/* Clear Screen */
-									cterm_clearscreen(cterm, cterm->attr);
-									break;
-								case 126:	/* Backspace (TODO: Wraps around to previous line?) */
-											/* DOES NOT delete char, merely erases */
-									CURR_XY(&x, &y);
-									x--;
-									if (x < CURR_MINX) {
-										y--;
-										if (y < CURR_MINY)
-											break;
-										y = CURR_MAXY;
-									}
-									GOTOXY(x, y);
-									PUTCH(32);
-									GOTOXY(x, y);
-									break;
-								/* We abuse the ESC buffer for tab stops */
-								case 127:	/* Tab (Wraps around to next line) */
-									CURR_XY(&x, &y);
-									for (k = x + 1; k <= CURR_MAXX; k++) {
-										if(cterm->escbuf[k]) {
-											x = k;
-											break;
-										}
-									}
-									if (k > CURR_MAXX) {
-										x = CURR_MINX;
-										y++;
-										if(y > CURR_MAXY) {
-											cond_scrollup(cterm);
-											y = CURR_MAXY;
-										}
-									}
-									GOTOXY(x, y);
-									break;
-								case 155:	/* Return */
-									adjust_currpos(cterm, INT_MIN, +1, 1);
-									break;
-								case 156:	/* Delete Line */
-									dellines(cterm, 1);
-									adjust_currpos(cterm, INT_MIN, 0, 0);
-									break;
-								case 157:	/* Insert Line */
-									CURR_XY(&x, &y);
-									if (y < CURR_MAXY) {
-										sx = CURR_MINX;
-										sy = y;
-										coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &sx, &sy);
-										ex = CURR_MAXX;
-										ey = CURR_MAXY;
-										coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &ex, &ey);
-										MOVETEXT(sx, sy, ex, ey - 1, sx, sy + 1);
-									}
-									GOTOXY(CURR_MINX, y);
-									cterm_clreol(cterm);
-									break;
-								case 158:	/* Clear Tab */
-									cterm->escbuf[WHEREX()]=0;
-									break;
-								case 159:	/* Set Tab */
-									cterm->escbuf[WHEREX()]=1;
-									break;
-								case 253:	/* Beep */
-									if(!cterm->quiet) {
-										#ifdef __unix__
-											PUTCH(7);
-										#else
-											MessageBeep(MB_OK);
-										#endif
-									}
-									break;
-								case 254:	/* Delete Char */
-									CURR_XY(&x, &y);
-									if(x < CURR_MAXX) {
-										sx = x;
-										sy = y;
-										coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &sx, &sy);
-										ex = CURR_MAXX;
-										coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &ex, NULL);
-										MOVETEXT(sx + 1, sy, ex, sy, sx, sy);
-									}
-									GOTOXY(CURR_MAXX, k);
-									cterm_clreol(cterm);
-									GOTOXY(x, y);
-									break;
-								case 255:	/* Insert Char */
-									CURR_XY(&x, &y);
-									if(x < CURR_MAXX) {
-										sx = x;
-										sy = y;
-										coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &sx, &sy);
-										ex = CURR_MAXX;
-										coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &ex, NULL);
-										MOVETEXT(sx, sy, ex - 1, sy, sx + 1, sy);
-									}
-									PUTCH(32);
-									GOTOXY(x, y);
-									break;
-								default:
-									ch[0] = buf[j];
-									ch[1] = cterm->attr;
-									SCR_XY(&sx, &sy);
-									PUTTEXT(sx, sy, sx, sy, ch);
-									ch[1]=0;
-									CURR_XY(&x, &y);
-									advance_char(cterm, &x, &y, 1);
-									break;
-							}
-						}
-						else {
-							switch(buf[j]) {
-								case 155:	/* Return */
-									adjust_currpos(cterm, INT_MIN, +1, 1);
-									break;
-								default:
-									/* Translate to screen codes */
-									k=buf[j];
-									if(k < 32) {
-										k +=64;
-									}
-									else if(k < 96) {
-										k -= 32;
-									}
-									else if(k < 128) {
-										/* No translation */
-									}
-									else if(k < 160) {
-										k +=64;
-									}
-									else if(k < 224) {
-										k -= 32;
-									}
-									else if(k < 256) {
-										/* No translation */
-									}
-									ch[0] = k;
-									ch[1] = cterm->attr;
-									SCR_XY(&sx, &sy);
-									PUTTEXT(sx, sy, sx, sy, ch);
-									ch[1]=0;
-									CURR_XY(&x, &y);
-									advance_char(cterm, &x, &y, 1);
-									break;
-							}
-							cterm->attr=7;
-						}
-					}
-					else if(cterm->emulation == CTERM_EMULATION_PETASCII) {
-						switch(buf[j]) {
-							case 5:		/* White */
-							case 28:	/* Red */
-							case 30:	/* Green */
-							case 31:	/* Blue */
-							case 129:	/* Orange */
-							case 144:	/* Black */
-							case 149:	/* Brown */
-							case 150:	/* Light Red */
-							case 151:	/* Dark Gray */
-							case 152:	/* Grey */
-							case 153:	/* Light Green */
-							case 154:	/* Light Blue */
-							case 155:	/* Light Gray */
-							case 156:	/* Purple */
-							case 158:	/* Yellow */
-							case 159:	/* Cyan */
-								cterm->attr &= 0xf0;
-								if (ti.currmode == C64_40X25 || ti.currmode == C128_40X25) {
-									switch(buf[j]) {
-										case 5:		/* White/Bright White */
-											cterm->attr |= 1;
-											break;
-										case 28:	/* Red*/
-											cterm->attr |= 2;
-											break;
-										case 30:	/* Green */
-											cterm->attr |= 5;
-											break;
-										case 31:	/* Blue */
-											cterm->attr |= 6;
-											break;
-										case 129:	/* Orange/Magenta */
-											cterm->attr |= 8;
-											break;
-										case 144:	/* Black */
-											cterm->attr |= 0;
-											break;
-										case 149:	/* Brown */
-											cterm->attr |= 9;
-											break;
-										case 150:	/* Light Red/Bright Red */
-											cterm->attr |= 10;
-											break;
-										case 151:	/* Dark Gray/Cyan */
-											cterm->attr |= 11;
-											break;
-										case 152:	/* Grey/Bright Black */
-											cterm->attr |= 12;
-											break;
-										case 153:	/* Light Green/Bright Green */
-											cterm->attr |= 13;
-											break;
-										case 154:	/* Light Blue/Bright Blue */
-											cterm->attr |= 14;
-											break;
-										case 155:	/* Light Gray/White */
-											cterm->attr |= 15;
-											break;
-										case 156:	/* Purple/Bright Magenta */
-											cterm->attr |= 4;
-											break;
-										case 158:	/* Yellow/Bright Yellow */
-											cterm->attr |= 7;
-											break;
-										case 159:	/* Cyan/Bright Cyan */
-											cterm->attr |= 3;
-											break;
-									}
-								}
-								else {
-									// C128 80-column
-									switch(buf[j]) {
-										case 5:		/* White/Bright White */
-											cterm->attr |= 15;
-											break;
-										case 28:	/* Red*/
-											cterm->attr |= 4;
-											break;
-										case 30:	/* Green */
-											cterm->attr |= 2;
-											break;
-										case 31:	/* Blue */
-											cterm->attr |= 1;
-											break;
-										case 129:	/* Orange/Magenta */
-											cterm->attr |= 5;
-											break;
-										case 144:	/* Black */
-											cterm->attr |= 0;
-											break;
-										case 149:	/* Brown */
-											cterm->attr |= 6;
-											break;
-										case 150:	/* Light Red/Bright Red */
-											cterm->attr |= 12;
-											break;
-										case 151:	/* Dark Gray/Cyan */
-											cterm->attr |= 3;
-											break;
-										case 152:	/* Grey/Bright Black */
-											cterm->attr |= 8;
-											break;
-										case 153:	/* Light Green/Bright Green */
-											cterm->attr |= 10;
-											break;
-										case 154:	/* Light Blue/Bright Blue */
-											cterm->attr |= 9;
-											break;
-										case 155:	/* Light Gray/White */
-											cterm->attr |= 7;
-											break;
-										case 156:	/* Purple/Bright Magenta */
-											cterm->attr |= 13;
-											break;
-										case 158:	/* Yellow/Bright Yellow */
-											cterm->attr |= 14;
-											break;
-										case 159:	/* Cyan/Bright Cyan */
-											cterm->attr |= 11;
-											break;
-									}
-								}
-								TEXTATTR(cterm->attr);
-								attr2palette(cterm->attr, &cterm->fg_color, &cterm->bg_color);
-								FREE_AND_NULL(cterm->fg_tc_str);
-								FREE_AND_NULL(cterm->bg_tc_str);
-								break;
-
-							/* Movement */
-							case 13:	/* "\r\n" and disabled reverse. */
-								c64_set_reverse(cterm, 0);
-								/* Fall-through */
-							case 141:
-								adjust_currpos(cterm, INT_MIN, 0, 0);
-								/* Fall-through */
-							case 17:
-								adjust_currpos(cterm, 0, 1, 1);
-								break;
-							case 147:
-								cterm_clearscreen(cterm, cterm->attr);
-								/* Fall through */
-							case 19:
-								adjust_currpos(cterm, INT_MIN, INT_MIN, 0);
-								break;
-							case 20:	/* Delete (Wrapping backspace) */
-								CURR_XY(&x, &y);
-								if(x == CURR_MINX) {
-									if (y == CURR_MINY)
-										break;
-									x = CURR_MINX;
-									GOTOXY(x, k-1);
-								}
-								else
-									GOTOXY(--x, k);
-								if(x < CURR_MAXX) {
-									sx = x;
-									sy = y;
-									coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &sx, &sy);
-									ex = CURR_MAXX;
-									coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &ex, NULL);
-									MOVETEXT(sx + 1, sy, ex, sy, sx, sy);
-								}
-								GOTOXY(CURR_MAXX, y);
-								cterm_clreol(cterm);
-								GOTOXY(x, y);
-								break;
-							case 157:	/* Cursor Left (wraps) */
-								CURR_XY(&x, &y);
-								if (x == CURR_MINX) {
-									if(y > CURR_MINY)
-										GOTOXY(CURR_MAXX, y - 1);
-								}
-								else
-									GOTOXY(x - 1, y);
-								break;
-							case 29:	/* Cursor Right (wraps) */
-								CURR_XY(&x, &y);
-								if (x == CURR_MAXX) {
-									if (y == CURR_MAXY) {
-										cond_scrollup(cterm);
-										GOTOXY(CURR_MINX, y);
-									}
-									else
-										GOTOXY(CURR_MINX, y + 1);
-								}
-								else
-									GOTOXY(x + 1, y);
-								break;
-							case 145:	/* Cursor Up (No scroll */
-								adjust_currpos(cterm, 0, -1, 0);
-								break;
-							case 148:	/* Insert TODO verify last column */
-										/* CGTerm does nothing there... we */
-										/* Erase under cursor. */
-								CURR_XY(&x, &y);
-								if (x <= CURR_MAXX) {
-									sx = x;
-									sy = y;
-									coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &sx, &sy);
-									ex = CURR_MAXX;
-									coord_conv_xy(cterm, CTERM_COORD_CURR, CTERM_COORD_SCREEN, &ex, NULL);
-									MOVETEXT(sx, sy, ex - 1, sy, sx + 1, sy);
-								}
-								PUTCH(' ');
-								GOTOXY(x, y);
-								break;
-
-							/* Font change... whee! */
-							case 14:	/* Lower case font */
-								if(ti.currmode == C64_40X25) {
-									SETFONT(33,FALSE,1);
-									cterm->altfont[0] = 33;
-								}
-								else {	/* Assume C128 */
-									SETFONT(35,FALSE,1);
-									cterm->altfont[0] = 35;
-								}
-								break;
-							case 142:	/* Upper case font */
-								if(ti.currmode == C64_40X25) {
-									SETFONT(32,FALSE,1);
-									cterm->altfont[0] = 32;
-								}
-								else {	/* Assume C128 */
-									SETFONT(34,FALSE,1);
-									cterm->altfont[0] = 34;
-								}
-								break;
-							case 18:	/* Reverse mode on */
-								c64_set_reverse(cterm, 1);
-								break;
-							case 146:	/* Reverse mode off */
-								c64_set_reverse(cterm, 0);
-								break;
-
-							/* Extras */
-							case 7:			/* Beep */
-								if(!cterm->quiet) {
-									#ifdef __unix__
-										PUTCH(7);
-									#else
-										MessageBeep(MB_OK);
-									#endif
-								}
-								break;
-							// 0x0f - Flashing on (C128 80-column only)
-							// 0x8f - Flashing off (C128 80-column only)
-							// 0x02 - Flashing on (C128 80-column only)
-							// 0x82 - Flashing off (C128 80-column only)
-							default:
-								k=buf[j];
-								if(k<32 || (k > 127 && k < 160)) {
-									break;
-								}
-								ch[0] = k;
-								ch[1] = c64_get_attr(cterm);
-								SCR_XY(&sx, &sy);
-								PUTTEXT(sx, sy, sx, sy, ch);
-								ch[1]=0;
-								CURR_XY(&x, &y);
-								advance_char(cterm, &x, &y, 1);
-								break;
-						}
-					}
-					else {	/* ANSI-BBS */
-						if(cterm->doorway_char) {
-							uctputs(cterm, prn);
-							tmpvc[0].ch = ch[0];
-							tmpvc[0].legacy_attr=cterm->attr;
-							tmpvc[0].fg = cterm->fg_color;
-							tmpvc[0].bg = cterm->bg_color;
-							tmpvc[0].font = ciolib_attrfont(cterm->attr);
-							SCR_XY(&sx, &sy);
-							vmem_puttext(sx, sy, sx, sy, tmpvc);
-							ch[1]=0;
-							CURR_XY(&x, &y);
-							advance_char(cterm, &x, &y, 1);
-							cterm->doorway_char=0;
-						}
-						else {
-							switch(buf[j]) {
-								case 0:
-									lastch = 0;
-									if(cterm->doorway_mode)
-										cterm->doorway_char=1;
-									break;
-								case 7:			/* Beep */
-									lastch = 0;
-									uctputs(cterm, prn);
-									prn[0]=0;
-									if(cterm->log==CTERM_LOG_ASCII && cterm->logfile != NULL)
-										fputs("\x07", cterm->logfile);
-									if(!cterm->quiet) {
-										#ifdef __unix__
-											PUTCH(7);
-										#else
-											MessageBeep(MB_OK);
-										#endif
-									}
-									break;
-								case 12:		/* ^L - Clear screen */
-									lastch = 0;
-									uctputs(cterm, prn);
-									prn[0]=0;
-									if(cterm->log==CTERM_LOG_ASCII && cterm->logfile != NULL)
-										fputs("\x0c", cterm->logfile);
-									cterm_clearscreen(cterm, (char)cterm->attr);
-									GOTOXY(CURR_MINX, CURR_MINY);
-									break;
-								case 27:		/* ESC */
-									uctputs(cterm, prn);
-									prn[0]=0;
-									cterm->sequence=1;
-									break;
-								default:
-									lastch = ch[0];
-									ustrcat(prn,ch);
-							}
-						}
-					}
-				}
-			}
-			uctputs(cterm, prn);
-			prn[0]=0;
-			break;
-	}
-	ABS_XY(&cterm->xpos, &cterm->ypos);
-
-	*cterm->hold_update=olddmc;
-	*cterm->puttext_can_move=oldptnm;
-	CURR_XY(&x, &y);
-	GOTOXY(x, y);
-	SETCURSORTYPE(cterm->cursor);
-
-	/* Now rejigger the current modes palette... */
-	if (mpalette) {
-		for (i=0; i < 16; i++)
-			palette[i] -= palette_offset;
-		set_modepalette(palette);
-	}
-
-	/* De-doodle the fonts */
-	setfont(orig_fonts[0], FALSE, 1);
-	setfont(orig_fonts[1], FALSE, 2);
-	setfont(orig_fonts[2], FALSE, 3);
-	setfont(orig_fonts[3], FALSE, 4);
-
-	return(retbuf);
-}
-
-int cterm_openlog(struct cterminal *cterm, char *logfile, int logtype)
-{
-	if(!cterm->started)
-		cterm_start(cterm);
-
-	cterm->logfile=fopen(logfile, "ab");
-	if(cterm->logfile==NULL)
-		return(0);
-	cterm->log=logtype;
-	return(1);
-}
-
-void cterm_closelog(struct cterminal *cterm)
-{
-	if(!cterm->started)
-		cterm_start(cterm);
-
-	if(cterm->logfile != NULL)
-		fclose(cterm->logfile);
-	cterm->logfile=NULL;
-	cterm->log=CTERM_LOG_NONE;
-}
-
-FILE *dbg;
-void cterm_end(struct cterminal *cterm, int free_fonts)
-{
-	int i;
-
-	if(cterm) {
-		cterm_closelog(cterm);
-#ifdef CTERM_WITHOUT_CONIO
-		FREE_AND_NULL(BD->vmem);
-		FREE_AND_NULL(BD);
-#else
-		if (free_fonts) {
-			for(i=CONIO_FIRST_FREE_FONT; i < 256; i++) {
-				FREE_AND_NULL(conio_fontdata[i].eight_by_sixteen);
-				FREE_AND_NULL(conio_fontdata[i].eight_by_fourteen);
-				FREE_AND_NULL(conio_fontdata[i].eight_by_eight);
-				FREE_AND_NULL(conio_fontdata[i].desc);
-			}
-		}
-#endif
-		if(cterm->playnote_thread_running) {
-			if(sem_trywait(&cterm->playnote_thread_terminated)==-1) {
-				listSemPost(&cterm->notes);
-				sem_wait(&cterm->playnote_thread_terminated);
-			}
-			sem_destroy(&cterm->playnote_thread_terminated);
-			sem_destroy(&cterm->note_completed_sem);
-			listFree(&cterm->notes);
-		}
-
-		FREE_AND_NULL(cterm->strbuf);
-		FREE_AND_NULL(cterm->tabs);
-		FREE_AND_NULL(cterm->fg_tc_str);
-		FREE_AND_NULL(cterm->bg_tc_str);
-		FREE_AND_NULL(cterm->sx_pixels);
-		FREE_AND_NULL(cterm->sx_mask);
-		for (i = 0; i < (sizeof(cterm->macros) / sizeof(cterm->macros[0])); i++) {
-			FREE_AND_NULL(cterm->macros[i]);
-		}
-
-		free(cterm);
-	}
-}
diff --git a/ciolib/cterm.h b/ciolib/cterm.h
deleted file mode 100644
index 3b1b7a14358ac0e408db5ad3c2a1705b2f176d9e..0000000000000000000000000000000000000000
--- a/ciolib/cterm.h
+++ /dev/null
@@ -1,292 +0,0 @@
-/* $Id: cterm.h,v 1.64 2020/06/27 00:04:45 deuce Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _CTERM_H_
-#define _CTERM_H_
-
-#include <stdio.h>	/* FILE* */
-#include <link_list.h>
-#include <semwrap.h>
-#include "ciolib.h"
-
-typedef enum {
-	 CTERM_MUSIC_NORMAL
-	,CTERM_MUSIC_LEGATO
-	,CTERM_MUSIC_STACATTO
-} cterm_noteshape_t;
-
-typedef enum {
-	 CTERM_LOG_NONE
-	,CTERM_LOG_ASCII
-	,CTERM_LOG_RAW
-} cterm_log_t;
-
-typedef enum {
-	 CTERM_EMULATION_ANSI_BBS
-	,CTERM_EMULATION_PETASCII
-	,CTERM_EMULATION_ATASCII
-} cterm_emulation_t;
-
-typedef enum {
-	CTERM_MUSIC_SYNCTERM,
-	CTERM_MUSIC_BANSI,
-	CTERM_MUSIC_ENABLED
-} cterm_music_t;
-
-#define CTERM_LOG_MASK	0x7f
-#define CTERM_LOG_PAUSED	0x80
-
-#define CTERM_NO_SETFONT_REQUESTED	99
-
-struct cterminal {
-	/* conio stuff */
-	int	x;		// X position of the left side on the screen
-	int	y;		// Y position of the top pn the screen
-	int setfont_result;
-	int altfont[4];	// The font slots successfully assigned to the 4 alt-font styles/attributes
-
-	/* emulation mode */
-	cterm_emulation_t	emulation;
-	int					height;			// Height of the terminal buffer
-	int					width;			// Width of the terminal buffer
-	int					top_margin;
-	int					bottom_margin;
-	int					left_margin;
-	int					right_margin;
-	int					quiet;			// No sounds are made
-	struct vmem_cell	*scrollback;
-	int					backlines;		// Number of lines in scrollback
-	int					backwidth;		// Number of columns in scrollback
-	char				DA[1024];		// Device Attributes
-#define	CTERM_SAVEMODE_AUTOWRAP			0x001
-#define CTERM_SAVEMODE_CURSOR			0x002
-#define	CTERM_SAVEMODE_ALTCHARS			0x004
-#define CTERM_SAVEMODE_NOBRIGHT			0x008
-#define CTERM_SAVEMODE_BGBRIGHT			0x010
-#define CTERM_SAVEMODE_SIXEL_SCROLL		0x020
-#define CTERM_SAVEMODE_ORIGIN			0x040
-#define	CTERM_SAVEMODE_BLINKALTCHARS		0x080
-#define CTERM_SAVEMODE_NOBLINK			0x100
-#define CTERM_SAVEMODE_MOUSE_X10		0x200
-#define CTERM_SAVEMODE_MOUSE_NORMAL		0x400
-#define CTERM_SAVEMODE_MOUSE_HIGHLIGHT		0x500
-#define CTERM_SAVEMODE_MOUSE_BUTTONTRACK	0x1000
-#define CTERM_SAVEMODE_MOUSE_ANY		0x2000
-#define CTERM_SAVEMODE_MOUSE_FOCUS		0x4000
-#define CTERM_SAVEMODE_MOUSE_UTF8		0x8000
-#define CTERM_SAVEMODE_MOUSE_SGR		0x10000
-#define CTERM_SAVEMODE_MOUSE_ALTSCROLL		0x20000
-#define CTERM_SAVEMODE_MOUSE_URXVT		0x40000
-#define CTERM_SAVEMODE_DECLRMM			0x80000
-	int32_t				saved_mode;
-	int32_t				saved_mode_mask;
-
-	/* emulation state */
-	int					started;		// Indicates that conio functions are being called
-	int					c64reversemode;	// Commodore 64 reverse mode state
-	unsigned char		attr;			// Current attribute
-	uint32_t			fg_color;
-	uint32_t			bg_color;
-	unsigned int		extattr;		// Extended attributes
-#define CTERM_EXTATTR_AUTOWRAP		0x0001
-#define CTERM_EXTATTR_ORIGINMODE	0x0002
-#define CTERM_EXTATTR_SXSCROLL		0x0004
-#define CTERM_EXTATTR_DECLRMM		0x0008
-	int					save_xpos;		// Saved position (for later restore)
-	int					save_ypos;
-	int					sequence;		// An escape sequence is being parsed
-	int					string;
-#define CTERM_STRING_APC	1
-#define CTERM_STRING_DCS	2
-#define CTERM_STRING_OSC	3
-#define CTERM_STRING_PM		4
-#define CTERM_STRING_SOS	5
-	char				*strbuf;
-	size_t				strbuflen;
-	size_t				strbufsize;
-	char				escbuf[1024];
-	cterm_music_t		music_enable;	// The remotely/locally controled music state
-	char				musicbuf[1024];
-	int					music;			// ANSI music is being parsed
-	int					tempo;
-	int					octave;
-	int					notelen;
-	cterm_noteshape_t	noteshape;
-	int					musicfore;
-	int					playnote_thread_running;
-	link_list_t			notes;
-	sem_t				playnote_thread_terminated;
-	sem_t				note_completed_sem;
-	int					backpos;
-	int					xpos;
-	int					ypos;
-	cterm_log_t			log;
-	FILE*				logfile;
-	char				fontbuf[4097];	// Remote font
-	int					font_read;		// Current position in fontbuf
-	int					font_slot;
-	int					font_size;		// Bytes
-	int					doorway_mode;
-	int					doorway_char;	// Indicates next char is a "doorway" mode char
-	int					cursor;			// Current cursor mode (Normal or None)
-	char				*fg_tc_str;
-	char				*bg_tc_str;
-	int					*tabs;
-	int					tab_count;
-
-	/* Sixel state */
-	int					sixel;			// Sixel status
-#define SIXEL_INACTIVE	0
-#define SIXEL_POSSIBLE	1
-#define SIXEL_STARTED	2
-	int					sx_iv;			// Vertical size
-	int					sx_ih;			// Horizontal size
-	int					sx_trans;		// "Transparent" background
-	unsigned long		sx_repeat;		// Repeat count
-	unsigned			sx_left;		// Left margin (0-based pixel offset)
-	unsigned			sx_x, sx_y;		// Current position
-	uint32_t			sx_fg, sx_bg;	// Current colour set
-	int					sx_pixels_sent;	/* If any pixels have been sent... 
-										   Raster Attributes are ignore if this is true. */
-	int					sx_first_pass;	// First pass through a line
-	int					sx_hold_update;	// hold_update value to restore on completion
-	int					sx_start_x;		// Starting X position
-	int					sx_start_y;		// Starting Y position
-	int					sx_row_max_x;	// Max right size of this sixel line
-	struct ciolib_pixels *sx_pixels;
-	unsigned long		sx_width;		// Width from raster attributes
-	unsigned long		sx_height;		// REMAINING heigh from raster attributes
-	uint8_t				*sx_mask;
-	int					sx_orig_cursor;	// Original value of cterm->cursor
-
-	/* APC Handler */
-	void				(*apc_handler)(char *strbuf, size_t strlen, void *cbdata);
-	void				*apc_handler_data;
-
-	/* Mouse state change callback */
-	void (*mouse_state_change)(int parameter, int enable, void *cbdata);
-	void *mouse_state_change_cbdata;
-	int (*mouse_state_query)(int parameter, void *cbdata);
-	void *mouse_state_query_cbdata;
-
-	/* Macros */
-	char *macros[64];
-	size_t macro_lens[64];
-	uint64_t in_macro;
-	int macro;
-#define MACRO_INACTIVE	0
-#define MACRO_POSSIBLE	1
-#define MACRO_STARTED	2
-	int macro_num;
-	int macro_del;
-#define MACRO_DELETE_OLD	0
-#define MACRO_DELETE_ALL	1
-	int macro_encoding;
-#define MACRO_ENCODING_ASCII	0
-#define MACRO_ENCODING_HEX	1
-
-	/* Alternate font renderer */
-	void (*font_render)(char *str);
-	int skypix;
-
-	/* conio function pointers */
-#ifdef CTERM_WITHOUT_CONIO
-	void	(*ciolib_gotoxy)		(struct cterminal *,int,int);
-	int		(*ciolib_wherex)		(struct cterminal *);
-	int		(*ciolib_wherey)		(struct cterminal *);
-	int		(*ciolib_gettext)		(struct cterminal *,int,int,int,int,void *);
-	void	(*ciolib_gettextinfo)	(struct cterminal *,struct text_info *);
-	void	(*ciolib_textattr)		(struct cterminal *,int);
-	void	(*ciolib_setcursortype)	(struct cterminal *,int);
-	int		(*ciolib_movetext)		(struct cterminal *,int,int,int,int,int,int);
-	void	(*ciolib_clreol)		(struct cterminal *);
-	void	(*ciolib_clrscr)		(struct cterminal *);
-	void	(*ciolib_setvideoflags)	(struct cterminal *,int flags);
-	int		(*ciolib_getvideoflags)	(struct cterminal *);
-	void	(*ciolib_setscaling)	(struct cterminal *,int new_value);
-	int		(*ciolib_getscaling)	(struct cterminal *);
-	int		(*ciolib_putch)			(struct cterminal *,int);
-	int		(*ciolib_puttext)		(struct cterminal *,int,int,int,int,void *);
-	void	(*ciolib_window)		(struct cterminal *,int,int,int,int);
-	int		(*ciolib_cputs)			(struct cterminal *,const char *);
-	int		(*ciolib_setfont)		(struct cterminal *,int font, int force, int font_num);
-#else
-	void	(*ciolib_gotoxy)		(int,int);
-	int		(*ciolib_wherex)		(void);
-	int		(*ciolib_wherey)		(void);
-	int		(*ciolib_gettext)		(int,int,int,int,void *);
-	int		(*ciolib_vmem_gettext)	(int,int,int,int,struct vmem_cell *);
-	void	(*ciolib_gettextinfo)	(struct text_info *);
-	void	(*ciolib_textattr)		(int);
-	void	(*ciolib_setcursortype)	(int);
-	int		(*ciolib_movetext)		(int,int,int,int,int,int);
-	void	(*ciolib_clreol)		(void);
-	void	(*ciolib_clrscr)		(void);
-	void	(*ciolib_setvideoflags)	(int flags);
-	int		(*ciolib_getvideoflags)	(void);
-	void	(*ciolib_setscaling)		(int new_value);
-	int		(*ciolib_getscaling)		(void);
-	int		(*ciolib_putch)			(int);
-	int		(*ciolib_puttext)		(int,int,int,int,void *);
-	int		(*ciolib_vmem_puttext)	(int,int,int,int,struct vmem_cell *);
-	void	(*ciolib_window)		(int,int,int,int);
-	int		(*ciolib_cputs)			(const char *);
-	int		(*ciolib_setfont)		(int font, int force, int font_num);
-#endif
-	int 	*_wscroll;
-	int		*puttext_can_move;
-	int		*hold_update;
-	void	*extra;
-};
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-CIOLIBEXPORT struct cterminal* cterm_init(int height, int width, int xpos, int ypos, int backlines, int backcols, struct vmem_cell *scrollback, int emulation);
-CIOLIBEXPORT char* cterm_write(struct cterminal *cterm, const void *buf, int buflen, char *retbuf, size_t retsize, int *speed);
-CIOLIBEXPORT int cterm_openlog(struct cterminal *cterm, char *logfile, int logtype);
-CIOLIBEXPORT void cterm_closelog(struct cterminal *cterm);
-CIOLIBEXPORT void cterm_end(struct cterminal *cterm, int free_fonts);
-CIOLIBEXPORT void cterm_clearscreen(struct cterminal *cterm, char attr);
-CIOLIBEXPORT void cterm_start(struct cterminal *cterm);
-void cterm_gotoxy(struct cterminal *cterm, int x, int y);
-void setwindow(struct cterminal *cterm);
-void cterm_clreol(struct cterminal *cterm);
-void cterm_scrollup(struct cterminal *cterm);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/ciolib/cterm.txt b/ciolib/cterm.txt
deleted file mode 100644
index f04562391661c2ebad58b554536a2f2ea62fb1db..0000000000000000000000000000000000000000
--- a/ciolib/cterm.txt
+++ /dev/null
@@ -1,1283 +0,0 @@
-$Id: cterm.txt,v 1.79 2020/04/28 19:39:13 deuce Exp $
-
-CTerm terminal characteristics:
-------------------------------
-
-End of line behaviour (wrapping):
-The cursor is moved to the first character of the next line
-as soon as a character is written to the last column of the
-current line, not on the next character.  A tab will wrap
-to the next line only if the current cursor position is the
-last character on the line.
-
-I'm often asked why I don't use VT semantics for wrapping.
-The primary reason is that the person asking almost certainly
-doesn't know what the VT semantics are, they just want
-SyncTERM to behave the same as some other terminal they like.
-
-Not only have the VT semantics never been properly
-implemented in any terminal, they even varied between
-different actual hardware VT terminals.  Luckily, everything
-is on the internet now, so you can see the details and results
-here: https://github.com/mattiase/wraptest
-
-Control characters:
-
-0x00 - NUL:
-	In doorway mode, indicates that the next character is
-	a literal character.  The IBM CP437 character will
-	be displayed.  This allows ESC and other control
-	characters to be placed on the screen.
-
-0x07 - BEL:
-	Beep
-
-0x08 - BS:
-	Non-destructive backspace.  Moves cursor position to
-	the previous column unless the current column is the
-	first, in which case no operation is performed.
-
-0x09 - HT:
-	Moves to the next horizontal tab stop.  Does not overwrite
-	any characters in between.  If there are no tab stops left
-	in the line, moves to the first position of the next line.
-	If the starting position is on the last line, will perform
-	a scroll, filling the new line at bottom with the current
-	attribute.
-
-0x0A - LF:
-	Move cursor position to same column of the next row.
-	If current row is the last row, scrolls the screen up
-	and fills the new row with the current attribute.
-
-0x0D - CR:
-	Move cursor position to column 1 of the current line
-
-Control Codes:
---------------
-
-Control codes are in the following format:
-ESC {'0' (ZERO) to '~'}
-	Legal combinations which are not handled are silently dropped.
-
-ESC E	Next Line (NEL)
-	Moves to the line home position of the next line.
-	(Same as CR LF)
-
-ESC H	Set Tab (HTS)
-	Sets a tab stop at the current column
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-ESC M	Reverse Line Feed (RI)
-	Move up one line
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-ESC P	Device Control String (DCS)
-	Begins a string consisting of the characters 0x08 - 0x0d and
-	0x20-0x7e, terminated by a String Terminator (ST)
-	Supported DCS string values:
-		"CTerm:Font:p1:<b64>"
-		Indicates the string is a loadable font. (CTerm 1.213)
-
-		p1 is a font slot number, which must be higher than the last
-		default defined font (See CSI sp D for list of predefined
-		fonts). <b64> is the base64 encoded font data.  Font size is
-		deduced from the size of the data.  This replaces the now
-		deprecated CSI = Ps1 ; Ps2 {
-
-
-		[ p1 [ ; p2 ] ] q
-		Defaults:  p1 = 0  p2 = 0
-		Indicates the string is a sixel sequence.
-
-		p1 selects the vertical height of a single pixel.  This
-		may be overridden by the raster attributes command, and
-		is deprecated.  Supported values
-		
-			Value      Vertical Size
-			-----      -------------
-			0,1,5,6    2 pixels
-			2          5 pixels
-			3,4        3 pixels
-			7,8,9      1 pixel
-
-		p2 indicates if unset sixels should be set to the current
-		background colour.  If p2 is 1, positions specified as 0
-		remain at their current colour.
-
-		Any additional parameters are ignored.
-
-		The rest of the string is made up of sixel data characters and
-		sixel control functions.  Sixel data characters are in the
-		rage of '?' (0x3f) to '~' (0x7e).  Each sixel data character
-		represents six vertical pixels.  The data is extracted by
-		subtracting 0x3f from the ASCII value of the character.
-		The least significant bit is the topmost pixel.
-
-                Sixel Control Functions
-                ! Pn X
-			Graphics Repeat Introducer
-			The character X is repeated Pn times.
-		" p1 ; p2 [ ; p3 [ ; p4 ] ]
-			Raster Attributes
-			p1 indicates the vertical size in pixels of each
-			sixel.  p2 indicates the horizontal size in pixels.
-			p3 and p4 define the height and width (in sixels)
-			respectively of a block to fill with the background
-			colour.  This block may not extend past the current
-			bottom of the screen.  If any pixel data characters
-			proceed this command, it is ignored.
-		# p1
-			Colour Select
-			Selects the current foreground colour from the
-			sixel palette.
-		# p1 ; p2 ; p3 ; p4 ; p5
-			Palette map
-			Defines sixel palette entry p1 and sets it as the
-			current foreground colour.  p2 specifies the colour
-			space to define the colour in, the only supported
-			value is 2.  p3, p4, and p5 specify the red, green,
-			and blue content as a percentage (0-100).
-		$
-			Graphics Carriage Return
-			Returns the active position to the left border of
-			the same sixel row.  Generally, one pass per colour
-			is used.  In passes after the first one, sixels
-			with a value of zero are not overwritten with the
-			background colour.
-		-
-			Graphics New Line
-			Moves the active position to the left border of the
-			next sixel row.
-
-
-		$ q pt
-		Request Status String (DECRQSS)
-
-		pt is the intermediate and/or final characters of a control
-		function to query the status of.  The terminal will send a
-		response in the format
-
-		DCS p1 $ r pt ST
-
-		p1 is 1 if the terminal supports querying the control
-		function and 0 if it does not.
-
-		pt is the characters in the control function except the CSI
-		characters.
-
-		Currently supported values of p1:
-
-		m	Request SGR parameters
-		r	Request top and bottom margins
-		s	Request left and right margins
-		t	Request height in lines
-		$|	Request width in columns
-		*|	Request height in lines
-
-
-		p1 [ ; p2 [ ; p3 ] ! z
-		Define Macro (DECDMAC)
-		Defaults: p2 = 0  p3 = 0
-		
-		Sets a macro to be replayed using CSI Pn * z
-
-		p1 is the macro number to set, and make be between 0 and
-		63 inclusive.
-
-		If p2 is zero, the macro numbered p1 will be deleted. If
-		p2 is one, all macros are deleted.
-		
-		If p3 is zero, the macro is defined using ASCII characters
-		(0x20 - 0x7e and 0xa0 - 0xff only) if p3 is one, the macro
-		is defined using hex pairs.
-		
-		When the macro is defined using hex pairs, a repeat
-		sequence may be included in the format of ! Pn ; D..D ;
-		Pn specifies the number of repeats (default of one instance)
-		D..D is the sequence of pairs to send Pn times.  The 
-		terminating ; may be left out if the sequence to be
-		repeated ends at the end of the string.
-
-ESC X	Start Of String (SOS)
-	As the above strings, but may contain any characters except
-	a Start Of String sequence or a String Terminator sequence.
-	The string is currently ignored.
-
-ESC \	String Terminator (ST)
-
-ESC ]	Operating System Command (OSC)
-	Begins a string consisting of the characters 0x08 - 0x0d and
-	0x20-0x7e, terminated by a String Terminator (ST)
-	Supported OSC values:
-		4;(pX;pY)...
-		Specifies one or more palette redefinitions.
-		pX is the palette index, and pY is the colour definition
-		Color format:
-			rgb:R/G/B
-			Where R, G, and B are a sequence of one to four
-			hex digits representing the value of the
-			red, green, and blue channels respectively.
-
-		SOURCE: xterm
-
-		104 [ ; Ps ... ]
-		Resets palette entry to default.  If the entire string
-		is "104", resets all colours.  Otherwise, only each index
-		separated by a semicolon is reset.
-
-		SOURCE: xterm
-
-ESC ^	Privacy Message (PM)
-	Begins a string consisting of the characters 0x08 - 0x0d and
-	0x20-0x7e, terminated by a String Terminator (ST)
-	The string is currently ignored.
-
-ESC _	Application Program String (APS)
-	Begins a string consisting of the characters 0x08 - 0x0d and
-	0x20-0x7e, terminated by a String Terminator (ST)
-	The string is currently ignored.
-
-ESC c	Reset to Initial State (RIS)
-	Resets all the terminal settings, clears the screen, and homes
-	the cursor.
-
-Control Sequences:
-------------------
-
-Control sequences start with the Control Sequence Introducer which is
-ESC [  CSI will be used to express this from now on.
-
-Control sequences are in the following format:
-CSI {'0' (ZERO) to '?'}{SPACE to '/'}{'@' to '~'}
-	There may be multiple characters from the {'0' (ZERO) to '?'}
-	and {SPACE to '/'} before the terminating {'@' to '~'} character.
-
-	Legal combinations not handled are silently dropped.
-	Illegal combinations are displayed.
-
-Sequence Parameters:
-	Parameters are expressed by the {'0' (ZERO) to '?'} character set.
-	Sequences which use parameters use decimal parameters separated by
-	a ';'.  The use of a ':' from the set is reserved.
-	If the parameter string begins with '<', '=', '>', or '?' then
-	this is a non-standard extension to the ANSI spec.
-
-	Pn          Indicates a single numeric parameter
-	Pn1 ; Pn2   Two numeric parameters
-	Pn...       Any number of numeric parameters
-	Ps          Single selective parameter
-	Ps1 ; Ps1   Two selective parameters
-	Ps...       Any numer of selective parameters
-
-	If a default is defined, the parameter is optional
-
-CSI Pn @ (ICH)
-	Insert Character(s)
-	Defaults: Pn = 1
-	Moves text from the current position to the right edge Pn characters
-	to the right, with rightmost characters going off-screen and the
-	resulting hole being filled with the current attribute.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn SP @ (SL)
-	Scroll Left
-	Defaults: Pn = 1
-	Shifts the contents of the screen left Pn columns(s) with
-	leftmost columns going off-screen and the resulting hole being
-	filled with the current attribute.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn A (CUU)
-	Cursor Up
-	Defaults: Pn = 1
-	Moves the cursor position up Pn lines from the current position.
-	Attempting to move past the screen boundaries stops the cursor
-	at the screen boundary.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn SP A (SR)
-	Scroll Right
-	Defaults: Pn = 1
-	Shifts the contents of the screen right Pn columns(s) with
-	rightmost columns going off-screen and the resulting hole being
-	filled with the current attribute.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn B (CUD)
-	Cursor Down
-	Defaults: Pn = 1
-	Moves the cursor position down Pn lines from the current position.
-	Attempting to move past the screen boundaries stops the cursor
-	at the screen boundary.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn C (CUF)
-	Cursor Right
-	Defaults: Pn = 1
-	Moves the cursor position right Pn columns from the current position.
-	Attempting to move past the screen boundaries stops the cursor
-	at the screen boundary.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn D (CUB)
-	Cursor Left
-	Defaults: Pn = 1
-	Moves the cursor position left Pn columns from the current position.
-	Attempting to move past the screen boundaries stops the cursor
-	at the screen boundary.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Ps1 ; Ps2 sp D (FNT)
-	Font Selection
-	Defaults: Ps1 = 0  Ps2 = 0
-	"sp" indicates a single space character.
-	Sets font Ps1 to be the one indicated by Ps2.  Currently four fonts are
-	supported.  Ps2 must be between 0 and 255.  Not all output types support
-	font selection.  Only X11 and SDL currently do.
-	Supported Ps1 values:
-		0  - Default font
-		1  - Font selected by the high intensity bit when CSI ? 31 h
-		     is enabled
-		2  - Font selected by the blink intensity bit when CSI ? 34 h
-		     is enabled
-		3  - Font selected by both the high intensity and blink bits
-		     when both CSI ? 31 h and CSI ? 34 h are enabled
-	Currently included fonts are:
-		0  - Codepage 437 English
-		1  - Codepage 1251 Cyrillic, (swiss)
-		2  - Russian koi8-r
-		3  - ISO-8859-2 Central European
-		4  - ISO-8859-4 Baltic wide (VGA 9bit mapped)
-		5  - Codepage 866 (c) Russian
-		6  - ISO-8859-9 Turkish
-		7  - haik8 codepage (use only with armscii8 screenmap)
-		8  - ISO-8859-8 Hebrew
-		9  - Ukrainian font koi8-u
-		10 - ISO-8859-15 West European, (thin)
-		11 - ISO-8859-4 Baltic (VGA 9bit mapped)
-		12 - Russian koi8-r (b)
-		13 - ISO-8859-4 Baltic wide
-		14 - ISO-8859-5 Cyrillic
-		15 - ARMSCII-8 Character set
-		16 - ISO-8859-15 West European
-		17 - Codepage 850 Multilingual Latin I, (thin)
-		18 - Codepage 850 Multilingual Latin I
-		19 - Codepage 885 Norwegian, (thin)
-		20 - Codepage 1251 Cyrillic
-		21 - ISO-8859-7 Greek
-		22 - Russian koi8-r (c)
-		23 - ISO-8859-4 Baltic
-		24 - ISO-8859-1 West European
-		25 - Codepage 866 Russian
-		26 - Codepage 437 English, (thin)
-		27 - Codepage 866 (b) Russian
-		28 - Codepage 885 Norwegian
-		29 - Ukrainian font cp866u
-		30 - ISO-8859-1 West European, (thin)
-		31 - Codepage 1131 Belarusian, (swiss)
-		32 - Commodore 64 (UPPER)
-		33 - Commodore 64 (Lower)
-		34 - Commodore 128 (UPPER)
-		35 - Commodore 128 (Lower)
-		36 - Atari
-		37 - P0T NOoDLE (Amiga)
-		38 - mO'sOul (Amiga)
-		39 - MicroKnight Plus (Amiga)
-		40 - Topaz Plus (Amiga)
-		41 - MicroKnight (Amiga)
-		42 - Topaz (Amiga)
-
-	Not all fonts are supported in all modes.  If a font is not supported
-	in the current mode, no action is taken, but there should be a
-	non-zero 'Font Selection result' value in the Font State Report.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn E (CNL)
-	Cursor Next Line
-	Defaults: Pn = 1
-	Moves the cursor to the first column of the line Pn down from the
-	current position. Attempting to move past the screen boundaries
-	stops the cursor at the screen boundary.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn F (CPL)
-	Cursor Preceding Line
-	Defaults: Pn = 1
-	Moves the cursor to the first column of the row Pn up from the
-	current position.  Attempting to move past the screen boundaries
-	stops the cursor at the screen boundary.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn G (CHA)
-	Cursor Character Absolute
-	Defaults: Pn = 1
-	Movies the cursor to column Pn of the current row.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn1 ; Pn2 H (CUP)
-	Cursor Position
-	Defaults: Pn1 = 1  Pn2 = 1
-	Moves the cursor to the Pn2th column of the Pn1th line.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn I (CHT)
-	Cursor Forward Tabulation
-	Defaults: Pn = 1
-	Move the cursor to the Pn-th next tab stop.
-	Basically the same as sending TAB Pn times.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Ps J (ED)
-	Erase in Page
-	Defaults: Ps = 0
-	Erases from the current screen according to the value of Ps
-	0 - Erase from the current position to the end of the screen.
-	1 - Erase from the current position to the start of the screen.
-	2 - Erase entire screen.  As a violation of ECMA-048, also moves
-	    the cursor to position 1/1 as a number of BBS programs assume
-	    this behaviour.
-	Erased characters are set to the current attribute.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-	SOURCE BANSI.TXT
-
-CSI Ps K (EL)
-	Erase in Line
-	Defaults: Ps = 0
-	Erases from the current line according to the value pf Ps
-	0 - Erase from the current position to the end of the line.
-	1 - Erase from the current position to the start of the line.
-	2 - Erase entire line.
-	Erased characters are set to the current attribute.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn L (IL)
-	Insert Line(s)
-	Defaults: Pn = 1
-	Inserts Pn lines at the current line position.  The current line and
-	those after it are scrolled down and the new empty lines are filled
-	with the current attribute.  If the cursor is not currently inside
-	the scrolling margins, has no effect.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn M (DL)
-	Delete Line(s) / "ANSI" Music
-	Defaults: Pn = 1
-	Deletes the current line and the Pn - 1 lines after it scrolling the
-	first non-deleted line up to the current line and filling the newly
-	empty lines at the end of the screen with the current attribute.
-	If the cursor is not currently inside the scrolling margins, has no
-	effect.
-	If "ANSI" Music is fully enabled (CSI = 2 M), performs "ANSI" music
-	instead.
-	See "ANSI" MUSIC section for more details.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-	SOURCE: BANSI.TXT
-
-CSI = Ps M (CTSAM)
-	CTerm Set ANSI Music
-	NON-STANDARD EXTENSION.
-	Defaults:  Ps = 0
-	Sets the current state of ANSI music parsing.
-	0 - Only CSI | will introduce an ANSI music string.
-	1 - Both CSI | and CSI N will introduce an ANSI music string.
-	2 - CSI |, CSI N, and CSI M will all introduce an ANSI music string.
-	    In this mode, Delete Line will not be available.
-
-	SOURCE: CTerm only.
-
-CSI N (BCAM)
-	BananaCom ANSI Music
-	"ANSI" Music / Not implemented.
-	If "ANSI" Music is set to BananaCom (CSI = 1 M) or fully enabled
-	(CSI = 2 M) performs "ANSI" music.  See "ANSI" MUSIC section for more
-	details.
-
-	SOURCE: BANSI.TXT
-
-CSI Pn P (DCH)
-	Delete Character
-	Defaults: Pn = 1
-	Deletes the character at the current position by shifting all
-	characters from the current column + p1 left to the current column.
-	Opened blanks at the end of the line are filled with the current
-	attribute.  If the cursor is not currently inside the scrolling
-	margins, has no effect.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn S (SU)
-	Scroll Up
-	Defaults: Pn = 1
-	Scrolls all text on the screen up Pn lines.  New lines emptied at the
-	bottom are filled with the current attribute.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI ? Ps1 ; Ps2 S (XTSRGA)
-	XTerm Set or Request Graphics Attribute
-	If Ps1 is 2, and Ps2 is 1, replies with the graphics screen information
-	in the following format: CSI ? 2 ; 0 ; Px ; Py S
-	Where Px is the width of the screen in pixels and Py is the height.
-
-	SOURCE: XTerm
-
-CSI Pn T (SD)
-	Scroll Down
-	Defaults: Pn = 1
-	Scrolls all text on the screen down Pn lines.  New lines emptied at the
-	top are filled with the current attribute.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI U
-	NON-STANDARD (Disabled in current code)
-	Clear screen with default attribute.
-	This code is *supposed* to go to the "next page" according to the
-	ANSI/ECMA specs with CSI V going to "previous page"
-
-	SOURCE: BANSI.TXT
-
-CSI Pn X (ECH)
-	Erase Character
-	Defaults: Pn = 1
-	Erase p1 characters starting at the current character.  Will not erase
-	past the end of line.
-	Erased characters are set to the current attribute.
-	This can erase across scroll margins.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn Y (CVT)
-	Cursor Line Tabulation
-	Defaults: Pn = 1
-	Move the cursor to the Pn-th next tab stop.
-	Basically the same as sending TAB Pn times.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn Z (CBT)
-	Cursor Backward Tabulation
-	Defaults: Pn = 1
-	Move the cursor to the p1th preceding tab stop.  Will not go past the
-	start of the line.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn ` (HPA)
-	Character Position Absolute
-	Defaults: Pn = 1
-	Move the cursor to the specified position on the current row.
-	Will not go past the end of the line.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn a (HPR)
-	Cursor Position Forward
-	Defaults: Pn = 1
-	Moves the cursor position forward Pn columns from the current position.
-	Attempting to move past the screen boundaries stops the cursor
-	at the screen boundary.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn b (REP)
-	Repeat
-	Defaults: Pn = 1
-	Repeats the previous graphic character Pn times.  Will not repeat
-	escape sequences.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Ps c (DA)
-	Device Attributes
-	Defaults: Ps = 0
-	If Ps is 0, CTerm will reply with the sequence:
-        CSI = 67;84;101;114;109;pN c
-	64;84;101;114;109 is the ASCII values of the "CTerm" string.  pN is the
-	CVS revision ID of CTerm with dots converted to semi-colons
-	(e.g. "1;156").  Use the CVS revision to detect if a specific feature
-	is available.  If you are adding features to a forked version of cterm,
-	please do so by	adding an extra parameter to the end, not by
-	incrementing any existing one!
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI < Ps c (CTDA)
-	CTerm Device Attributes
-
-	Defaults: Ps = 0
-	If Pn is 0, CTerm will reply with the sequence:
-        CSI < 0 ; Ps... c
-
-	Possible values for Ps:
-	1 - Loadable fonts are availabe via Device Control Strings
-	2 - Palette entries may be modified via an Operating System Command
-	    string
-	3 - Pixel operations are supported (currently, sixel graphics)
-	4 - The current font may be selected via CSI Ps1 ; Ps2 sp D
-	5 - More than the standard 16 colours may by configured via
-	    Operating System Command strings
-	6 - Extended palette is available
-	7 - Mouse is available
-
-CSI Ps d (VPA)
-	Line Position Absolute
-	Defaults: Ps = 1
-	Moves to row specified by Ps.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn SP d (TSR)
-	Tab Stop Remove
-	Defaults: None
-	Removes a tab stop at postion Pn.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn e (VPR)
-	Line Position Forward
-	Defaults: Ps = 1
-	Moves forward Ps rows.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn1 ; Pn2 (HVP)
-	Character and Line Position
-	Defaults: Pn1 = 1  Pn2 = 1
-	Moves the cursor to the Pn2th column of the Pn1th line.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Ps g (TBC)
-	Tabulation Clear
-	Defaults: Pn = 0
-	Deletes tab stops according to the values of P1:
-	0 - Deletes tab stop at current position.
-	3 - Deletes all tab stops.
-	5 - Deletes all tab stops.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI = 255 h (BCSET)
-	NON-STANDARD EXTENSION
-	Enable DoorWay Mode
-
-	SOURCE: BANSI.TXT
-
-CSI ? Ps... h (DECSET)
-	NON-STANDARD EXTENSION
-	Set Mode
-	Sets one or more mode.  The following modes are supported:
-
-	6 -  Enable origin mode.
-	     In this mode, position parameters are relative to the top left of
-	     the scrolling region, not the screen.  Defaults to reset.
-	     SOURCE: Digital VT102 User Guide
-	7 -  Enable auto wrap
-	     This is the normal mode in which a write to the last column of a
-	     row will move the cursor to the start of the next line triggering
-	     a scroll if required to create a new line.  Defaults to set.
-	     SOURCE: Digital VT102 User Guide
-	9 -  X10 compatible mouse reporting
-	     Mouse button presses will send a CSI M <button> <x> <y>
-	     Where <button> is ' ' + button number (0-based)
-	     <x> and <y> are '!' + position (0-based)
-	     SOURCE: xterm
-	25 - Display the cursor.  Defaults to set.
-	     SOURCE: "Installing and Using the VT320 Video Terminal"
-	31 - Enable bright alt character set
-	     With this mode set, the bright (1) graphic rendition selects
-	     characters from an alternate character set.  Defaults to reset.
-	32 - Bright Intensity Disable
-	     This makes the bright intensity bit not control the intensity.
-	     Mostly for use with CSI ? 31 h to permit fonts in the same
-	     colours.  Defaults to reset.
-	33 - Blink to Bright Intensity Background
-	     With this mode set, the blink (5,6) graphic renditions cause the
-	     background colour to be high intensity rather than causing blink.
-	     Defaults to reset.
-	34 - Enable blink alt character set
-	     With this mode set, the blink (5, 6) graphic renditions selects
-	     characters from an alternate character set.  Defaults to reset
-	35 - Blink Disabled
-	     This makes the blink (5, 6) graphic renditions not cause the
-	     character to blink.  Mostly for use with CSI ? 34 h to permit
-	     fonts to be used without blinking.  Defaults to reset.
-	69 - DEC Left Right Margin Mode enabled
-	     Enables CSI s to set the left/right margins, and disables CSI s
-	     from saving the current cursor position.
-	80 - Sixel Scrolling Enabled
-	     When this is set, the sixel active position begins in the
-	     upper-left corner of the currently active text position.
-	     When the sixel active position reaches the bottom of the
-	     page, the page is scrolled up.  At the end of the sixel
-	     string, a sixel newline is appended, and the current cursor
-	     position is the one in which the bottom sixel is in.
-	     Defaults to set.
-	     SOURCE: VT330/VT340 Programmer Reference Manual
-	1000 -  Normal tracking mode mouse reporting
-	     Mouse button presses will send a CSI M <button> <x> <y>
-	     Where <button> is ' ' + button number (0-based)
-	     Mouse button releases will use a button number of 4
-	     <x> and <y> are '!' + position (0-based)
-	     SOURCE: xterm
-	1001 -  Highlight tracking mode mouse reporting
-	     (Not supported by SyncTERM)
-	     SOURCE: xterm
-	1002 -  Button-event tracking mode mouse reporting
-	     Mouse button presses and movement when a button is pressed
-	     will send a CSI M <button> <x> <y>
-	     Where <button> is ' ' + button number (0-based)
-	     32 is added to the button number for movement events.
-	     Mouse button releases will use a button number of 4
-	     <x> and <y> are '!' + position (0-based)
-	     SOURCE: xterm
-	1003 -  Any-event tracking mode mouse reporting
-	     Mouse button presses and movement
-	     will send a CSI M <button> <x> <y>
-	     Where <button> is ' ' + button number (0-based)
-	     32 is added to the button number for movement events.
-	     Mouse button releases will use a button number of 4
-	     <x> and <y> are '!' + position (0-based)
-	     If no button is pressed, it acts as though button 0 is.
-	     SOURCE: xterm
-	1004 -  Focus-event tracking mode mouse reporting
-	     (Not supported by SyncTERM)
-	     SOURCE: xterm
-	1005 -  UTF-8 encoded extended coordinates
-	     (Not supported by SyncTERM)
-	     SOURCE: xterm
-	1006 -  SGR encoded extended coordinates
-	     Instead of the CSI M method, the format of mouse reporting
-	     is change to CSI < Pb ; Px ; Py M for presses and
-	     CSI < Pb ; Px ; Py m for releases.
-	     Instead of CSI M
-	     Px and Py are one-based.
-	     Pb remains the same (32 added for movement)
-	     Button 3 is not used for release (separate code)
-	     SOURCE: xterm
-	1007 -  Alternate scroll mode
-	     (Not supported by SyncTERM)
-	     SOURCE: xterm
-	1015 -  URXVT encoded extended coordinates
-	     (Not supported by SyncTERM)
-	     SOURCE: xterm
-
-CSI Pn j (HPB)
-	Character Position Backward
-	Defaults: Pn = 1
-	Moves the cursor position left Pn columns from the current position.
-	Attempting to move past the screen boundaries stops the cursor
-	at the screen boundary.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI Pn k (VPB)
-	Line Position Backward
-	Defaults: Pn = 1
-	Moves the cursor position up Pn lines from the current position.
-	Attempting to move past the screen boundaries stops the cursor
-	at the screen boundary.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-
-CSI = 255 l (BCRST)
-	NON-STANDARD EXTENSION
-	Disable DoorWay Mode
-
-	SOURCE: BANSI.TXT
-
-CSI ? Ps... l (DECRST)
-	NON-STANDARD EXTENSION
-	Reset Mode
-	Resets one or more mode.  The following modes are supported:
-
-	6 -  Origin Mode
-	     With this mode reset, position parameters are relative to the
-	     top left of the screen, not the scrolling region.  Defaults
-	     to reset.
-	     SOURCE: Digital VT102 User Guide
-	7 -  Disable auto wrap
-	     Resetting this mode causes a write to the last column of a to
-	     leave the cursor where it was before the write occurred,
-	     overwriting anything which was previously written to the same
-	     position.
-	     SOURCE: Digital VT102 User Guide
-	9 -  Disable X10 compatible mouse reporting
-	25 - Hide the cursor.  Defaults to set.
-	     SOURCE: "Installing and Using the VT320 Video Terminal"
-	31 - Disable bright alt character set
-	     With this mode reset, the bright (1) graphic rendition does not
-	     select an alternative font.  Defaults to reset.
-	32 - Bright Intensity Enable
-	     When reset, bright intensity graphics rendition behaves normally.
-	     Defaults to reset.
-	33 - Disable Blink to Bright Intensity Background
-	     With this mode set, the blink (5,6) graphic renditions do not
-	     affect the background colour.  Defaults to reset.
-	34 - Disable blink alt character set
-	     With this mode reset, the blink (5, 6) graphic renditions do not
-	     select characters from an alternate character set.  Defaults to
-	     reset.
-	35 - Blink Enable
-	     With this mode reset, the blink (5,6) graphic renditions behave
-	     normally (cause the characters to blink).  Defaults to reset.
-	69 - DEC Left Right Margin Mode disabled
-	     Disables CSI s from setting the left/right margins, and changes
-	     it back to saving the current cursor position.  The current
-	     left/right margins are maintained.
-	80 - Sixel Scrolling Disabled
-	     When this is reset, the sixel active position begins in the
-	     upper-left corner of the page.  Any commands that attempt to
-	     advance the sixel position past the bottom of the page are
-	     ignored.  At the end of the sixel string, the current cursor
-	     position is unchanged from where it was when the sixel string
-	     started.  Defaults to set.
-	     SOURCE: VT330/VT340 Programmer Reference Manual
-	1000 -  Disable Normal tracking mode mouse reporting
-	     SOURCE: xterm
-	1001 -  Disable Highlight tracking mode mouse reporting
-	     (Not supported by SyncTERM)
-	     SOURCE: xterm
-	1002 -  Disable Button-event tracking mode mouse reporting
-	     SOURCE: xterm
-	1003 -  Disable Any-event tracking mode mouse reporting
-	     SOURCE: xterm
-	1004 -  Disable Focus-event tracking mode mouse reporting
-	     (Not supported by SyncTERM)
-	     SOURCE: xterm
-	1005 -  Disable UTF-8 encoded extended coordinates
-	     (Not supported by SyncTERM)
-	     SOURCE: xterm
-	1006 -  Disable SGR encoded extended coordinates
-	     SOURCE: xterm
-	1007 -  Disable Alternate scroll mode
-	     (Not supported by SyncTERM)
-	     SOURCE: xterm
-	1015 -  Disable URXVT encoded extended coordinates
-	     (Not supported by SyncTERM)
-	     SOURCE: xterm
-
-CSI Ps... m (SGR)
-	Select Graphic Rendition
-	Defaults: Ps1 = 0
-	Sets or clears one or more text attributes.  Unlimited parameters are
-	supported and are applied in received order.  The following are
-	supported:
-	                                        Blink Bold FG BG TF TB (Modified)
-	0 -  Default attribute, white on black     X    X  X  X  X  X
-	1 -  Bright Intensity                           X        X
-	2 -  Dim intensity                              X        X
-	5 -  Blink (By definition, slow blink)     X                X
-	6 -  Blink (By definition, fast blink)     X                X
-	     NOTE: Both blinks are the same speed.
-	7 -  Negative Image - Reverses FG and BG           X  X  X  X
-	8 -  Concealed characters, sets the                X     X  X
-	     foreground colour to the background
-	     colour.
-	22 - Normal intensity                           X        X
-	25 - Steady (Not blinking)                 X                X
-	27 - Positive Image - Reverses FG and BG           X  X  X  X
-	     NOTE: This should be a separate
-	           attribute than 7 but this
-	           implementation makes them equal
-	30 - Black foreground                              X     X
-	31 - Red foreground                                X     X
-	32 - Green foreground                              X     X
-	33 - Yellow foreground                             X     X
-	34 - Blue foreground                               X     X
-	35 - Magenta foreground                            X     X
-	36 - Cyan foreground                               X     X
-	37 - White foreground                              X     X
-	38 - Extended Foreground (see notes)                     X
-	39 - Default foreground (same as white)	           X     X
-	40 - Black background                                 X     X
-	41 - Red background                                   X     X
-	42 - Green background                                 X     X
-	43 - Yellow background                                X     X
-	44 - Blue background                                  X     X
-	45 - Magenta background                               X     X
-	46 - Cyan background                                  X     X
-	47 - White background                                 X     X
-	48 - Extended Background (see notes)                        X
-	49 - Default background (same as black)               X     X
-
-	All others are ignored.
-
-	Blink indicates the blink bit.
-	Bold indicates the bold bit.
-	FG indicates the foreground colour.
-	BG indicates the background colour.
-	TF indicates that the Tru Colour foreground is changed.
-	TB indicates that the Tru Colour background is changed.
-
-	NOTE: For 38 and 48, two additional formats are supported, a palette
-	selection and a direct colour selection.
-
-	For palette selection, an additional two parameters are required
-	after that value.  They are considered part of the 38/48, not separate
-	values.  The first additional parameter must be a 5.  The second
-	additional parameter specified the palette index to use.  To set the
-	foreground to orange, and the background to a fairly dark grey, you
-	would send:
-	CSI 38 ; 5 ; 214 ; 48 ; 5 ; 238 m
-
-	The default palette is the XTerm 256-colour palette.  See here:
-	https://jonasjacek.github.io/colors/
-
-	For direct colour selection, an additional four parameters are required
-	after that value.  They are considered part of the 38/48, not separate
-	values.  The first additional parameter must be a 2.  The second,
-	third, and fourth specify the R/G/B values respectively. CTerm handles
-	this with an internal temporary palette, so scrollback may not have the
-	correct colours.  The internal palette is large enough for all cells in
-	a 132x60 screen to have unique foreground and background colours
-	though, so the current screen should always be as expected.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-	SOURCE: XTerm
-
-CSI Ps n (DSR)
-	Device Status Report
-	Defaults: Ps = 0
-	A request for a status report.  CTerm handles the following three
-	requests:
-	5	- Request a DSR
-		  CTerm will always reply with CSI 0 n indicating 
-		  "ready, no malfunction detected"
-	6	- Request active cursor position
-		  CTerm will reply with CSI y ; x R where y is the current line
-		  and x is
-		  the current row.
-	255	- NON-STANDARD EXTENSION (BCDSR)
-		  Replies as though a CSI 6 n was received with the cursor in
-		  the bottom right corner.  i.e.: Returns the terminal size as
-		  a position report.
-
-	SOURCE: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf
-		(parameters 5 and 6 only)
-	SOURCE: BANSI.TXT (parameter 255)
-
-CSI = Ps n (CTSMRR)
-	NON-STANDARD EXTENSION
-	State/Mode Request/Report
-	Defaults: Ps = 1
-
-	When Ps is 1, CTerm will respond with a Font State Report of the form
-	CSI = 1 ;pF ;pR ;pS0 ;pS1 ;pS2 ;pS3 n
-	pF is the first available loadable-font slot number
-	pR is the result of the previous "Font Selection" request:
-		0 = successful font selection
-		1 = failed font selection
-		99 = no font selection request has been received
-	pS0 - pS3 contain the font slots numbers of previously successful
-	"Font Selection" requests into the 4 available alternate-font
-	style/attribute values:
-		pS0 - normal attribute font slot
-		PS1 - high intensity foreground attribute font slot
-		PS2 - blink attribute font slot
-		PS3 - high intensity blink attribute font slot
-
-	When Ps is 2, CTerm will respond with a Mode Report of the form
-	CSI = 2[;pN [;pN] [...]] n
-	Where pN represent zero or more mode values set previously
-	(e.g. via CSI ? pN h).	Mode values cleared (disabled via CSI ? pN l)
-	will not be included in the set of values returned in the Mode
-	Report.  If no modes are currently set, an empty parameter will be
-	included as the first and only pN.
-
-	When Ps is 3, CTerm will respond with a Mode Report of the form
-	CSI = 3 ; pH ; pW n
-	Where pH is the height of a character cell in pixels, and pW is
-	the width of a character cell in pixels.
-
-	SOURCE: CTerm only.
-
-CSI ? Ps [ ; Pn ] n (DECDSR)
-
-	When Ps is 62 (DECMSR) and there is no Pn, CTerm will respond
-	with a Mode Report of the form
-	CSI 32767 * {
-	This indicates that 524,272 bytes are available for macro storage.
-	This is not actually true, SyncTERM will use all available memory
-	for macro storage, but some software checks this value, and some
-	parsers don't allow more than INT16_MAX parameter values.
-
-	When Ps is 63 (DECCKSR) Pn defaults to 1, and CTerm will respond
-	with a checksum of the defined macros in the form
-	DCS Pn ! xxxx ST
-	Where xxxx is the hex checksum.
-
-	SOURCE: VT420
-
-CSI Pn1 ; Pn2 r (DECSTBM)
-	NON-STANDARD EXTENSION.
-	Set Top and Bottom Margins
-	Defaults: Pn1 = 1
-	          Pn2 = last line on screen
-	Selects top and bottom margins, defining the scrolling region. Pn1 is
-	the line number of the first line in the scrolling region. Pn2 is the
-	line number of the bottom line.
-	
-	SOURCE: xterm
-
-CSI Ps1 ; Ps2 * r (DECSCS)
-	NON-STANDARD EXTENSION.
-	Set the output emulation speed (Select Communication Speed).
-	If Ps1 or Ps2 are omitted, causes output speed emulation to stop
-	Ps1 may be empty.
-	Sequence is ignored if Ps1 is not empty, 0, or 1.
-	The value of Ps2 sets the output speed emulation as follows:
-
-	Value		Speed
-	-----		-----
-	empty, 0	Unlimited
-	1		300
-	2		600
-	3		1200
-	4		2400
-	5		4800
-	6		9600
-	7		19200
-	8		38400
-	9		57600
-	10		76800
-	11		115200
-
-	SOURCE: VT4xx Specification from http://www.vt100.net/
-
-CSI ? Ps... s (CTSMS)
-	NON-STANDARD EXTENSION
-	Save Mode Setting
-	Saves the current mode states as specified by CSI ? l and CSI ? h.  If
-	Ps1 is omitted, saves all such states.  If one or more values of Ps is
-	included, saves only the specified states (arguments to CSI ? l/h).
-
-	SOURCE: SyncTERM only
-
-CSI Pn1 ; Pn2 s (DECSLRM)
-        (Only when DEC Left Right Margin Mode  - 69 - is enabled)
-	NON-STANDARD EXTENSION.
-	Set Left and Right Margins
-	Defaults: Pn1 = 1
-	          Pn2 = last column on screen
-	If either Pn1 or Pn2 is zero, the current setting is retained.
-	Selects left and right margins, defining the scrolling region. Pn1 is
-	the column number of the first column in the scrolling region. Pn2 is
-	the column number of the right column.
-
-	SOURCE: xterm
-
-CSI s (SCOSC)
-        (Only when DEC Left Right Margin Mode  - 69 - is disabled)
-	NON-STANDARD EXTENSION
-	Save Current Position
-	Saves the current cursor position for later restoring with CSI u
-	although this is non-standard, it's so widely used in the BBS world
-	that any terminal program MUST implement it.
-
-	SOURCE: ANSI.SYS
-
-CSI Ps ; Pn1 ; Pn2 ; Pn3 t (CT24BC)
-	NON-STANDARD EXTENSION
-	Select a 24-bit colour
-	If Ps is 0, sets the background colour.
-	If Ps is 1, sets the foreground colour.
-	Pn1, Pn2, Pn3 contains the RGB value to set.
-	CTerm handles this with an internal temporary palette, so scrollback
-	may not have the correct colours.  The internal palette is large
-	enough for all cells in a 132x60 screen to have unique foreground
-	and background colours though, so the current screen should always
-	be as expected.
-
-CSI ? Ps...  u (CTRMS)
-	NON-STANDARD EXTENSION
-	Restore Mode Setting
-	Saves the current mode states as specified by CSI ? l and CSI ? h.  If
-	Ps is omitted, saves all such states.  If one or more values of Ps is
-	included, restores all the specified states (arguments to CSI ? l/h)
-
-	SOURCE: SyncTERM only
-
-CSI u (SCORC)
-	NON-STANDARD EXTENSION
-	Restore Cursor Position
-	Move the cursor to the last position saved by CSI s.  If no position
-	has been saved, the cursor is not moved.
-
-	SOURCE: ANSI.SYS
-
-CSI 2 $ w (DECTABSR)
-	Request Tab Stop Report
-	Requests a list of tab stops.
-	The list is in the form:
-	
-	DCS 2 $ u Pt ST
-	
-	The string Pt is a list of tab stops separated by /s.
-	
-	SOURCE: VT320
-
-CSI Pn1 ; Ps ; Pn2 ; Pn3 ; Pn4 ; Pn5 * y (DECRQCRA)
-	Request Checksum of Rectangular Area
-	Returns a checksum for the specified rectangular area.
-	Pn1 is an ID that is returned in the response.
-	Ps MUST be 1
-	Pn2 specifies the top row of the rectangle
-	Pn3 specifies the left column of the rectangle
-	Pn4 specifies the bottom row of the rectangle
-	Pn5 specifies the right column of the rectangle
-	The return value is in the format of DCS Pn1 ! ~ xxxx ST
-	Where xxxx is the hex value of the checksum.
-
-	Source: VT420
-
-CSI Pn * z (DECINVM)
-	Invoke Macro
-	Invokes a macro.
-	Pn specifies the macro number.  If Pn is not 0..63, no action is
-	taken.
-
-CSI = Ps1 ; Ps2 { (CTOSF)
-	NON-STANDARD EXTENSION (Deprecated)
-	Defaults:  Ps1 = 255  Ps2 = 0
-	Indicates that a font block is following.
-	Ps1 indicates the font slot to place the loaded font into.  This must
-	be higher than the last default defined font (See CSI sp D for list
-	of predefined fonts)  Ps2 indicates font size according to the
-	following table:
-		0 - 8x16 font, 4096 bytes.
-		1 - 8x14 font, 3584 bytes.
-		2 - 8x8 font, 2048 bytes.
-
-	The DCS font string should be used instead as of CTerm 1.213
-
-	SOURCE: CTerm only.
-
-"ANSI" Music
-============
-This is the place where the BBS world completely fell on it's face in ANSI
-usage.  A programmer with either TeleMate or QModem (the first two programs to
-support "ANSI" music as far as I can tell) decided they needed a method of
-playing music on a BBS connection.  They decided to add an "unused" ANSI code
-and go their merry way.  Since their product didn't implement CSI M (Delete
-line) they assumed it was unused and blissfully broke the spec.  They defined
-"ANSI" music as:
-CSI M <music string> 0x0e
-
-They used a subset of IBM BASICs PLAY statement functionality for ANSI music
-strings which often start with "MF" or "MB", so the M after the CSI was often
-considered as part of the music string.  You would see things such as:
-CSI MFABCD 0x0e and the F would not be played as a note.  This just added
-further confusion to the mess.
-
-Later on, BananaCom realized the conflict between delete line and music, so
-they added *another* broken code CSI N (Properly, erase in field... not
-implemented in many BBS clients) which was to provide an "unbroken" method of
-playing music strings.  They also used CSI Y to disambiguate delete line, CSI Y
-is supposed to be a vertical tab (also not implemented in very many clients).
-BananaCom also introduced many more non-standard and standard-breaking control
-sequences which are not supported by CTerm.
-
-CTerm has further introduced a standard compliant ANSI music introducer CSI |
-
-By default, CTerm allows both CSI N and CSI | to introduce a music string.
-Allowed introducers are set by CSI = p1 M as defined above.
-
-The details of ANSI music then are as follows:
-The following characters are allowed in music strings:
-"aAbBcCdDeEfFgGlLmMnNoOpPsStT0123456789.-+#<> "
-If any character not in this list is present, the music string is ignored as
-is the introducing code.
-
-If the introducing code is CSI M the first char is examined, and if it is
-a one of "BbFfLlSs" or if it is "N" or "n" and is not followed by a decimal
-digit, then the music string is treated as though an M is located in front
-of the first character.
-
-The music string is then parsed with the following sequences supported:
-Mx sets misc. music parameters where x is one of the following:
-	F - Plays music in the foreground, waiting for music to complete
-	    playing before more characters are processed.
-	B - Play music in the background, allowing normal processing to
-	    continue.
-	N - "Normal" not legato, not staccato
-	L - Play notes legato
-	S - Play notes staccato
-T### Sets the tempo of the music where ### is one or more decimal digits.
-	If the decimal number is greater than 255, it is forced to 255.
-	If it is less than 32, it is forced to 32.  The number signifies
-	quarter notes per minute.
-	The default tempo is 120.
-O### Sets the octave of the music where ### is one or more decimal digits.
-	If the decimal number is greater than 6, it is forced to 6.
-	The default octave is 4.
-N### Plays a single note by number.  Valid values are 0 - 71.  Invalid
-	values are played as silence.  Note zero is C in octave 0.
-	See following section for valid note modifiers.
-A, B, C, D, E, F, G, or P Plays the named note or pause from the current
-	octave.  An "Octave" is the rising sequence of the following notes:
-	C, C#, D, D#, E, F, F#, G, G#, A, A#, B
-	This is contrary to normal music terminology.
-	The special note "P" is a pause.
-	Notes may be followed by one or more modifier characters which
-	are applied in order.  If one overrides a previous one, the last
-	is used.  The valid modifiers are:
-	+ - Sharp.  The next highest semitone is played.
-		Each sharp character will move up one semitone, so "C++"
-		is equivalent to "D".
-	# - Sharp.  The next highest semitone is played.
-		Each sharp character will move up one semitone, so "C##"
-		is equivalent to "D".
-	- - Flat.  The next lowest semitone is played.
-		Each flat character will move down one semitone, so "D--"
-		is equivalent to "C".
-	. - Duration is 1.5 times what it would otherwise be.  Dots are not
-		cumulative, so "C.." is equivalent to "C."
-	### - Notelength as a reciprocal of the fraction of a whole note to
-		play the note for.  For example, 4 would indicate a 1/4 note.
-		The default note length is 4.
-L### Set the notelength parameter for all following notes which do not have
-	one specified (ie: override the quarter-note default)  Legal note
-	lengths are 1-64 indicating the reciprocal of the fraction (ie: 4
-	indicates a 1/4 note).
-<	Move the next lowest octave.
-	Octave cannot go above six or below zero.
->	Move to the next highest octave.
-	Octave cannot go above six or below zero.
-
-The lowest playable character is C in octave zero.  The frequencies for the
-six C notes for the seven octaves in rising order are:
-65.406, 130.810, 261.620, 523.250, 1046.500, 2093.000, 4186.000
-
-Purists will note that the lower three octaves are not exactly one half of
-the next higher octave in frequency.  This is due to lost resolution of
-low frequencies.  The notes *sound* correct to me.  If anyone can give me
-an excellent reason to change them (and more correct integer values for all
-notes) I am willing to do that assuming the notes still sound "right".
-
-!!!PLEASE NOTE!!! If you are playing some ANSI Music then ask the user if they
-heard it, ALWAYS follow it with an 0x0f 0x0e is the shift lock character which
-*will* cause people with anything but an ANSI-BBS terminal (ie: *nix users
-using the bundled telnet app) to have their screen messed up.  0x0f "undoes"
-the 0x0e.
diff --git a/ciolib/curs_cio.c b/ciolib/curs_cio.c
deleted file mode 100644
index 01883602e9114a6dcbe6eeefd03fc17a5df4fdbe..0000000000000000000000000000000000000000
--- a/ciolib/curs_cio.c
+++ /dev/null
@@ -1,1354 +0,0 @@
-/* $Id: curs_cio.c,v 1.60 2020/06/27 00:04:45 deuce Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <langinfo.h>
-#include <locale.h>
-#include <sys/time.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#include "gen_defs.h"	/* xpdev, for BOOL/TRUE/FALSE */
-
-#if (defined CIOLIB_IMPORTS)
- #undef CIOLIB_IMPORTS
-#endif
-#if (defined CIOLIB_EXPORTS)
- #undef CIOLIB_EXPORTS
-#endif
-
-#include "ciolib.h"
-#include "curs_cio.h"
-#include "vidmodes.h"
-#include "utf8_codepages.h"
-
-static unsigned char curs_nextgetch=0;
-
-static int lastattr=0;
-static long mode;
-static int vflags=0;
-static int suspended = 0;
-static int mpress = 0;
-void curs_resume(void);
-
-static int default_font=0;
-static int current_font[4]={0, 0, 0, 0};
-
-static short curses_color(short color)
-{
-	switch(color)
-	{
-		case 0 :
-			return(COLOR_BLACK);
-		case 1 :
-			return(COLOR_BLUE);
-		case 2 :
-			return(COLOR_GREEN);
-		case 3 :
-			return(COLOR_CYAN);
-		case 4 :
-			return(COLOR_RED);
-		case 5 :
-			return(COLOR_MAGENTA);
-		case 6 :
-			return(COLOR_YELLOW);
-		case 7 :
-			return(COLOR_WHITE);
-		case 8 :
-			return(COLOR_BLACK+8);
-		case 9 :
-			return(COLOR_BLUE+8);
-		case 10 :
-			return(COLOR_GREEN+8);
-		case 11 :
-			return(COLOR_CYAN+8);
-		case 12 :
-			return(COLOR_RED+8);
-		case 13 :
-			return(COLOR_MAGENTA+8);
-		case 14 :
-			return(COLOR_YELLOW+8);
-		case 15 :
-			return(COLOR_WHITE+8);
-	}
-	return(0);
-}
-
-static int _putch(unsigned char ch, BOOL refresh_now, int cp)
-{
-	int	ret;
-	cchar_t	cha;
-	wchar_t wch[2] = {0};
-	attr_t	attr = 0;
-	short	cpair = 0;
-
-	attr_get(&attr, &cpair, NULL);
-	attr &= ~A_COLOR;
-	switch (mode) {
-		case CIOLIB_MODE_CURSES_ASCII:
-			switch(ch)
-			{
-				case 30:
-					wch[0]=ACS_UARROW & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 31:
-					wch[0]=ACS_DARROW & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 176:
-					wch[0]=ACS_CKBOARD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 177:
-					wch[0]=ACS_BOARD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 178:
-					wch[0]=ACS_BOARD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 179:
-					wch[0]=ACS_SBSB & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 180:
-					wch[0]=ACS_SBSS & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 181:
-					wch[0]=ACS_SBSD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 182:
-					wch[0]=ACS_DBDS & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 183:
-					wch[0]=ACS_BBDS & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 184:
-					wch[0]=ACS_BBSD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 185:
-					wch[0]=ACS_DBDD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 186:
-					wch[0]=ACS_DBDB & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 187:
-					wch[0]=ACS_BBDD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 188:
-					wch[0]=ACS_DBBD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 189:
-					wch[0]=ACS_DBBS & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 190:
-					wch[0]=ACS_SBBD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 191:
-					wch[0]=ACS_BBSS & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 192:
-					wch[0]=ACS_SSBB & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 193:
-					wch[0]=ACS_SSBS & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 194:
-					wch[0]=ACS_BSSS & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 195:
-					wch[0]=ACS_SSSB & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 196:
-					wch[0]=ACS_BSBS & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 197:
-					wch[0]=ACS_SSSS & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 198:
-					wch[0]=ACS_SDSB & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 199:
-					wch[0]=ACS_DSDB & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 200:
-					wch[0]=ACS_DDBB & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 201:
-					wch[0]=ACS_BDDB & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 202:
-					wch[0]=ACS_DDBD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 203:
-					wch[0]=ACS_BDDD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 204:
-					wch[0]=ACS_DDDB & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 205:
-					wch[0]=ACS_BDBD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 206:
-					wch[0]=ACS_DDDD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 207:
-					wch[0]=ACS_SDBD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 208:
-					wch[0]=ACS_DSBS & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 209:
-					wch[0]=ACS_BDSD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 210:
-					wch[0]=ACS_BSDS & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 211:
-					wch[0]=ACS_DSBB & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 212:
-					wch[0]=ACS_SDBB & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 213:
-					wch[0]=ACS_BDSB & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 214:
-					wch[0]=ACS_BSDB & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 215:
-					wch[0]=ACS_DSDS & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 216:
-					wch[0]=ACS_SDSD & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 217:
-					wch[0]=ACS_SBBS & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 218:
-					wch[0]=ACS_BSSB & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 219:
-					wch[0]=ACS_BLOCK & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				case 254:
-					wch[0]=ACS_BULLET & A_CHARTEXT;
-					attr |= WA_ALTCHARSET;
-					break;
-				default:
-					wch[0]=ch;
-			}
-			break;
-		case CIOLIB_MODE_CURSES_IBM:
-			wch[0]=ch;
-			break;
-		case CIOLIB_MODE_CURSES:
-			wch[0] = cpoint_from_cpchar_ext(cp, ch);
-			break;
-	}
-
-	if(!wch[0]) {
-		wch[0]=' ';
-		attr |= WA_BOLD;
-	}
-	else {
-		attr &= ~WA_BOLD;
-	}
-	curs_resume();
-	if (wch[0] < ' ') {
-		attr |= WA_REVERSE;
-		wch[0] = wch[0] + 'A' - 1;
-	}
-
-	setcchar(&cha, wch, attr, cpair, NULL);
-	ret = add_wch(&cha);
-
-	if(!hold_update) {
-		if(refresh_now)
-			refresh();
-	}
-
-	return(ret);
-}
-
-int curs_vmem_puttext(int sx, int sy, int ex, int ey, struct vmem_cell *fill)
-{
-	int x,y;
-	int fillpos=0;
-	unsigned char attr;
-	unsigned char fill_char;
-	unsigned char orig_attr;
-	int oldx, oldy;
-
-	if(		   sx < 1
-			|| sy < 1
-			|| ex < 1
-			|| ey < 1
-			|| sx > cio_textinfo.screenwidth
-			|| sy > cio_textinfo.screenheight
-			|| sx > ex
-			|| sy > ey
-			|| ex > cio_textinfo.screenwidth
-			|| ey > cio_textinfo.screenheight
-			|| fill==NULL)
-		return(0);
-
-	curs_resume();
-	getyx(stdscr,oldy,oldx);
-	orig_attr=lastattr;
-	for(y=sy-1;y<ey;y++)
-	{
-		for(x=sx-1;x<ex;x++)
-		{
-			fill_char=fill[fillpos].ch;
-			attr=fill[fillpos].legacy_attr;
-			textattr(attr);
-			move(y, x);
-			_putch(fill_char,FALSE,conio_fontdata[fill[fillpos].font].cp);
-			fillpos++;
-		}
-	}
-	textattr(orig_attr);
-	move(oldy, oldx);
-	if(!hold_update)
-		refresh();
-	return(1);
-}
-
-int curs_puttext(int sx, int sy, int ex, int ey, void *fillbuf)
-{
-	int x,y;
-	int fillpos=0;
-	unsigned char attr;
-	unsigned char fill_char;
-	unsigned char orig_attr;
-	int oldx, oldy;
-	unsigned char *fill;
-
-	fill = fillbuf;
-
-	if(		   sx < 1
-			|| sy < 1
-			|| ex < 1
-			|| ey < 1
-			|| sx > cio_textinfo.screenwidth
-			|| sy > cio_textinfo.screenheight
-			|| sx > ex
-			|| sy > ey
-			|| ex > cio_textinfo.screenwidth
-			|| ey > cio_textinfo.screenheight
-			|| fill==NULL)
-		return(0);
-
-	curs_resume();
-	getyx(stdscr,oldy,oldx);
-	orig_attr=lastattr;
-	for(y=sy-1;y<ey;y++)
-	{
-		for(x=sx-1;x<ex;x++)
-		{
-			fill_char=fill[fillpos++];
-			attr=fill[fillpos++];
-			textattr(attr);
-			move(y, x);
-			_putch(fill_char,FALSE,getcodepage());
-		}
-	}
-	textattr(orig_attr);
-	move(oldy, oldx);
-	if(!hold_update)
-		refresh();
-	return(1);
-}
-
-int curs_vmem_gettext(int sx, int sy, int ex, int ey, struct vmem_cell *fill)
-{
-	int x,y;
-	int fillpos=0;
-	unsigned char attrib;
-	unsigned char colour;
-	int oldx, oldy;
-	unsigned char thischar;
-	int	ext_char;
-	struct text_info	ti;
-	attr_t attr;
-	cchar_t cchar;
-	int fnt = current_font[0];
-	int cp;
-	fd_set cp_checked;
-
-	curs_resume();
-	gettextinfo(&ti);
-
-	if(		   sx < 1
-			|| sy < 1
-			|| ex < 1
-			|| ey < 1
-			|| sx > ti.screenwidth
-			|| sy > ti.screenheight
-			|| sx > ex
-			|| sy > ey
-			|| ex > ti.screenwidth
-			|| ey > ti.screenheight
-			|| fill==NULL)
-		return(0);
-
-	getyx(stdscr,oldy,oldx);
-	for(y=sy-1;y<=ey-1;y++)
-	{
-		for(x=sx-1;x<=ex-1;x++)
-		{
-			mvin_wch(y, x, &cchar);
-			attr = cchar.attr;
-			thischar = ext_char = cchar.chars[0];
-			if(attr&WA_REVERSE) {
-				thischar=(thischar)-'A'+1;
-			}
-			else {
-				switch (mode) {
-					case CIOLIB_MODE_CURSES_ASCII:
-						/* likely ones */
-						if (attr & WA_ALTCHARSET) {
-							if (ext_char == (ACS_CKBOARD & A_CHARTEXT))
-							{
-								thischar=176;
-							}
-							else if (ext_char == (ACS_BOARD & A_CHARTEXT))
-							{
-								thischar=177;
-							}
-							else if (ext_char == (ACS_BSSB & A_CHARTEXT))
-							{
-								thischar=218;
-							}
-							else if (ext_char == (ACS_SSBB & A_CHARTEXT))
-							{
-								thischar=192;
-							}
-							else if (ext_char == (ACS_BBSS & A_CHARTEXT))
-							{
-								thischar=191;
-							}
-							else if (ext_char == (ACS_SBBS & A_CHARTEXT))
-							{
-								thischar=217;
-							}
-							else if (ext_char == (ACS_SBSS & A_CHARTEXT))
-							{
-								thischar=180;
-							}
-							else if (ext_char == (ACS_SSSB & A_CHARTEXT))
-							{
-								thischar=195;
-							}
-							else if (ext_char == (ACS_SSBS & A_CHARTEXT))
-							{
-								thischar=193;
-							}
-							else if (ext_char == (ACS_BSSS & A_CHARTEXT))
-							{
-								thischar=194;
-							}
-							else if (ext_char == (ACS_BSBS & A_CHARTEXT))
-							{
-								thischar=196;
-							}
-							else if (ext_char == (ACS_SBSB & A_CHARTEXT))
-							{
-								thischar=179;
-							}
-							else if (ext_char == (ACS_SSSS & A_CHARTEXT))
-							{
-								thischar=197;
-							}
-							else if (ext_char == (ACS_BLOCK & A_CHARTEXT))
-							{
-								thischar=219;
-							}
-							else if (ext_char == (ACS_UARROW & A_CHARTEXT))
-							{
-								thischar=30;
-							}
-							else if (ext_char == (ACS_DARROW & A_CHARTEXT))
-							{
-								thischar=31;
-							}
-
-							/* unlikely (Not in ncurses) */
-							else if (ext_char == (ACS_SBSD & A_CHARTEXT))
-							{
-								thischar=181;
-							}
-							else if (ext_char == (ACS_DBDS & A_CHARTEXT))
-							{
-								thischar=182;
-							}
-							else if (ext_char == (ACS_BBDS & A_CHARTEXT))
-							{
-								thischar=183;
-							}
-							else if (ext_char == (ACS_BBSD & A_CHARTEXT))
-							{
-								thischar=184;
-							}
-							else if (ext_char == (ACS_DBDD & A_CHARTEXT))
-							{
-								thischar=185;
-							}
-							else if (ext_char == (ACS_DBDB & A_CHARTEXT))
-							{
-								thischar=186;
-							}
-							else if (ext_char == (ACS_BBDD & A_CHARTEXT))
-							{
-								thischar=187;
-							}
-							else if (ext_char == (ACS_DBBD & A_CHARTEXT))
-							{
-								thischar=188;
-							}
-							else if (ext_char == (ACS_DBBS & A_CHARTEXT))
-							{
-								thischar=189;
-							}
-							else if (ext_char == (ACS_SBBD & A_CHARTEXT))
-							{
-								thischar=190;
-							}
-							else if (ext_char == (ACS_SDSB & A_CHARTEXT))
-							{
-								thischar=198;
-							}
-							else if (ext_char == (ACS_DSDB & A_CHARTEXT))
-							{
-								thischar=199;
-							}
-							else if (ext_char == (ACS_DDBB & A_CHARTEXT))
-							{
-								thischar=200;
-							}
-							else if (ext_char == (ACS_BDDB & A_CHARTEXT))
-							{
-								thischar=201;
-							}
-							else if (ext_char == (ACS_DDBD & A_CHARTEXT))
-							{
-								thischar=202;
-							}
-							else if (ext_char == (ACS_BDDD & A_CHARTEXT))
-							{
-								thischar=203;
-							}
-							else if (ext_char == (ACS_DDDB & A_CHARTEXT))
-							{
-								thischar=204;
-							}
-							else if (ext_char == (ACS_BDBD & A_CHARTEXT))
-							{
-								thischar=205;
-							}
-							else if (ext_char == (ACS_DDDD & A_CHARTEXT))
-							{
-								thischar=206;
-							}
-							else if (ext_char == (ACS_SDBD & A_CHARTEXT))
-							{
-								thischar=207;
-							}
-							else if (ext_char == (ACS_DSBS & A_CHARTEXT))
-							{
-								thischar=208;
-							}
-							else if (ext_char == (ACS_BDSD & A_CHARTEXT))
-							{
-								thischar=209;
-							}
-							else if (ext_char == (ACS_BSDS & A_CHARTEXT))
-							{
-								thischar=210;
-							}
-							else if (ext_char == (ACS_DSBB & A_CHARTEXT))
-							{
-								thischar=211;
-							}
-							else if (ext_char == (ACS_SDBB & A_CHARTEXT))
-							{
-								thischar=212;
-							}
-							else if (ext_char == (ACS_BDSB & A_CHARTEXT))
-							{
-								thischar=213;
-							}
-							else if (ext_char == (ACS_BSDB & A_CHARTEXT))
-							{
-								thischar=214;
-							}
-							else if (ext_char == (ACS_DSDS & A_CHARTEXT))
-							{
-								thischar=215;
-							}
-							else if (ext_char == (ACS_SDSD & A_CHARTEXT))
-							{
-								thischar=216;
-							}
-						}
-						fnt = 0;
-						break;
-					case CIOLIB_MODE_CURSES_IBM:
-						if (ext_char == (ACS_UARROW & A_CHARTEXT))
-						{
-							thischar=30;
-						}
-						else if (ext_char == (ACS_DARROW & A_CHARTEXT))
-						{
-							thischar=31;
-						}
-						fnt = 0;
-						break;
-					case CIOLIB_MODE_CURSES:
-						thischar = cpchar_from_unicode_cpoint(getcodepage(), ext_char, 0);
-						if (thischar == 0 && ext_char != 0) {
-							FD_ZERO(&cp_checked);
-							for (fnt = 0; fnt < 256; fnt++) {
-								cp = conio_fontdata[fnt].cp;
-								if (!FD_ISSET(cp, &cp_checked)) {
-									FD_SET(cp, &cp_checked);
-									thischar = cpchar_from_unicode_cpoint(cp, ext_char, 0);
-									if (thischar)
-										break;
-								}
-							}
-							if (fnt == 256) {
-								fnt = current_font[0];
-								thischar = '?';
-							}
-						}
-						break;
-				}
-			}
-			fill[fillpos].ch=(unsigned char)(thischar);
-			attrib=0;
-			if (attr & WA_BOLD) {
-				if (thischar == ' ')
-					thischar = 0;
-				else
-					attrib |= 8;
-			}
-			if (attr & WA_BLINK)
-			{
-				attrib |= 128;
-			}
-			colour=PAIR_NUMBER(attr&A_COLOR)-1;
-			if (COLORS >= 16)
-				colour=colour&0x7f;
-			else
-				colour=((colour&56)<<1)|(colour&7);
-			fill[fillpos].legacy_attr = colour|attrib;
-			attr2palette(attrib, &fill[fillpos].fg, &fill[fillpos].bg);
-			fill[fillpos].font = fnt;
-			fillpos++;
-		}
-	}
-	move(oldy, oldx);
-	return(1);
-}
-
-void curs_textattr(int attr)
-{
-	chtype   attrs=WA_NORMAL;
-	int	colour;
-	int	fg,bg;
-
-	if (lastattr==attr)
-		return;
-
-	lastattr=attr;
-
-	fg = attr & 0x0f;
-	bg = attr & 0xf0;
-
-	if (vflags & CIOLIB_VIDEO_NOBRIGHT)
-		fg &= 0x07;
-
-	if (!(vflags & CIOLIB_VIDEO_BGBRIGHT))
-		bg &= 0x70;
-
-	if (attr & 128)
-	{
-		if (!(vflags & CIOLIB_VIDEO_NOBLINK))
-			attrs |= WA_BLINK;
-	}
-
-	if (COLORS >= 16) {
-		colour = COLOR_PAIR( ((fg|bg)+1) );
-	}
-	else {
-		if (fg & 8)  {
-			attrs |= WA_BOLD;
-		}
-		colour = COLOR_PAIR( ((fg&7)|((bg&0x70)>>1))+1 );
-	}
-	curs_resume();
-#ifdef NCURSES_VERSION_MAJOR
-	attrset(attrs);
-	color_set(colour, NULL);
-#else
-	attrset(attrs|colour);
-#endif
-	/* bkgdset(colour); */
-	bkgdset(colour);
-
-	cio_textinfo.attribute=attr;
-}
-
-int curs_kbhit(void)
-{
-	struct timeval timeout;
-	fd_set	rfds;
-
-	if(curs_nextgetch)
-		return(1);
-	if(mpress || mouse_trywait()) {
-		mpress = 1;
-		return(1);
-	}
-	timeout.tv_sec=0;
-	timeout.tv_usec=0;
-	FD_ZERO(&rfds);
-	FD_SET(fileno(stdin),&rfds);
-
-	return(select(fileno(stdin)+1,&rfds,NULL,NULL,&timeout));
-}
-
-void curs_gotoxy(int x, int y)
-{
-	int absx,absy;
-	absx=x+cio_textinfo.winleft-1;
-	absy=y+cio_textinfo.wintop-1;
-
-	curs_resume();
-	move(absy-1,absx-1);
-	if(!hold_update)
-		refresh();
-
-	cio_textinfo.curx=x;
-	cio_textinfo.cury=y;
-}
-
-void curs_suspend(void)
-{
-	if (!suspended) {
-		noraw();
-		endwin();
-	}
-	suspended = 1;
-}
-
-void curs_resume(void)
-{
-	if (suspended) {
-		raw();
-		timeout(10);
-		refresh();
-		getch();
-	}
-	suspended = 0;
-}
-
-int curs_initciolib(long inmode)
-{
-	short	fg, bg, pair=0;
-	char *p;
-
-	setlocale(LC_ALL, "");
-	if (inmode == CIOLIB_MODE_AUTO)
-		inmode = CIOLIB_MODE_CURSES;
-	if (inmode == CIOLIB_MODE_CURSES) {
-		p = nl_langinfo(CODESET);
-		if (p == NULL)
-			inmode = CIOLIB_MODE_CURSES_ASCII;
-		else if (!strcasestr(p, "UTF"))
-			if (!strcasestr(p, "UCS2"))
-				if (!strcasestr(p, "Unicode"))
-					if (!strcasestr(p, "GB18030"))
-						inmode = CIOLIB_MODE_CURSES_ASCII;
-	}
-
-#ifdef XCURSES
-	char	*argv[2]={"ciolib",NULL};
-
-	Xinitscr(1,argv);
-#else
-	char *term;
-	SCREEN *tst;
-
-	cio_api.options = 0;
-
-	term=getenv("TERM");
-	if(term==NULL)
-		return(0);
-	tst=newterm(term,stdout,stdin);
-	if(tst==NULL)
-		return(0);
-	endwin();
-	initscr();
-#endif
-	start_color();
-	cbreak();
-	noecho();
-	nonl();
-	keypad(stdscr, TRUE);
-	scrollok(stdscr,FALSE);
-	halfdelay(1);
-	raw();
-	timeout(10);
-	atexit(curs_suspend);
-	suspended = 0;
-
-	/* Set up color pairs */
-	if (COLORS >= 16) {
-		for(bg=0;bg<16;bg++)  {
-			for(fg=0;fg<16;fg++) {
-				init_pair(++pair,curses_color(fg),curses_color(bg));
-			}
-		}
-	}
-	else {
-		for(bg=0;bg<8;bg++)  {
-			for(fg=0;fg<8;fg++) {
-				init_pair(++pair,curses_color(fg),curses_color(bg));
-			}
-		}
-	}
-	mode = inmode;
-#ifdef NCURSES_VERSION_MAJOR
-	{
-		mmask_t msk = BUTTON1_PRESSED|BUTTON1_RELEASED|BUTTON2_PRESSED|BUTTON2_RELEASED|BUTTON3_PRESSED|BUTTON3_RELEASED|REPORT_MOUSE_POSITION;
-#ifdef BUTTON5_PRESSED
-		msk |= BUTTON4_PRESSED|BUTTON5_PRESSED;
-#endif
-		if (mousemask(msk, NULL) == msk) {
-			mouseinterval(0);
-			cio_api.mouse=1;
-		}
-		else {
-			mousemask(0,NULL);
-		}
-	}
-#endif
-
-	if (COLORS >= 16)
-		cio_api.options = CONIO_OPT_BRIGHT_BACKGROUND;
-	if (can_change_color())
-		cio_api.options |= CONIO_OPT_PALETTE_SETTING;
-	curs_textmode(0);
-	return(1);
-}
-
-void curs_setcursortype(int type) {
-	curs_resume();
-	switch(type) {
-		case _NOCURSOR:
-			curs_set(0);
-			break;
-
-		case _SOLIDCURSOR:
-			curs_set(2);
-			break;
-
-		default:	/* Normal cursor */
-			curs_set(1);
-			break;
-
-	}
-	if(!hold_update)
-		refresh();
-}
-
-int curs_getch(void)
-{
-	wint_t ch;
-#ifdef NCURSES_VERSION_MAJOR
-	MEVENT mevnt;
-#endif
-
-	if(curs_nextgetch) {
-		ch=curs_nextgetch;
-		curs_nextgetch=0;
-	}
-	else {
-		curs_resume();
-		while(get_wch(&ch)==ERR) {
-			if(mpress || mouse_trywait()) {
-				mpress = 0;
-				curs_nextgetch=CIO_KEY_MOUSE>>8;
-				return(CIO_KEY_MOUSE & 0xff);
-			}
-		}
-		switch(ch) {
-			case KEY_DOWN:            /* Down-arrow */
-				curs_nextgetch=0x50;
-				ch=0;
-				break;
-
-			case KEY_UP:		/* Up-arrow */
-				curs_nextgetch=0x48;
-				ch=0;
-				break;
-
-			case KEY_LEFT:		/* Left-arrow */
-				curs_nextgetch=0x4b;
-				ch=0;
-				break;
-
-			case KEY_RIGHT:            /* Right-arrow */
-				curs_nextgetch=0x4d;
-				ch=0;
-				break;
-
-			case KEY_HOME:            /* Home key (upward+left arrow) */
-				curs_nextgetch=0x47;
-				ch=0;
-				break;
-
-			case KEY_BACKSPACE:            /* Backspace (unreliable) */
-				ch=8;
-				break;
-
-			case KEY_F(1):			/* Function Key */
-				curs_nextgetch=0x3b;
-				ch=0;
-				break;
-
-			case KEY_F(2):			/* Function Key */
-				curs_nextgetch=0x3c;
-				ch=0;
-				break;
-
-			case KEY_F(3):			/* Function Key */
-				curs_nextgetch=0x3d;
-				ch=0;
-				break;
-
-			case KEY_F(4):			/* Function Key */
-				curs_nextgetch=0x3e;
-				ch=0;
-				break;
-
-			case KEY_F(5):			/* Function Key */
-				curs_nextgetch=0x3f;
-				ch=0;
-				break;
-
-			case KEY_F(6):			/* Function Key */
-				curs_nextgetch=0x40;
-				ch=0;
-				break;
-
-			case KEY_F(7):			/* Function Key */
-				curs_nextgetch=0x41;
-				ch=0;
-				break;
-
-			case KEY_F(8):			/* Function Key */
-				curs_nextgetch=0x42;
-				ch=0;
-				break;
-
-			case KEY_F(9):			/* Function Key */
-				curs_nextgetch=0x43;
-				ch=0;
-				break;
-
-			case KEY_F(10):			/* Function Key */
-				curs_nextgetch=0x44;
-				ch=0;
-				break;
-
-			case KEY_F(11):			/* Function Key */
-				curs_nextgetch=0x57;
-				ch=0;
-				break;
-
-			case KEY_F(12):			/* Function Key */
-				curs_nextgetch=0x58;
-				ch=0;
-				break;
-
-			case KEY_DC:            /* Delete character */
-				curs_nextgetch=0x53;
-				ch=0;
-				break;
-
-			case KEY_IC:            /* Insert char or enter insert mode */
-				curs_nextgetch=0x52;
-				ch=0;
-				break;
-
-			case KEY_EIC:            /* Exit insert char mode */
-				curs_nextgetch=0x52;
-				ch=0;
-				break;
-
-			case KEY_NPAGE:            /* Next page */
-				curs_nextgetch=0x51;
-				ch=0;
-				break;
-
-			case KEY_PPAGE:            /* Previous page */
-				curs_nextgetch=0x49;
-				ch=0;
-				break;
-
-			case KEY_ENTER:            /* Enter or send (unreliable) */
-				curs_nextgetch=0x0d;
-				ch=0;
-				break;
-
-			case KEY_A1:		/* Upper left of keypad */
-				curs_nextgetch=0x47;
-				ch=0;
-				break;
-
-			case KEY_A3:		/* Upper right of keypad */
-				curs_nextgetch=0x49;
-				ch=0;
-				break;
-
-			case KEY_B2:		/* Center of keypad */
-				curs_nextgetch=0x4c;
-				ch=0;
-				break;
-
-			case KEY_C1:		/* Lower left of keypad */
-				curs_nextgetch=0x4f;
-				ch=0;
-				break;
-
-			case KEY_C3:		/* Lower right of keypad */
-				curs_nextgetch=0x51;
-				ch=0;
-				break;
-
-			case KEY_BEG:		/* Beg (beginning) */
-				curs_nextgetch=0x47;
-				ch=0;
-				break;
-
-			case KEY_CANCEL:		/* Cancel */
-				curs_nextgetch=0x03;
-				ch=0;
-				break;
-
-			case KEY_END:		/* End */
-				curs_nextgetch=0x4f;
-				ch=0;
-				break;
-
-			case KEY_SELECT:		/* Select  - Is "End" in X */
-				curs_nextgetch=0x4f;
-				ch=0;
-				break;
-
-#ifdef NCURSES_VERSION_MAJOR
-			case KEY_MOUSE:			/* Mouse stuff */
-				if(getmouse(&mevnt)==OK) {
-					int evnt=0;
-					switch(mevnt.bstate) {
-						case BUTTON1_PRESSED:
-							evnt=CIOLIB_BUTTON_1_PRESS;
-							break;
-						case BUTTON1_RELEASED:
-							evnt=CIOLIB_BUTTON_1_RELEASE;
-							break;
-						case BUTTON2_PRESSED:
-							evnt=CIOLIB_BUTTON_2_PRESS;
-							break;
-						case BUTTON2_RELEASED:
-							evnt=CIOLIB_BUTTON_2_RELEASE;
-							break;
-						case BUTTON3_PRESSED:
-							evnt=CIOLIB_BUTTON_3_PRESS;
-							break;
-						case BUTTON3_RELEASED:
-							evnt=CIOLIB_BUTTON_3_RELEASE;
-							break;
-#ifdef BUTTON5_PRESSED
-						case BUTTON4_PRESSED:
-							evnt=CIOLIB_BUTTON_4_PRESS;
-							break;
-						case BUTTON5_PRESSED:
-							evnt=CIOLIB_BUTTON_5_PRESS;
-							break;
-#endif
-						case REPORT_MOUSE_POSITION:
-							evnt=CIOLIB_MOUSE_MOVE;
-							break;
-					}
-					ciomouse_gotevent(evnt, mevnt.x+1, mevnt.y+1, -1, -1);
-				}
-				break;
-#endif
-
-			default:
-				// Don't translate CTRL-x "keys"...
-				if (ch >= 32)
-					ch = cpchar_from_unicode_cpoint(getcodepage(), ch, 0);
-				break;
-		}
-	}
-	return(ch);
-}
-
-static int
-scale_integer_up(int from)
-{
-	int ret = from * 1000 / 256;
-
-	if (ret < 0)
-		ret = 0;
-	if (ret > 1000)
-		ret = 1000;
-	return ret;
-}
-
-uint32_t palette[16];
-int curs_attr2palette(uint8_t attr, uint32_t *fgp, uint32_t *bgp)
-{
-	uint32_t fg = attr & 0x0f;
-	uint32_t bg = (attr >> 4) & 0x0f;
-
-	if (!(vflags & CIOLIB_VIDEO_BGBRIGHT))
-		bg &= 0x07;
-	if (vflags & CIOLIB_VIDEO_NOBRIGHT)
-		fg &= 0x07;
-
-	if (fgp)
-		*fgp = palette[fg];
-	if (bgp)
-		*bgp = palette[bg];
-
-	return 1;
-}
-
-int curs_setpalette(uint32_t entry, uint16_t r, uint16_t g, uint16_t b)
-{
-	if (!can_change_color())
-		return 0;
-	init_color(curses_color(entry), scale_integer_up(r>>8), scale_integer_up(g>>8), scale_integer_up(b>>8));
-	return 1;
-}
-
-int curs_set_modepalette(uint32_t p[16])
-{
-	int i;
-
-	if (!can_change_color())
-		return 0;
-	memcpy(palette, p, sizeof(palette));
-	for (i = 0; i < 16; i++) {
-		struct dac_colors *c;
-		c = &dac_default[p[i]];
-		curs_setpalette(i, c->red<<8 | c->red, c->green<<8 | c->green, c->blue<<8 | c->blue);
-	}
-	return 1;
-}
-
-int curs_get_modepalette(uint32_t p[16])
-{
-	if (!can_change_color())
-		return 0;
-	memcpy(p, palette, sizeof(palette));
-	return 1;
-}
-
-void curs_textmode(int mode)
-{
-	int vm;
-	int maxx, maxy;
-
-	curs_resume();
-	getmaxyx(stdscr, maxy, maxx);
-	if (maxy > 255)
-		maxy = 255;
-	if (maxx > 255)
-		maxx = 255;
-	cio_textinfo.screenheight = maxy;
-	cio_textinfo.screenwidth = maxx;
-	if(has_colors())
-		cio_textinfo.currmode=COLOR_MODE;
-	else
-		cio_textinfo.currmode=MONO;
-
-	cio_textinfo.winleft=1;
-	cio_textinfo.wintop=1;
-	cio_textinfo.winright=cio_textinfo.screenwidth;
-	cio_textinfo.winbottom=cio_textinfo.screenheight;
-	cio_textinfo.attribute=7;
-	cio_textinfo.normattr=7;
-	cio_textinfo.curx=1;
-	cio_textinfo.cury=1;
-
-	if(can_change_color() && (vm = find_vmode(cio_textinfo.currmode)) != -1) {
-		curs_set_modepalette(palettes[vparams[vm].palette]);
-		cio_textinfo.normattr=cio_textinfo.attribute=vparams[vm].default_attr;
-		vflags = vparams[vm].flags;
-	}
-
-	return;
-}
-
-int curs_hidemouse(void)
-{
-/*
-	#ifdef NCURSES_VERSION_MAJOR
-		mousemask(0,NULL);
-		return(0);
-	#else
-		return(-1);
-	#endif
-*/
-	return(-1);
-}
-
-int curs_showmouse(void)
-{
-/*
-	#ifdef NCURSES_VERSION_MAJOR
-		if(mousemask(BUTTON1_PRESSED|BUTTON1_RELEASED|BUTTON2_PRESSED|BUTTON2_RELEASED|BUTTON3_PRESSED|BUTTON3_RELEASED|REPORT_MOUSE_POSITION,NULL)==BUTTON1_PRESSED|BUTTON1_RELEASED|BUTTON2_PRESSED|BUTTON2_RELEASED|BUTTON3_PRESSED|BUTTON3_RELEASED|REPORT_MOUSE_POSITION)
-			return(0);
-	#endif
-	return(-1);
-*/
-	return(-1);
-}
-
-void curs_beep(void)
-{
-	curs_resume();
-	beep();
-}
-
-int curs_getvideoflags(void)
-{
-	return vflags;
-}
-
-void curs_setvideoflags(int flags)
-{
-	flags &= (CIOLIB_VIDEO_NOBRIGHT|CIOLIB_VIDEO_BGBRIGHT|CIOLIB_VIDEO_NOBLINK);
-	if (COLORS < 16)
-		flags &= ~CIOLIB_VIDEO_BGBRIGHT;
-	vflags = flags;
-}
-
-int curs_setfont(int font, int force, int font_num)
-{
-	if (mode != CIOLIB_MODE_CURSES)
-		return 0;
-
-	if(font < 0 || font>(sizeof(conio_fontdata)/sizeof(struct conio_font_data_struct)-2))
-		return(0);
-
-	switch(font_num) {
-		case 0:
-			default_font=font;
-			/* Fall-through */
-		case 1:
-			current_font[0]=font;
-			break;
-		case 2:
-		case 3:
-		case 4:
-			current_font[font_num-1]=font;
-			break;
-	}
-
-	return(1);
-}
-
-int curs_getfont(int font_num)
-{
-	int ret;
-
-	if (font_num == 0)
-		ret = default_font;
-	else if (font_num > 4)
-		ret = -1;
-	else
-		ret = current_font[font_num - 1];
-
-	return ret;
-}
diff --git a/ciolib/curs_cio.h b/ciolib/curs_cio.h
deleted file mode 100644
index 5292e8bdef9f6749e372842583b3555a41a4c71a..0000000000000000000000000000000000000000
--- a/ciolib/curs_cio.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* $Id: curs_cio.h,v 1.19 2020/05/02 08:46:44 deuce Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifdef __unix__
-#if (defined CIOLIB_IMPORTS)
- #undef CIOLIB_IMPORTS
-#endif
-#if (defined CIOLIB_EXPORTS)
- #undef CIOLIB_EXPORTS
-#endif
-
-#include "ciolib.h"
-#undef beep
-#undef getch
-#undef ungetch
-#undef getmouse
-#undef ungetmouse
-#include "curs_fix.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-int curs_puttext(int sx, int sy, int ex, int ey, void *fillbuf);
-int curs_vmem_puttext(int sx, int sy, int ex, int ey, struct vmem_cell *fillbuf);
-int curs_vmem_gettext(int sx, int sy, int ex, int ey, struct vmem_cell *fillbuf);
-void curs_textattr(int attr);
-int curs_kbhit(void);
-void curs_gotoxy(int x, int y);
-void curs_suspend(void);
-void curs_resume(void);
-int curs_initciolib(long inmode);
-void curs_setcursortype(int type);
-int curs_getch(void);
-void curs_textmode(int mode);
-int curs_hidemouse(void);
-int curs_showmouse(void);
-void curs_beep(void);
-int curs_getvideoflags(void);
-void curs_setvideoflags(int flags);
-int curs_setfont(int font, int force, int font_num);
-int curs_getfont(int font_num);
-int curs_set_modepalette(uint32_t p[16]);
-int curs_get_modepalette(uint32_t p[16]);
-int curs_setpalette(uint32_t entry, uint16_t r, uint16_t g, uint16_t b);
-int curs_attr2palette(uint8_t attr, uint32_t *fgp, uint32_t *bgp);
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/ciolib/curs_fix.h b/ciolib/curs_fix.h
deleted file mode 100644
index a98cbe592ab0cdced60e01c27dc196d86a75b05c..0000000000000000000000000000000000000000
--- a/ciolib/curs_fix.h
+++ /dev/null
@@ -1,292 +0,0 @@
-/* $Id: curs_fix.h,v 1.6 2020/04/25 03:12:53 deuce Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifdef __DARWIN__
- #define _XOPEN_SOURCE_EXTENDED 1
- #include <ncurses.h>
-#else
- #ifdef __OpenBSD__
-  /* OpenBSD appears to ship with an old (5.7 from November 02, 2008) version
-   * of ncurses.  This apparently predates both _XOPEN_SOURCE >= 500 and
-   * NCURSES_WIDECHAR support for enabling wide characters.
-   * so, define _XOPEN_SOURCE_EXTENDED to get these. */
-  #define _XOPEN_SOURCE_EXTENDED 1
- #endif
- #define NCURSES_WIDECHAR 1
- #ifdef XCURSES
-  #include <xcurses.h>
- #else
-  #ifdef N_CURSES_LIB
-   #include <ncurses.h>
-  #else
-   #ifdef DEBIAN_HATES_YOU
-    #include <ncursesw/ncurses.h>
-   #else
-    #include <curses.h>
-   #endif
-  #endif
- #endif
-#endif
-
-#ifndef	ACS_SBSD
-#define ACS_SBSD	ACS_SBSS
-#endif
-
-#ifndef ACS_DBDS
-#define ACS_DBDS	ACS_SBSS
-#endif
-
-#ifndef ACS_BBDS
-#define	ACS_BBDS	ACS_BBSS
-#endif
-
-#ifndef ACS_BBSD
-#define ACS_BBSD	ACS_BBSS
-#endif
-
-#ifndef ACS_DBDD
-#define	ACS_DBDD	ACS_SBSS
-#endif
-
-#ifndef	ACS_DBDB
-#define	ACS_DBDB	ACS_SBSB
-#endif
-
-#ifndef ACS_BBDD
-#define ACS_BBDD	ACS_BBSS
-#endif
-
-#ifndef ACS_DBBD
-#define ACS_DBBD	ACS_SBBS
-#endif
-
-#ifndef ACS_DBBS
-#define ACS_DBBS	ACS_SBBS
-#endif
-
-#ifndef ACS_SBBD
-#define ACS_SBBD	ACS_SBBS
-#endif
-
-#ifndef ACS_SDSB
-#define ACS_SDSB	ACS_SSSB
-#endif
-
-#ifndef	ACS_DSDB
-#define ACS_DSDB	ACS_SSSB
-#endif
-
-#ifndef ACS_DDBB
-#define	ACS_DDBB	ACS_SSBB
-#endif
-
-#ifndef ACS_BDDB
-#define ACS_BDDB	ACS_BSSB
-#endif
-
-#ifndef ACS_DDBD
-#define ACS_DDBD	ACS_SSBS
-#endif
-
-#ifndef ACS_BDDD
-#define	ACS_BDDD	ACS_BSSS
-#endif
-
-#ifndef ACS_DDDB
-#define ACS_DDDB	ACS_SSSB
-#endif
-
-#ifndef ACS_BDBD
-#define ACS_BDBD	ACS_BSBS
-#endif
-
-#ifndef ACS_DDDD
-#define	ACS_DDDD	ACS_SSSS
-#endif
-
-#ifndef ACS_SDBD
-#define ACS_SDBD	ACS_SSBS
-#endif
-
-#ifndef ACS_DSBS
-#define ACS_DSBS	ACS_SSBS
-#endif
-
-#ifndef ACS_BDSD
-#define ACS_BDSD	ACS_BSSS
-#endif
-
-#ifndef	ACS_BSDS
-#define ACS_BSDS	ACS_BSSS
-#endif
-
-#ifndef	ACS_DSBB
-#define ACS_DSBB	ACS_SSBB
-#endif
-      
-#ifndef ACS_SDBB
-#define ACS_SDBB	ACS_SSBB
-#endif
-
-#ifndef ACS_BDSB
-#define ACS_BDSB	ACS_BSSB
-#endif
-
-#ifndef ACS_BSDB
-#define ACS_BSDB	ACS_BSSB
-#endif
-
-#ifndef ACS_DSDS
-#define	ACS_DSDS	ACS_SSSS
-#endif
-
-#ifndef ACS_SDSD
-#define	ACS_SDSD	ACS_SSSS
-#endif
-
-// Now wide...
-#ifndef	WACS_SBSD
-#define WACS_SBSD	WACS_SBSS
-#endif
-
-#ifndef WACS_DBDS
-#define WACS_DBDS	WACS_SBSS
-#endif
-
-#ifndef WACS_BBDS
-#define	WACS_BBDS	WACS_BBSS
-#endif
-
-#ifndef WACS_BBSD
-#define WACS_BBSD	WACS_BBSS
-#endif
-
-#ifndef WACS_DBDD
-#define	WACS_DBDD	WACS_SBSS
-#endif
-
-#ifndef	WACS_DBDB
-#define	WACS_DBDB	WACS_SBSB
-#endif
-
-#ifndef WACS_BBDD
-#define WACS_BBDD	WACS_BBSS
-#endif
-
-#ifndef WACS_DBBD
-#define WACS_DBBD	WACS_SBBS
-#endif
-
-#ifndef WACS_DBBS
-#define WACS_DBBS	WACS_SBBS
-#endif
-
-#ifndef WACS_SBBD
-#define WACS_SBBD	WACS_SBBS
-#endif
-
-#ifndef WACS_SDSB
-#define WACS_SDSB	WACS_SSSB
-#endif
-
-#ifndef	WACS_DSDB
-#define WACS_DSDB	WACS_SSSB
-#endif
-
-#ifndef WACS_DDBB
-#define	WACS_DDBB	WACS_SSBB
-#endif
-
-#ifndef WACS_BDDB
-#define WACS_BDDB	WACS_BSSB
-#endif
-
-#ifndef WACS_DDBD
-#define WACS_DDBD	WACS_SSBS
-#endif
-
-#ifndef WACS_BDDD
-#define	WACS_BDDD	WACS_BSSS
-#endif
-
-#ifndef WACS_DDDB
-#define WACS_DDDB	WACS_SSSB
-#endif
-
-#ifndef WACS_BDBD
-#define WACS_BDBD	WACS_BSBS
-#endif
-
-#ifndef WACS_DDDD
-#define	WACS_DDDD	WACS_SSSS
-#endif
-
-#ifndef WACS_SDBD
-#define WACS_SDBD	WACS_SSBS
-#endif
-
-#ifndef WACS_DSBS
-#define WACS_DSBS	WACS_SSBS
-#endif
-
-#ifndef WACS_BDSD
-#define WACS_BDSD	WACS_BSSS
-#endif
-
-#ifndef	WACS_BSDS
-#define WACS_BSDS	WACS_BSSS
-#endif
-
-#ifndef	WACS_DSBB
-#define WACS_DSBB	WACS_SSBB
-#endif
-
-#ifndef WACS_SDBB
-#define WACS_SDBB	WACS_SSBB
-#endif
-
-#ifndef WACS_BDSB
-#define WACS_BDSB	WACS_BSSB
-#endif
-
-#ifndef WACS_BSDB
-#define WACS_BSDB	WACS_BSSB
-#endif
-
-#ifndef WACS_DSDS
-#define	WACS_DSDS	WACS_SSSS
-#endif
-
-#ifndef WACS_SDSD
-#define	WACS_SDSD	WACS_SSSS
-#endif
diff --git a/ciolib/hqx.c b/ciolib/hqx.c
deleted file mode 100644
index 2d7fd4db5144466d21d0ca7f703a78fe775f74c8..0000000000000000000000000000000000000000
--- a/ciolib/hqx.c
+++ /dev/null
@@ -1,414 +0,0 @@
-/*
- * Copyright (c) 2014 Clément Bœsch
- *
- * This file is part of FFmpeg.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-/**
- * @file
- * hqx magnification filters (hq2x, hq3x, hq4x)
- *
- * Originally designed by Maxim Stephin.
- *
- * @see http://en.wikipedia.org/wiki/Hqx
- * @see http://web.archive.org/web/20131114143602/http://www.hiend3d.com/hq3x.html
- * @see http://blog.pkh.me/p/19-butchering-hqx-scaling-filters.html
- */
-
-#include <inttypes.h>
-
-#if 0
-/* (c1*w1 + c2*w2) >> s */
-inline __attribute__((always_inline)) uint32_t interp_2px(uint32_t c1, int w1, uint32_t c2, int w2, int s)
-{
-    return (((((c1 & 0xff00ff00) >> 8) * w1 + ((c2 & 0xff00ff00) >> 8) * w2) << (8 - s)) & 0xff00ff00) |
-           (((((c1 & 0x00ff00ff)     ) * w1 + ((c2 & 0x00ff00ff)     ) * w2) >>      s ) & 0x00ff00ff);
-}
-
-/* (c1*w1 + c2*w2 + c3*w3) >> s */
-inline __attribute__((always_inline)) uint32_t interp_3px(uint32_t c1, int w1, uint32_t c2, int w2, uint32_t c3, int w3, int s)
-{
-    return (((((c1 & 0xff00ff00) >> 8) * w1 + ((c2 & 0xff00ff00) >> 8) * w2 + ((c3 & 0xff00ff00) >> 8) * w3) << (8 - s)) & 0xff00ff00) |
-           (((((c1 & 0x00ff00ff)     ) * w1 + ((c2 & 0x00ff00ff)     ) * w2 + ((c3 & 0x00ff00ff)     ) * w3) >>      s ) & 0x00ff00ff);
-}
-#else
-/* (c1*w1 + c2*w2) >> s */
-inline __attribute__((always_inline)) uint32_t interp_2px(uint32_t c1, int w1, uint32_t c2, int w2, int s)
-{
-	return w2 > w1 ? c2 : c1;
-}
-
-/* (c1*w1 + c2*w2 + c3*w3) >> s */
-inline __attribute__((always_inline)) uint32_t interp_3px(uint32_t c1, int w1, uint32_t c2, int w2, uint32_t c3, int w3, int s)
-{
-	if (w3 > w2 && w3 > w1)
-		return c3;
-	if (w2 > w1)
-		return c2;
-	return c1;
-}
-#endif
-
-/* m is the mask of diff with the center pixel that matters in the pattern, and
- * r is the expected result (bit set to 1 if there is difference with the
- * center, 0 otherwise) */
-#define P(m, r) ((k_shuffled & (m)) == (r))
-
-/* adjust 012345678 to 01235678: the mask doesn't contain the (null) diff
- * between the center/current pixel and itself */
-#define DROP4(z) ((z) > 4 ? (z)-1 : (z))
-
-/* shuffle the input mask: move bit n (4-adjusted) to position stored in p<n> */
-#define SHF(x, rot, n) (((x) >> ((rot) ? 7-DROP4(n) : DROP4(n)) & 1) << DROP4(p##n))
-
-/* used to check if there is YUV difference between 2 pixels */
-#define WDIFF(c1, c2) (c1 != c2)
-
-/* bootstrap template for every interpolation code. It defines the shuffled
- * masks and surrounding pixels. The rot flag is used to indicate if it's a
- * rotation; its basic effect is to shuffle k using p8..p0 instead of p0..p8 */
-#define INTERP_BOOTSTRAP(rot)                                           \
-    const int k_shuffled = SHF(k,rot,0) | SHF(k,rot,1) | SHF(k,rot,2)   \
-                         | SHF(k,rot,3) |       0      | SHF(k,rot,5)   \
-                         | SHF(k,rot,6) | SHF(k,rot,7) | SHF(k,rot,8);  \
-                                                                        \
-    const uint32_t w0 = w[p0], w1 = w[p1],                              \
-                   w3 = w[p3], w4 = w[p4], w5 = w[p5],                  \
-                               w7 = w[p7]
-
-/* Assuming p0..p8 is mapped to pixels 0..8, this function interpolates the
- * top-left pixel in the total of the 2x2 pixels to interpolates. The function
- * is also used for the 3 other pixels */
-inline __attribute__((always_inline)) uint32_t hq2x_interp_1x1(int k,
-                                                 const uint32_t *w,
-                                                 int p0, int p1, int p2,
-                                                 int p3, int p4, int p5,
-                                                 int p6, int p7, int p8)
-{
-    INTERP_BOOTSTRAP(0);
-
-    if ((P(0xbf,0x37) || P(0xdb,0x13)) && WDIFF(w1, w5))
-        return interp_2px(w4, 3, w3, 1, 2);
-    if ((P(0xdb,0x49) || P(0xef,0x6d)) && WDIFF(w7, w3))
-        return interp_2px(w4, 3, w1, 1, 2);
-    if ((P(0x0b,0x0b) || P(0xfe,0x4a) || P(0xfe,0x1a)) && WDIFF(w3, w1))
-        return w4;
-    if ((P(0x6f,0x2a) || P(0x5b,0x0a) || P(0xbf,0x3a) || P(0xdf,0x5a) ||
-         P(0x9f,0x8a) || P(0xcf,0x8a) || P(0xef,0x4e) || P(0x3f,0x0e) ||
-         P(0xfb,0x5a) || P(0xbb,0x8a) || P(0x7f,0x5a) || P(0xaf,0x8a) ||
-         P(0xeb,0x8a)) && WDIFF(w3, w1))
-        return interp_2px(w4, 3, w0, 1, 2);
-    if (P(0x0b,0x08))
-        return interp_3px(w4, 2, w0, 1, w1, 1, 2);
-    if (P(0x0b,0x02))
-        return interp_3px(w4, 2, w0, 1, w3, 1, 2);
-    if (P(0x2f,0x2f))
-        return interp_3px(w4, 14, w3, 1, w1, 1, 4);
-    if (P(0xbf,0x37) || P(0xdb,0x13))
-        return interp_3px(w4, 5, w1, 2, w3, 1, 3);
-    if (P(0xdb,0x49) || P(0xef,0x6d))
-        return interp_3px(w4, 5, w3, 2, w1, 1, 3);
-    if (P(0x1b,0x03) || P(0x4f,0x43) || P(0x8b,0x83) || P(0x6b,0x43))
-        return interp_2px(w4, 3, w3, 1, 2);
-    if (P(0x4b,0x09) || P(0x8b,0x89) || P(0x1f,0x19) || P(0x3b,0x19))
-        return interp_2px(w4, 3, w1, 1, 2);
-    if (P(0x7e,0x2a) || P(0xef,0xab) || P(0xbf,0x8f) || P(0x7e,0x0e))
-        return interp_3px(w4, 2, w3, 3, w1, 3, 3);
-    if (P(0xfb,0x6a) || P(0x6f,0x6e) || P(0x3f,0x3e) || P(0xfb,0xfa) ||
-        P(0xdf,0xde) || P(0xdf,0x1e))
-        return interp_2px(w4, 3, w0, 1, 2);
-    if (P(0x0a,0x00) || P(0x4f,0x4b) || P(0x9f,0x1b) || P(0x2f,0x0b) ||
-        P(0xbe,0x0a) || P(0xee,0x0a) || P(0x7e,0x0a) || P(0xeb,0x4b) ||
-        P(0x3b,0x1b))
-        return interp_3px(w4, 2, w3, 1, w1, 1, 2);
-    return interp_3px(w4, 6, w3, 1, w1, 1, 3);
-}
-
-/* Assuming p0..p8 is mapped to pixels 0..8, this function interpolates the
- * top-left and top-center pixel in the total of the 3x3 pixels to
- * interpolates. The function is also used for the 3 other couples of pixels
- * defining the outline. The center pixel is not defined through this function,
- * since it's just the same as the original value. */
-inline __attribute__((always_inline)) void hq3x_interp_2x1(uint32_t *dst, int dst_linesize,
-                                             int k,
-                                             const uint32_t *w,
-                                             int pos00, int pos01,
-                                             int p0, int p1, int p2,
-                                             int p3, int p4, int p5,
-                                             int p6, int p7, int p8,
-                                             int rotate)
-{
-    INTERP_BOOTSTRAP(rotate);
-
-    uint32_t *dst00 = &dst[dst_linesize*(pos00>>1) + (pos00&1)];
-    uint32_t *dst01 = &dst[dst_linesize*(pos01>>1) + (pos01&1)];
-
-    if ((P(0xdb,0x49) || P(0xef,0x6d)) && WDIFF(w7, w3))
-        *dst00 = interp_2px(w4, 3, w1, 1, 2);
-    else if ((P(0xbf,0x37) || P(0xdb,0x13)) && WDIFF(w1, w5))
-        *dst00 = interp_2px(w4, 3, w3, 1, 2);
-    else if ((P(0x0b,0x0b) || P(0xfe,0x4a) || P(0xfe,0x1a)) && WDIFF(w3, w1))
-        *dst00 = w4;
-    else if ((P(0x6f,0x2a) || P(0x5b,0x0a) || P(0xbf,0x3a) || P(0xdf,0x5a) ||
-              P(0x9f,0x8a) || P(0xcf,0x8a) || P(0xef,0x4e) || P(0x3f,0x0e) ||
-              P(0xfb,0x5a) || P(0xbb,0x8a) || P(0x7f,0x5a) || P(0xaf,0x8a) ||
-              P(0xeb,0x8a)) && WDIFF(w3, w1))
-        *dst00 = interp_2px(w4, 3, w0, 1, 2);
-    else if (P(0x4b,0x09) || P(0x8b,0x89) || P(0x1f,0x19) || P(0x3b,0x19))
-        *dst00 = interp_2px(w4, 3, w1, 1, 2);
-    else if (P(0x1b,0x03) || P(0x4f,0x43) || P(0x8b,0x83) || P(0x6b,0x43))
-        *dst00 = interp_2px(w4, 3, w3, 1, 2);
-    else if (P(0x7e,0x2a) || P(0xef,0xab) || P(0xbf,0x8f) || P(0x7e,0x0e))
-        *dst00 = interp_2px(w3, 1, w1, 1, 1);
-    else if (P(0x4f,0x4b) || P(0x9f,0x1b) || P(0x2f,0x0b) || P(0xbe,0x0a) ||
-             P(0xee,0x0a) || P(0x7e,0x0a) || P(0xeb,0x4b) || P(0x3b,0x1b))
-        *dst00 = interp_3px(w4, 2, w3, 7, w1, 7, 4);
-    else if (P(0x0b,0x08) || P(0xf9,0x68) || P(0xf3,0x62) || P(0x6d,0x6c) ||
-             P(0x67,0x66) || P(0x3d,0x3c) || P(0x37,0x36) || P(0xf9,0xf8) ||
-             P(0xdd,0xdc) || P(0xf3,0xf2) || P(0xd7,0xd6) || P(0xdd,0x1c) ||
-             P(0xd7,0x16) || P(0x0b,0x02))
-        *dst00 = interp_2px(w4, 3, w0, 1, 2);
-    else
-        *dst00 = interp_3px(w4, 2, w3, 1, w1, 1, 2);
-
-    if ((P(0xfe,0xde) || P(0x9e,0x16) || P(0xda,0x12) || P(0x17,0x16) ||
-         P(0x5b,0x12) || P(0xbb,0x12)) && WDIFF(w1, w5))
-        *dst01 = w4;
-    else if ((P(0x0f,0x0b) || P(0x5e,0x0a) || P(0xfb,0x7b) || P(0x3b,0x0b) ||
-              P(0xbe,0x0a) || P(0x7a,0x0a)) && WDIFF(w3, w1))
-        *dst01 = w4;
-    else if (P(0xbf,0x8f) || P(0x7e,0x0e) || P(0xbf,0x37) || P(0xdb,0x13))
-        *dst01 = interp_2px(w1, 3, w4, 1, 2);
-    else if (P(0x02,0x00) || P(0x7c,0x28) || P(0xed,0xa9) || P(0xf5,0xb4) ||
-             P(0xd9,0x90))
-        *dst01 = interp_2px(w4, 3, w1, 1, 2);
-    else if (P(0x4f,0x4b) || P(0xfb,0x7b) || P(0xfe,0x7e) || P(0x9f,0x1b) ||
-             P(0x2f,0x0b) || P(0xbe,0x0a) || P(0x7e,0x0a) || P(0xfb,0x4b) ||
-             P(0xfb,0xdb) || P(0xfe,0xde) || P(0xfe,0x56) || P(0x57,0x56) ||
-             P(0x97,0x16) || P(0x3f,0x1e) || P(0xdb,0x12) || P(0xbb,0x12))
-        *dst01 = interp_2px(w4, 7, w1, 1, 3);
-    else
-        *dst01 = w4;
-}
-
-/* Assuming p0..p8 is mapped to pixels 0..8, this function interpolates the
- * top-left block of 2x2 pixels in the total of the 4x4 pixels (or 4 blocks) to
- * interpolates. The function is also used for the 3 other blocks of 2x2
- * pixels. */
-inline __attribute__((always_inline)) void hq4x_interp_2x2(uint32_t *dst, int dst_linesize,
-                                             int k,
-                                             const uint32_t *w,
-                                             int pos00, int pos01,
-                                             int pos10, int pos11,
-                                             int p0, int p1, int p2,
-                                             int p3, int p4, int p5,
-                                             int p6, int p7, int p8)
-{
-    INTERP_BOOTSTRAP(0);
-
-    uint32_t *dst00 = &dst[dst_linesize*(pos00>>1) + (pos00&1)];
-    uint32_t *dst01 = &dst[dst_linesize*(pos01>>1) + (pos01&1)];
-    uint32_t *dst10 = &dst[dst_linesize*(pos10>>1) + (pos10&1)];
-    uint32_t *dst11 = &dst[dst_linesize*(pos11>>1) + (pos11&1)];
-
-    const int cond00 = (P(0xbf,0x37) || P(0xdb,0x13)) && WDIFF(w1, w5);
-    const int cond01 = (P(0xdb,0x49) || P(0xef,0x6d)) && WDIFF(w7, w3);
-    const int cond02 = (P(0x6f,0x2a) || P(0x5b,0x0a) || P(0xbf,0x3a) ||
-                        P(0xdf,0x5a) || P(0x9f,0x8a) || P(0xcf,0x8a) ||
-                        P(0xef,0x4e) || P(0x3f,0x0e) || P(0xfb,0x5a) ||
-                        P(0xbb,0x8a) || P(0x7f,0x5a) || P(0xaf,0x8a) ||
-                        P(0xeb,0x8a)) && WDIFF(w3, w1);
-    const int cond03 = P(0xdb,0x49) || P(0xef,0x6d);
-    const int cond04 = P(0xbf,0x37) || P(0xdb,0x13);
-    const int cond05 = P(0x1b,0x03) || P(0x4f,0x43) || P(0x8b,0x83) ||
-                       P(0x6b,0x43);
-    const int cond06 = P(0x4b,0x09) || P(0x8b,0x89) || P(0x1f,0x19) ||
-                       P(0x3b,0x19);
-    const int cond07 = P(0x0b,0x08) || P(0xf9,0x68) || P(0xf3,0x62) ||
-                       P(0x6d,0x6c) || P(0x67,0x66) || P(0x3d,0x3c) ||
-                       P(0x37,0x36) || P(0xf9,0xf8) || P(0xdd,0xdc) ||
-                       P(0xf3,0xf2) || P(0xd7,0xd6) || P(0xdd,0x1c) ||
-                       P(0xd7,0x16) || P(0x0b,0x02);
-    const int cond08 = (P(0x0f,0x0b) || P(0x2b,0x0b) || P(0xfe,0x4a) ||
-                        P(0xfe,0x1a)) && WDIFF(w3, w1);
-    const int cond09 = P(0x2f,0x2f);
-    const int cond10 = P(0x0a,0x00);
-    const int cond11 = P(0x0b,0x09);
-    const int cond12 = P(0x7e,0x2a) || P(0xef,0xab);
-    const int cond13 = P(0xbf,0x8f) || P(0x7e,0x0e);
-    const int cond14 = P(0x4f,0x4b) || P(0x9f,0x1b) || P(0x2f,0x0b) ||
-                       P(0xbe,0x0a) || P(0xee,0x0a) || P(0x7e,0x0a) ||
-                       P(0xeb,0x4b) || P(0x3b,0x1b);
-    const int cond15 = P(0x0b,0x03);
-
-    if (cond00)
-        *dst00 = interp_2px(w4, 5, w3, 3, 3);
-    else if (cond01)
-        *dst00 = interp_2px(w4, 5, w1, 3, 3);
-    else if ((P(0x0b,0x0b) || P(0xfe,0x4a) || P(0xfe,0x1a)) && WDIFF(w3, w1))
-        *dst00 = w4;
-    else if (cond02)
-        *dst00 = interp_2px(w4, 5, w0, 3, 3);
-    else if (cond03)
-        *dst00 = interp_2px(w4, 3, w3, 1, 2);
-    else if (cond04)
-        *dst00 = interp_2px(w4, 3, w1, 1, 2);
-    else if (cond05)
-        *dst00 = interp_2px(w4, 5, w3, 3, 3);
-    else if (cond06)
-        *dst00 = interp_2px(w4, 5, w1, 3, 3);
-    else if (P(0x0f,0x0b) || P(0x5e,0x0a) || P(0x2b,0x0b) || P(0xbe,0x0a) ||
-             P(0x7a,0x0a) || P(0xee,0x0a))
-        *dst00 = interp_2px(w1, 1, w3, 1, 1);
-    else if (cond07)
-        *dst00 = interp_2px(w4, 5, w0, 3, 3);
-    else
-        *dst00 = interp_3px(w4, 2, w1, 1, w3, 1, 2);
-
-    if (cond00)
-        *dst01 = interp_2px(w4, 7, w3, 1, 3);
-    else if (cond08)
-        *dst01 = w4;
-    else if (cond02)
-        *dst01 = interp_2px(w4, 3, w0, 1, 2);
-    else if (cond09)
-        *dst01 = w4;
-    else if (cond10)
-        *dst01 = interp_3px(w4, 5, w1, 2, w3, 1, 3);
-    else if (P(0x0b,0x08))
-        *dst01 = interp_3px(w4, 5, w1, 2, w0, 1, 3);
-    else if (cond11)
-        *dst01 = interp_2px(w4, 5, w1, 3, 3);
-    else if (cond04)
-        *dst01 = interp_2px(w1, 3, w4, 1, 2);
-    else if (cond12)
-        *dst01 = interp_3px(w1, 2, w4, 1, w3, 1, 2);
-    else if (cond13)
-        *dst01 = interp_2px(w1, 5, w3, 3, 3);
-    else if (cond05)
-        *dst01 = interp_2px(w4, 7, w3, 1, 3);
-    else if (P(0xf3,0x62) || P(0x67,0x66) || P(0x37,0x36) || P(0xf3,0xf2) ||
-             P(0xd7,0xd6) || P(0xd7,0x16) || P(0x0b,0x02))
-        *dst01 = interp_2px(w4, 3, w0, 1, 2);
-    else if (cond14)
-        *dst01 = interp_2px(w1, 1, w4, 1, 1);
-    else
-        *dst01 = interp_2px(w4, 3, w1, 1, 2);
-
-    if (cond01)
-        *dst10 = interp_2px(w4, 7, w1, 1, 3);
-    else if (cond08)
-        *dst10 = w4;
-    else if (cond02)
-        *dst10 = interp_2px(w4, 3, w0, 1, 2);
-    else if (cond09)
-        *dst10 = w4;
-    else if (cond10)
-        *dst10 = interp_3px(w4, 5, w3, 2, w1, 1, 3);
-    else if (P(0x0b,0x02))
-        *dst10 = interp_3px(w4, 5, w3, 2, w0, 1, 3);
-    else if (cond15)
-        *dst10 = interp_2px(w4, 5, w3, 3, 3);
-    else if (cond03)
-        *dst10 = interp_2px(w3, 3, w4, 1, 2);
-    else if (cond13)
-        *dst10 = interp_3px(w3, 2, w4, 1, w1, 1, 2);
-    else if (cond12)
-        *dst10 = interp_2px(w3, 5, w1, 3, 3);
-    else if (cond06)
-        *dst10 = interp_2px(w4, 7, w1, 1, 3);
-    else if (P(0x0b,0x08) || P(0xf9,0x68) || P(0x6d,0x6c) || P(0x3d,0x3c) ||
-             P(0xf9,0xf8) || P(0xdd,0xdc) || P(0xdd,0x1c))
-        *dst10 = interp_2px(w4, 3, w0, 1, 2);
-    else if (cond14)
-        *dst10 = interp_2px(w3, 1, w4, 1, 1);
-    else
-        *dst10 = interp_2px(w4, 3, w3, 1, 2);
-
-    if ((P(0x7f,0x2b) || P(0xef,0xab) || P(0xbf,0x8f) || P(0x7f,0x0f)) &&
-         WDIFF(w3, w1))
-        *dst11 = w4;
-    else if (cond02)
-        *dst11 = interp_2px(w4, 7, w0, 1, 3);
-    else if (cond15)
-        *dst11 = interp_2px(w4, 7, w3, 1, 3);
-    else if (cond11)
-        *dst11 = interp_2px(w4, 7, w1, 1, 3);
-    else if (P(0x0a,0x00) || P(0x7e,0x2a) || P(0xef,0xab) || P(0xbf,0x8f) ||
-             P(0x7e,0x0e))
-        *dst11 = interp_3px(w4, 6, w3, 1, w1, 1, 3);
-    else if (cond07)
-        *dst11 = interp_2px(w4, 7, w0, 1, 3);
-    else
-        *dst11 = w4;
-}
-
-void hqx_filter(uint32_t* src, uint32_t* dst, int width, int height, int n)
-{
-    int x, y;
-    const int dst32_linesize = width * n;
-    const int src32_linesize = width;
-    uint32_t *src32, *dst32;
-
-    src32 = src;
-    dst32 = dst;
-    for (y = 0; y < height; y++) {
-        const int prevline = y > 0          ? -src32_linesize : 0;
-        const int nextline = y < height - 1 ?  src32_linesize : 0;
-
-        for (x = 0; x < width; x++) {
-            const int prevcol = x > 0        ? -1 : 0;
-            const int nextcol = x < width -1 ?  1 : 0;
-            const uint32_t w[3*3] = {
-                src32[prevcol + prevline], src32[prevline], src32[prevline + nextcol],
-                src32[prevcol           ], src32[       0], src32[           nextcol],
-                src32[prevcol + nextline], src32[nextline], src32[nextline + nextcol]
-            };
-            const uint32_t yuv1 = w[4];
-            const int pattern = (w[4] != w[0] ? 1 : 0)
-                              | (w[4] != w[1] ? 1 : 0) << 1
-                              | (w[4] != w[2] ? 1 : 0) << 2
-                              | (w[4] != w[3] ? 1 : 0) << 3
-                              | (w[4] != w[5] ? 1 : 0) << 4
-                              | (w[4] != w[6] ? 1 : 0) << 5
-                              | (w[4] != w[7] ? 1 : 0) << 6
-                              | (w[4] != w[8] ? 1 : 0) << 7;
-
-            if (n == 2) {
-                dst32[dst32_linesize*0 + 0] = hq2x_interp_1x1(pattern, w, 0,1,2,3,4,5,6,7,8);  // 00
-                dst32[dst32_linesize*0 + 1] = hq2x_interp_1x1(pattern, w, 2,1,0,5,4,3,8,7,6);  // 01 (vert mirrored)
-                dst32[dst32_linesize*1 + 0] = hq2x_interp_1x1(pattern, w, 6,7,8,3,4,5,0,1,2);  // 10 (horiz mirrored)
-                dst32[dst32_linesize*1 + 1] = hq2x_interp_1x1(pattern, w, 8,7,6,5,4,3,2,1,0);  // 11 (center mirrored)
-            } else if (n == 3) {
-                hq3x_interp_2x1(dst32,                        dst32_linesize, pattern, w, 0,1, 0,1,2,3,4,5,6,7,8, 0);  // 00 01
-                hq3x_interp_2x1(dst32 + 1,                    dst32_linesize, pattern, w, 1,3, 2,5,8,1,4,7,0,3,6, 1);  // 02 12 (rotated to the right)
-                hq3x_interp_2x1(dst32 + 1*dst32_linesize,     dst32_linesize, pattern, w, 2,0, 6,3,0,7,4,1,8,5,2, 1);  // 20 10 (rotated to the left)
-                hq3x_interp_2x1(dst32 + 1*dst32_linesize + 1, dst32_linesize, pattern, w, 3,2, 8,7,6,5,4,3,2,1,0, 0);  // 22 21 (center mirrored)
-                dst32[dst32_linesize + 1] = w[4];                                                                           // 11
-            } else if (n == 4) {
-                hq4x_interp_2x2(dst32,                        dst32_linesize, pattern, w, 0,1,2,3, 0,1,2,3,4,5,6,7,8); // 00 01 10 11
-                hq4x_interp_2x2(dst32 + 2,                    dst32_linesize, pattern, w, 1,0,3,2, 2,1,0,5,4,3,8,7,6); // 02 03 12 13 (vert mirrored)
-                hq4x_interp_2x2(dst32 + 2*dst32_linesize,     dst32_linesize, pattern, w, 2,3,0,1, 6,7,8,3,4,5,0,1,2); // 20 21 30 31 (horiz mirrored)
-                hq4x_interp_2x2(dst32 + 2*dst32_linesize + 2, dst32_linesize, pattern, w, 3,2,1,0, 8,7,6,5,4,3,2,1,0); // 22 23 32 33 (center mirrored)
-            } else {
-		return;
-            }
-
-            src32 += 1;
-            dst32 += n;
-        }
-	dst32 += dst32_linesize * (n - 1);
-    }
-}
diff --git a/ciolib/hqx.h b/ciolib/hqx.h
deleted file mode 100644
index c9f347e05ca6090d1f32a6fd091fe005ef71fec2..0000000000000000000000000000000000000000
--- a/ciolib/hqx.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <inttypes.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void hqx_filter(uint32_t* src, uint32_t* dst, int height, int width, int n);
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/ciolib/keys.h b/ciolib/keys.h
deleted file mode 100644
index 7a8bdc1f323b428fc365c5db2afecee59c5876a2..0000000000000000000000000000000000000000
--- a/ciolib/keys.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* This header file is dead. */
-#error This file is obsolete!
diff --git a/ciolib/makefont.pl b/ciolib/makefont.pl
deleted file mode 100755
index 65d57520081bce65f017e9befab60088feb5dfad..0000000000000000000000000000000000000000
--- a/ciolib/makefont.pl
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/local/bin/perl
-
-my @sources = (
-	'font/plane00/unifont-base.hex',
-	'font/plane00/spaces.hex',
-	'font/plane00/wqy.hex',
-	'font/plane00/hangul-syllables.hex',
-	'font/plane00/copyleft.hex',
-	'font/plane00csur/plane00csur.hex',
-	'font/plane00csur/plane00csur-spaces.hex',
-	'font/plane00/alt/codepage-437.hex',
-	'font/plane01/plane01.hex',
-	'font/plane01/space.hex',
-	'font/plane0E/plane0E.hex',
-	'font/plane0Fcsur/plane0Fcsur.hex'
-);
-
-my %font;
-foreach my $source (@sources) {
-	open IN,'<',$source;
-	while (<IN>) {
-		chomp;
-		my ($code, $data) = split(':');
-		$code = hex($code);
-		$data =~ s/([0-9A-F]{2})/\\x$1/g;
-		if (defined $font{$code} && $font{$code} ne $data) {
-			if ($source ne './font/plane00/alt/codepage-437.hex') {
-				die "Item $code already exists ($source)!";
-			}
-		}
-		$font{$code} = $data;
-	}
-	close IN;
-}
-
-print "#include <stdint.h>\n";
-print "#include <stdbool.h>\n\n";
-print "struct unifont_entry {\n";
-print "	const uint32_t cp;\n";
-print "	const bool wide;\n";
-print "	const char * const data;\n";
-print "};\n\n";
-print "const struct unifont_entry unifont[",(scalar keys %font),"] = {\n";
-foreach my $cp (sort {$a <=> $b} keys %font) {
-	my $wide = length($font{$cp}) > 64 ? 1 : 0;
-	printf("	{0x%05x, %d, \"%s\"},\n", $cp, $wide, $font{$cp});
-}
-print "};\n";
diff --git a/ciolib/mouse.c b/ciolib/mouse.c
deleted file mode 100644
index 423016dff3175ea448ff4f8f247a6a2ec1e0eeec..0000000000000000000000000000000000000000
--- a/ciolib/mouse.c
+++ /dev/null
@@ -1,612 +0,0 @@
-/* $Id: mouse.c,v 1.48 2020/06/27 00:04:45 deuce Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <stdlib.h>
-#include <string.h>
-
-#include <genwrap.h>
-#include <semwrap.h>
-#include <threadwrap.h>
-#include <link_list.h>
-
-#include "ciolib.h"
-
-#define MSEC_CLOCK()	(msclock()*MSCLOCKS_PER_SEC/1000)
-
-enum {
-	 MOUSE_NOSTATE
-	,MOUSE_SINGLEPRESSED
-	,MOUSE_CLICKED
-	,MOUSE_DOUBLEPRESSED
-	,MOUSE_DOUBLECLICKED
-	,MOUSE_TRIPLEPRESSED
-	,MOUSE_TRIPLECLICKED
-	,MOUSE_QUADPRESSED
-	,MOUSE_QUADCLICKED
-	,MOUSE_DRAGSTARTED
-};
-
-struct in_mouse_event {
-	int	event;
-	int	x;
-	int	y;
-	int	x_res;
-	int	y_res;
-	clock_t	ts;
-	void	*nextevent;
-};
-
-struct out_mouse_event {
-	int event;
-	int bstate;
-	int kbsm;		/* Known button state mask */
-	int startx;
-	int starty;
-	int endx;
-	int endy;
-	int startx_res;
-	int starty_res;
-	int endx_res;
-	int endy_res;
-	void *nextevent;
-};
-
-struct mouse_state {
-	int	buttonstate;			/* Current state of all buttons - bitmap */
-	int	knownbuttonstatemask;	/* Mask of buttons that have done something since
-								 * We started watching... the rest are actually in
-								 * an unknown state */
-	int	button_state[5];		/* Expanded state of each button */
-	int	button_x[5];			/* Start X/Y position of the current state */
-	int	button_y[5];
-	int	button_x_res[5];			/* Start X/Y position of the current state */
-	int	button_y_res[5];
-	clock_t	timeout[5];	/* Button event timeouts (timespecs ie: time of expiry) */
-	int	curx;					/* Current X position */
-	int	cury;					/* Current Y position */
-	int	curx_res;					/* Current X position */
-	int	cury_res;					/* Current Y position */
-	int	events;					/* Currently enabled events */
-	int	click_timeout;			/* Timeout between press and release events for a click (ms) */
-	int	multi_timeout;			/* Timeout after a click for detection of multi clicks (ms) */
-	int	click_drift;			/* Allowed "drift" during a click event */
-	link_list_t	input;
-	link_list_t	output;
-};
-
-struct mouse_state state;
-uint64_t mouse_events=0;
-int ciolib_mouse_initialized=0;
-static int ungot=0;
-pthread_mutex_t unget_mutex;
-
-void init_mouse(void)
-{
-	memset(&state,0,sizeof(state));
-	state.click_timeout=0;
-	state.multi_timeout=300;
-	listInit(&state.input,LINK_LIST_SEMAPHORE|LINK_LIST_MUTEX);
-	listInit(&state.output,LINK_LIST_SEMAPHORE|LINK_LIST_MUTEX);
-	pthread_mutex_init(&unget_mutex, NULL);
-	ciolib_mouse_initialized=1;
-}
-
-void mousestate(int *x, int *y, uint8_t *buttons)
-{
-	if (!ciolib_mouse_initialized) {
-		if (x)
-			*x = -1;
-		if (y)
-			*y = -1;
-		return;
-	}
-	if (x)
-		*x = state.curx;
-	if (y)
-		*y = state.cury;
-	if (buttons)
-		*buttons = (state.buttonstate & 0xff);
-	return;
-}
-
-void mousestate_res(int *x, int *y, uint8_t *buttons)
-{
-	if (!ciolib_mouse_initialized) {
-		if (x)
-			*x = -1;
-		if (y)
-			*y = -1;
-		return;
-	}
-	if (x)
-		*x = state.curx_res;
-	if (y)
-		*y = state.cury_res;
-	if (buttons)
-		*buttons = (state.buttonstate & 0xff);
-	return;
-}
-
-uint64_t ciomouse_setevents(uint64_t events)
-{
-	mouse_events=events;
-	return mouse_events;
-}
-
-uint64_t ciomouse_addevents(uint64_t events)
-{
-	mouse_events |= events;
-	return mouse_events;
-}
-
-uint64_t ciomouse_delevents(uint64_t events)
-{
-	mouse_events &= ~events;
-	return mouse_events;
-}
-
-uint64_t ciomouse_addevent(uint64_t event)
-{
-	mouse_events |= (UINT64_C(1)<<event);
-	return mouse_events;
-}
-
-uint64_t ciomouse_delevent(uint64_t event)
-{
-	mouse_events &= ~(UINT64_C(1)<<event);
-	return mouse_events;
-}
-
-void ciomouse_gotevent(int event, int x, int y, int x_res, int y_res)
-{
-	struct in_mouse_event *ime;
-
-	while(!ciolib_mouse_initialized)
-		SLEEP(1);
-	ime=(struct in_mouse_event *)malloc(sizeof(struct in_mouse_event));
-	if(ime) {
-		ime->ts=MSEC_CLOCK();
-		ime->event=event;
-		ime->x=x;
-		ime->y=y;
-		ime->x_res=x_res;
-		ime->y_res=y_res;
-		ime->nextevent=NULL;
-
-		listPushNode(&state.input,ime);
-	}
-}
-
-void add_outevent(int event, int x, int y, int xres, int yres)
-{
-	struct out_mouse_event *ome;
-	int	but;
-
-	if(!(mouse_events & UINT64_C(1)<<event))
-		return;
-	ome=(struct out_mouse_event *)malloc(sizeof(struct out_mouse_event));
-
-	if(ome) {
-		but=CIOLIB_BUTTON_NUMBER(event);
-		ome->event=event;
-		ome->bstate=state.buttonstate;
-		ome->kbsm=state.knownbuttonstatemask;
-		ome->startx=but?state.button_x[but-1]:state.curx;
-		ome->starty=but?state.button_y[but-1]:state.cury;
-		ome->endx=x;
-		ome->endy=y;
-		ome->startx_res=but ? state.button_x_res[but-1] : state.curx_res;
-		ome->starty_res=but ? state.button_y_res[but-1] : state.cury_res;
-		ome->endx_res=xres;
-		ome->endy_res=yres;
-
-		ome->nextevent=(struct out_mouse_event *)NULL;
-
-		listPushNode(&state.output,ome);
-	}
-}
-
-int more_multies(int button, int clicks)
-{
-	switch(clicks) {
-		case 0:
-			if(mouse_events & (UINT64_C(1)<<CIOLIB_BUTTON_CLICK(button)))
-				return(1);
-			/* Fall-through */
-		case 1:
-			if(mouse_events & (UINT64_C(1)<<CIOLIB_BUTTON_DBL_CLICK(button)))
-				return(1);
-			/* Fall-through */
-		case 2:
-			if(mouse_events & (UINT64_C(1)<<CIOLIB_BUTTON_TRPL_CLICK(button)))
-				return(1);
-			/* Fall-through */
-		case 3:
-			if(mouse_events & (UINT64_C(1)<<CIOLIB_BUTTON_QUAD_CLICK(button)))
-				return(1);
-			/* Fall-through */
-	}
-	return(0);
-}
-
-void ciolib_mouse_thread(void *data)
-{
-	int	timedout;
-	int timeout_button=0;
-	int but;
-	int delay;
-	clock_t	ttime=0;
-
-	SetThreadName("Mouse");
-	init_mouse();
-	while(1) {
-		timedout=0;
-		if(timeout_button) {
-			delay=state.timeout[timeout_button-1]-MSEC_CLOCK();
-			if(delay<=0) {
-				timedout=1;
-			}
-			else {
-				timedout=!listSemTryWaitBlock(&state.input,delay);
-			}
-		}
-		else {
-			listSemWait(&state.input);
-		}
-		if(timedout) {
-			state.timeout[timeout_button-1]=0;
-			switch(state.button_state[timeout_button-1]) {
-				case MOUSE_SINGLEPRESSED:
-					/* Press event */
-					add_outevent(CIOLIB_BUTTON_PRESS(timeout_button),state.button_x[timeout_button-1],state.button_y[timeout_button-1],state.button_x_res[timeout_button-1],state.button_y_res[timeout_button-1]);
-					break;
-				case MOUSE_CLICKED:
-					/* Click Event */
-					add_outevent(CIOLIB_BUTTON_CLICK(timeout_button),state.button_x[timeout_button-1],state.button_y[timeout_button-1],state.button_x_res[timeout_button-1],state.button_y_res[timeout_button-1]);
-					break;
-				case MOUSE_DOUBLEPRESSED:
-					/* Click event, then press event */
-					add_outevent(CIOLIB_BUTTON_CLICK(timeout_button),state.button_x[timeout_button-1],state.button_y[timeout_button-1],state.button_x_res[timeout_button-1],state.button_y_res[timeout_button-1]);
-					add_outevent(CIOLIB_BUTTON_PRESS(timeout_button),state.button_x[timeout_button-1],state.button_y[timeout_button-1],state.button_x_res[timeout_button-1],state.button_y_res[timeout_button-1]);
-					break;
-				case MOUSE_DOUBLECLICKED:
-					/* Double-click event */
-					add_outevent(CIOLIB_BUTTON_DBL_CLICK(timeout_button),state.button_x[timeout_button-1],state.button_y[timeout_button-1],state.button_x_res[timeout_button-1],state.button_y_res[timeout_button-1]);
-					break;
-				case MOUSE_TRIPLEPRESSED:
-					/* Double-click event, then press event */
-					add_outevent(CIOLIB_BUTTON_DBL_CLICK(timeout_button),state.button_x[timeout_button-1],state.button_y[timeout_button-1],state.button_x_res[timeout_button-1],state.button_y_res[timeout_button-1]);
-					add_outevent(CIOLIB_BUTTON_PRESS(timeout_button),state.button_x[timeout_button-1],state.button_y[timeout_button-1],state.button_x_res[timeout_button-1],state.button_y_res[timeout_button-1]);
-					break;
-				case MOUSE_TRIPLECLICKED:
-					/* Triple-click event */
-					add_outevent(CIOLIB_BUTTON_TRPL_CLICK(timeout_button),state.button_x[timeout_button-1],state.button_y[timeout_button-1],state.button_x_res[timeout_button-1],state.button_y_res[timeout_button-1]);
-					break;
-				case MOUSE_QUADPRESSED:
-					/* Triple-click evetn then press event */
-					add_outevent(CIOLIB_BUTTON_TRPL_CLICK(timeout_button),state.button_x[timeout_button-1],state.button_y[timeout_button-1],state.button_x_res[timeout_button-1],state.button_y_res[timeout_button-1]);
-					add_outevent(CIOLIB_BUTTON_PRESS(timeout_button),state.button_x[timeout_button-1],state.button_y[timeout_button-1],state.button_x_res[timeout_button-1],state.button_y_res[timeout_button-1]);
-					break;
-				case MOUSE_QUADCLICKED:
-					add_outevent(CIOLIB_BUTTON_QUAD_CLICK(timeout_button),state.button_x[timeout_button-1],state.button_y[timeout_button-1],state.button_x_res[timeout_button-1],state.button_y_res[timeout_button-1]);
-					/* Quad click event (This doesn't need a timeout does it? */
-					break;
-			}
-			state.button_state[timeout_button-1]=MOUSE_NOSTATE;
-		}
-		else {
-			struct in_mouse_event *in;
-
-			in=listShiftNode(&state.input);
-			if(in==NULL) {
-				YIELD();
-				continue;
-			}
-			but=CIOLIB_BUTTON_NUMBER(in->event);
-			if (in->x < 0)
-				in->x = state.curx;
-			if (in->y < 0)
-				in->y = state.cury;
-			if (in->x_res < 0)
-				in->x_res = state.curx_res;
-			if (in->y_res < 0)
-				in->y_res = state.cury_res;
-
-			switch(CIOLIB_BUTTON_BASE(in->event)) {
-				case CIOLIB_MOUSE_MOVE:
-					if(in->x==state.curx && in->y==state.cury &&
-					    in->x_res==state.curx_res && in->y_res==state.cury_res)
-						break;
-					add_outevent(CIOLIB_MOUSE_MOVE,in->x,in->y,in->x_res, in->y_res);
-					for(but=1;but<=5;but++) {
-						switch(state.button_state[but-1]) {
-							case MOUSE_NOSTATE:
-								if(state.buttonstate & CIOLIB_BUTTON(but)) {
-									add_outevent(CIOLIB_BUTTON_DRAG_START(but),state.button_x[but-1],state.button_y[but-1],state.button_x_res[but-1],state.button_y_res[but-1]);
-									add_outevent(CIOLIB_BUTTON_DRAG_MOVE(but),in->x,in->y, in->x_res, in->y_res);
-									state.button_state[but-1]=MOUSE_DRAGSTARTED;
-								}
-								break;
-							case MOUSE_SINGLEPRESSED:
-								add_outevent(CIOLIB_BUTTON_DRAG_START(but),state.button_x[but-1],state.button_y[but-1],state.button_x_res[but-1],state.button_y_res[but-1]);
-								add_outevent(CIOLIB_BUTTON_DRAG_MOVE(but),in->x,in->y, in->x_res, in->y_res);
-								state.button_state[but-1]=MOUSE_DRAGSTARTED;
-								break;
-							case MOUSE_CLICKED:
-								add_outevent(CIOLIB_BUTTON_CLICK(but),state.button_x[but-1],state.button_y[but-1],state.button_x_res[but-1],state.button_y_res[but-1]);
-								state.button_state[but-1]=MOUSE_NOSTATE;
-								break;
-							case MOUSE_DOUBLEPRESSED:
-								add_outevent(CIOLIB_BUTTON_CLICK(but),state.button_x[but-1],state.button_y[but-1],state.button_x_res[but-1],state.button_y_res[but-1]);
-								add_outevent(CIOLIB_BUTTON_DRAG_START(but),state.button_x[but-1],state.button_y[but-1],state.button_x_res[but-1],state.button_y_res[but-1]);
-								add_outevent(CIOLIB_BUTTON_DRAG_MOVE(but),in->x,in->y, in->x_res, in->y_res);
-								state.button_state[but-1]=MOUSE_DRAGSTARTED;
-								break;
-							case MOUSE_DOUBLECLICKED:
-								add_outevent(CIOLIB_BUTTON_DBL_CLICK(but),state.button_x[but-1],state.button_y[but-1],state.button_x_res[but-1],state.button_y_res[but-1]);
-								state.button_state[but-1]=MOUSE_NOSTATE;
-								break;
-							case MOUSE_TRIPLEPRESSED:
-								add_outevent(CIOLIB_BUTTON_DBL_CLICK(but),state.button_x[but-1],state.button_y[but-1],state.button_x_res[but-1],state.button_y_res[but-1]);
-								add_outevent(CIOLIB_BUTTON_DRAG_START(but),state.button_x[but-1],state.button_y[but-1],state.button_x_res[but-1],state.button_y_res[but-1]);
-								add_outevent(CIOLIB_BUTTON_DRAG_MOVE(but),in->x,in->y, in->x_res, in->y_res);
-								state.button_state[but-1]=MOUSE_DRAGSTARTED;
-								break;
-							case MOUSE_TRIPLECLICKED:
-								add_outevent(CIOLIB_BUTTON_TRPL_CLICK(but),state.button_x[but-1],state.button_y[but-1],state.button_x_res[but-1],state.button_y_res[but-1]);
-								state.button_state[but-1]=MOUSE_NOSTATE;
-								break;
-							case MOUSE_QUADPRESSED:
-								add_outevent(CIOLIB_BUTTON_TRPL_CLICK(but),state.button_x[but-1],state.button_y[but-1],state.button_x_res[but-1],state.button_y_res[but-1]);
-								add_outevent(CIOLIB_BUTTON_DRAG_START(but),state.button_x[but-1],state.button_y[but-1],state.button_x_res[but-1],state.button_y_res[but-1]);
-								add_outevent(CIOLIB_BUTTON_DRAG_MOVE(but),in->x,in->y, in->x_res, in->y_res);
-								state.button_state[but-1]=MOUSE_DRAGSTARTED;
-								break;
-							case MOUSE_DRAGSTARTED:
-								add_outevent(CIOLIB_BUTTON_DRAG_MOVE(but),in->x,in->y, in->x_res, in->y_res);
-								break;
-						}
-					}
-					break;
-				case CIOLIB_BUTTON_1_PRESS:
-					state.buttonstate|=1<<(but-1);
-					state.knownbuttonstatemask|=1<<(but-1);
-					switch(state.button_state[but-1]) {
-						case MOUSE_NOSTATE:
-							state.button_state[but-1]=MOUSE_SINGLEPRESSED;
-							state.button_x[but-1]=in->x;
-							state.button_y[but-1]=in->y;
-							state.button_x_res[but-1]=in->x_res;
-							state.button_y_res[but-1]=in->y_res;
-							state.timeout[but-1]=MSEC_CLOCK()+state.click_timeout;
-							if(state.timeout[but-1]==0)
-								state.timeout[but-1]=1;
-							if(state.click_timeout==0)
-								state.timeout[but-1]=0;
-							if(!more_multies(but,0)) {
-								add_outevent(CIOLIB_BUTTON_PRESS(but),state.button_x[but-1],state.button_y[but-1],state.button_x_res[but-1],state.button_y_res[but-1]);
-								state.button_state[but-1]=MOUSE_NOSTATE;
-								state.timeout[but-1]=0;
-							}
-							// Scroll "buttons"...
-							if (but > 3)
-								state.button_state[but-1] = MOUSE_NOSTATE;
-							break;
-						case MOUSE_CLICKED:
-							state.button_state[but-1]=MOUSE_DOUBLEPRESSED;
-							state.timeout[but-1]=MSEC_CLOCK()+state.click_timeout;
-							if(state.timeout[but-1]==0)
-								state.timeout[but-1]=1;
-							if(state.click_timeout==0)
-								state.timeout[but-1]=0;
-							break;
-						case MOUSE_DOUBLECLICKED:
-							state.button_state[but-1]=MOUSE_TRIPLEPRESSED;
-							state.timeout[but-1]=MSEC_CLOCK()+state.click_timeout;
-							if(state.timeout[but-1]==0)
-								state.timeout[but-1]=1;
-							if(state.click_timeout==0)
-								state.timeout[but-1]=0;
-							break;
-						case MOUSE_TRIPLECLICKED:
-							state.button_state[but-1]=MOUSE_QUADPRESSED;
-							state.timeout[but-1]=MSEC_CLOCK()+state.click_timeout;
-							if(state.timeout[but-1]==0)
-								state.timeout[but-1]=1;
-							if(state.click_timeout==0)
-								state.timeout[but-1]=0;
-							break;
-					}
-					break;
-				case CIOLIB_BUTTON_1_RELEASE:
-					state.buttonstate&= ~(1<<(but-1));
-					state.knownbuttonstatemask|=1<<(but-1);
-					switch(state.button_state[but-1]) {
-						case MOUSE_NOSTATE:
-							state.button_x[but-1]=in->x;
-							state.button_y[but-1]=in->y;
-							state.button_x_res[but-1]=in->x_res;
-							state.button_y_res[but-1]=in->y_res;
-							add_outevent(CIOLIB_BUTTON_RELEASE(but),state.button_x[but-1],state.button_y[but-1],state.button_x_res[but-1],state.button_y_res[but-1]);
-							break;
-						case MOUSE_SINGLEPRESSED:
-							state.button_state[but-1]=MOUSE_CLICKED;
-							state.timeout[but-1]=more_multies(but,1)?MSEC_CLOCK()+state.multi_timeout:MSEC_CLOCK();
-							if(state.timeout[but-1]==0)
-								state.timeout[but-1]=1;
-							break;
-						case MOUSE_DOUBLEPRESSED:
-							state.button_state[but-1]=MOUSE_DOUBLECLICKED;
-							state.timeout[but-1]=more_multies(but,2)?MSEC_CLOCK()+state.multi_timeout:MSEC_CLOCK();
-							if(state.timeout[but-1]==0)
-								state.timeout[but-1]=1;
-							break;
-						case MOUSE_TRIPLEPRESSED:
-							state.button_state[but-1]=MOUSE_TRIPLECLICKED;
-							state.timeout[but-1]=more_multies(but,3)?MSEC_CLOCK()+state.multi_timeout:MSEC_CLOCK();
-							if(state.timeout[but-1]==0)
-								state.timeout[but-1]=1;
-							break;
-						case MOUSE_QUADPRESSED:
-							state.button_state[but-1]=MOUSE_NOSTATE;
-							add_outevent(CIOLIB_BUTTON_QUAD_CLICK(but),state.button_x[but-1],state.button_y[but-1],state.button_x_res[but-1],state.button_y_res[but-1]);
-							state.timeout[but-1]=0;
-							if(state.timeout[but-1]==0)
-								state.timeout[but-1]=1;
-							break;
-						case MOUSE_DRAGSTARTED:
-							add_outevent(CIOLIB_BUTTON_DRAG_END(but),in->x,in->y, in->x_res, in->y_res);
-							state.button_state[but-1]=0;
-					}
-			}
-			state.curx=in->x;
-			state.cury=in->y;
-			state.curx_res=in->x_res;
-			state.cury_res=in->y_res;
-
-			free(in);
-		}
-
-		timeout_button=0;
-		for(but=1;but<=5;but++) {
-			if(state.button_state[but-1]==MOUSE_DRAGSTARTED &&
-			    (mouse_events & ((UINT64_C(1)<<CIOLIB_BUTTON_DRAG_START(but)) | (UINT64_C(1)<<CIOLIB_BUTTON_DRAG_MOVE(but)) | (UINT64_C(1)<<CIOLIB_BUTTON_DRAG_END(but)))) == 0)
-				state.button_state[but-1] = MOUSE_NOSTATE;
-		}
-
-		for(but=1;but<=5;but++) {
-			if(state.button_state[but-1]!=MOUSE_NOSTATE 
-					&& state.button_state[but-1]!=MOUSE_DRAGSTARTED 
-					&& state.timeout[but-1]!=0
-					&& (timeout_button==0 || state.timeout[but-1]<ttime)) {
-				ttime=state.timeout[but-1];
-				timeout_button=but;
-			}
-		}
-	}
-}
-
-int mouse_trywait(void)
-{
-	int	result;
-
-	while(!ciolib_mouse_initialized)
-		SLEEP(1);
-	while(1) {
-		result=listSemTryWait(&state.output);
-		pthread_mutex_lock(&unget_mutex);
-		if(ungot==0) {
-			pthread_mutex_unlock(&unget_mutex);
-			return(result);
-		}
-		ungot--;
-		pthread_mutex_unlock(&unget_mutex);
-	}
-}
-
-int mouse_wait(void)
-{
-	int result;
-
-	while(!ciolib_mouse_initialized)
-		SLEEP(1);
-	while(1) {
-		result=listSemWait(&state.output);
-		pthread_mutex_lock(&unget_mutex);
-		if(ungot==0) {
-			pthread_mutex_unlock(&unget_mutex);
-			return(result);
-		}
-		ungot--;
-		pthread_mutex_unlock(&unget_mutex);
-	}
-}
-
-int mouse_pending(void)
-{
-	while(!ciolib_mouse_initialized)
-		SLEEP(1);
-	return(listCountNodes(&state.output));
-}
-
-int ciolib_getmouse(struct mouse_event *mevent)
-{
-	int retval=0;
-
-	while(!ciolib_mouse_initialized)
-		SLEEP(1);
-	if(listCountNodes(&state.output)) {
-		struct out_mouse_event *out;
-		out=listShiftNode(&state.output);
-		if(out==NULL)
-			return(-1);
-		if(mevent != NULL) {
-			mevent->event=out->event;
-			mevent->bstate=out->bstate;
-			mevent->kbsm=out->kbsm;
-			mevent->startx=out->startx;
-			mevent->starty=out->starty;
-			mevent->endx=out->endx;
-			mevent->endy=out->endy;
-			mevent->startx_res=out->startx_res;
-			mevent->starty_res=out->starty_res;
-			mevent->endx_res=out->endx_res;
-			mevent->endy_res=out->endy_res;
-		}
-		free(out);
-	}
-	else {
-		fprintf(stderr,"WARNING: attempt to get a mouse key when none pending!\n");
-		if(mevent != NULL)
-			memset(mevent,0,sizeof(struct mouse_event));
-		retval=-1;
-	}
-	return(retval);
-}
-
-int ciolib_ungetmouse(struct mouse_event *mevent)
-{
-	struct mouse_event *me;
-
-	if((me=(struct mouse_event *)malloc(sizeof(struct mouse_event)))==NULL)
-		return(-1);
-	memcpy(me,mevent,sizeof(struct mouse_event));
-	pthread_mutex_lock(&unget_mutex);
-	if(listInsertNode(&state.output,me)==NULL) {
-		pthread_mutex_unlock(&unget_mutex);
-		return(FALSE);
-	}
-	ungot++;
-	pthread_mutex_unlock(&unget_mutex);
-	return(TRUE);
-}
diff --git a/ciolib/mouse.h b/ciolib/mouse.h
deleted file mode 100644
index 7a8bdc1f323b428fc365c5db2afecee59c5876a2..0000000000000000000000000000000000000000
--- a/ciolib/mouse.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* This header file is dead. */
-#error This file is obsolete!
diff --git a/ciolib/pasteboard.h b/ciolib/pasteboard.h
deleted file mode 100644
index b0b0eb9c9fdc4ec725c751b86fa0534c422e64f2..0000000000000000000000000000000000000000
--- a/ciolib/pasteboard.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef _PASTEBOARD_H_
-#define _PASTEBOARD_H_
-
-#include <stddef.h>
-
-void OSX_copytext(const char *text, size_t len);
-char *OSX_getcliptext(void);
-
-#endif
diff --git a/ciolib/pasteboard.m b/ciolib/pasteboard.m
deleted file mode 100644
index 31dcb2180d7de871f9786adb3470c4b5bc447e47..0000000000000000000000000000000000000000
--- a/ciolib/pasteboard.m
+++ /dev/null
@@ -1,34 +0,0 @@
-#import <Foundation/Foundation.h>
-#import <Cocoa/Cocoa.h>
-
-#include <stddef.h>
-
-void OSX_copytext(const char *text, size_t len)
-{
-	NSString *cp = [[NSString alloc] initWithBytes:text length:len encoding:CFStringConvertEncodingToNSStringEncoding(CFStringConvertWindowsCodepageToEncoding(437))];
-	if (cp != nil) {
-		NSPasteboard *pasteboard = [NSPasteboard generalPasteboard];
-		[pasteboard clearContents];
-		NSArray *copiedObjects = [NSArray arrayWithObject:cp];
-		[pasteboard writeObjects:copiedObjects];
-	}
-	[cp release];
-}
-
-char *OSX_getcliptext(void)
-{
-	NSPasteboard *pasteboard = [NSPasteboard generalPasteboard];
-	NSArray *classArray = [NSArray arrayWithObject:[NSString class]];
-    NSDictionary *options = [NSDictionary dictionary];
-	BOOL ok = [pasteboard canReadObjectForClasses:classArray options:options];
-	if (ok) {
-		NSArray *objectsToPaste = [pasteboard readObjectsForClasses:classArray options:options];
-		NSString *ct = [objectsToPaste objectAtIndex:0];
-		if (ct != nil) {
-			const char *ptr = [ct cStringUsingEncoding:CFStringConvertEncodingToNSStringEncoding(CFStringConvertWindowsCodepageToEncoding(437))];
-			if (ptr)
-				return strdup(ptr);
-		}
-	}
-	return NULL;
-}
diff --git a/ciolib/petscii.c b/ciolib/petscii.c
deleted file mode 100644
index 597d55c588bd3f05053b67b1e04e900f80a07088..0000000000000000000000000000000000000000
--- a/ciolib/petscii.c
+++ /dev/null
@@ -1,218 +0,0 @@
-#include "ciolib.h"
-
-struct ascii_trans {
-	unsigned char	native;
-	unsigned char	cp437;
-};
-
-struct key_trans {
-	int	keypress;
-	int	translated;
-};
-
-struct ascii_trans display_petscii[] = {
-	 {32,' '}
-	,{33,'!'}
-	,{34,'"'}
-	,{35,'#'}
-	,{36,'$'}
-	,{37,'%'}
-	,{38,'&'}
-	,{39,'\''}
-	,{40,'('}
-	,{41,')'}
-	,{42,'*'}
-	,{43,'+'}
-	,{44,','}
-	,{45,'-'}
-	,{46,'.'}
-	,{47,'/'}
-	,{48,'0'}
-	,{49,'1'}
-	,{50,'2'}
-	,{51,'3'}
-	,{52,'4'}
-	,{53,'5'}
-	,{54,'6'}
-	,{55,'7'}
-	,{56,'8'}
-	,{57,'9'}
-	,{58,':'}
-	,{59,';'}
-	,{60,'<'}
-	,{61,'='}
-	,{62,'>'}
-	,{63,'?'}
-	,{64,'@'}
-	,{65,'a'}
-	,{66,'b'}
-	,{67,'c'}
-	,{68,'d'}
-	,{69,'e'}
-	,{70,'f'}
-	,{71,'g'}
-	,{72,'h'}
-	,{73,'i'}
-	,{74,'j'}
-	,{75,'k'}
-	,{76,'l'}
-	,{77,'m'}
-	,{78,'n'}
-	,{79,'o'}
-	,{80,'p'}
-	,{81,'q'}
-	,{82,'r'}
-	,{83,'s'}
-	,{84,'t'}
-	,{85,'u'}
-	,{86,'v'}
-	,{87,'w'}
-	,{88,'x'}
-	,{89,'y'}
-	,{90,'z'}
-	,{91,'['}
-	,{92,156}
-	,{93,']'}
-	,{94,24}
-	,{95,27}
-	,{96,196}
-	,{97,'A'}
-	,{98,'B'}
-	,{99,'C'}
-	,{100,'D'}
-	,{101,'E'}
-	,{102,'F'}
-	,{103,'G'}
-	,{104,'H'}
-	,{105,'I'}
-	,{106,'J'}
-	,{107,'K'}
-	,{108,'L'}
-	,{109,'M'}
-	,{110,'N'}
-	,{111,'O'}
-	,{112,'P'}
-	,{113,'Q'}
-	,{114,'R'}
-	,{115,'S'}
-	,{116,'T'}
-	,{117,'U'}
-	,{118,'V'}
-	,{119,'W'}
-	,{120,'X'}
-	,{121,'Y'}
-	,{122,'Z'}
-	,{123,197}
-	,{124,181}	///* Left side fine 50% checker */
-	,{125,179}
-	,{126,178}	///* Course 50% checker */
-	,{127,176}	///* Horizontal cross-hatch (light shade) */
-	,{160,255}
-	,{161,221}
-	,{162,220}
-	,{163,'^'}	/* Row 1 set */
-	,{164,'_'}	///* Row 8 set */
-	,{165,'{'}	/* Col 1 set */
-	,{166,177}	///* Fine 50% checker */
-	,{167,'}'}	/* Col 8 set */
-	,{168,210}	///* Bottom fine 50% checker */
-	,{169,31}	/* Top left half set */
-	,{170,245}	/* Cols 7 & 8 set */
-	,{171,195}
-	,{172,201}	///* Bottom right quadrant set */
-	,{173,192}
-	,{174,191}
-	,{175,205}	/* Rows 7 & 8 set */
-	,{176,218}
-	,{177,193}
-	,{178,194}
-	,{179,180}
-	,{180,244}	/* Cols 1 & 2 set */
-	,{181,185}	/* Cols 1, 2, & 3 set */
-	,{182,222}	/* Cols 6, 7, & 8 set */
-	,{183,169}	/* Rows 1 & 2 set */
-	,{184,223}	/* Rows 1, 2, & 3 set */
-	,{185,22}	/* Rows 6, 7, & 8 set */
-	,{186,251}
-	,{187,187}	///* Bottom left quadrant set */
-	,{188,200}	///* Top right quadrant set */
-	,{189,217}
-	,{190,188}	///* Top left quadrant set */
-	,{191,206}	/* Top left and bottom right quadrants set */
-};
-
-struct key_trans input_petscii[] = {
-	 {'A', 'a'}
-	,{'B', 'b'}
-	,{'C', 'c'}
-	,{'D', 'd'}
-	,{'E', 'e'}
-	,{'F', 'f'}
-	,{'G', 'g'}
-	,{'H', 'h'}
-	,{'I', 'i'}
-	,{'J', 'j'}
-	,{'K', 'k'}
-	,{'L', 'l'}
-	,{'M', 'm'}
-	,{'N', 'n'}
-	,{'O', 'o'}
-	,{'P', 'p'}
-	,{'Q', 'q'}
-	,{'R', 'r'}
-	,{'S', 's'}
-	,{'T', 't'}
-	,{'U', 'u'}
-	,{'V', 'v'}
-	,{'W', 'w'}
-	,{'X', 'x'}
-	,{'Y', 'y'}
-	,{'Z', 'z'}
-	,{'a', 'A'}
-	,{'b', 'B'}
-	,{'c', 'C'}
-	,{'d', 'D'}
-	,{'e', 'E'}
-	,{'f', 'F'}
-	,{'g', 'G'}
-	,{'h', 'H'}
-	,{'i', 'I'}
-	,{'j', 'J'}
-	,{'k', 'K'}
-	,{'l', 'L'}
-	,{'m', 'M'}
-	,{'n', 'N'}
-	,{'o', 'O'}
-	,{'p', 'P'}
-	,{'q', 'Q'}
-	,{'r', 'R'}
-	,{'s', 'S'}
-	,{'t', 'T'}
-	,{'u', 'U'}
-	,{'v', 'V'}
-	,{'w', 'W'}
-	,{'x', 'X'}
-	,{'y', 'Y'}
-	,{'z', 'Z'}
-	,{'\n',141}
-	,{CIO_KEY_DOWN, 17}
-	,{CIO_KEY_HOME, 19}
-	,{CIO_KEY_DC, 20}
-	,{'\b', 20}
-	,{CIO_KEY_RIGHT, 29}
-	,{CIO_KEY_F(1), 133}
-	,{CIO_KEY_F(3), 134}
-	,{CIO_KEY_F(5), 135}
-	,{CIO_KEY_F(7), 136}
-	,{CIO_KEY_F(2), 137}
-	,{CIO_KEY_F(4), 138}
-	,{CIO_KEY_F(6), 139}
-	,{CIO_KEY_F(8), 140}
-	,{CIO_KEY_UP, 145}
-	,{CIO_KEY_IC, 148}
-	,{CIO_KEY_LEFT, 157}
-	,{CIO_KEY_END, 147}
-	,{CIO_KEY_PPAGE, 131}
-	,{CIO_KEY_NPAGE, 3}
-};
-
diff --git a/ciolib/scale.c b/ciolib/scale.c
deleted file mode 100644
index 6a9154c59437b977e9f0b691e73014d9372b09a8..0000000000000000000000000000000000000000
--- a/ciolib/scale.c
+++ /dev/null
@@ -1,893 +0,0 @@
-#include <math.h>
-#include <stdbool.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-#include "ciolib.h"
-#include "scale.h"
-#include "xbr.h"
-
-uint32_t r2y[1<<24];
-uint32_t y2r[1<<24];
-static int r2y_inited;
-
-static void pointy_scale3(uint32_t* src, uint32_t* dest, int width, int height);
-static void pointy_scale5(uint32_t* src, uint32_t* dest, int width, int height);
-static void pointy_scale_odd(uint32_t* src, uint32_t* dest, int width, int height, int mult);
-static void interpolate_height(uint32_t* src, uint32_t* dst, int width, int height, int newheight);
-static void interpolate_width(uint32_t* src, uint32_t* dst, int width, int height, int newwidth);
-static void multiply_scale(uint32_t* src, uint32_t* dst, int width, int height, int xmult, int ymult);
-
-static struct graphics_buffer *free_list;
-
-#define CLAMP(x) do { \
-	if (x < 0) \
-		x = 0; \
-	else if (x > 255) \
-		x = 255; \
-} while(0)
-
-/*
- * Corrects width/height to have the specified aspect ratio
- */
-void
-aspect_fix(int *x, int *y, int aspect_width, int aspect_height)
-{
-	int bestx, besty;
-
-	// Nothing we can do here...
-	if (aspect_width == 0 || aspect_height == 0)
-		return;
-	bestx = lround((double)*y * aspect_width / aspect_height);
-	besty = lround((double)*x * aspect_height / aspect_width);
-
-	if (bestx < *x && bestx > 0)
-		*x = bestx;
-	else
-		*y = besty;
-}
-
-/*
- * Given a width/height of a source image, adjust it to match the current aspect
- * ratio.  Will not reduce either number
- */
-void
-aspect_correct(int *x, int *y, int aspect_width, int aspect_height)
-{
-	int width = *x;
-	int height;
-
-	if (!aspect_height || !aspect_width)
-		return;
-	height = lround((double)(width * aspect_height) / aspect_width);
-	if (height < *y) {
-		height = *y;
-		width = lround(((double)height * aspect_width) / aspect_height);
-	}
-
-	*x = width;
-	*y = height;
-}
-
-/*
- * Essentially the opposite of the above.  Given an output width/height, translates to
- * the size of the source image.
- *
- * Note that this is much trickier as the "source" bitmap may have been integer scaled
- * differently in both directions... so what this does is reverse the aspect ratio
- * calculation, then find the next lowest even multiple of the mode bitmap size.
- */
-void
-aspect_reverse(int *x, int *y, int scrnwidth, int scrnheight, int aspect_width, int aspect_height)
-{
-	int width = *x;
-	int height = *y;
-	int cheight;
-	int cwidth;
-
-	if (!aspect_height || !aspect_width) {
-		width = scrnwidth * (*x / scrnwidth);
-		if (width < scrnwidth)
-			width = scrnwidth;
-		height = scrnheight * (*x / scrnheight);
-		if (height < scrnheight)
-			height = scrnheight;
-		return;
-	}
-	// First, find the "controlling" dimension... the one that won't be scaled (ie: the one that gets smaller)
-	cwidth = lround((double)(height * aspect_width) / aspect_height * scrnwidth / scrnheight);
-	cheight = lround((double)(width * aspect_height) / aspect_width * scrnheight / scrnwidth);
-	if (cwidth > width) {
-		// Width controls, so this is simply finding the largest width multiple that fits in the box
-		width = scrnwidth * (*x / scrnwidth);
-		if (width < scrnwidth)
-			width = scrnwidth;
-
-		// Now we need to find the largest bitmap height that would fit in the output height
-		// So, we scale the height to bitmap size...
-		height = lround((double)*y / ((double)scrnwidth / scrnheight) * ((double)aspect_width / aspect_height));
-		// And do the same calculation...
-		height = lround((double)scrnheight * ((double)height / scrnheight));
-	}
-	else if (cheight > height) {
-		// Height controls
-		height = scrnheight * (*x / scrnheight);
-		if (height < scrnheight)
-			height = scrnheight;
-
-		width = lround((double)*x / ((double)scrnheight / scrnwidth) * ((double)aspect_height / aspect_width));
-		width = lround((double)scrnwidth * ((double)width / scrnwidth));
-	}
-
-	*x = width;
-	*y = height;
-}
-
-void
-init_r2y(void)
-{
-	int r, g, b;
-	int y, u, v;
-	const double luma = 255.0 / 219;
-	const double col  = 255.0 / 224;
-
-	if (r2y_inited)
-		return;
-	for (r = 0; r < 256; r++) {
-		for (g = 0; g < 256; g++) {
-			for (b = 0; b < 256; b++) {
-				y =  16 + ( 65.738 * r + 129.057 * g +  25.064 * b + 128) / 256;
-				CLAMP(y);
-				u = 128 + (-37.945 * r -  74.494 * g + 112.439 * b + 128) / 256;
-				CLAMP(u);
-				v = 128 + (112.439 * r -  94.154 * g -  18.285 * b + 128) / 256;
-				CLAMP(v);
-
-				r2y[(r<<16) | (g<<8) | b] = (y<<16)|(u<<8)|v;
-			}
-		}
-	}
-	for (y = 0; y < 256; y++) {
-		for (u = 0; u < 256; u++) {
-			for (v = 0; v < 256; v++) {
-				const int c = y - 16;
-				const int d = u - 128;
-				const int e = v - 128;
-				r = luma * c                                     + col * 1.402 * e;
-				CLAMP(r);
-				g = luma * c - col * 1.772 * (0.114 / 0.587) * d - col * 1.402 * (0.299 / 0.587) * e;
-				CLAMP(g);
-				b = luma * c + col * 1.772 * d;
-				CLAMP(b);
-
-				y2r[(y<<16) | (u<<8) | v] = (r<<16)|(g<<8)|b;
-			}
-		}
-	}
-	r2y_inited = 1;
-}
-
-struct graphics_buffer *
-get_buffer(void)
-{
-	struct graphics_buffer* ret = NULL;
-
-	if (free_list) {
-		ret = free_list;
-		free_list = free_list->next;
-		ret->next = NULL;
-		return ret;
-	}
-
-	ret = calloc(1, sizeof(struct graphics_buffer));
-	return ret;
-}
-
-void
-release_buffer(struct graphics_buffer *buf)
-{
-	if (buf == NULL)
-		return;
-	buf->next = free_list;
-	free_list = buf;
-}
-
-struct graphics_buffer *
-do_scale(struct rectlist* rect, int xscale, int yscale, int aspect_width, int aspect_height)
-{
-	struct graphics_buffer* ret1 = get_buffer();
-	struct graphics_buffer* ret2 = get_buffer();
-	int pointymult = 1;
-	int pointy5 = 0;
-	int pointy3 = 0;
-	int xbr2 = 0;
-	int xbr4 = 0;
-	int ymult = 1;
-	int xmult = 1;
-	int total_xscaling = 1;
-	int total_yscaling = 1;
-	struct graphics_buffer *ctarget;
-	struct graphics_buffer *csrc;
-	uint32_t* nt;
-	int fheight;
-	int fwidth;
-	bool swapxy = false;
-
-	if (xscale > yscale) {
-		swapxy = true;
-		total_xscaling = xscale;
-		xscale = yscale;
-		yscale = total_xscaling;
-	}
-	total_xscaling = xscale;
-	xscale = 1;
-	total_yscaling = yscale;
-	yscale = 1;
-	// If x/y scaling isn't a simple multiple, block scale everything...
-	if ((total_yscaling % total_xscaling) == 0) {
-		if (!(cio_api.options & CONIO_OPT_BLOCKY_SCALING)) {
-			if ((total_xscaling & 1) == 1 && total_xscaling > 5) {
-				pointymult = total_xscaling;
-				total_xscaling /= pointymult;
-				xscale *= pointymult;
-				total_yscaling /= pointymult;
-				yscale *= pointymult;
-			}
-			while (total_xscaling > 1 && ((total_xscaling % 5) == 0) && ((total_yscaling % 5) == 0)) {
-				pointy5++;
-				total_xscaling /= 5;
-				xscale *= 5;
-				total_yscaling /= 5;
-				yscale *= 5;
-			}
-			while (total_xscaling > 1 && ((total_xscaling % 3) == 0) && ((total_yscaling % 3) == 0)) {
-				pointy3++;
-				total_xscaling /= 3;
-				xscale *= 3;
-				total_yscaling /= 3;
-				yscale *= 3;
-			}
-			while (total_xscaling > 1 && ((total_xscaling % 4) == 0) && ((total_yscaling % 4) == 0)) {
-				xbr4++;
-				total_xscaling /= 4;
-				xscale *= 4;
-				total_yscaling /= 4;
-				yscale *= 4;
-			}
-			while (total_xscaling > 1 && ((total_xscaling % 2) == 0) && ((total_yscaling % 2) == 0)) {
-				xbr2++;
-				total_xscaling /= 2;
-				xscale *= 2;
-				total_yscaling /= 2;
-				yscale *= 2;
-			}
-		}
-	}
-
-	xmult = total_xscaling;
-	xscale *= xmult;
-	total_xscaling = 1;
-
-	ymult = total_yscaling;
-	yscale *= ymult;
-	total_yscaling = 1;
-
-	if (swapxy) {
-		int tmp;
-
-		tmp = ymult;
-		ymult = xmult;
-		xmult = tmp;
-
-		tmp = xscale;
-		xscale = yscale;
-		yscale = tmp;
-	}
-
-	// Calculate the scaled height from rxscaleatio...
-	fwidth = rect->rect.width * xscale;
-	fheight = rect->rect.height * yscale;
-	aspect_correct(&fwidth, &fheight, aspect_width, aspect_height);
-
-	// Now make sure target is big enough...
-	size_t needsz = fwidth * fheight * sizeof(uint32_t);
-	if (needsz > ret1->sz) {
-		nt = realloc(ret1->data, needsz);
-		if (nt == NULL) {
-			release_buffer(ret1);
-			release_buffer(ret2);
-			return NULL;
-		}
-		ret1->data = nt;
-		ret1->sz = needsz;
-	}
-
-	if (needsz > ret2->sz) {
-		nt = realloc(ret2->data, needsz);
-		if (nt == NULL) {
-			release_buffer(ret1);
-			release_buffer(ret2);
-			return NULL;
-		}
-		ret2->data = nt;
-		ret2->sz = needsz;
-	}
-
-	// Copy rect into first buffer
-	// TODO: Unify bitmap rects and scaling buffers so this can just whomp on over.
-	csrc = ret1;
-	ctarget = ret2;
-	memcpy(csrc->data, rect->data, rect->rect.width * rect->rect.height * sizeof(rect->data[0]));
-	csrc->w = rect->rect.width;
-	csrc->h = rect->rect.height;
-
-#if 0
-fprintf(stderr, "Plan:\n"
-"start:       %dx%d\n"
-"pointymulti: %d\n"
-"pointy5:     %d\n"
-"pointy3:     %d\n"
-"xBR4:        %d\n"
-"xBR2:        %d\n"
-"Multiply:    %dx%d\n"
-"hinterp:     %zu -> %zu\n"
-"winterp:     %zu -> %zu\n",
-csrc->w, csrc->h, pointymult, pointy5, pointy3, xbr4, xbr2, xmult, ymult, csrc->h * yscale, fheight, csrc->w * xscale, fwidth);
-#endif
-	// And scale...
-	if (ymult != 1 || xmult != 1) {
-		multiply_scale(csrc->data, ctarget->data, csrc->w, csrc->h, xmult, ymult);
-		ctarget->w = csrc->w * xmult;
-		ctarget->h = csrc->h * ymult;
-		ymult = 1;
-		xmult = 1;
-		csrc = ctarget;
-		if (ctarget == ret1)
-			ctarget = ret2;
-		else
-			ctarget = ret1;
-	}
-	if (pointymult > 1 && pointymult & 1) {
-		pointy_scale_odd(csrc->data, ctarget->data, csrc->w, csrc->h, pointymult);
-		ctarget->w = csrc->w * pointymult;
-		ctarget->h = csrc->h * pointymult;
-		pointymult = 1;
-		csrc = ctarget;
-		if (ctarget == ret1)
-			ctarget = ret2;
-		else
-			ctarget = ret1;
-	}
-	while (pointy5 > 0) {
-		pointy_scale5(csrc->data, ctarget->data, csrc->w, csrc->h);
-		pointy5--;
-		ctarget->w = csrc->w * 5;
-		ctarget->h = csrc->h * 5;
-		csrc = ctarget;
-		if (ctarget == ret1)
-			ctarget = ret2;
-		else
-			ctarget = ret1;
-	}
-	while (pointy3 > 0) {
-		pointy_scale3(csrc->data, ctarget->data, csrc->w, csrc->h);
-		pointy3--;
-		ctarget->w = csrc->w * 3;
-		ctarget->h = csrc->h * 3;
-		csrc = ctarget;
-		if (ctarget == ret1)
-			ctarget = ret2;
-		else
-			ctarget = ret1;
-	}
-	while (xbr4 > 0) {
-		xbr_filter(csrc->data, ctarget->data, csrc->w, csrc->h, 4);
-		xbr4--;
-		ctarget->w = csrc->w * 4;
-		ctarget->h = csrc->h * 4;
-		csrc = ctarget;
-		if (ctarget == ret1)
-			ctarget = ret2;
-		else
-			ctarget = ret1;
-	}
-	while (xbr2 > 0) {
-		xbr_filter(csrc->data, ctarget->data, csrc->w, csrc->h, 2);
-		xbr2--;
-		ctarget->w = csrc->w * 2;
-		ctarget->h = csrc->h * 2;
-		csrc = ctarget;
-		if (ctarget == ret1)
-			ctarget = ret2;
-		else
-			ctarget = ret1;
-	}
-
-	// And finally, interpolate if needed
-	if (fheight != csrc->h) {
-		interpolate_height(csrc->data, ctarget->data, csrc->w, csrc->h, fheight);
-		ctarget->h = fheight;
-		ctarget->w = csrc->w;
-		csrc = ctarget;
-		if (ctarget == ret1)
-			ctarget = ret2;
-		else
-			ctarget = ret1;
-	}
-
-	if (fwidth != csrc->w) {
-		interpolate_width(csrc->data, ctarget->data, csrc->w, csrc->h, fwidth);
-		ctarget->h = csrc->h;
-		ctarget->w = fwidth;
-		csrc = ctarget;
-		if (ctarget == ret1)
-			ctarget = ret2;
-		else
-			ctarget = ret1;
-	}
-
-	release_buffer(ctarget);
-	return csrc;
-}
-
-static void
-pointy_scale_odd(uint32_t* src, uint32_t* dest, int width, int height, int mult)
-{
-	int x, y;
-	uint32_t* s;
-	uint32_t* d;
-	int prevline, prevcol, nextline, nextcol;
-	int i, j;
-	int mid = mult / 2;
-	int multoff = mult - 1;
-	int dline = width * mult;
-	int dbott;
-	int dstripe = dline * mult;
-
-	s = src;
-	d = dest;
-	prevline = 0;
-	nextline = width;
-	for (y = 0; y < height; y++) {
-		if (y == height - 1)
-			nextline = 0;
-		prevcol = 0;
-		nextcol = 1;
-		for (x = 0; x < width; x++) {
-			if (x == width - 1)
-				nextcol = 0;
-
-			for (i = 0; i < mid; i++) {
-				d = &dest[dstripe * y + dline * i + x * mult];
-				dbott = dline * (multoff - i * 2);
-
-				for (j = 0; j < mid - i; j++) {
-					if (s[prevline + prevcol] == s[0]) {
-						d[j] = s[0];
-					}
-					else if (s[prevline] == s[prevcol]) {
-						d[j] = s[prevcol];
-					}
-					else {
-						d[j] = s[0];
-					}
-
-					if (s[prevline + nextcol] == s[0]) {
-						d[multoff - j] = s[0];
-					}
-					else if (s[prevline] == s[nextcol]) {
-						d[multoff - j] = s[nextcol];
-					}
-					else {
-						d[multoff - j] = s[0];
-					}
-
-					if (s[prevcol + nextline] == s[0]) {
-						d[dbott + j] = s[0];
-					}
-					else if(s[prevcol] == s[nextline]) {
-						d[dbott + j] = s[prevcol];
-					}
-					else {
-						d[dbott + j] = s[0];
-					}
-
-					if (s[nextcol + nextline] == s[0]) {
-						d[dbott + multoff - j] = s[0];
-					}
-					else if (s[nextcol] == s[nextline]) {
-						d[dbott + multoff - j] = s[nextcol];
-					}
-					else {
-						d[dbott + multoff - j] = s[0];
-					}
-				}
-
-				// And the rest is always kept the same
-				for (; j < mid; j++) {
-					d[j] = s[0];
-					d[multoff - j] = s[0];
-					d[dbott + j] = s[0];
-					d[dbott + multoff - j] = s[0];
-				}
-
-				// And the middle dot.
-				d[j] = s[0];
-				d[dbott + j] = s[0];
-			}
-
-			d = &dest[dstripe * y + dline * i + x * mult];
-
-			for (j = 0; j < mid; j++) {
-				d[j] = s[0];
-				d[multoff - j] = s[0];
-			}
-			d[j] = s[0];
-
-			s++;
-
-			if (x == 0)
-				prevcol = -1;
-		}
-		if (y == 0)
-			prevline = -width;
-	}
-}
-
-static void
-pointy_scale5(uint32_t* src, uint32_t* dest, int width, int height)
-{
-	int x, y;
-	uint32_t* s;
-	uint32_t* d;
-	int w5 = width * 5;
-	int w10 = width * 10;
-	int w15 = width * 15;
-	int w20 = width * 20;
-	int prevline, prevcol, nextline, nextcol;
-
-	s = src;
-	d = dest;
-	prevline = 0;
-	nextline = width;
-	for (y = 0; y < height; y++) {
-		if (y == height - 1)
-			nextline = 0;
-		prevcol = 0;
-		nextcol = 1;
-		for (x = 0; x < width; x++) {
-			if (x == width - 1)
-				nextcol = 0;
-
-			if (s[prevline + prevcol] == s[0]) {
-				d[0] = s[0];
-				d[1] = s[0];
-				d[w5] = s[0];
-			}
-			else if (s[prevcol] == s[prevline]) {
-				d[0] = s[prevcol];
-				d[1] = s[prevcol];
-				d[w5] = s[prevcol];
-			}
-			else {
-				d[0] = *s;
-				d[1] = *s;
-				d[w5] = *s;
-			}
-
-			// Top-middle stays OG.
-			d[2] = *s;
-			d[w5+1] = *s;
-			d[w5+2] = *s;
-			d[w5+3] = *s;
-
-			// And so on around the outside (round the outside)
-			if (s[prevline + nextcol] == s[0]) {
-				d[3] = s[0];
-				d[4] = s[0];
-				d[w5 + 4] = s[0];
-			}
-			else if (s[nextcol] == s[prevline]) {
-				d[3] = s[nextcol];
-				d[4] = s[nextcol];
-				d[w5 + 4] = s[nextcol];
-			}
-			else {
-				d[3] = s[0];
-				d[4] = s[0];
-				d[w5 + 4] = s[0];
-			}
-
-			d[w10] = *s;
-			d[w10+1] = *s;
-			d[w10+2] = *s;
-			d[w10+3] = *s;
-			d[w10+4] = *s;
-
-			if (s[prevcol + nextline] == s[0]) {
-				d[w15] = s[0];
-				d[w20] = s[0];
-				d[w20 + 1] = s[0];
-			}
-			else if(s[prevcol] == s[nextline]) {
-				d[w15] = s[prevcol];
-				d[w20] = s[prevcol];
-				d[w20 + 1] = s[prevcol];
-			}
-			else {
-				d[w15] = s[0];
-				d[w20] = s[0];
-				d[w20 + 1] = s[0];
-			}
-
-			d[w15 + 1] = *s;
-			d[w15 + 2] = *s;
-			d[w15 + 3] = *s;
-			d[w20 + 2] = *s;
-
-			if (s[nextcol + nextline] == s[0]) {
-				d[w15 + 4] = s[0];
-				d[w20 + 3] = s[0];
-				d[w20 + 4] = s[0];
-			}
-			else if (s[nextcol] == s[nextline]) {
-				d[w15 + 4] = s[nextcol];
-				d[w20 + 3] = s[nextcol];
-				d[w20 + 4] = s[nextcol];
-			}
-			else {
-				d[w15 + 4] = s[0];
-				d[w20 + 3] = s[0];
-				d[w20 + 4] = s[0];
-			}
-
-			d += 5;
-			s++;
-
-			if (x == 0)
-				prevcol = -1;
-		}
-		d += w20;
-		if (y == 0)
-			prevline = -width;
-	}
-}
-
-static void
-pointy_scale3(uint32_t* src, uint32_t* dest, int width, int height)
-{
-	int x, y;
-	uint32_t* s;
-	uint32_t* d;
-	int w3 = width * 3;
-	int w6 = width * 6;
-	int prevline, prevcol, nextline, nextcol;
-
-	s = src;
-	d = dest;
-	prevline = 0;
-	nextline = width;
-	for (y = 0; y < height; y++) {
-		if (y == height - 1)
-			nextline = 0;
-		prevcol = 0;
-		nextcol = 1;
-		for (x = 0; x < width; x++) {
-			if (x == width - 1)
-				nextcol = 0;
-
-			// Top-left is filled if both left and top are the same.
-			if (s[prevline + prevcol] == s[0])
-				d[0] = s[0];
-			else if (s[prevcol] == s[prevline])
-				d[0] = s[prevcol];
-			else
-				d[0] = *s;
-
-			// Top-middle stays OG.
-			d[1] = *s;
-
-			// And so on around the outside (round the outside)
-			if (s[prevline + nextcol] == s[0])
-				d[2] = s[0];
-			else if (s[nextcol] == s[prevline])
-				d[2] = s[nextcol];
-			else
-				d[2] = *s;
-
-			d[w3] = *s;
-			d[w3 + 1] = *s;
-			d[w3 + 2] = *s;
-
-			if (s[prevcol + nextline] == s[0])
-				d[w6] = s[0];
-			else if(s[prevcol] == s[nextline])
-				d[w6] = s[prevcol];
-			else
-				d[w6] = *s;
-
-			d[w6 + 1] = *s;
-
-			if (s[nextcol + nextline] == s[0])
-				d[w6 + 2] = s[0];
-			else if (s[nextcol] == s[nextline])
-				d[w6 + 2] = s[nextcol];
-			else
-				d[w6 + 2] = s[0];
-
-			d += 3;
-			s++;
-
-			if (x == 0)
-				prevcol = -1;
-		}
-		d += w6;
-		if (y == 0)
-			prevline = -width;
-	}
-}
-
-static uint32_t
-blend(const uint32_t c1, const uint32_t c2, int weight)
-{
-	uint8_t yuv1[4];
-	uint8_t yuv2[4];
-	uint8_t yuv3[4];
-	const double iw = 256 - weight;
-
-	*(uint32_t *)yuv1 = r2y[c1];
-	*(uint32_t *)yuv2 = r2y[c2];
-#ifdef __BIG_ENDIAN__
-	yuv3[0] = 0;
-	yuv3[1] = (yuv1[1] * iw + yuv2[1] * weight) / 256;
-	yuv3[2] = (yuv1[2] * iw + yuv2[2] * weight) / 256;
-	yuv3[3] = (yuv1[3] * iw + yuv2[3] * weight) / 256;
-#else
-	yuv3[3] = 0;
-	yuv3[2] = (yuv1[2] * iw + yuv2[2] * weight) / 256;
-	yuv3[1] = (yuv1[1] * iw + yuv2[1] * weight) / 256;
-	yuv3[0] = (yuv1[0] * iw + yuv2[0] * weight) / 256;
-#endif
-
-	return y2r[*(uint32_t*)yuv3];
-}
-
-/*
- * This does non-integer *width* scaling.  It does not scale in the other
- * direction.  This does the interpolation using Y'UV to prevent dimming of
- * pixels.
- */
-static void
-interpolate_width(uint32_t* src, uint32_t* dst, int width, int height, int newwidth)
-{
-	int x, y;
-	const double mult = (double)width / newwidth;
-
-	for (y = 0; y < height; y++) {
-		for (x = 0; x < newwidth; x++) {
-			// First, calculate which two pixels this is between.
-			const double xpos = mult * x;
-			const int xposi = xpos;
-			if (x == xpos) {
-				// Exact match!
-				*dst = src[width * y + x];
-			}
-			else {
-				const double weight = xpos - xposi;
-				// Now pick the two pixels
-				const uint32_t pix1 = src[y * width + xposi];
-				uint32_t pix2;
-				if (xposi < width - 1)
-					pix2 = src[y * width + xposi + 1];
-				else
-					pix2 = src[y * width + xposi];
-				if (pix1 == pix2)
-					*dst = pix1;
-				else {
-					*dst = blend(pix1, pix2, weight);
-				}
-			}
-			dst++;
-		}
-	}
-}
-
-/*
- * This does non-integer *height* scaling.  It does not scale in the other
- * direction.  This does the interpolation using Y'UV to prevent dimming of
- * pixels.
- */
-static void
-interpolate_height(uint32_t* src, uint32_t* dst, int width, int height, int newheight)
-{
-	int x, y;
-	const double mult = (double)height / newheight;
-	double ypos = 0;
-	int last_yposi = 0;
-	int ywn = width;
-	static uint32_t *nline = NULL;
-	static uint32_t *tline = NULL;
-	static size_t nsz = 0;
-	static size_t tsz = 0;
-	uint32_t *stmp;
-
-	if (nsz < width * 4) {
-		stmp = realloc(nline, width * 4);
-		if (stmp == NULL)
-			goto fail;
-		nline = stmp;
-		nsz = width * 4;
-	}
-	if (tsz < width * 4) {
-		stmp = realloc(tline, width * 4);
-		if (stmp == NULL)
-			goto fail;
-		tline = stmp;
-		tsz = width * 4;
-	}
-
-	memcpy(tline, src, width * sizeof(*tline));
-	memcpy(nline, src + width, width * sizeof(*tline));
-	for (y = 0; y < newheight; y++) {
-		const int yposi = ypos;
-		if (yposi != last_yposi) {
-			ywn += width;
-			last_yposi = yposi;
-			stmp = tline;
-			tline = nline;
-			nline = stmp;
-			memcpy(nline, &src[ywn], nsz);
-		}
-		if (y == ypos || yposi >= height - 1) {
-			memcpy(dst, tline, tsz);
-			dst += width;
-		}
-		else {
-			const uint8_t weight = ypos * 256;
-			for (x = 0; x < width; x++) {
-				// Now pick the two pixels
-				const uint32_t pix1 = tline[x];
-				const uint32_t pix2 = nline[x];
-				if (pix1 == pix2)
-					*dst = pix1;
-				else
-					*dst = blend(pix1, pix2, weight);
-				dst++;
-			}
-		}
-		ypos += mult;
-	}
-
-	return;
-fail:
-	free(nline);
-	free(tline);
-	nline = NULL;
-	tline = NULL;
-	nsz = 0;
-	tsz = 0;
-	memcpy(src, dst, width * height * sizeof(*src));
-	fprintf(stderr, "Allocation failure in interpolate_height()!");
-}
-
-static void
-multiply_scale(uint32_t* src, uint32_t* dst, int width, int height, int xmult, int ymult)
-{
-	int x, y;
-	int mx, my;
-	uint32_t* slstart;
-
-	for (y = 0; y < height; y++) {
-		slstart = src;
-		for (my = 0; my < ymult; my++) {
-			src = slstart;
-			for (x = 0; x < width; x++) {
-				for (mx = 0; mx < xmult; mx++) {
-					*dst = *src;
-					dst++;
-				}
-				src++;
-			}
-		}
-	}
-}
diff --git a/ciolib/scale.h b/ciolib/scale.h
deleted file mode 100644
index efead79dae021ca0267326ebf1a75ea737a7c67b..0000000000000000000000000000000000000000
--- a/ciolib/scale.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#include "bitmap_con.h"
-
-struct graphics_buffer {
-	uint32_t* data;
-	size_t    sz;
-	size_t    w;
-	size_t    h;
-	struct graphics_buffer *next;
-};
-
-extern uint32_t r2y[1<<24];
-extern uint32_t y2r[1<<24];
-
-struct graphics_buffer * get_buffer(void);
-void release_buffer(struct graphics_buffer *);
-void init_r2y(void);
-
-struct graphics_buffer * do_scale(struct rectlist* rect, int xscale, int yscale, int aspect_width, int aspect_height);
-void aspect_correct(int *x, int *y, int aspect_width, int aspect_height);
-void aspect_reverse(int *x, int *y, int scrnwidth, int scrnheight, int aspect_width, int aspect_height);
-void aspect_fix(int *x, int *y, int aspect_width, int aspect_height);
diff --git a/ciolib/sdl_con.c b/ciolib/sdl_con.c
deleted file mode 100644
index 01fe4549562bdec577f1cb2b6d949b6895e5699a..0000000000000000000000000000000000000000
--- a/ciolib/sdl_con.c
+++ /dev/null
@@ -1,1300 +0,0 @@
-#include <math.h>
-#include <stdarg.h>
-#include <stdbool.h>
-#include <stdio.h>		/* NULL */
-#include <stdlib.h>
-#include <string.h>
-
-#include "gen_defs.h"
-#include "genwrap.h"
-#include "dirwrap.h"
-#include "xpbeep.h"
-#include "threadwrap.h"
-#include <xp_dl.h>
-
-#if (defined CIOLIB_IMPORTS)
- #undef CIOLIB_IMPORTS
-#endif
-#if (defined CIOLIB_EXPORTS)
- #undef CIOLIB_EXPORTS
-#endif
-
-#include "ciolib.h"
-#include "utf8_codepages.h"
-#include "vidmodes.h"
-#define BITMAP_CIOLIB_DRIVER
-#include "bitmap_con.h"
-#include "scale.h"
-
-#include "SDL.h"
-
-#include "sdlfuncs.h"
-
-int bitmap_width,bitmap_height;
-
-/* 256 bytes so I can cheat */
-unsigned char		sdl_keybuf[256];		/* Keyboard buffer */
-unsigned char		sdl_key=0;				/* Index into keybuf for next key in buffer */
-unsigned char		sdl_keynext=0;			/* Index into keybuf for next free position */
-
-int sdl_exitcode=0;
-
-bool internal_scaling = true;	// Protected by the win mutex
-
-SDL_Window	*win=NULL;
-SDL_Cursor	*curs=NULL;
-SDL_Renderer	*renderer=NULL;
-SDL_Texture	*texture=NULL;
-pthread_mutex_t win_mutex;
-SDL_Surface	*sdl_icon=NULL;
-
-sem_t sdl_ufunc_ret;
-sem_t sdl_ufunc_rec;
-pthread_mutex_t sdl_ufunc_mtx;
-int sdl_ufunc_retval;
-
-sem_t sdl_flush_sem;
-int pending_updates=0;
-
-int fullscreen=0;
-
-int	sdl_init_good=0;
-pthread_mutex_t sdl_keylock;
-sem_t sdl_key_pending;
-static unsigned int sdl_pending_mousekeys=0;
-
-static struct video_stats cvstat;
-
-struct sdl_keyvals {
-	int	keysym
-		,key
-		,shift
-		,ctrl
-		,alt;
-};
-
-static pthread_mutex_t sdl_headlock;
-static struct rectlist *update_list = NULL;
-static struct rectlist *update_list_tail = NULL;
-
-enum {
-	 SDL_USEREVENT_FLUSH
-	,SDL_USEREVENT_SETTITLE
-	,SDL_USEREVENT_SETNAME
-	,SDL_USEREVENT_SETICON
-	,SDL_USEREVENT_SETVIDMODE
-	,SDL_USEREVENT_SHOWMOUSE
-	,SDL_USEREVENT_HIDEMOUSE
-	,SDL_USEREVENT_INIT
-	,SDL_USEREVENT_QUIT
-	,SDL_USEREVENT_GETWINPOS
-	,SDL_USEREVENT_MOUSEPOINTER
-};
-
-const struct sdl_keyvals sdl_keyval[] =
-{
-	{SDLK_BACKSPACE, 0x08, 0x08, 0x7f, 0x0e00},
-	{SDLK_TAB, 0x09, 0x0f00, 0x9400, 0xa500},
-	{SDLK_RETURN, 0x0d, 0x0d, 0x0a, 0xa600},
-	{SDLK_ESCAPE, 0x1b, 0x1b, 0x1b, 0x0100},
-	{SDLK_SPACE, 0x20, 0x20, 0x0300, 0x20},
-	{SDLK_0, '0', ')', 0, 0x8100},
-	{SDLK_1, '1', '!', 0, 0x7800},
-	{SDLK_2, '2', '@', 0x0300, 0x7900},
-	{SDLK_3, '3', '#', 0, 0x7a00},
-	{SDLK_4, '4', '$', 0, 0x7b00},
-	{SDLK_5, '5', '%', 0, 0x7c00},
-	{SDLK_6, '6', '^', 0x1e, 0x7d00},
-	{SDLK_7, '7', '&', 0, 0x7e00},
-	{SDLK_8, '8', '*', 0, 0x7f00},
-	{SDLK_9, '9', '(', 0, 0x8000},
-	{SDLK_a, 'a', 'A', 0x01, 0x1e00},
-	{SDLK_b, 'b', 'B', 0x02, 0x3000},
-	{SDLK_c, 'c', 'C', 0x03, 0x2e00},
-	{SDLK_d, 'd', 'D', 0x04, 0x2000},
-	{SDLK_e, 'e', 'E', 0x05, 0x1200},
-	{SDLK_f, 'f', 'F', 0x06, 0x2100},
-	{SDLK_g, 'g', 'G', 0x07, 0x2200},
-	{SDLK_h, 'h', 'H', 0x08, 0x2300},
-	{SDLK_i, 'i', 'I', 0x09, 0x1700},
-	{SDLK_j, 'j', 'J', 0x0a, 0x2400},
-	{SDLK_k, 'k', 'K', 0x0b, 0x2500},
-	{SDLK_l, 'l', 'L', 0x0c, 0x2600},
-	{SDLK_m, 'm', 'M', 0x0d, 0x3200},
-	{SDLK_n, 'n', 'N', 0x0e, 0x3100},
-	{SDLK_o, 'o', 'O', 0x0f, 0x1800},
-	{SDLK_p, 'p', 'P', 0x10, 0x1900},
-	{SDLK_q, 'q', 'Q', 0x11, 0x1000},
-	{SDLK_r, 'r', 'R', 0x12, 0x1300},
-	{SDLK_s, 's', 'S', 0x13, 0x1f00},
-	{SDLK_t, 't', 'T', 0x14, 0x1400},
-	{SDLK_u, 'u', 'U', 0x15, 0x1600},
-	{SDLK_v, 'v', 'V', 0x16, 0x2f00},
-	{SDLK_w, 'w', 'W', 0x17, 0x1100},
-	{SDLK_x, 'x', 'X', 0x18, 0x2d00},
-	{SDLK_y, 'y', 'Y', 0x19, 0x1500},
-	{SDLK_z, 'z', 'Z', 0x1a, 0x2c00},
-	{SDLK_PAGEUP, 0x4900, 0x4900, 0x8400, 0x9900},
-	{SDLK_PAGEDOWN, 0x5100, 0x5100, 0x7600, 0xa100},
-	{SDLK_END, 0x4f00, 0x4f00, 0x7500, 0x9f00},
-	{SDLK_HOME, 0x4700, 0x4700, 0x7700, 0x9700},
-	{SDLK_LEFT, 0x4b00, 0x4b00, 0x7300, 0x9b00},
-	{SDLK_UP, 0x4800, 0x4800, 0x8d00, 0x9800},
-	{SDLK_RIGHT, 0x4d00, 0x4d00, 0x7400, 0x9d00},
-	{SDLK_DOWN, 0x5000, 0x5000, 0x9100, 0xa000},
-	{SDLK_INSERT, CIO_KEY_IC, CIO_KEY_SHIFT_IC, CIO_KEY_CTRL_IC, CIO_KEY_ALT_IC},
-	{SDLK_DELETE, CIO_KEY_DC, CIO_KEY_SHIFT_DC, CIO_KEY_CTRL_DC, CIO_KEY_ALT_DC},
-	{SDLK_KP_0, 0x5200, 0x5200, 0x9200, 0},
-	{SDLK_KP_1, 0x4f00, 0x4f00, 0x7500, 0},
-	{SDLK_KP_2, 0x5000, 0x5000, 0x9100, 0},
-	{SDLK_KP_3, 0x5100, 0x5100, 0x7600, 0},
-	{SDLK_KP_4, 0x4b00, 0x4b00, 0x7300, 0},
-	{SDLK_KP_5, 0x4c00, 0x4c00, 0x8f00, 0},
-	{SDLK_KP_6, 0x4d00, 0x4d00, 0x7400, 0},
-	{SDLK_KP_7, 0x4700, 0x4700, 0x7700, 0},
-	{SDLK_KP_8, 0x4800, 0x4800, 0x8d00, 0},
-	{SDLK_KP_9, 0x4900, 0x4900, 0x8400, 0},
-	{SDLK_KP_MULTIPLY, '*', '*', 0x9600, 0x3700},
-	{SDLK_KP_PLUS, '+', '+', 0x9000, 0x4e00},
-	{SDLK_KP_MINUS, '-', '-', 0x8e00, 0x4a00},
-	{SDLK_KP_PERIOD, 0x7f, 0x7f, 0x5300, 0x9300},
-	{SDLK_KP_DIVIDE, '/', '/', 0x9500, 0xa400},
-	{SDLK_KP_ENTER, 0x0d, 0x0d, 0x0a, 0xa600},
-	{SDLK_F1, 0x3b00, 0x5400, 0x5e00, 0x6800},
-	{SDLK_F2, 0x3c00, 0x5500, 0x5f00, 0x6900},
-	{SDLK_F3, 0x3d00, 0x5600, 0x6000, 0x6a00},
-	{SDLK_F4, 0x3e00, 0x5700, 0x6100, 0x6b00},
-	{SDLK_F5, 0x3f00, 0x5800, 0x6200, 0x6c00},
-	{SDLK_F6, 0x4000, 0x5900, 0x6300, 0x6d00},
-	{SDLK_F7, 0x4100, 0x5a00, 0x6400, 0x6e00},
-	{SDLK_F8, 0x4200, 0x5b00, 0x6500, 0x6f00},
-	{SDLK_F9, 0x4300, 0x5c00, 0x6600, 0x7000},
-	{SDLK_F10, 0x4400, 0x5d00, 0x6700, 0x7100},
-	{SDLK_F11, 0x8500, 0x8700, 0x8900, 0x8b00},
-	{SDLK_F12, 0x8600, 0x8800, 0x8a00, 0x8c00},
-	{SDLK_BACKSLASH, '\\', '|', 0x1c, 0x2b00},
-	{SDLK_SLASH, '/', '?', 0, 0x3500},
-	{SDLK_MINUS, '-', '_', 0x1f, 0x8200},
-	{SDLK_EQUALS, '=', '+', 0, 0x8300},
-	{SDLK_LEFTBRACKET, '[', '{', 0x1b, 0x1a00},
-	{SDLK_RIGHTBRACKET, ']', '}', 0x1d, 0x1b00},
-	{SDLK_SEMICOLON, ';', ':', 0, 0x2700},
-	{SDLK_QUOTE, '\'', '"', 0, 0x2800},
-	{SDLK_COMMA, ',', '<', 0, 0x3300},
-	{SDLK_PERIOD, '.', '>', 0, 0x3400},
-	{SDLK_BACKQUOTE, '`', '~', 0, 0x2900},
-	{0, 0, 0, 0, 0}	/** END **/
-};
-
-void sdl_video_event_thread(void *data);
-
-static void sdl_user_func(int func, ...)
-{
-	va_list argptr;
-	SDL_Event	ev;
-	int rv;
-
-	ev.type=SDL_USEREVENT;
-	ev.user.data1=NULL;
-	ev.user.data2=NULL;
-	ev.user.code=func;
-	pthread_mutex_lock(&sdl_ufunc_mtx);
-	while (1) {
-		va_start(argptr, func);
-		switch(func) {
-			case SDL_USEREVENT_SETICON:
-				ev.user.data1=va_arg(argptr, void *);
-				if((ev.user.data2=(unsigned long *)malloc(sizeof(unsigned long)))==NULL) {
-					pthread_mutex_unlock(&sdl_ufunc_mtx);
-					va_end(argptr);
-					return;
-				}
-				*(unsigned long *)ev.user.data2=va_arg(argptr, unsigned long);
-				break;
-			case SDL_USEREVENT_SETNAME:
-			case SDL_USEREVENT_SETTITLE:
-				if((ev.user.data1=strdup(va_arg(argptr, char *)))==NULL) {
-					pthread_mutex_unlock(&sdl_ufunc_mtx);
-					va_end(argptr);
-					return;
-				}
-				break;
-			case SDL_USEREVENT_MOUSEPOINTER:
-				ev.user.data1 = (void *)(intptr_t)va_arg(argptr, int);
-				break;
-			case SDL_USEREVENT_SHOWMOUSE:
-			case SDL_USEREVENT_HIDEMOUSE:
-			case SDL_USEREVENT_FLUSH:
-				break;
-			default:
-				va_end(argptr);
-				return;
-		}
-		va_end(argptr);
-		while((rv = sdl.PeepEvents(&ev, 1, SDL_ADDEVENT, SDL_FIRSTEVENT, SDL_LASTEVENT))!=1)
-			YIELD();
-		break;
-	}
-	pthread_mutex_unlock(&sdl_ufunc_mtx);
-}
-
-/* Called from main thread only */
-static int sdl_user_func_ret(int func, ...)
-{
-	int rv;
-	va_list argptr;
-	SDL_Event	ev;
-
-	ev.type=SDL_USEREVENT;
-	ev.user.data1=NULL;
-	ev.user.data2=NULL;
-	ev.user.code=func;
-	va_start(argptr, func);
-	pthread_mutex_lock(&sdl_ufunc_mtx);
-	/* Drain the swamp */
-	while(1) {
-		switch(func) {
-			case SDL_USEREVENT_GETWINPOS:
-				ev.user.data1 = va_arg(argptr, void *);
-				ev.user.data2 = va_arg(argptr, void *);
-				// Fallthrough
-			case SDL_USEREVENT_SETVIDMODE:
-			case SDL_USEREVENT_INIT:
-			case SDL_USEREVENT_QUIT:
-				while(sdl.PeepEvents(&ev, 1, SDL_ADDEVENT, SDL_FIRSTEVENT, SDL_LASTEVENT)!=1)
-					YIELD();
-				break;
-			default:
-				pthread_mutex_unlock(&sdl_ufunc_mtx);
-				va_end(argptr);
-				return -1;
-		}
-		rv = sem_wait(&sdl_ufunc_ret);
-		if(rv==0)
-			break;
-	}
-	pthread_mutex_unlock(&sdl_ufunc_mtx);
-	va_end(argptr);
-	return(sdl_ufunc_retval);
-}
-
-void exit_sdl_con(void)
-{
-	// Avoid calling exit(0) from an atexit() function...
-	ciolib_reaper = 0;
-	sdl_user_func_ret(SDL_USEREVENT_QUIT);
-}
-
-void sdl_copytext(const char *text, size_t buflen)
-{
-	sdl.SetClipboardText(text);
-}
-
-char *sdl_getcliptext(void)
-{
-	uint8_t *u8;
-	u8 = (uint8_t *)sdl.GetClipboardText();
-	char *ret = strdup((char *)u8);
-	sdl.free(u8);
-	return ret;
-}
-
-void sdl_drawrect(struct rectlist *data)
-{
-	if(sdl_init_good) {
-		data->next = NULL;
-		pthread_mutex_lock(&sdl_headlock);
-		if (update_list == NULL)
-			update_list = update_list_tail = data;
-		else {
-			update_list_tail->next = data;
-			update_list_tail = data;
-		}
-		pthread_mutex_unlock(&sdl_headlock);
-	}
-	else
-		bitmap_drv_free_rect(data);
-}
-
-void sdl_flush(void)
-{
-	sdl_user_func(SDL_USEREVENT_FLUSH);
-}
-
-/*
- * Returns true if the specified width/height can use the
- * internal scaler
- *
- * vstat lock must be held
- */
-static bool
-window_can_scale_internally(int winwidth, int winheight)
-{
-	int fw, fh;
-	aspect_fix(&winwidth, &winheight, cvstat.aspect_width, cvstat.aspect_height);
-	fw = winwidth;
-	fh = winheight;
-	aspect_reverse(&winwidth, &winheight, cvstat.scrnwidth, cvstat.scrnheight, cvstat.aspect_width, cvstat.aspect_height);
-	if (fw == winwidth || fh == winheight)
-		return true;
-	return false;
-}
-
-static void
-internal_scaling_factors(int winwidth, int winheight, int *x, int *y)
-{
-	aspect_fix(&winwidth, &winheight, cvstat.aspect_width, cvstat.aspect_height);
-	aspect_reverse(&winwidth, &winheight, cvstat.scrnwidth, cvstat.scrnheight, cvstat.aspect_width, cvstat.aspect_height);
-	*x = winwidth / cvstat.scrnwidth;
-	*y = winheight / cvstat.scrnheight;
-	if (*x < 1 || *x > 14)
-		*x = 1;
-	if (*y < 1 || *y > 14)
-		*y = 1;
-}
-
-static int sdl_init_mode(int mode)
-{
-	int oldcols;
-
-	if (mode != CIOLIB_MODE_CUSTOM) {
-		pthread_mutex_lock(&vstatlock);
-		if (mode == vstat.mode) {
-			pthread_mutex_unlock(&vstatlock);
-			return 0;
-		}
-		pthread_mutex_unlock(&vstatlock);
-	}
-
-	sdl_user_func(SDL_USEREVENT_FLUSH);
-
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&vstatlock);
-	oldcols = cvstat.cols;
-	bitmap_drv_init_mode(mode, &bitmap_width, &bitmap_height);
-	vstat.winwidth = lround((double)cvstat.winwidth / cvstat.scrnwidth * vstat.scrnwidth);
-	vstat.winheight = lround((double)cvstat.winheight / cvstat.scrnheight * vstat.scrnheight);
-	aspect_correct(&vstat.winwidth, &cvstat.winheight, cvstat.aspect_width, cvstat.aspect_height);
-	if (oldcols != vstat.cols) {
-		if (oldcols == 0) {
-			if (ciolib_initial_window_width > 0)
-				vstat.winwidth = ciolib_initial_window_width;
-			if (ciolib_initial_window_height > 0)
-				vstat.winheight = ciolib_initial_window_height;
-			if (vstat.cols == 40)
-				oldcols = 40;
-		}
-		if (oldcols == 40) {
-			vstat.winwidth /= 2;
-			vstat.winheight /= 2;
-		}
-		if (vstat.cols == 40) {
-			vstat.winwidth *= 2;
-			vstat.winheight *= 2;
-		}
-	}
-	if (vstat.winwidth < vstat.scrnwidth)
-		vstat.winwidth = vstat.scrnwidth;
-	if (vstat.winheight < vstat.scrnheight)
-		vstat.winheight = vstat.scrnheight;
-
-	cvstat = vstat;
-	internal_scaling = window_can_scale_internally(vstat.winwidth, vstat.winheight);
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-
-	sdl_user_func_ret(SDL_USEREVENT_SETVIDMODE);
-
-	return(0);
-}
-
-/* Called from main thread only (Passes Event) */
-int sdl_init(int mode)
-{
-	bitmap_drv_init(sdl_drawrect, sdl_flush);
-
-	if(mode==CIOLIB_MODE_SDL_FULLSCREEN)
-		fullscreen=1;
-	// Needs to be *after* bitmap_drv_init()
-#if defined(__DARWIN__)
-	sem_post(&startsdl_sem);
-#else
-	_beginthread(sdl_video_event_thread, 0, NULL);
-#endif
-	sdl_user_func_ret(SDL_USEREVENT_INIT);
-	sdl_init_mode(3);
-
-	if(sdl_init_good) {
-		cio_api.mode=fullscreen?CIOLIB_MODE_SDL_FULLSCREEN:CIOLIB_MODE_SDL;
-#ifdef _WIN32
-		FreeConsole();
-#endif
-		cio_api.options |= CONIO_OPT_PALETTE_SETTING | CONIO_OPT_SET_TITLE | CONIO_OPT_SET_NAME | CONIO_OPT_SET_ICON;
-		return(0);
-	}
-
-	ciolib_reaper = 0;
-	sdl_user_func_ret(SDL_USEREVENT_QUIT);
-	return(-1);
-}
-
-void sdl_setwinsize_locked(int w, int h)
-{
-	if (w > 16384)
-		w = 16384;
-	if (h > 16384)
-		h = 16384;
-	if (w < cvstat.scrnwidth)
-		w = cvstat.scrnwidth;
-	if (h < cvstat.scrnheight)
-		h = cvstat.scrnheight;
-	cvstat.winwidth = vstat.winwidth = w;
-	cvstat.winheight = vstat.winheight = h;
-	internal_scaling = window_can_scale_internally(cvstat.winwidth, cvstat.winheight);
-}
-
-void sdl_setwinsize(int w, int h)
-{
-	pthread_mutex_lock(&vstatlock);
-	sdl_setwinsize_locked(w, h);
-	pthread_mutex_unlock(&vstatlock);
-}
-
-void sdl_setwinposition(int x, int y)
-{
-	pthread_mutex_lock(&win_mutex);
-	sdl.SetWindowPosition(win, x, y);
-	pthread_mutex_unlock(&win_mutex);
-}
-
-void sdl_getwinsize_locked(int *w, int *h)
-{
-	if (w)
-		*w = cvstat.winwidth;
-	if (h)
-		*h = cvstat.winheight;
-}
-
-void sdl_getwinsize(int *w, int *h)
-{
-	pthread_mutex_lock(&vstatlock);
-	sdl_getwinsize_locked(w, h);
-	pthread_mutex_unlock(&vstatlock);
-}
-
-/* Called from main thread only */
-int sdl_kbhit(void)
-{
-	int ret;
-
-	pthread_mutex_lock(&sdl_keylock);
-	ret=(sdl_key!=sdl_keynext);
-	pthread_mutex_unlock(&sdl_keylock);
-	return(ret);
-}
-
-/* Called from main thread only */
-int sdl_getch(void)
-{
-	int ch;
-
-	sem_wait(&sdl_key_pending);
-	pthread_mutex_lock(&sdl_keylock);
-
-	/* This always frees up space in keybuf for one more char */
-	ch=sdl_keybuf[sdl_key++];
-	/* If we have missed mouse keys, tack them on to the end of the buffer now */
-	if(sdl_pending_mousekeys) {
-		if(sdl_pending_mousekeys & 1)	/* Odd number... second char */
-	       	sdl_keybuf[sdl_keynext++]=CIO_KEY_MOUSE >> 8;
-		else							/* Even number... first char */
-	        sdl_keybuf[sdl_keynext++]=CIO_KEY_MOUSE & 0xff;
-        sem_post(&sdl_key_pending);
-		sdl_pending_mousekeys--;
-	}
-	pthread_mutex_unlock(&sdl_keylock);
-	return(ch);
-}
-
-/* Called from main thread only */
-void sdl_textmode(int mode)
-{
-	sdl_init_mode(mode);
-}
-
-/* Called from main thread only (Passes Event) */
-int sdl_setname(const char *name)
-{
-	sdl_user_func(SDL_USEREVENT_SETNAME,name);
-	return(0);
-}
-
-/* Called from main thread only (Passes Event) */
-int sdl_seticon(const void *icon, unsigned long size)
-{
-	sdl_user_func(SDL_USEREVENT_SETICON,icon,size);
-	return(0);
-}
-
-/* Called from main thread only (Passes Event) */
-int sdl_settitle(const char *title)
-{
-	sdl_user_func(SDL_USEREVENT_SETTITLE,title);
-	return(0);
-}
-
-int sdl_showmouse(void)
-{
-	sdl_user_func(SDL_USEREVENT_SHOWMOUSE);
-	return(1);
-}
-
-int sdl_hidemouse(void)
-{
-	sdl_user_func(SDL_USEREVENT_HIDEMOUSE);
-	return(0);
-}
-
-int sdl_get_window_info(int *width, int *height, int *xpos, int *ypos)
-{
-	int wx, wy;
-
-	if (xpos || ypos) {
-		sdl_user_func_ret(SDL_USEREVENT_GETWINPOS, &wx, &wy);
-		if(xpos)
-			*xpos=wx;
-		if(ypos)
-			*ypos=wy;
-	}
-
-	if (width || height) {
-		pthread_mutex_lock(&vstatlock);
-		if(width)
-			*width=cvstat.winwidth;
-		if(height)
-			*height=cvstat.winheight;
-		pthread_mutex_unlock(&vstatlock);
-	}
-
-	return(1);
-}
-
-static void setup_surfaces_locked(void)
-{
-	int		flags=0;
-	SDL_Event	ev;
-	SDL_Texture *newtexture;
-	int idealw;
-	int idealh;
-	int idealmw;
-	int idealmh;
-
-	if(fullscreen)
-		flags |= SDL_WINDOW_FULLSCREEN_DESKTOP;
-	else
-		flags |= SDL_WINDOW_RESIZABLE;
-#if (SDL_MINOR_VERSION > 0) || (SDL_PATCHLEVEL >= 1)
-        flags |= SDL_WINDOW_ALLOW_HIGHDPI;
-#endif
-
-
-	pthread_mutex_lock(&win_mutex);
-	idealmw = cvstat.scrnwidth;
-	idealmh = cvstat.scrnheight;
-	aspect_correct(&idealmw, &idealmh, cvstat.aspect_width, cvstat.aspect_height);
-	idealw = cvstat.winwidth;
-	idealh = cvstat.winheight;
-	aspect_fix(&idealw, &idealh, cvstat.aspect_width, cvstat.aspect_height);
-	internal_scaling = window_can_scale_internally(idealw, idealh);
-	sdl.SetHint(SDL_HINT_RENDER_SCALE_QUALITY, internal_scaling ? "0" : "2");
-
-	if (win == NULL) {
-		// SDL2: This is slow sometimes... not sure why.
-		if (sdl.CreateWindowAndRenderer(cvstat.winwidth, cvstat.winheight, flags, &win, &renderer) == 0) {
-			sdl.RenderClear(renderer);
-			if (internal_scaling)
-				newtexture = sdl.CreateTexture(renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STREAMING, idealw, idealh);
-			else
-				newtexture = sdl.CreateTexture(renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STREAMING, cvstat.scrnwidth, cvstat.scrnheight);
-
-			if (texture)
-				sdl.DestroyTexture(texture);
-			texture = newtexture;
-		}
-		else {
-			win = NULL;
-			renderer = NULL;
-		}
-	}
-	else {
-		sdl.SetWindowMinimumSize(win, idealmw, idealmh);
-		sdl.SetWindowSize(win, idealw, idealh);
-		if (internal_scaling)
-			newtexture = sdl.CreateTexture(renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STREAMING, idealw, idealh);
-		else
-			newtexture = sdl.CreateTexture(renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STREAMING, cvstat.scrnwidth, cvstat.scrnheight);
-		sdl.RenderClear(renderer);
-		if (texture)
-			sdl.DestroyTexture(texture);
-		texture = newtexture;
-	}
-	sdl.SetWindowMinimumSize(win, idealmw, idealmh);
-
-	if(win!=NULL) {
-		bitmap_drv_request_pixels();
-	}
-	else if(sdl_init_good) {
-		ev.type=SDL_QUIT;
-		sdl_exitcode=1;
-		sdl.PeepEvents(&ev, 1, SDL_ADDEVENT, SDL_FIRSTEVENT, SDL_LASTEVENT);
-	}
-	pthread_mutex_unlock(&win_mutex);
-}
-
-static void setup_surfaces(void)
-{
-	pthread_mutex_lock(&vstatlock);
-	setup_surfaces_locked();
-	pthread_mutex_unlock(&vstatlock);
-}
-
-/* Called from event thread only */
-static void sdl_add_key(unsigned int keyval)
-{
-	if(keyval==0xa600) {
-		fullscreen=!fullscreen;
-		cio_api.mode=fullscreen?CIOLIB_MODE_SDL_FULLSCREEN:CIOLIB_MODE_SDL;
-		sdl.SetWindowFullscreen(win, fullscreen ? SDL_WINDOW_FULLSCREEN_DESKTOP : 0);
-		setup_surfaces();
-		return;
-	}
-	if(keyval <= 0xffff) {
-		pthread_mutex_lock(&sdl_keylock);
-		if(sdl_keynext+1==sdl_key) {
-			beep();
-			pthread_mutex_unlock(&sdl_keylock);
-			return;
-		}
-		if((sdl_keynext+2==sdl_key) && keyval > 0xff) {
-			if(keyval==CIO_KEY_MOUSE)
-				sdl_pending_mousekeys+=2;
-			else
-				beep();
-			pthread_mutex_unlock(&sdl_keylock);
-			return;
-		}
-		sdl_keybuf[sdl_keynext++]=keyval & 0xff;
-		sem_post(&sdl_key_pending);
-		if(keyval>0xff) {
-			sdl_keybuf[sdl_keynext++]=keyval >> 8;
-			sem_post(&sdl_key_pending);
-		}
-		pthread_mutex_unlock(&sdl_keylock);
-	}
-}
-
-/* Called from event thread only */
-static unsigned int sdl_get_char_code(unsigned int keysym, unsigned int mod)
-{
-	int expect;
-	int i;
-
-	/* We don't handle META */
-	if (mod & KMOD_GUI)
-		return(0x0001ffff);
-
-	/* Glah! */
-#ifdef __DARWIN__
-	if(keysym==0x7f && !(mod & KMOD_CTRL)) {
-		keysym=0x08;
-		keysym=SDLK_BACKSPACE;
-	}
-#endif
-
-	/* Find the SDL keysym */
-	for(i=0;sdl_keyval[i].keysym;i++) {
-		if(sdl_keyval[i].keysym==keysym) {
-			/* KeySym found in table */
-
-			/*
-			 * Using the modifiers, look up the expected scan code.
-			 */
-			if(mod & KMOD_ALT)
-				expect = sdl_keyval[i].alt;
-			else if(mod & KMOD_CTRL)
-				expect=sdl_keyval[i].ctrl;
-			else if(mod & KMOD_SHIFT) {
-				if((mod & KMOD_CAPS) && keysym != '\t')
-					expect=sdl_keyval[i].key;
-				else
-					expect=sdl_keyval[i].shift;
-			}
-			else {
-				if(mod & KMOD_CAPS && (toupper(sdl_keyval[i].key) == sdl_keyval[i].shift))
-					expect=sdl_keyval[i].shift;
-				else
-					expect=sdl_keyval[i].key;
-			}
-
-			return(expect);
-		}
-	}
-	/*
-	 * Well, we can't find it in our table, or it's a regular key.
-	 */
-	if(keysym > 0 && keysym < 128) {
-		if (isalpha(keysym)) {
-			/*
-			 * If CAPS and SHIFT are not in the same state,
-			 * upper-case.
-			 */
-			if(!!(mod & KMOD_CAPS) != !!(mod & KMOD_SHIFT))
-				return toupper(keysym);
-		}
-		return keysym;
-	}
-
-	/* Give up.  It's not working out for us. */
-	return(0x0001ffff);
-}
-
-static void
-sdl_add_keys(uint8_t *utf8s)
-{
-	char *chars;
-	char *p;
-
-	chars = utf8_to_cp(getcodepage(), utf8s, '\x00', strlen((char *)utf8s), NULL);
-	if (chars) {
-		for (p = chars; *p; p++) {
-			sdl_add_key(*((uint8_t *)p));
-		}
-		free(chars);
-	}
-}
-
-/* Mouse event/keyboard thread */
-static void sdl_mouse_thread(void *data)
-{
-	SetThreadName("SDL Mouse");
-	while(1) {
-		if(mouse_wait())
-			sdl_add_key(CIO_KEY_MOUSE);
-	}
-}
-
-static int win_to_text_xpos(int winpos)
-{
-	int ret;
-
-	pthread_mutex_lock(&vstatlock);
-	ret = winpos/(((float)cvstat.winwidth)/cvstat.cols)+1;
-	if (ret > cvstat.cols)
-		ret = cvstat.cols;
-	if (ret < 1)
-		ret = 1;
-	pthread_mutex_unlock(&vstatlock);
-	return ret;
-}
-
-static int win_to_text_ypos(int winpos)
-{
-	int ret;
-
-	pthread_mutex_lock(&vstatlock);
-	ret = winpos/(((float)cvstat.winheight)/cvstat.rows)+1;
-	if (ret > cvstat.rows)
-		ret = cvstat.rows;
-	if (ret < 1)
-		ret = 1;
-	pthread_mutex_unlock(&vstatlock);
-	return ret;
-}
-
-static int win_to_res_xpos(int winpos)
-{
-	int ret;
-
-	pthread_mutex_lock(&vstatlock);
-	ret = winpos * (cvstat.scrnwidth) / cvstat.winwidth;
-	pthread_mutex_unlock(&vstatlock);
-	return ret;
-}
-
-static int win_to_res_ypos(int winpos)
-{
-	int ret;
-
-	pthread_mutex_lock(&vstatlock);
-	ret = winpos * (cvstat.scrnheight) / cvstat.winheight;
-	pthread_mutex_unlock(&vstatlock);
-	return ret;
-}
-
-void sdl_video_event_thread(void *data)
-{
-	SDL_Event	ev;
-	int		block_text = 0;
-	static SDL_Keycode last_sym = SDLK_UNKNOWN;
-	static Uint16 last_mod = 0;
-
-	while(1) {
-		if(sdl.WaitEventTimeout(&ev, 1)!=1)
-			continue;
-		switch (ev.type) {
-			case SDL_KEYDOWN:			/* Keypress */
-				last_mod = ev.key.keysym.mod;
-				last_sym = ev.key.keysym.sym;
-				if ((ev.key.keysym.mod & (KMOD_CTRL|KMOD_ALT|KMOD_GUI)) && !(ev.key.keysym.mod & KMOD_MODE)) {
-					block_text = 1;
-					if ((ev.key.keysym.mod & KMOD_ALT) &&
-					    (ev.key.keysym.sym == SDLK_LEFT ||
-					     ev.key.keysym.sym == SDLK_RIGHT)) {
-						int w, h;
-
-						// Don't allow ALT-DIR to change size when maximized...
-						if ((sdl.GetWindowFlags(win) & SDL_WINDOW_MAXIMIZED) == 0) {
-							bool wc;
-							pthread_mutex_lock(&vstatlock);
-							w = cvstat.winwidth;
-							h = cvstat.winheight;
-							aspect_fix(&w, &h, cvstat.aspect_width, cvstat.aspect_height);
-							if (cvstat.aspect_width == 0 || cvstat.aspect_height == 0)
-								wc = true;
-							else
-								wc = lround((double)(h * cvstat.aspect_width) / cvstat.aspect_height * cvstat.scrnwidth / cvstat.scrnheight) > w;
-							switch(ev.key.keysym.sym) {
-								case SDLK_LEFT:
-									if (wc) {
-										if (w % (cvstat.scrnwidth)) {
-											w = w - w % cvstat.scrnwidth;
-										}
-										else {
-											w -= cvstat.scrnwidth;
-											if (w < cvstat.scrnwidth)
-												w = cvstat.scrnwidth;
-										}
-									}
-									else {
-										if (h % (cvstat.scrnheight)) {
-											h = h - h % cvstat.scrnheight;
-										}
-										else {
-											h -= cvstat.scrnheight;
-											if (h < cvstat.scrnheight)
-												h = cvstat.scrnheight;
-										}
-									}
-									break;
-								case SDLK_RIGHT:
-									if (wc)
-										w = (w - w % cvstat.scrnwidth) + cvstat.scrnwidth;
-									else
-										h = (h - h % cvstat.scrnheight) + cvstat.scrnheight;
-									break;
-							}
-							if (wc)
-								h = INT_MAX;
-							else
-								w = INT_MAX;
-							aspect_fix(&w, &h, cvstat.aspect_width, cvstat.aspect_height);
-							if (w > 16384 || h > 16384)
-								beep();
-							else {
-								cvstat.winwidth = w;
-								cvstat.winheight = h;
-								internal_scaling = window_can_scale_internally(w, h);
-							}
-							setup_surfaces_locked();
-							pthread_mutex_unlock(&vstatlock);
-						}
-						break;
-					}
-				}
-				if (ev.key.keysym.mod & KMOD_RALT) {	// Possible AltGr, let textinput sort it out...
-					block_text = 0;
-					break;
-				}
-				if ((ev.key.keysym.mod & KMOD_SHIFT) && (ev.key.keysym.sym == '\t'))
-					block_text = 1;
-				if (block_text || ev.key.keysym.sym < 0 || ev.key.keysym.sym > 127) {
-					// NUMLOCK makes 
-					if ((ev.key.keysym.mod & KMOD_NUM) && ((ev.key.keysym.sym >= SDLK_KP_1 && ev.key.keysym.sym <= SDLK_KP_0)
-					    || ev.key.keysym.sym == SDLK_KP_DIVIDE
-					    || ev.key.keysym.sym == SDLK_KP_MULTIPLY
-					    || ev.key.keysym.sym == SDLK_KP_MINUS
-					    || ev.key.keysym.sym == SDLK_KP_PLUS
-					    || ev.key.keysym.sym == SDLK_KP_PERIOD))
-						break;
-					sdl_add_key(sdl_get_char_code(ev.key.keysym.sym, ev.key.keysym.mod));
-				}
-				else if (!isprint(ev.key.keysym.sym)) {
-					if (ev.key.keysym.sym < 128)
-						sdl_add_key(ev.key.keysym.sym);
-				}
-				break;
-			case SDL_TEXTINPUT:
-				if (!block_text) {
-					unsigned int charcode = sdl_get_char_code(last_sym, last_mod & ~(KMOD_ALT));
-					// If the key is exactly what we would expect, use sdl_get_char_code()
-					if (*(uint8_t *)ev.text.text == charcode)
-						sdl_add_key(sdl_get_char_code(last_sym, last_mod));
-					else
-						sdl_add_keys((uint8_t *)ev.text.text);
-				}
-				break;
-			case SDL_KEYUP:
-				last_mod = ev.key.keysym.mod;
-				if (!(ev.key.keysym.mod & (KMOD_CTRL|KMOD_ALT|KMOD_GUI)))
-					block_text = 0;
-				break;
-			case SDL_MOUSEMOTION:
-				if(!ciolib_mouse_initialized)
-					break;
-				ciomouse_gotevent(CIOLIB_MOUSE_MOVE,win_to_text_xpos(ev.motion.x),win_to_text_ypos(ev.motion.y), win_to_res_xpos(ev.motion.x), win_to_res_ypos(ev.motion.y));
-				break;
-			case SDL_MOUSEBUTTONDOWN:
-				if(!ciolib_mouse_initialized)
-					break;
-				switch(ev.button.button) {
-					case SDL_BUTTON_LEFT:
-						ciomouse_gotevent(CIOLIB_BUTTON_PRESS(1),win_to_text_xpos(ev.button.x),win_to_text_ypos(ev.button.y), win_to_res_xpos(ev.button.x), win_to_res_ypos(ev.button.y));
-						break;
-					case SDL_BUTTON_MIDDLE:
-						ciomouse_gotevent(CIOLIB_BUTTON_PRESS(2),win_to_text_xpos(ev.button.x),win_to_text_ypos(ev.button.y), win_to_res_xpos(ev.button.x), win_to_res_ypos(ev.button.y));
-						break;
-					case SDL_BUTTON_RIGHT:
-						ciomouse_gotevent(CIOLIB_BUTTON_PRESS(3),win_to_text_xpos(ev.button.x),win_to_text_ypos(ev.button.y), win_to_res_xpos(ev.button.x), win_to_res_ypos(ev.button.y));
-						break;
-				}
-				break;
-			case SDL_MOUSEWHEEL:
-				if (!ciolib_mouse_initialized)
-					break;
-				if (ev.wheel.y) {
-#if (SDL_MINOR_VERSION > 0) || (SDL_PATCHLEVEL > 3)
-					if (ev.wheel.direction == SDL_MOUSEWHEEL_FLIPPED)
-						ev.wheel.y = 0 - ev.wheel.y;
-#endif
-					if (ev.wheel.y > 0)
-						ciomouse_gotevent(CIOLIB_BUTTON_PRESS(4), -1, -1, -1, -1);
-					if (ev.wheel.y < 0)
-						ciomouse_gotevent(CIOLIB_BUTTON_PRESS(5), -1, -1, -1, -1);
-				}
-				break;
-			case SDL_MOUSEBUTTONUP:
-				if(!ciolib_mouse_initialized)
-					break;
-				switch(ev.button.button) {
-					case SDL_BUTTON_LEFT:
-						ciomouse_gotevent(CIOLIB_BUTTON_RELEASE(1),win_to_text_xpos(ev.button.x),win_to_text_ypos(ev.button.y), win_to_res_xpos(ev.button.x), win_to_res_ypos(ev.button.y));
-						break;
-					case SDL_BUTTON_MIDDLE:
-						ciomouse_gotevent(CIOLIB_BUTTON_RELEASE(2),win_to_text_xpos(ev.button.x),win_to_text_ypos(ev.button.y), win_to_res_xpos(ev.button.x), win_to_res_ypos(ev.button.y));
-						break;
-					case SDL_BUTTON_RIGHT:
-						ciomouse_gotevent(CIOLIB_BUTTON_RELEASE(3),win_to_text_xpos(ev.button.x),win_to_text_ypos(ev.button.y), win_to_res_xpos(ev.button.x), win_to_res_ypos(ev.button.y));
-						break;
-				}
-				break;
-			case SDL_QUIT:
-				/*
-				 * SDL2: Do we still need the reaper?
-				 * This is what exit()s programs when the
-				 * X is hit.
-				 */
-				if (ciolib_reaper)
-					sdl_user_func(SDL_USEREVENT_QUIT);
-				else
-					sdl_add_key(CIO_KEY_QUIT);
-				break;
-			case SDL_WINDOWEVENT:
-				switch(ev.window.event) {
-					case SDL_WINDOWEVENT_SIZE_CHANGED:
-						// SDL2: User resized window
-					case SDL_WINDOWEVENT_RESIZED:
-						{
-							// SDL2: Something resized window
-							const char *newh;
-
-							pthread_mutex_lock(&vstatlock);
-							pthread_mutex_lock(&win_mutex);
-							internal_scaling = window_can_scale_internally(ev.window.data1, ev.window.data2);
-							if (internal_scaling) {
-								newh = "0";
-							}
-							else {
-								newh = "2";
-							}
-							sdl.GetWindowSize(win, &cvstat.winwidth, &cvstat.winheight);
-							if (strcmp(newh, sdl.GetHint(SDL_HINT_RENDER_SCALE_QUALITY))) {
-								SDL_Texture *newtexture;
-								sdl.SetHint(SDL_HINT_RENDER_SCALE_QUALITY, newh);
-								if (internal_scaling) {
-									int idealw, idealh;
-									idealw = cvstat.winwidth;
-									idealh = cvstat.winheight;
-									aspect_fix(&idealw, &idealh, cvstat.aspect_width, cvstat.aspect_height);
-									newtexture = sdl.CreateTexture(renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STREAMING, idealw, idealh);
-								}
-								else
-									newtexture = sdl.CreateTexture(renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STREAMING, cvstat.scrnwidth, cvstat.scrnheight);
-								sdl.RenderClear(renderer);
-								if (texture)
-									sdl.DestroyTexture(texture);
-								texture = newtexture;
-							}
-							sdl.RenderClear(renderer);
-							bitmap_drv_request_pixels();
-							pthread_mutex_unlock(&win_mutex);
-							pthread_mutex_unlock(&vstatlock);
-							break;
-						}
-					case SDL_WINDOWEVENT_EXPOSED:
-						bitmap_drv_request_pixels();
-						break;
-				}
-				break;
-			case SDL_USEREVENT: {
-				struct rectlist *list;
-				struct rectlist *old_next;
-				switch(ev.user.code) {
-					case SDL_USEREVENT_QUIT:
-						sdl_ufunc_retval=0;
-						if (ciolib_reaper)
-							exit(0);
-						sem_post(&sdl_ufunc_ret);
-						return;
-					case SDL_USEREVENT_FLUSH:
-						pthread_mutex_lock(&win_mutex);
-						if (win != NULL) {
-							pthread_mutex_lock(&sdl_headlock);
-							list = update_list;
-							update_list = update_list_tail = NULL;
-							pthread_mutex_unlock(&sdl_headlock);
-							for (; list; list = old_next) {
-								SDL_Rect src;
-								SDL_Rect dst;
-
-								old_next = list->next;
-								if (list->next == NULL) {
-									void *pixels;
-									int pitch;
-									int row;
-									int tw, th;
-
-									if (internal_scaling) {
-										struct graphics_buffer *gb;
-										int xscale, yscale;
-										internal_scaling_factors(cvstat.winwidth, cvstat.winheight, &xscale, &yscale);
-										gb = do_scale(list, xscale, yscale,
-										    cvstat.aspect_width, cvstat.aspect_height);
-										src.x = 0;
-										src.y = 0;
-										src.w = gb->w;
-										src.h = gb->h;
-										sdl.QueryTexture(texture, NULL, NULL, &tw, &th);
-										sdl.LockTexture(texture, &src, &pixels, &pitch);
-										if (pitch != gb->w * sizeof(gb->data[0])) {
-											// If this happens, we need to copy a row at a time...
-											for (row = 0; row < gb->h && row < th; row++) {
-												if (pitch < gb->w * sizeof(gb->data[0]))
-													memcpy(pixels, &gb->data[gb->w * row], pitch);
-												else
-													memcpy(pixels, &gb->data[gb->w * row], gb->w * sizeof(gb->data[0]));
-												pixels = (void *)((char*)pixels + pitch);
-											}
-										}
-										else {
-											int ch = gb->h;
-											if (ch > th)
-												ch = th;
-											memcpy(pixels, gb->data, gb->w * ch * sizeof(gb->data[0]));
-										}
-										sdl.UnlockTexture(texture);
-										dst.x = (cvstat.winwidth - gb->w) / 2;
-										dst.y = (cvstat.winheight - gb->h) / 2;
-										dst.w = gb->w;
-										dst.h = gb->h;
-										release_buffer(gb);
-									}
-									else {
-										src.x = 0;
-										src.y = 0;
-										src.w = list->rect.width;
-										src.h = list->rect.height;
-										sdl.QueryTexture(texture, NULL, NULL, &tw, &th);
-										sdl.LockTexture(texture, &src, &pixels, &pitch);
-										if (pitch != list->rect.width * sizeof(list->data[0])) {
-											// If this happens, we need to copy a row at a time...
-											for (row = 0; row < list->rect.height && row < th; row++) {
-												if (pitch < list->rect.width * sizeof(list->data[0]))
-													memcpy(pixels, &list->data[list->rect.width * row], pitch);
-												else
-													memcpy(pixels, &list->data[list->rect.width * row], list->rect.width * sizeof(list->data[0]));
-												pixels = (void *)((char*)pixels + pitch);
-											}
-										}
-										else {
-											int ch = list->rect.height;
-											if (ch > th)
-												ch = th;
-											memcpy(pixels, list->data, list->rect.width * ch * sizeof(list->data[0]));
-										}
-										sdl.UnlockTexture(texture);
-										dst.w = cvstat.winwidth;
-										dst.h = cvstat.winheight;
-										// Get correct aspect ratio for dst...
-										aspect_fix(&dst.w, &dst.h, cvstat.aspect_width, cvstat.aspect_height);
-										dst.x = (cvstat.winwidth - dst.w) / 2;
-										dst.y = (cvstat.winheight - dst.h) / 2;
-									}
-									sdl.RenderCopy(renderer, texture, &src, &dst);
-								}
-								bitmap_drv_free_rect(list);
-							}
-							sdl.RenderPresent(renderer);
-						}
-						pthread_mutex_unlock(&win_mutex);
-						break;
-					case SDL_USEREVENT_SETNAME:
-						pthread_mutex_lock(&win_mutex);
-						sdl.SetWindowTitle(win, (char *)ev.user.data1);
-						pthread_mutex_unlock(&win_mutex);
-						free(ev.user.data1);
-						break;
-					case SDL_USEREVENT_SETICON:
-						if(sdl_icon != NULL)
-							sdl.FreeSurface(sdl_icon);
-						sdl_icon=sdl.CreateRGBSurfaceFrom(ev.user.data1
-								, *(unsigned long *)ev.user.data2
-								, *(unsigned long *)ev.user.data2
-								, 32
-								, *(unsigned long *)ev.user.data2*4
-								, *(DWORD *)"\377\0\0\0"
-								, *(DWORD *)"\0\377\0\0"
-								, *(DWORD *)"\0\0\377\0"
-								, *(DWORD *)"\0\0\0\377"
-						);
-						pthread_mutex_lock(&win_mutex);
-						sdl.SetWindowIcon(win, sdl_icon);
-						pthread_mutex_unlock(&win_mutex);
-						free(ev.user.data2);
-						break;
-					case SDL_USEREVENT_SETTITLE:
-						pthread_mutex_lock(&win_mutex);
-						sdl.SetWindowTitle(win, (char *)ev.user.data1);
-						pthread_mutex_unlock(&win_mutex);
-						free(ev.user.data1);
-						break;
-					case SDL_USEREVENT_SETVIDMODE:
-						pthread_mutex_lock(&vstatlock);
-						setup_surfaces_locked();
-						pthread_mutex_unlock(&vstatlock);
-						sdl_ufunc_retval=0;
-						sem_post(&sdl_ufunc_ret);
-						break;
-					case SDL_USEREVENT_HIDEMOUSE:
-						sdl.ShowCursor(SDL_DISABLE);
-						break;
-					case SDL_USEREVENT_SHOWMOUSE:
-						sdl.ShowCursor(SDL_ENABLE);
-						break;
-					case SDL_USEREVENT_INIT:
-						if(!sdl_init_good) {
-							if(sdl.WasInit(SDL_INIT_VIDEO)==SDL_INIT_VIDEO) {
-								pthread_mutex_lock(&win_mutex);
-								_beginthread(sdl_mouse_thread, 0, NULL);
-								sdl_init_good=1;
-								pthread_mutex_unlock(&win_mutex);
-							}
-						}
-						sdl_ufunc_retval=0;
-						sem_post(&sdl_ufunc_ret);
-						break;
-					case SDL_USEREVENT_GETWINPOS:
-						sdl.GetWindowPosition(win, ev.user.data1, ev.user.data2);
-						sem_post(&sdl_ufunc_ret);
-						break;
-					case SDL_USEREVENT_MOUSEPOINTER:
-					{
-						int cid = INT_MIN;
-						SDL_Cursor *oc = curs;
-						switch((intptr_t)ev.user.data1) {
-							case CIOLIB_MOUSEPTR_ARROW:
-								break;	// Default
-							case CIOLIB_MOUSEPTR_BAR:
-								cid = SDL_SYSTEM_CURSOR_IBEAM;
-								break;
-						}
-						if (cid == INT_MIN) {
-							sdl.SetCursor(sdl.GetDefaultCursor());
-							curs = NULL;
-						}
-						else {
-							curs = sdl.CreateSystemCursor(cid);
-							if (curs == NULL)
-								sdl.SetCursor(sdl.GetDefaultCursor());
-							else
-								sdl.SetCursor(curs);
-						}
-						if (oc)
-							sdl.FreeCursor(oc);
-						break;
-					}
-				}
-				break;
-			}
-			case SDL_SYSWMEVENT:			/* ToDo... This is where Copy/Paste needs doing */
-
-			/* Ignore this stuff */
-			case SDL_JOYAXISMOTION:
-			case SDL_JOYBALLMOTION:
-			case SDL_JOYHATMOTION:
-			case SDL_JOYBUTTONDOWN:
-			case SDL_JOYBUTTONUP:
-			default:
-				break;
-		}
-	}
-	return;
-}
-
-int sdl_initciolib(int mode)
-{
-#if defined(__DARWIN__)
-	if (initsdl_ret) {
-#else
-	if(init_sdl_video()) {
-#endif
-		fprintf(stderr,"SDL Video Initialization Failed\n");
-		return(-1);
-	}
-	sem_init(&sdl_key_pending, 0, 0);
-	sem_init(&sdl_ufunc_ret, 0, 0);
-	sem_init(&sdl_ufunc_rec, 0, 0);
-	pthread_mutex_init(&sdl_ufunc_mtx, NULL);
-	pthread_mutex_init(&sdl_headlock, NULL);
-	pthread_mutex_init(&win_mutex, NULL);
-	pthread_mutex_init(&sdl_keylock, NULL);
-	return(sdl_init(mode));
-}
-
-void
-sdl_beep(void)
-{
-        static unsigned char wave[2206];
-
-	if (wave[2205] == 0) {
-		xptone_makewave(440, wave, 2205, WAVE_SHAPE_SINE_SAW_HARM);
-		wave[2205] = 1;
-	}
-        xp_play_sample(wave, 2205, TRUE);
-}
-
-/* Called from main thread only (Passes Event) */
-int sdl_mousepointer(enum ciolib_mouse_ptr type)
-{
-	sdl_user_func(SDL_USEREVENT_MOUSEPOINTER,type);
-	return(0);
-}
diff --git a/ciolib/sdl_con.h b/ciolib/sdl_con.h
deleted file mode 100644
index 8484f8a6160dc35b0c29658dd21d3110fbc5ae97..0000000000000000000000000000000000000000
--- a/ciolib/sdl_con.h
+++ /dev/null
@@ -1,52 +0,0 @@
-#ifndef _SDL_CON_H_
-#define _SDL_CON_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-/* Low-Level stuff (Shouldn't be used by ciolib programs */
-int sdl_init(int mode);
-int sdl_load_font(char *filename, int width, int height, double scale);
-int sdl_init_mode(int mode);
-int sdl_setup_colours(void);
-int sdl_draw_char(unsigned short vch, int xpos, int ypos);
-int sdl_screen_redraw(void);
-void exit_sdl_con(void);
-
-/* High-level stuff */
-int sdl_puttext(int sx, int sy, int ex, int ey, void *fill);
-int sdl_gettext(int sx, int sy, int ex, int ey, void *fill);
-int sdl_kbhit(void);
-void sdl_delay(long msec);
-void sdl_gotoxy(int x, int y);
-int sdl_initciolib(long inmode);
-void sdl_setcursortype(int type);
-int sdl_getch(void);
-void sdl_textmode(int mode);
-void sdl_setname(const char *name);
-void sdl_seticon(const void *, unsigned long size);
-void sdl_settitle(const char *title);
-int sdl_hidemouse(void);
-int sdl_showmouse(void);
-void sdl_copytext(const char *text, size_t buflen);
-char *sdl_getcliptext(void);
-int sdl_setfont(int font, int force);
-int sdl_getfont(void);
-int sdl_loadfont(char *filename);
-int sdl_get_window_info(int *width, int *height, int *xpos, int *ypos);
-int sdl_setpalette(uint32_t index, uint16_t r, uint16_t g, uint16_t b);
-void sdl_setwinsize(int w, int h);
-void sdl_setwinposition(int x, int y);
-void sdl_beep(void);
-int sdl_mousepointer(enum ciolib_mouse_ptr type);
-
-#if defined(__DARWIN__)
-void sdl_init_darwin(void *args);
-void sdl_video_event_thread(void *data);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/ciolib/sdlfuncs.c b/ciolib/sdlfuncs.c
deleted file mode 100644
index d5c2f09129fcd3720ee5c5967895c52b7d93f45f..0000000000000000000000000000000000000000
--- a/ciolib/sdlfuncs.c
+++ /dev/null
@@ -1,316 +0,0 @@
-#include <stdlib.h>	/* getenv()/exit()/atexit() */
-#include <stdio.h>	/* NULL */
-
-#include "gen_defs.h"
-#include "threadwrap.h"
-#include <SDL.h>
-#include "ciolib.h"
-#include "sdlfuncs.h"
-#include "sdl_con.h"
-extern int sdl_video_initialized;
-
-struct sdlfuncs sdl;
-
-/* Make xp_dl do static linking */
-#ifdef STATIC_SDL
-#define STATIC_LINK
-#endif
-#include <xp_dl.h>
-
-static int sdl_funcs_loaded=0;
-
-static void QuitWrap(void);
-
-int load_sdl_funcs(struct sdlfuncs *sdlf)
-{
-	dll_handle	sdl_dll;
-	const char *libnames[]={"SDL2", "SDL", NULL};
-
-	sdlf->gotfuncs=0;
-	if((sdl_dll=xp_dlopen(libnames,RTLD_LAZY|RTLD_GLOBAL,SDL_PATCHLEVEL))==NULL)
-		return(-1);
-
-	if((sdlf->Init=xp_dlsym(sdl_dll, SDL_Init))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->Quit=xp_dlsym(sdl_dll, SDL_Quit))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->PeepEvents=xp_dlsym(sdl_dll, SDL_PeepEvents))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->GetCurrentVideoDriver=xp_dlsym(sdl_dll, SDL_GetCurrentVideoDriver))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->EventState=xp_dlsym(sdl_dll, SDL_EventState))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->CreateRGBSurfaceFrom=xp_dlsym(sdl_dll, SDL_CreateRGBSurfaceFrom))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->RenderPresent=xp_dlsym(sdl_dll, SDL_RenderPresent))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->WaitEventTimeout=xp_dlsym(sdl_dll, SDL_WaitEventTimeout))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->CreateWindowAndRenderer=xp_dlsym(sdl_dll, SDL_CreateWindowAndRenderer))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->FreeSurface=xp_dlsym(sdl_dll, SDL_FreeSurface))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->SetWindowTitle=xp_dlsym(sdl_dll, SDL_SetWindowTitle))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->GetWindowSize=xp_dlsym(sdl_dll, SDL_GetWindowSize))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->SetWindowIcon=xp_dlsym(sdl_dll, SDL_SetWindowIcon))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->ShowCursor=xp_dlsym(sdl_dll, SDL_ShowCursor))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->WasInit=xp_dlsym(sdl_dll, SDL_WasInit))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->GetWindowWMInfo=xp_dlsym(sdl_dll, SDL_GetWindowWMInfo))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->GetError=xp_dlsym(sdl_dll, SDL_GetError))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->InitSubSystem=xp_dlsym(sdl_dll, SDL_InitSubSystem))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->QuitSubSystem=xp_dlsym(sdl_dll, SDL_QuitSubSystem))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->CreateTexture=xp_dlsym(sdl_dll, SDL_CreateTexture))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->UpdateTexture=xp_dlsym(sdl_dll, SDL_UpdateTexture))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->RenderClear=xp_dlsym(sdl_dll, SDL_RenderClear))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->RenderCopy=xp_dlsym(sdl_dll, SDL_RenderCopy))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->SetHint=xp_dlsym(sdl_dll, SDL_SetHint))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->GetHint=xp_dlsym(sdl_dll, SDL_GetHint))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->GetModState=xp_dlsym(sdl_dll, SDL_GetModState))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->SetWindowSize=xp_dlsym(sdl_dll, SDL_SetWindowSize))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->DestroyTexture=xp_dlsym(sdl_dll, SDL_DestroyTexture))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->SetWindowFullscreen=xp_dlsym(sdl_dll, SDL_SetWindowFullscreen))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->LockTexture=xp_dlsym(sdl_dll, SDL_LockTexture))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->UnlockTexture=xp_dlsym(sdl_dll, SDL_UnlockTexture))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->QueryTexture=xp_dlsym(sdl_dll, SDL_QueryTexture))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->GetWindowPosition=xp_dlsym(sdl_dll, SDL_GetWindowPosition))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->SetWindowPosition=xp_dlsym(sdl_dll, SDL_SetWindowPosition))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->SetWindowMinimumSize=xp_dlsym(sdl_dll, SDL_SetWindowMinimumSize))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->SetClipboardText=xp_dlsym(sdl_dll, SDL_SetClipboardText))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->GetClipboardText=xp_dlsym(sdl_dll, SDL_GetClipboardText))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->CreateSystemCursor=xp_dlsym(sdl_dll, SDL_CreateSystemCursor))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->GetDefaultCursor=xp_dlsym(sdl_dll, SDL_GetDefaultCursor))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->FreeCursor=xp_dlsym(sdl_dll, SDL_FreeCursor))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->SetCursor=xp_dlsym(sdl_dll, SDL_SetCursor))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->free=xp_dlsym(sdl_dll, SDL_free))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->GetWindowFlags=xp_dlsym(sdl_dll, SDL_GetWindowFlags))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-#ifndef STATIC_SDL
-	{
-		int (HACK_HACK_HACK *ra)(char *name, Uint32 style, void *hInst);
-		if ((ra = xp_dlsym(sdl_dll, SDL_RegisterApp)) != NULL) {
-			ra(ciolib_appname, 0, NULL);
-		}
-	}
-#endif
-
-	sdlf->gotfuncs=1;
-	sdl_funcs_loaded=1;
-	return(0);
-}
-
-int init_sdl_video(void)
-{
-	const char	*drivername;
-
-	if(sdl_video_initialized)
-		return(0);
-
-	load_sdl_funcs(&sdl);
-
-	if (!sdl.gotfuncs)
-		return -1;
-
-	sdl.SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "2" );
-	sdl.SetHint(SDL_HINT_VIDEO_ALLOW_SCREENSAVER, "1" );
-#ifdef _WIN32
-	// code that tells windows we're High DPI aware so it doesn't scale our windows
-	// taken from Yamagi Quake II
-
-	typedef enum D3_PROCESS_DPI_AWARENESS {
-		D3_PROCESS_DPI_UNAWARE = 0,
-		D3_PROCESS_SYSTEM_DPI_AWARE = 1,
-		D3_PROCESS_PER_MONITOR_DPI_AWARE = 2
-	} YQ2_PROCESS_DPI_AWARENESS;
-
-	/* For Vista, Win7 and Win8 */
-	BOOL(WINAPI *SetProcessDPIAware)(void) = NULL;
-
-	/* Win8.1 and later */
-	HRESULT(WINAPI *SetProcessDpiAwareness)(enum D3_PROCESS_DPI_AWARENESS dpiAwareness) = NULL;
-
-	const char* user32dll[] = {"User32", NULL};
-	dll_handle userDLL = xp_dlopen(user32dll, RTLD_LAZY, 0);
-
-	if (userDLL)
-	{
-		SetProcessDPIAware = xp_dlsym(userDLL, SetProcessDPIAware);
-	}
-
-
-	const char* shcoredll[] = {"SHCore", NULL};
-	dll_handle shcoreDLL = xp_dlopen(shcoredll, RTLD_LAZY, 0);
-
-	if (shcoreDLL)
-	{
-		SetProcessDpiAwareness = xp_dlsym(shcoreDLL, SetProcessDpiAwareness);
-	}
-
-	if (SetProcessDpiAwareness) {
-		SetProcessDpiAwareness(D3_PROCESS_PER_MONITOR_DPI_AWARE);
-	}
-	else if (SetProcessDPIAware) {
-		SetProcessDPIAware();
-	}
-	/* Fail to windib (ie: No mouse attached) */
-	if(sdl.Init(SDL_INIT_VIDEO) == 0) {
-		sdl_video_initialized=TRUE;
-	}
-#else
-	/*
-	 * SDL2: Is the below comment still true for SDL2?
-	 * On Linux, SDL doesn't properly detect availability of the
-	 * framebuffer apparently.  This results in remote connections
-	 * displaying on the local framebuffer... a definate no-no.
-	 * This ugly hack attempts to prevent this... of course, remote X11
-	 * connections must still be allowed.
-	 */
-	if(getenv("DISPLAY") != NULL || (getenv("REMOTEHOST") == NULL && getenv("SSH_CLIENT") == NULL)) {
-		if(sdl.Init(SDL_INIT_VIDEO)==0) {
-			sdl_video_initialized=TRUE;
-		}
-	}
-#endif
-	if(sdl_video_initialized && (drivername = sdl.GetCurrentVideoDriver())!=NULL) {
-		/* Unacceptable drivers */
-		if((!strcmp(drivername, "caca")) || (!strcmp(drivername,"aalib")) || (!strcmp(drivername,"dummy"))) {
-			sdl.Quit();
-			sdl_video_initialized=FALSE;
-		}
-	}
-
-	if(sdl_video_initialized) {
-		atexit(QuitWrap);
-		return 0;
-	}
-
-	return(-1);
-}
-
-static void QuitWrap(void)
-{
-	if (sdl_video_initialized) {
-#if !defined(__DARWIN__)
-		exit_sdl_con();
-#endif
-		if(sdl.Quit)
-			sdl.Quit();
-	}
-}
diff --git a/ciolib/sdlfuncs.h b/ciolib/sdlfuncs.h
deleted file mode 100644
index 7dd75bdf9bea504c97fc40e614fd1abd9d55745b..0000000000000000000000000000000000000000
--- a/ciolib/sdlfuncs.h
+++ /dev/null
@@ -1,76 +0,0 @@
-#ifndef _SDLFUNCS_H_
-#define _SDLFUNCS_H_
-
-#include "SDL.h"
-#include "SDL_syswm.h"
-
-#ifdef _WIN32
-        #define HACK_HACK_HACK __cdecl
-#else
-        #define HACK_HACK_HACK
-#endif
-
-struct sdlfuncs {
-	int	(HACK_HACK_HACK *Init)	(Uint32 flags);
-	void	(HACK_HACK_HACK *Quit)	(void);
-	int	(HACK_HACK_HACK *PeepEvents)	(SDL_Event *events, int numevents,
-					SDL_eventaction action, Uint32 minType, Uint32 maxType);
-	const char *(HACK_HACK_HACK *GetCurrentVideoDriver)	(void);
-	Uint8	(HACK_HACK_HACK *EventState)	(Uint32 type, int state);
-	SDL_Surface *(HACK_HACK_HACK *CreateRGBSurfaceFrom)(void *pixels, int width, int height, int depth, int pitch,
-							Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask);
-	void	(HACK_HACK_HACK *RenderPresent)	(SDL_Renderer *renderer);
-	int	(HACK_HACK_HACK *WaitEventTimeout)	(SDL_Event *event, int timeout);
-	int (HACK_HACK_HACK *CreateWindowAndRenderer)	(int w, int h, Uint32 flags, SDL_Window **win, SDL_Renderer **ren);
-	void	(HACK_HACK_HACK *FreeSurface)	(SDL_Surface *surface);
-	void	(HACK_HACK_HACK *SetWindowTitle)	(SDL_Window *window, const char *title);
-	void	(HACK_HACK_HACK *GetWindowSize)	(SDL_Window *window, int *w, int *h);
-	void	(HACK_HACK_HACK *SetWindowIcon)	(SDL_Window *win, SDL_Surface *icon);
-	int	(HACK_HACK_HACK *ShowCursor)	(int toggle);
-	Uint32	(HACK_HACK_HACK *WasInit)	(Uint32 flags);
-	SDL_bool (HACK_HACK_HACK *GetWindowWMInfo) (SDL_Window *window, SDL_SysWMinfo *info);
-	const char	*(HACK_HACK_HACK *GetError)	(void);
-	int (HACK_HACK_HACK *InitSubSystem)(Uint32 flags);
-	void (HACK_HACK_HACK *QuitSubSystem)(Uint32 flags);
-	SDL_Texture* (HACK_HACK_HACK *CreateTexture)	(SDL_Renderer *renderer, Uint32 format, int access, int w, int h);
-	int (HACK_HACK_HACK *UpdateTexture)	(SDL_Texture *texture, const SDL_Rect * rect, const void *pixels, int pitch);
-	int (HACK_HACK_HACK *RenderClear)	(SDL_Renderer *renderer);
-	int (HACK_HACK_HACK *RenderCopy)	(SDL_Renderer *renderer, SDL_Texture *texture, const SDL_Rect *srcrect, const SDL_Rect *dstrect);
-	SDL_bool (HACK_HACK_HACK *SetHint)	(const char *name, const char *value);
-	const char * (HACK_HACK_HACK *GetHint)	(const char *name);
-	SDL_Keymod (HACK_HACK_HACK *GetModState)	(void);
-	void (HACK_HACK_HACK *SetWindowSize)	(SDL_Window *window, int w, int h);
-	void (HACK_HACK_HACK *DestroyTexture)	(SDL_Texture *texture);
-	int (HACK_HACK_HACK *SetWindowFullscreen)	(SDL_Window *window, Uint32 flags);
-	int (HACK_HACK_HACK *LockTexture)	(SDL_Texture *texture, const SDL_Rect *rect, void **pixels, int *pitch);
-	void (HACK_HACK_HACK *UnlockTexture)	(SDL_Texture *texture);
-	int (HACK_HACK_HACK *QueryTexture)	(SDL_Texture *texture, Uint32 *format, int *access, int *w, int *h);
-	void (HACK_HACK_HACK *GetWindowPosition)	(SDL_Window *window, int *x, int *y);
-	void (HACK_HACK_HACK *SetWindowPosition)	(SDL_Window *window, int x, int y);
-	void (HACK_HACK_HACK *SetWindowMinimumSize)	(SDL_Window *window, int w, int y);
-	int (HACK_HACK_HACK *SetClipboardText)	(const char *);
-	char *(HACK_HACK_HACK *GetClipboardText)	(void);
-	SDL_Cursor *(HACK_HACK_HACK *CreateSystemCursor)	(SDL_SystemCursor id);
-	SDL_Cursor *(HACK_HACK_HACK *GetDefaultCursor)	(void);
-	void (HACK_HACK_HACK *SetCursor)	(SDL_Cursor *curs);
-	void (HACK_HACK_HACK *FreeCursor)	(SDL_Cursor *curs);
-	void(HACK_HACK_HACK *free)	(void *);
-	Uint32(HACK_HACK_HACK *GetWindowFlags)	(SDL_Window * window);
-	int	gotfuncs;
-};
-
-/* Defined in SDL_win32_main.c for Win32 */
-extern struct sdlfuncs	sdl;
-extern sem_t *sdl_exit_sem;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-int load_sdl_funcs(struct sdlfuncs *sdlf);
-int init_sdl_audio(void);
-int init_sdl_video(void);
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/ciolib/syncicon64.c b/ciolib/syncicon64.c
deleted file mode 100644
index b2d6cb27b4380cbafdf27d683aa80f74ff983beb..0000000000000000000000000000000000000000
--- a/ciolib/syncicon64.c
+++ /dev/null
@@ -1,695 +0,0 @@
-/* GIMP RGBA C-Source image dump (syncicon64.c) */
-
-const char syncicon64[64*64*4] = 
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\376\376\376\000\376\376\376\000\376"
-  "\376\376\000\376\376\376\000\375\375\375\000\375\375\375\000\374\374\374\000\374\374"
-  "\374\000\374\374\374\000\373\373\373\000\373\373\373\000\373\373\373\000\373\373\373"
-  "\000\373\373\373\000\373\373\373\000\373\373\373\000\373\373\373\000\373\373\373\000"
-  "\373\373\373\000\373\373\373\000\373\373\373\000\373\373\373\000\374\374\374\000\374"
-  "\374\374\000\375\375\375\000\375\375\375\000\376\376\376\000\376\376\376\000\376\376"
-  "\376\000\376\376\376\000\376\376\376\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\376\376\376\000\376\376\376\000\376\376\376\000\375\375\375\000\374\374\374\000\373"
-  "\373\373\000\372\372\372\000\371\371\371\000\366\366\366\000\363\363\363\000\361\361"
-  "\361\000\356\356\356\000\354\354\354\000\352\352\352\000\351\351\351\000\350\350\350"
-  "\000\347\347\347\000\346\346\346\000\346\346\346\000\346\346\346\000\346\346\346\000"
-  "\347\347\347\000\350\350\350\000\351\351\351\000\352\352\352\000\354\354\354\000\356"
-  "\356\356\000\361\361\361\000\363\363\363\000\366\366\366\000\371\371\371\000\372\372"
-  "\372\000\373\373\373\000\374\374\374\000\375\375\375\000\376\376\376\000\376\376\376"
-  "\000\376\376\376\000\376\376\376\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\376\376\376\000\376\376\376\000\376\376\376\000"
-  "\375\375\375\000\374\374\374\000\373\373\373\000\371\371\371\000\365\365\365\000\361"
-  "\361\361\000\354\354\354\000\347\347\347\000\341\341\341\000\331\331\331\000\321\321"
-  "\321\000\311\311\311\000\302\302\302\000\274\274\274\000\267\267\267\000\262\262\262"
-  "\000\257\257\257\000\254\254\254\000\253\253\253\000\252\252\252\000\252\252\252\000"
-  "\253\253\253\000\254\254\254\000\257\257\257\000\262\262\262\000\266\266\266\000\274"
-  "\274\274\000\302\302\302\000\311\311\311\000\321\321\321\000\331\331\331\000\341\341"
-  "\341\000\347\347\347\000\354\354\354\000\361\361\361\000\365\365\365\000\371\371\371"
-  "\000\373\373\373\000\374\374\374\000\375\375\375\000\376\376\376\000\376\376\376\000"
-  "\376\376\376\000\376\376\376\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\376\376\376\000\376\376\376\000\376\376\376\000\375\375\375\000\374\374\374\000"
-  "\372\372\372\000\367\367\367\000\361\361\361\000\352\352\352\000\342\342\342\000\327"
-  "\327\327\000\312\312\312\000\275\275\275\000\261\261\261\000\246\246\246\000\231\231"
-  "\231\000\215\215\215\000\201\201\201\000xxx\377ppp\377hhh\377bbb\377]]]\377ZZZ"
-  "\377WWW\377VVV\377VVV\377WWW\377ZZZ\377]]]\377bbb\377hhh\377ppp\377xxx\377"
-  "\201\201\201\000\215\215\215\000\231\231\231\000\245\245\245\000\261\261\261\000\275"
-  "\275\275\000\312\312\312\000\327\327\327\000\342\342\342\000\352\352\352\000\361\361"
-  "\361\000\366\366\366\000\372\372\372\000\374\374\374\000\375\375\375\000\376\376\376"
-  "\000\376\376\376\000\376\376\376\000\376\376\376\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\376\376\376\000\376\376\376\000\376\376\376\000\375\375"
-  "\375\000\373\373\373\000\367\367\367\000\361\361\361\000\350\350\350\000\334\334\334"
-  "\000\314\314\314\000\273\273\273\000\251\251\251\000\226\226\226\000\203\203\203\000"
-  "rrr\377bbb\377UUU\377JJJ\377AAA\377:::\377\063\063\063\377---\377(((\377$$$"
-  "\377\"\"\"\377\037\037\037\377\036\036\036\377\036\036\036\377\036\036\036\377\036\036"
-  "\036\377\037\037\037\377\"\"\"\377$$$\377(((\377---\377\063\063\063\377:::\377A"
-  "AA\377JJJ\377UUU\377bbb\377rrr\377\203\203\203\000\226\226\226\000\251\251\251"
-  "\000\272\272\272\000\314\314\314\000\334\334\334\000\350\350\350\000\360\360\360\000"
-  "\367\367\367\000\373\373\373\000\375\375\375\000\376\376\376\000\376\376\376\000\376"
-  "\376\376\000\376\376\376\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\376\376\376\000\376\376\376\000\376\376\376\000\374\374\374"
-  "\000\371\371\371\000\364\364\364\000\352\352\352\000\335\335\335\000\313\313\313\000"
-  "\265\265\265\000\236\236\236\000\206\206\206\000ooo\377ZZZ\377III\377<<<\377//"
-  "/\377%%%\377\036\036\036\377\036\036\036\377\037\037\037\377\040\040\040\377!!!\377\""
-  "\"\"\377!!!\377\033\033\033\377\036\036\036\377###\377###\377###\377###\377###"
-  "\377###\377\036\036\036\377\033\033\033\377!!!\377\"\"\"\377!!!\377\040\040\040\377"
-  "\037\037\037\377\036\036\036\377\036\036\036\377%%%\377///\377;;;\377III\377ZZZ\377"
-  "ooo\377\206\206\206\000\236\236\236\000\265\265\265\000\312\312\312\000\335\335\335"
-  "\000\352\352\352\000\363\363\363\000\371\371\371\000\374\374\374\000\376\376\376\000"
-  "\376\376\376\000\376\376\376\000\376\376\376\000\377\377\377\000\376\376\376\000\376"
-  "\376\376\000\376\376\376\000\374\374\374\000\371\371\371\000\361\361\361\000\345\345"
-  "\345\000\324\324\324\000\275\275\275\000\243\243\243\000\205\205\205\000jjj\377RRR"
-  "\377>>>\377---\377\"\"\"\377\036\036\036\377\040\040\040\377\"\"\"\377\033\033\033"
-  "\377###\377###\377\026\026\026\377\015\015\015\377\015\015\015\377\015\015\015\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\015\015\015\377\015"
-  "\015\015\377\026\026\026\377\026\026\026\377###\377\033\033\033\377\"\"\"\377\040\040"
-  "\040\377\036\036\036\377\"\"\"\377---\377>>>\377QQQ\377jjj\377\205\205\205\000"
-  "\242\242\242\000\275\275\275\000\324\324\324\000\345\345\345\000\361\361\361\000\371"
-  "\371\371\000\374\374\374\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376"
-  "\376\000\375\375\375\000\371\371\371\000\362\362\362\000\345\345\345\000\320\320\320"
-  "\000\265\265\265\000\225\225\225\000uuu\377WWW\377???\377,,,\377\036\036\036\377\037"
-  "\037\037\377\"\"\"\377\033\033\033\377###\377\026\026\026\377\015\015\015\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\015\015\015\377\026\026\026\377###\377\036"
-  "\036\036\377\"\"\"\377\037\037\037\377\036\036\036\377,,,\377???\377WWW\377uuu\377"
-  "\225\225\225\000\264\264\264\000\320\320\320\000\344\344\344\000\362\362\362\000\371"
-  "\371\371\000\375\375\375\000\376\376\376\000\373\373\373\000\365\365\365\000\351\351"
-  "\351\000\323\323\323\000\265\265\265\000\221\221\221\000mmm\377MMM\377\063\063\063\377"
-  "\"\"\"\377\037\037\037\377\"\"\"\377###\377\026\026\026\377\015\015\015\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\014\377\000\000z\377\000\000t\377\000\000\000\377\000\000\000\377"
-  "\000\000j\377\000\000\006\377\000\000\000\377\000\000\000\377\015\015\015\377\026\026\026\377###\377"
-  "\"\"\"\377\037\037\037\377!!!\377\063\063\063\377LLL\377mmm\377\221\221\221\000\265"
-  "\265\265\000\323\323\323\000\350\350\350\000\365\365\365\000\373\373\373\000\355\355"
-  "\355\000\334\334\334\000\276\276\276\000\230\230\230\000ppp\377KKK\377///\377\036"
-  "\036\036\377!!!\377\033\033\033\377\026\026\026\377\015\015\015\377\000\000\000\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\007\377\000\000\012\377\000\000\000\377\000\000\020\377\000\000\026\377\000\000)\377"
-  "\000\000\017\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\020\377\000\000\177\377\000\000G\377\000"
-  "\000\062\377\000\000\000\377\000\000\000\377\000\000-\377\000\000\002\377\000\000\000\377\006\006\006\377\010\010"
-  "\010\377\014\014\014\377\007\007\007\377\033\034\033\377\026\026\026\377\033\033\033\377!!!"
-  "\377\036\036\036\377///\377KKK\377ppp\377\227\227\227\000\276\276\276\000\334\334"
-  "\334\000\355\355\355\000\306\306\306\000\247\247\247\000}}}\377SSS\377\062\062\062\377"
-  "\036\036\036\377!!!\377\036\036\036\377\026\026\026\377\000\000\000\377\000\000\000\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\002\002\002\377\003\003\003\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000;\377\000\000T\377\000\000\003\377\000\000\214\377\000"
-  "\000\223\377\000\000;\377\000\000!\377\000\000\016\377\000\000\003\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\002\377\000\000\224\377\000\000"
-  "Q\377\000\000\003\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\025\025\025\377\033\034\033\377\027\027\027\377\027\027\027\377\021\021\021\377\000\000\000\377"
-  "\000\000\000\377\015\015\015\377\036\036\036\377!!!\377\036\036\036\377\062\062\062\377SSS"
-  "\377}}}\377\246\246\246\000\306\306\306\000\201\201\201\000aaa\377>>>\377###\377"
-  "\040\040\040\377\036\036\036\377\026\026\026\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\001\001\001\377\026\026\026\377\025\025\025\377"
-  "\021\022\021\377\027\030\027\377\000\000\000\377\000\000\007\377\000\000:\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000,\377\000\000\213\377\000\000\300\377\000\000_\377"
-  "\000\000=\377\000\000\000\377\000\000\000\377\000\000/\377\000\000H\377\000\000\001\377\000\000\000\377\000\000!"
-  "\377\000\000\237\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\026\026\026\377\036\036\036\377\040\040"
-  "\040\377###\377===\377aaa\377\200\200\200\000;;;\377)))\377\036\036\036\377!!!"
-  "\377\026\026\026\377\000\000\001\377\000\000\002\377\000\000\004\377\000\000\000\377\000\000\000\377\000\000\000"
-  "\377\001\001\001\377\001\001\001\377&&&\377OPO\377QRQ\377#$#\377\000\000\000\377\000\000\000\377"
-  "\000\000\001\377\000\000\002\377\000\000\014\377\000\000\036\377\000\000V\377\000\000V\377\000\000V\377\000\000"
-  "X\377\000\000\071\377\000\000\066\377\000\000\300\377\000\000\274\377\000\000\250\377\000\000:\377"
-  "\000\000\006\377\000\000\251\377\000\000\327\377\000\000)\377\000\000\021\377\000\000\024\377\000\004\240"
-  "\377\007\007\034\377???\377-.-\377WWW\377`_`\377`_`\377`_`\377TST\377\"\"\"\377"
-  "\000\000\000\377\000\000\006\377\000\000A\377\000\000\000\377\000\000%\377\000\000U\377\000\000\024\377\000\000"
-  "\001\377\000\000\000\377\000\000\000\377\026\026\026\377!!!\377\036\036\036\377)))\377;;;\377"
-  "\040\040\040\377!!!\377###\377\015\015\015\377\000\000\006\377\000\000q\377\000\000\025\377\000"
-  "\000\062\377\000\000\000\377\000\000\000\377\017\020\017\377xyx\377\203\203\203\377\230\230"
-  "\230\377\272\273\272\377lll\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000a\377\000"
-  "\000\216\377\000\000\216\377\000\000\244\377\000\000\337\377\000\000\334\377\000\000\315\377\000"
-  "\000\342\377\000\000\270\377\000\000d\377\000\000\301\377\000\000\242\377\000\000\214\377\000\000+"
-  "\377\000\000\016\377\000\000\333\377\000\000\346\377\000\000^\377\000\000S\377\000\000\236\377\000\012"
-  "\340\377\005\005\067\377///\377HIH\377\303\303\303\377\312\311\312\377\312\311"
-  "\312\377\312\311\312\377\265\265\265\377QRQ\377\000\000\000\377\000\000\005\377\000\000\060"
-  "\377\000\000\000\377\000\000\034\377\000\000?\377\000\000|\377\000\000y\377\000\000\007\377\000\000\000\377"
-  "\000\000\000\377\015\015\015\377###\377!!!\377\040\040\040\377\026\026\026\377\015\015\015"
-  "\377\000\000\010\377\000\000W\377\000\000)\377\000\000&\377\003\003\003\377\017\017\017\377ede\377"
-  "\231\231\231\377\226\227\226\377\271\272\271\377\275\276\275\377\274\275"
-  "\274\377\200\200\200\377&&&\377\000\000\003\377\000\000D\377\000\000\241\377\000\000\331\377"
-  "\000\000\344\377\000\000\330\377\000\000\214\377\010\010>\377\017\017D\377\017\017?\377\000\000"
-  "\063\377\000\000s\377\000\000\305\377\000\000\277\377\001\001?\377\016\016-\377\017\017\017\377"
-  "\010\010\013\377\000\000X\377\000\000\360\377\000\005>\377\000+\225\377\000\020\333\377\000\003\352"
-  "\377\000\000\223\377\000\000\020\377\015\015\015\377xwx\377\343\342\343\377\357\360\357"
-  "\377\357\360\357\377\340\341\340\377~~~\377\000\000\000\377\014\014\014\377\017\017"
-  "\017\377\017\017\017\377\017\017\017\377\017\017\017\377\004\004(\377\000\000\210\377\000\000Q"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\015\015\015\377\000\000\000"
-  "\377\000\000\000\377\000\000j\377\000\000c\377\000\000\002\377\000\000\000\377\062\062\062\377\266\267"
-  "\266\377\273\274\273\377\275\276\275\377\275\276\275\377\275\276\275\377"
-  "\275\276\275\377\275\276\275\377sss\377\016\016\016\377\000\001F\377\002\003\335\377"
-  "\000\002\375\377\000\000\374\377\004\004H\377\035\035'\377\036\036#\377klk\377\264\265\264"
-  "\377\235\236\235\377\000\000&\377\000\000\317\377\000\000\307\377\026\026V\377--.\377\246"
-  "\247\246\377\266\267\266\377jjj\377\000\000)\377\000\032\347\377\000\007\302\377\000/"
-  "\220\377\000\022_\377\025\025\037\377!!)\377!!\"\377!!!\377\061\062\061\377\262\262"
-  "\262\377\365\365\365\377\365\365\365\377\352\352\352\377\213\213\213\377"
-  "\006\006\006\377\216\217\216\377\266\267\266\377\266\267\266\377\252\253\252\377"
-  "\230\231\230\377##<\377\000\000\216\377\000\000Y\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\246\377\000\000\033\377"
-  "\000\000\000\377\000\000\000\377klk\377\276\277\276\377\275\276\275\377\275\276\275\377"
-  "\311\311\311\377\312\311\312\377\275\276\275\377\275\276\275\377\207\210"
-  "\207\377\001\001\004\377\000\005\352\377\013\020\373\377\000\012\375\377\000\000\363\377\030"
-  "\027?\377\260\257\260\377\265\266\265\377\271\272\271\377\260\261\260\377"
-  ")))\377\000\000~\377\000\000\317\377%%i\377\237\236\242\377\271\271\271\377\274\275"
-  "\274\377\275\276\275\377\255\255\255\377\000\001\004\377\000\\\251\377\000\003\201\377"
-  "\011\014\025\377\062\063\067\377\234\234\234\377\310\307\310\377\310\307\310\377"
-  "\310\307\310\377\217\216\217\377\225\226\225\377\302\302\302\377\300\301"
-  "\300\377\277\300\277\377\210\211\210\377###\377\224\224\224\377\275\276\275"
-  "\377\301\301\301\377xwx\377\010\010\071\377\002\002n\377\000\000\225\377\000\000r\377\000"
-  "\000[\377\000\000\040\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\011d\377\000\013\027\377\000\000\000\377\024\024\024\377\261\261\261\377\334\334"
-  "\334\377\333\334\333\377\324\324\324\377\205\203\205\377\211\210\211\377"
-  "\275\276\275\377\275\276\275\377\236\237\236\377\017\017\021\377\000\003\233\377"
-  "\007\012\375\377\000\006\301\377\000\000\313\377\031\030?\377\270\267\270\377\275\276"
-  "\275\377\271\272\271\377\240\241\240\377\022\023D\377\000\004\350\377\000\000]\377"
-  "RRR\377\300\300\300\377\301\301\301\377\275\276\275\377\275\276\275\377\261"
-  "\261\261\377\036\036\037\377\000\000Z\377\021\021\023\377iii\377\235\236\235\377\305"
-  "\305\305\377\310\310\310\377\310\310\310\377\310\310\310\377\303\303\303"
-  "\377\207\207\207\377\243\243\243\377\331\332\331\377\333\334\333\377\270"
-  "\270\270\377@@@\377qqq\377\303\304\303\377\277\300\277\377\224\224\224\377"
-  "\000\000|\377\000\000\177\377\002\002\211\377\002\002\370\377\000\000\354\377\000\000\207\377\000\000"
-  "\061\377\000\000\007\377\000\000\024\377\000\000\000\377\000\000\000\377\000\000\000\377\000\025\025\377\000"
-  "\024\027\377\000\000\001\377*+*\377\372\372\372\377\375\375\375\377\376\376\376\377"
-  "\372\371\372\377\211\211\211\377\031\031\031\377nmn\377\326\323\326\377\300"
-  "\300\300\377\214\215\214\377\000\000\015\377\000\000C\377\002\002\"\377\000\000\240\377\031"
-  "\030?\377\270\267\270\377\275\276\275\377\263\264\263\377\214\215\214\377"
-  "\000\001i\377\000\016\315\377\022\022\026\377\\]\\\377TTT\377\246\246\246\377\276\277"
-  "\276\377\275\276\275\377\264\265\264\377BCB\377\001\001\001\377\226\226\226\377"
-  "\314\313\314\377\277\300\277\377\275\276\275\377\275\276\275\377\275\276"
-  "\275\377\275\276\275\377\275\276\275\377EEE\377~}~\377\373\373\373\377\377"
-  "\377\377\377\362\362\362\377bbb\377FGF\377\312\311\312\377\275\276\275\377"
-  "\271\272\271\377\002\002#\377\000\000\267\377\006\006\367\377\006\006\371\377\000\000\355\377"
-  "\000\000\274\377\000\000l\377\000\000\016\377\000\000,\377\000\000\001\377\000\000\000\377\000\000\005\377\000"
-  "\005\035\377\000\004p\377\000\000B\377\014\014\017\377yzy\377\300\300\300\377\320\320\320"
-  "\377\315\315\315\377\274\274\274\377\220\216\220\377\040\040\040\377\062\061\062"
-  "\377\062\062\062\377;;;\377\025\026\025\377\040\040\040\377<=<\377\006\006c\377\031\030"
-  "\060\377\270\267\270\377\275\276\275\377\262\263\262\377\200\200\200\377\037"
-  "\040\066\377\000q\234\377\005\010\010\377\026\027\"\377\013\013\023\377LML\377\263\263"
-  "\263\377\275\276\275\377\301\302\301\377HGH\377\065\065\065\377\276\277\276"
-  "\377\301\302\301\377\276\277\276\377\300\300\300\377\276\277\276\377\275"
-  "\276\275\377\266\267\266\377\266\267\266\377\017\017\017\377\061\061\061\377\367"
-  "\367\367\377\377\377\377\377\375\375\375\377ooo\377...\377\260\261\260\377"
-  "\275\276\275\377\264\265\264\377UUU\377\025\026;\377\027\027L\377\027\027L\377"
-  "\025\026J\377\011\011\062\377\017\017'\377\003\003\006\377\000\000^\377\000\000\026\377\000\000\004\377"
-  "\000\000D\377\000\000\314\377\000\000\305\377\000\000\303\377\000\001A\377\003\011\035\377MKM\377"
-  "\300\275\300\377\276\276\276\377\275\276\275\377\275\276\275\377\201\201"
-  "\201\377\021\021\021\377./.\377\243\243\243\377\267\270\267\377\225\226\225"
-  "\377Z[Z\377\010\010F\377\034\034,\377\277\277\277\377\307\310\307\377\263\264"
-  "\263\377\213\213\213\377\264\264\264\377(--\377\031\030\031\377\000\000S\377\000\000"
-  "\070\377\061\061\061\377\270\270\270\377\307\310\307\377\314\314\314\377MMM\377"
-  "[\\[\377\310\311\310\377\310\311\310\377\302\303\302\377\274\272\274\377"
-  "\261\261\261\377\273\274\273\377\265\266\265\377\252\252\252\377\000\000\000\377"
-  "\027\030\027\377\343\343\343\377\376\376\376\377\377\377\377\377\331\332\331"
-  "\377\302\303\302\377\307\310\307\377\307\310\307\377\277\300\277\377\304"
-  "\305\304\377\242\243\242\377\231\232\231\377\231\232\231\377\231\232\231"
-  "\377>?>\377kkk\377\025\025\030\377\000\000t\377\000\000\027\377\000\000\032\377\000\000\300\377"
-  "\000\000\355\377\000\000r\377\000\000\257\377\000\005\363\377\000%\263\377\001\001X\377\001\001)\377"
-  "MMM\377xxx\377\307\305\307\377\316\315\316\377\216\215\216\377\037\040\037\377"
-  "\236\237\236\377\275\276\275\377\275\276\275\377\240\241\240\377\011\011\012"
-  "\377\061\061\061\377\346\345\346\377\377\377\377\377\261\261\261\377\310\310"
-  "\310\377\376\376\376\377\374\373\374\377\305\304\305\377__`\377\033\033\034"
-  "\377\030\030\030\377\343\343\343\377\377\377\377\377\364\362\364\377cbc\377"
-  "\332\332\332\377\375\375\375\377\377\377\377\377\271\271\271\377(((\377K"
-  "KK\377\262\263\262\377\275\276\275\377srs\377\000\000=\377\000\000\016\377\200\200"
-  "\200\377\372\372\372\377\377\377\377\377\377\377\377\377\377\377\377\377"
-  "\377\377\377\377\377\377\377\377\376\376\376\377\377\377\377\377;;;\377\001"
-  "\001W\377\001\030h\377\001\063b\377\001\001a\377\001\001Z\377\000\000k\377\000\000W\377\000\000\000\377"
-  "\000\002>\377\000\030\307\377\000\020\342\377\000\000_\377\000\000\330\377\000\003\364\377\000\022"
-  "g\377\000\000g\377\000\000/\377\000\000\000\377\016\015\016\377jhj\377\266\265\266\377\310"
-  "\307\310\377\202\202\202\377\252\252\252\377\276\277\276\377\275\276\275"
-  "\377\267\267\267\377)()\377AAA\377\322\322\322\377\336\337\336\377\256\257"
-  "\256\377\245\245\245\377\337\337\337\377\336\337\336\377\336\337\336\377"
-  "\316\316\316\377\212\211\212\377)))\377\307\310\307\377\341\341\341\377\336"
-  "\335\336\377\\[\\\377\326\325\326\377\376\375\376\377\376\376\376\377\206"
-  "\206\206\377\000\000\000\377)))\377\202\203\202\377\275\276\275\377\227\230\227"
-  "\377##%\377\000\000\000\377www\377\343\343\343\377\336\337\336\377\313\314\313"
-  "\377\200\200\200\377\212\212\212\377\337\337\337\377\336\337\336\377\336"
-  "\337\336\377Z[Z\377\000\000s\377\000\033\340\377\000:\310\377\000\004\274\377\000\000\207"
-  "\377\000\000q\377\000\000\000\377\000\000\000\377\000\006b\377\000\062\315\377\000\036\330\377\000\000"
-  "M\377\000\000\205\377\000\000\067\377\037\037\037\377\223\223\223\377\223\223\223\377"
-  "+++\377\000\000x\377\000\000\015\377\224\225\224\377\302\302\302\377\275\276\275\377"
-  "\267\270\267\377\277\300\277\377\275\276\275\377\301\301\301\377\243\243"
-  "\243\377hhh\377\275\276\275\377\275\276\275\377\254\255\254\377\202\202\202"
-  "\377\277\300\277\377\275\276\275\377\275\276\275\377\275\276\275\377\302"
-  "\303\302\377\241\241\241\377\272\273\272\377\304\304\304\377\310\307\310"
-  "\377TUT\377\321\320\321\377\375\375\375\377\376\375\376\377\206\206\206\377"
-  "\000\000\000\377\001\001t\377\022\023$\377*+*\377*+*\377\020\020\020\377\000\000\000\377jjj\377"
-  "\316\315\316\377\275\276\275\377\227\230\227\377\000\000\000\377\025\025\025\377\277"
-  "\300\277\377\275\276\275\377\275\276\275\377{{{\377\000\000\007\377\000\000/\377\000"
-  "\000|\377\000\013\345\377\000\000>\377\000\000\000\377\000\000\000\377\000\000\000\377\000\001!\377\000\010"
-  "\263\377\000\021\366\377\000\021\337\377\000\000\274\377+++\377\231\227\231\377\265"
-  "\266\265\377wxw\377'('\377\037\037\067\377@?B\377\304\303\304\377\275\276\275"
-  "\377\320\316\320\377[Z[\377\310\306\310\377\331\331\331\377\361\360\361\377"
-  "\363\364\363\377\351\351\351\377\365\365\365\377\365\365\365\377\205\205"
-  "\205\377\215\214\215\377\301\301\301\377\300\301\300\377\223\222\223\377"
-  "^^^\377\263\264\263\377\275\276\275\377\275\276\275\377\302\302\302\377\310"
-  "\307\310\377FGF\377\251\247\251\377\364\363\364\377\372\371\372\377\314\314"
-  "\314\377MNM\377\006\006)\377\000\000\177\377\000\000b\377\016\016\016\377=>=\377\061\062\061"
-  "\377***\377\273\274\273\377\275\276\275\377\227\230\227\377\000\000\065\377\003"
-  "\003\063\377\216\216\216\377\275\276\275\377\275\276\275\377\263\264\263\377"
-  "\013\025&\377\000D\262\377\000\000\277\377\000\002n\377\000\000\011\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\001\377\000\000\064\377\000<\277\377\000N\273\377\000\000\245\377\062\063\063"
-  "\377\255\253\255\377\265\266\265\377\271\272\271\377\265\266\265\377\265"
-  "\266\265\377\276\276\276\377\316\314\316\377\303\303\303\377\325\323\325"
-  "\377\272\272\272\377WYW\377SRS\377\273\270\273\377\322\321\322\377\363\363"
-  "\363\377\362\362\362\377\360\360\360\377nnn\377\230\227\230\377\304\304\304"
-  "\377\303\304\303\377\225\224\225\377\007\007\007\377hhh\377\267\270\267\377\275"
-  "\276\275\377\301\301\301\377\307\307\307\377SSS\377\066\067\066\377\347\346"
-  "\347\377\361\360\361\377\324\324\324\377\275\275\275\377HGH\377&&-\377*)"
-  "/\377ghg\377\204\205\204\377HIH\377\031\031\031\377\260\260\260\377\277\300"
-  "\277\377\233\234\233\377\000\000M\377\000\010\261\377\206\206\206\377\301\302\301"
-  "\377\301\302\301\377\276\277\276\377\037*:\377\000\\\234\377\000\006\021\377\000\000"
-  "\004\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\062\063\062\377\255\253\255\377\275\276\275\377\275"
-  "\276\275\377\275\276\275\377\275\276\275\377\301\302\301\377\321\320\321"
-  "\377\332\330\332\377\311\311\311\377\275\276\275\377\265\265\265\377kkk\377"
-  "\021\021\021\377\062\063\062\377\277\300\277\377\275\276\275\377\261\262\261\377"
-  "+++\377\276\277\276\377\320\316\320\377\316\315\316\377\275\276\275\377\020"
-  "\020\020\377\000\000\000\377[\\[\377\264\265\264\377\275\276\275\377\307\307\307"
-  "\377\230\230\230\377\000\000\000\377yyy\377\313\311\313\377\275\276\275\377\327"
-  "\325\327\377\325\323\325\377\304\304\304\377\312\311\312\377\275\276\275"
-  "\377\237\240\237\377\200\201\200\377\000\000L\377\215\215\221\377\310\310\310"
-  "\377\253\254\253\377\000\002Y\377\000(\275\377\213\212\213\377\322\320\322\377"
-  "\322\320\322\377\302\302\302\377opo\377\000\212\214\377\000\037\040\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\011\011\377"
-  "\000\036\036\377\000\006\007\377\034\034\034\377\267\266\267\377\322\321\322\377\322\321"
-  "\322\377\277\277\277\377\232\233\232\377\263\264\263\377\303\303\303\377"
-  "\307\306\307\377{{{\377WX[\377[[`\377PPT\377\020\021\022\377]]]\377\311\310"
-  "\311\377\310\310\310\377\234\234\234\377FFF\377\272\273\272\377\302\302\302"
-  "\377\332\327\332\377\323\321\323\377ono\377\013\014R\377\010\010\037\377^^^\377"
-  "\274\274\274\377\302\302\302\377\245\245\245\377\026\027\026\377\022\022\023\377"
-  "^]`\377\206\207\206\377\306\305\306\377\300\301\300\377\301\301\301\377\266"
-  "\265\266\377\257\260\257\377\253\254\253\377PPP\377\000\000K\377\211\211\214"
-  "\377\301\301\301\377uuu\377\000;w\377\000\035e\377\200\200\200\377\306\306\306"
-  "\377\302\300\302\377\320\317\320\377<PP\377\000\232\233\377\000\016\016\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\023\023"
-  "\377\000\067\070\377\000\014\014\377\002\002\002\377HHH\377\303\302\303\377\303\302\303"
-  "\377\262\263\262\377jkj\377$$$\377'**\377'**\377\014\017\025\377\000\002\251\377"
-  "\000\001\302\377\000\000\243\377\000\000O\377\203\203\203\377\320\317\320\377\322\320"
-  "\320\377\211\210\210\377\024\024\024\377(((\377'''\377\303\302\303\377\303\302"
-  "\303\377\257\260\257\377\026\026\062\377\000\001\232\377\006\006\036\377XXX\377\272\273"
-  "\272\377\263\263\263\377\236\237\236\377\005\006!\377\000\000j\377\022\022\022\377'"
-  "')\377\235\236\236\377\274\274\274\377\230\226\230\377bbb\377'''\377\010\010"
-  "\010\377\000\000\000\377\206\207\206\377yzy\377\017\017\020\377\000h\220\377\003\030\035"
-  "\377z{z\377\275\276\275\377\264\263\264\377\334\333\334\377\020\030\030\377"
-  "\000$$\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\003\003\377\000\007\007\377\000bc\377\000\027\027\377\005\014\014\377\031-"
-  "-\377\031\031\031\377\027//\377\016//\377\000=>\377\000\217\221\377\000\240\243\377"
-  "\000\275\304\377\000w\345\377\000$\311\377\000\000\245\377\031\031k\377\306\304\306\377"
-  "\311\311\303\377\353\352y\377ff\032\377!!!\377\063\063\063\377\010\010\010\377\031"
-  "\031\037\377\031\031.\377YZY\377\060\060\060\377\000Is\377\000$\263\377\010\010\061\377"
-  "\031\031.\377ooo\377\236\237\236\377{|\200\377():\377\020\020\020\377\000\000]\377"
-  "\024\024\063\377\031\031\066\377\024\024\065\377\013\013\034\377\000\000\000\377\000\000\000\377"
-  "\066\066\066\377\224\224\224\377WWW\377\000\000,\377\012\030M\377uxx\377\226\226\226"
-  "\377\236\237\236\377\235\236\235\377<<<\377\002\002\002\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000!!\377\000_`\377\000\000\000\377\000ln\377"
-  "\000\235\237\377\000\226\227\377\000\000\004\377\000QY\377\000\244\262\377\000g\273\377\000"
-  "\037\223\377\000\000K\377\063\063\063\377\325\323\325\377\325\325\232\377\363\362"
-  "Q\377\207\207\034\377[\\[\377kjj\377EE\022\377\000\000\035\377\000\000e\377\000\000\031\377"
-  "\000\000\062\377\000P~\377\000\247\315\377\000$\363\377\000\010\225\377\000\000:\377\000\000\022"
-  "\377\031\031\031\377\213\213\213\377KKK\377\000\000\000\377\000\000\015\377\000\000\211\377"
-  "\000\000\233\377\000\000S\377\035\035\035\377\012\012\012\377\231\231\231\377\010\010\010"
-  "\377\000\000\000\377\000\000&\377\000\000*\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\001\001\377\000\002\002\377\000\000\000\377\000\002\002\377\000\003\003\377\000\003\003\377\000\000\020"
-  "\377\000\002\034\377\000\003&\377\000\002\065\377\000\001\003\377\"\"#\377\231\231\231\377\350"
-  "\346\217\377\374\374\023\377\377\377\001\377\375\375W\377\374\374\374\377\372"
-  "\372\367\377\221\221-\377\000\000\001\377\000\000\002\377\000\000\061\377\000\000b\377\000\013\272"
-  "\377\000Y\315\377\000M\316\377\000\037\314\377\000\000\227\377\000\000\214\377\000\000\003\377"
-  "\003\003\003\377\001\001\001\377\000\000\000\377FFF\377\002\002\004\377\000\000\003\377\000\000\002\377\071\071"
-  "\071\377\023\023\023\377\003\003\003\377\000\000\000\377\000\000\000\377\000\000\001\377\000\000K\377\000\000"
-  "\003\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\007\377\000\000\013\377\000\000\017\377\000\000\025\377\000"
-  "\000\000\377\034\035\034\377PPP\377cc\031\377ll\000\377\206\206\000\377\377\377%\377"
-  "\377\377l\377\232\232j\377\023\023\023\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000G\377\000\000V\377\000\005V\377\000\015V\377\000\000\037\377\000\000\206\377\000\000Z\377"
-  "\000\000\071\377\000\000\015\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\027\027\000\377\314\314\003\377\372\372"
-  "\012\377\236\236\000\377\014\014\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000W\377\000\000"
-  "\220\377\000\000]\377\000\000\024\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\015\015\015\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377FF\000\377\343\343\035\377\216"
-  "\216k\377\025\025\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\017\377\000\000\027\377\000\000\001\377\000\000u\377\000\000"
-  "\027\377\000\000\015\377\000\000\003\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\015\015\015\377\040\040\040"
-  "\377!!!\377###\377\015\015\015\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\315\315\063\377\240\240\007\377"
-  "\004\004\004\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000/\377\000\000K\377\000\000\000\377\000\000\004\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\015\015\015\377###\377!!!\377\040\040\040\377:::\377(((\377\036"
-  "\036\036\377!!!\377\026\026\026\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000``\377\314\341\322\377\226\226\030\377\\\\\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\026"
-  "\026\026\377!!!\377\037\037\037\377(((\377:::\377\200\200\200\000aaa\377===\377"
-  "###\377!!!\377\036\036\036\377\015\015\015\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000CC\377m|W\377\315\315\011\377@@\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\015\015\015\377\036\036\036\377!!!\377###\377=="
-  "=\377aaa\377\200\200\200\000\306\306\306\000\246\246\246\000}}}\377SSS\377\062\062"
-  "\062\377\036\036\036\377!!!\377\036\036\036\377\015\015\015\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\257\257\000\377==\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\015\015\015\377###\377\"\"\"\377\036\036\036\377\062\062\062\377RRR\377}"
-  "}}\377\246\246\246\000\305\305\305\000\355\355\355\000\334\334\334\000\276\276\276"
-  "\000\227\227\227\000ooo\377KKK\377///\377\036\036\036\377!!!\377\033\033\033\377\026"
-  "\026\026\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\207\207\000\377\001\001\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\026\026\026\377\033\033\033\377!!!\377\036\036\036\377///\377JJJ\377ooo\377\227\227"
-  "\227\000\276\276\276\000\333\333\333\000\355\355\355\000\372\372\372\000\365\365\365"
-  "\000\350\350\350\000\323\323\323\000\264\264\264\000\221\221\221\000mmm\377LLL\377"
-  "\063\063\063\377\"\"\"\377\037\037\037\377\"\"\"\377###\377\026\026\026\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\\\\\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\026\026\026"
-  "\377###\377\"\"\"\377\037\037\037\377!!!\377\063\063\063\377LLL\377mmm\377\220"
-  "\220\220\000\264\264\264\000\322\322\322\000\350\350\350\000\365\365\365\000\372\372"
-  "\372\000\375\375\375\000\374\374\374\000\371\371\371\000\362\362\362\000\345\345\345"
-  "\000\320\320\320\000\264\264\264\000\225\225\225\000uuu\377WWW\377>>>\377+++\377"
-  "\036\036\036\377\037\037\037\377\"\"\"\377\036\036\036\377\026\026\026\377\015\015\015\377"
-  "\015\015\015\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000"
-  "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\015\015\015\377\015"
-  "\015\015\377\026\026\026\377\036\036\036\377\"\"\"\377\037\037\037\377\036\036\036\377"
-  "+++\377>>>\377WWW\377uuu\377\224\224\224\000\264\264\264\000\317\317\317\000\344"
-  "\344\344\000\362\362\362\000\371\371\371\000\374\374\374\000\375\375\375\000\376\376"
-  "\376\000\376\376\376\000\375\375\375\000\374\374\374\000\370\370\370\000\361\361\361"
-  "\000\345\345\345\000\323\323\323\000\275\275\275\000\242\242\242\000\205\205\205\000"
-  "jjj\377RRR\377>>>\377---\377!!!\377\036\036\036\377\040\040\040\377\"\"\"\377\033"
-  "\033\033\377###\377\026\026\026\377\015\015\015\377\015\015\015\377\015\015\015\377\000\000"
-  "\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000"
-  "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377"
-  "\015\015\015\377\015\015\015\377\026\026\026\377###\377\033\033\033\377\"\"\"\377\040"
-  "\040\040\377\036\036\036\377!!!\377---\377>>>\377QQQ\377jjj\377\205\205\205\000"
-  "\242\242\242\000\274\274\274\000\323\323\323\000\345\345\345\000\361\361\361\000\370"
-  "\370\370\000\374\374\374\000\375\375\375\000\376\376\376\000\376\376\376\000\376\376"
-  "\376\000\376\376\376\000\376\376\376\000\376\376\376\000\375\375\375\000\374\374\374"
-  "\000\371\371\371\000\363\363\363\000\352\352\352\000\335\335\335\000\312\312\312\000"
-  "\265\265\265\000\236\236\236\000\206\206\206\000ooo\377ZZZ\377III\377;;;\377.."
-  ".\377%%%\377\036\036\036\377\036\036\036\377\037\037\037\377\040\040\040\377\"\"\"\377"
-  "\"\"\"\377!!!\377\033\033\033\377\036\036\036\377###\377###\377###\377###\377#"
-  "##\377###\377\036\036\036\377\033\033\033\377!!!\377\"\"\"\377\"\"\"\377\040\040"
-  "\040\377\037\037\037\377\036\036\036\377\036\036\036\377%%%\377...\377;;;\377III\377"
-  "YYY\377nnn\377\205\205\205\000\236\236\236\000\265\265\265\000\312\312\312\000\335"
-  "\335\335\000\352\352\352\000\363\363\363\000\370\370\370\000\374\374\374\000\375\375"
-  "\375\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\377\377\377"
-  "\000\377\377\377\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000"
-  "\375\375\375\000\374\374\374\000\372\372\372\000\366\366\366\000\360\360\360\000\347"
-  "\347\347\000\333\333\333\000\313\313\313\000\272\272\272\000\250\250\250\000\226\226"
-  "\226\000\203\203\203\000rrr\377bbb\377UUU\377JJJ\377AAA\377:::\377\062\062\062\377"
-  "---\377(((\377$$$\377!!!\377\037\037\037\377\036\036\036\377\035\035\035\377\035\035"
-  "\035\377\036\036\036\377\037\037\037\377!!!\377$$$\377(((\377---\377\062\062\062\377"
-  "\071\071\071\377AAA\377JJJ\377UUU\377bbb\377rrr\377\203\203\203\000\226\226\226"
-  "\000\250\250\250\000\272\272\272\000\313\313\313\000\333\333\333\000\347\347\347\000"
-  "\360\360\360\000\366\366\366\000\372\372\372\000\374\374\374\000\375\375\375\000\376"
-  "\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\376\376\376"
-  "\000\376\376\376\000\376\376\376\000\376\376\376\000\375\375\375\000\375\375\375\000"
-  "\374\374\374\000\372\372\372\000\366\366\366\000\361\361\361\000\352\352\352\000\342"
-  "\342\342\000\327\327\327\000\312\312\312\000\275\275\275\000\261\261\261\000\245\245"
-  "\245\000\231\231\231\000\214\214\214\000\201\201\201\000xxx\377ooo\377hhh\377bbb"
-  "\377]]]\377ZZZ\377WWW\377VVV\377VVV\377WWW\377ZZZ\377]]]\377bbb\377hhh\377"
-  "ooo\377xxx\377\201\201\201\000\214\214\214\000\231\231\231\000\245\245\245\000\261"
-  "\261\261\000\275\275\275\000\312\312\312\000\327\327\327\000\342\342\342\000\352\352"
-  "\352\000\361\361\361\000\366\366\366\000\372\372\372\000\374\374\374\000\375\375\375"
-  "\000\375\375\375\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000"
-  "\376\376\376\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\376\376"
-  "\376\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\375\375\375"
-  "\000\375\375\375\000\374\374\374\000\372\372\372\000\370\370\370\000\365\365\365\000"
-  "\360\360\360\000\354\354\354\000\347\347\347\000\341\341\341\000\331\331\331\000\321"
-  "\321\321\000\311\311\311\000\301\301\301\000\273\273\273\000\266\266\266\000\262\262"
-  "\262\000\257\257\257\000\254\254\254\000\253\253\253\000\252\252\252\000\252\252\252"
-  "\000\253\253\253\000\254\254\254\000\257\257\257\000\262\262\262\000\266\266\266\000"
-  "\273\273\273\000\301\301\301\000\310\310\310\000\321\321\321\000\331\331\331\000\341"
-  "\341\341\000\347\347\347\000\354\354\354\000\360\360\360\000\365\365\365\000\370\370"
-  "\370\000\372\372\372\000\374\374\374\000\375\375\375\000\375\375\375\000\376\376\376"
-  "\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\376\376\376\000\376\376\376"
-  "\000\376\376\376\000\376\376\376\000\376\376\376\000\375\375\375\000\375\375\375\000"
-  "\374\374\374\000\374\374\374\000\373\373\373\000\372\372\372\000\370\370\370\000\366"
-  "\366\366\000\363\363\363\000\360\360\360\000\356\356\356\000\354\354\354\000\352\352"
-  "\352\000\350\350\350\000\347\347\347\000\346\346\346\000\346\346\346\000\346\346\346"
-  "\000\346\346\346\000\346\346\346\000\346\346\346\000\347\347\347\000\350\350\350\000"
-  "\352\352\352\000\354\354\354\000\356\356\356\000\360\360\360\000\363\363\363\000\366"
-  "\366\366\000\370\370\370\000\372\372\372\000\373\373\373\000\374\374\374\000\374\374"
-  "\374\000\375\375\375\000\375\375\375\000\376\376\376\000\376\376\376\000\376\376\376"
-  "\000\376\376\376\000\376\376\376\000\376\376\376\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\376\376\376\000\376\376\376\000"
-  "\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\375\375\375\000\375"
-  "\375\375\000\375\375\375\000\374\374\374\000\374\374\374\000\374\374\374\000\373\373"
-  "\373\000\373\373\373\000\373\373\373\000\373\373\373\000\373\373\373\000\373\373\373"
-  "\000\373\373\373\000\373\373\373\000\373\373\373\000\373\373\373\000\373\373\373\000"
-  "\373\373\373\000\373\373\373\000\373\373\373\000\373\373\373\000\374\374\374\000\374"
-  "\374\374\000\375\375\375\000\375\375\375\000\375\375\375\000\375\375\375\000\376\376"
-  "\376\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\376\376\376\000\376\376\376\000\376"
-  "\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376"
-  "\376\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376"
-  "\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000"
-  "\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\376"
-  "\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376\376\000\376\376"
-  "\376\000\376\376\376\000\376\376\376\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377"
-  "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000"
-  "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377"
-  "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377"
-  "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377";
-
diff --git a/ciolib/syncicon64.h b/ciolib/syncicon64.h
deleted file mode 100644
index 58a37cef01d0eaff91a0e1bdeb3da0bf53d1f7db..0000000000000000000000000000000000000000
--- a/ciolib/syncicon64.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef SYNCICON64_H_
-#define SYNCICON64_H_
-
-#define SYNCICON64_WIDTH	64
-#define SYNCICON64_HEIGHT	64
-extern const char syncicon64[64*64*4];
-
-#endif
diff --git a/ciolib/syncicon64.ico b/ciolib/syncicon64.ico
deleted file mode 100644
index 39069e2a0e15a5740dd956ceb5bf4d81988aee2c..0000000000000000000000000000000000000000
Binary files a/ciolib/syncicon64.ico and /dev/null differ
diff --git a/ciolib/utf8_codepages.c b/ciolib/utf8_codepages.c
deleted file mode 100644
index b3a9005ce40ce8b1e1deb4202e38ef0b4656e374..0000000000000000000000000000000000000000
--- a/ciolib/utf8_codepages.c
+++ /dev/null
@@ -1,1929 +0,0 @@
-#include <inttypes.h>
-#include <stdlib.h>
-#include "utf8_codepages.h"
-
-struct ciolib_cpmap {
-	uint32_t	unicode;
-	uint8_t		cpchar;
-};
-
-// Sorted by unicode codepoint...
-const static struct ciolib_cpmap cp437_table[162] = {
-	{0x0000, 0},   {0x00A0, 255}, {0x00A1, 173}, {0x00A2, 155},
-	{0x00A3, 156}, {0x00A5, 157}, {0x00A6, 124}, {0x00A7, 21},  {0x00AA, 166},
-	{0x00AB, 174}, {0x00AC, 170}, {0x00B0, 248}, {0x00B1, 241},
-	{0x00B2, 253}, {0x00B5, 230}, {0x00B6, 20},  {0x00B7, 250},
-	{0x00BA, 167}, {0x00BB, 175}, {0x00BC, 172}, {0x00BD, 171},
-	{0x00BF, 168}, {0x00C4, 142}, {0x00C5, 143}, {0x00C6, 146},
-	{0x00C7, 128}, {0x00C9, 144}, {0x00D1, 165}, {0x00D6, 153},
-	{0x00DC, 154}, {0x00DF, 225}, {0x00E0, 133}, {0x00E1, 160},
-	{0x00E2, 131}, {0x00E4, 132}, {0x00E5, 134}, {0x00E6, 145},
-	{0x00E7, 135}, {0x00E8, 138}, {0x00E9, 130}, {0x00EA, 136},
-	{0x00EB, 137}, {0x00EC, 141}, {0x00ED, 161}, {0x00EE, 140}, 
-	{0x00EF, 139}, {0x00F1, 164}, {0x00F2, 149}, {0x00F3, 162},
-	{0x00F4, 147}, {0x00F6, 148}, {0x00F7, 246}, {0x00F9, 151},
-	{0x00FA, 163}, {0x00FB, 150}, {0x00FC, 129}, {0x00FF, 152},
-	{0x0192, 159}, {0x0393, 226}, {0x0398, 233}, {0x03A3, 228},
-	{0x03A6, 232}, {0x03A9, 234}, {0x03B1, 224}, {0x03B4, 235},
-	{0x03B5, 238}, {0x03C0, 227}, {0x03C3, 229}, {0x03C4, 231},
-	{0x03C6, 237}, {0x2022, 7},   {0x203C, 19},  {0x207F, 252},
-	{0x20A7, 158}, {0x2190, 27},  {0x2191, 24},  {0x2192, 26},
-	{0x2193, 25},  {0x2194, 29},  {0x2195, 18},  {0x21A8, 23},
-	{0x2219, 249}, {0x221A, 251}, {0x221E, 236}, {0x221F, 28},
-	{0x2229, 239}, {0x2248, 247}, {0x2261, 240}, {0x2264, 243},
-	{0x2265, 242}, {0x2310, 169}, {0x2320, 244}, {0x2321, 245},
-	{0x2500, 196}, {0x2502, 179}, {0x250C, 218}, {0x2510, 191},
-	{0x2514, 192}, {0x2518, 217}, {0x251C, 195}, {0x2524, 180},
-	{0x252C, 194}, {0x2534, 193}, {0x253C, 197}, {0x2550, 205},
-	{0x2551, 186}, {0x2552, 213}, {0x2553, 214}, {0x2554, 201},
-	{0x2555, 184}, {0x2556, 183}, {0x2557, 187}, {0x2558, 212},
-	{0x2559, 211}, {0x255A, 200}, {0x255B, 190}, {0x255C, 189},
-	{0x255D, 188}, {0x255E, 198}, {0x255F, 199}, {0x2560, 204},
-	{0x2561, 181}, {0x2562, 182}, {0x2563, 185}, {0x2564, 209},
-	{0x2565, 210}, {0x2566, 203}, {0x2567, 207}, {0x2568, 208},
-	{0x2569, 202}, {0x256A, 216}, {0x256B, 215}, {0x256C, 206},
-	{0x2580, 223}, {0x2584, 220}, {0x2588, 219}, {0x258C, 221},
-	{0x2590, 222}, {0x2591, 176}, {0x2592, 177}, {0x2593, 178},
-	{0x25A0, 254}, {0x25AC, 22},  {0x25B2, 30},  {0x25BA, 16},
-	{0x25BC, 31},  {0x25C4, 17},  {0x25CB, 9},   {0x25D8, 8},
-	{0x25D9, 10},  {0x263A, 1},   {0x263B, 2},   {0x263C, 15},
-	{0x2640, 12},  {0x2642, 11},  {0x2660, 6},   {0x2663, 5}, 
-	{0x2665, 3},   {0x2666, 4},   {0x266A, 13},  {0x266B, 14},
-	{0xfffd, '?'}
-};
-
-const static uint32_t cp437_ext_table[32] = {
-	0x0000, 0x263A, 0x263B, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022,
-	0x25D8, 0x25CB, 0x25D9, 0x2642, 0x2640, 0x266A, 0x266B, 0x263C,
-	0x25BA, 0x25C4, 0x2195, 0x203C, 0x00B6, 0x00A7, 0x25AC, 0x21A8,
-	0x2191, 0x2193, 0x2192, 0x2190, 0x221F, 0x2194, 0x25B2, 0x25BC
-};
-
-const static uint32_t cp437_unicode_table[128] = {
-	0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, 
-	0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, 
-	0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, 
-	0x00FF, 0x00D6, 0x00DC, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192, 
-	0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 
-	0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, 
-	0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 
-	0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, 
-	0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 
-	0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, 
-	0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 
-	0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, 
-	0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 
-	0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, 
-	0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 
-	0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0
-};
-
-const static struct ciolib_cpmap cp1251_table[156] = {
-	{0x00a0, 160}, {0x00a4, 164}, {0x00a6, 166}, {0x00a7, 167},
-	{0x00a9, 169}, {0x00ab, 171}, {0x00ac, 172}, {0x00ad, 173},
-	{0x00ae, 174}, {0x00b0, 176}, {0x00b1, 177}, {0x00b5, 181},
-	{0x00b6, 20}, {0x00b7, 183}, {0x00bb, 187}, {0x0401, 168},
-	{0x0402, 128}, {0x0403, 129}, {0x0404, 170}, {0x0405, 189},
-	{0x0406, 178}, {0x0407, 175}, {0x0408, 163}, {0x0409, 138},
-	{0x040a, 140}, {0x040b, 142}, {0x040c, 141}, {0x040e, 161},
-	{0x040f, 143}, {0x0410, 192}, {0x0411, 193}, {0x0412, 194},
-	{0x0413, 195}, {0x0414, 196}, {0x0415, 197}, {0x0416, 198},
-	{0x0417, 199}, {0x0418, 200}, {0x0419, 201}, {0x041a, 202},
-	{0x041b, 203}, {0x041c, 204}, {0x041d, 205}, {0x041e, 206},
-	{0x041f, 207}, {0x0420, 208}, {0x0421, 209}, {0x0422, 210},
-	{0x0423, 211}, {0x0424, 212}, {0x0425, 213}, {0x0426, 214},
-	{0x0427, 215}, {0x0428, 216}, {0x0429, 217}, {0x042a, 218},
-	{0x042b, 219}, {0x042c, 220}, {0x042d, 221}, {0x042e, 222},
-	{0x042f, 223}, {0x0430, 224}, {0x0431, 225}, {0x0432, 226},
-	{0x0433, 227}, {0x0434, 228}, {0x0435, 229}, {0x0436, 230},
-	{0x0437, 231}, {0x0438, 232}, {0x0439, 233}, {0x043a, 234},
-	{0x043b, 235}, {0x043c, 236}, {0x043d, 237}, {0x043e, 238},
-	{0x043f, 239}, {0x0440, 240}, {0x0441, 241}, {0x0442, 242},
-	{0x0443, 243}, {0x0444, 244}, {0x0445, 245}, {0x0446, 246},
-	{0x0447, 247}, {0x0448, 248}, {0x0449, 249}, {0x044a, 250},
-	{0x044b, 251}, {0x044c, 252}, {0x044d, 253}, {0x044e, 254},
-	{0x044f, 255}, {0x0451, 184}, {0x0452, 144}, {0x0453, 131},
-	{0x0454, 186}, {0x0455, 190}, {0x0456, 179}, {0x0457, 191},
-	{0x0458, 188}, {0x0459, 154}, {0x045a, 156}, {0x045b, 158},
-	{0x045c, 157}, {0x045e, 162}, {0x045f, 159}, {0x0490, 165},
-	{0x0491, 180}, {0x2013, 150}, {0x2014, 151}, {0x2018, 145},
-	{0x2019, 146}, {0x201a, 130}, {0x201c, 147}, {0x201d, 148},
-	{0x201e, 132}, {0x2020, 134}, {0x2021, 135}, {0x2022, 7},
-	{0x2026, 133}, {0x2030, 137}, {0x2039, 139}, {0x203a, 155},
-	{0x203c, 19}, {0x20ac, 136}, {0x2116, 185}, {0x2122, 153},
-	{0x2190, 27}, {0x2191, 24}, {0x2192, 26}, {0x2193, 25},
-	{0x2194, 29}, {0x2195, 18}, {0x21a8, 23}, {0x221f, 28},
-	{0x25ac, 22}, {0x25b2, 30}, {0x25ba, 16}, {0x25bc, 31},
-	{0x25c4, 17}, {0x25cb, 9}, {0x25d8, 8}, {0x25d9, 10},
-	{0x263a, 1}, {0x263b, 2}, {0x263c, 15}, {0x2640, 12},
-	{0x2642, 11}, {0x2660, 6}, {0x2663, 5}, {0x2665, 3},
-	{0x2666, 4}, {0x266a, 13}, {0x266b, 14}, {0xfffd, 63}
-};
-
-const static uint32_t cp1251_unicode_table[128] = {
-	0x0402, 0x0403, 0x201a, 0x0453, 0x201e, 0x2026, 0x2020, 0x2021,
-	0x20ac, 0x2030, 0x0409, 0x2039, 0x040a, 0x040c, 0x040b, 0x040f,
-	0x0452, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,
-	0xfffd, 0x2122, 0x0459, 0x203a, 0x045a, 0x045c, 0x045b, 0x045f,
-	0x00a0, 0x040e, 0x045e, 0x0408, 0x00a4, 0x0490, 0x00a6, 0x00a7,
-	0x0401, 0x00a9, 0x0404, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x0407,
-	0x00b0, 0x00b1, 0x0406, 0x0456, 0x0491, 0x00b5, 0x00b6, 0x00b7,
-	0x0451, 0x2116, 0x0454, 0x00bb, 0x0458, 0x0405, 0x0455, 0x0457,
-	0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
-	0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
-	0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
-	0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
-	0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
-	0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
-	0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
-	0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f
-};
-
-const static struct ciolib_cpmap koi8_r_table[160] = {
-	{0x00a0, 154}, {0x00a7,  21}, {0x00a9, 191}, {0x00b0, 156},
-	{0x00b2, 157}, {0x00b6,  20}, {0x00b7, 158}, {0x00f7, 159},
-	{0x0401, 179}, {0x0410, 225}, {0x0411, 226}, {0x0412, 247},
-	{0x0413, 231}, {0x0414, 228}, {0x0415, 229}, {0x0416, 246},
-	{0x0417, 250}, {0x0418, 233}, {0x0419, 234}, {0x041a, 235},
-	{0x041b, 236}, {0x041c, 237}, {0x041d, 238}, {0x041e, 239},
-	{0x041f, 240}, {0x0420, 242}, {0x0421, 243}, {0x0422, 244},
-	{0x0423, 245}, {0x0424, 230}, {0x0425, 232}, {0x0426, 227},
-	{0x0427, 254}, {0x0428, 251}, {0x0429, 253}, {0x042a, 255},
-	{0x042b, 249}, {0x042c, 248}, {0x042d, 252}, {0x042e, 224},
-	{0x042f, 241}, {0x0430, 193}, {0x0431, 194}, {0x0432, 215},
-	{0x0433, 199}, {0x0434, 196}, {0x0435, 197}, {0x0436, 214},
-	{0x0437, 218}, {0x0438, 201}, {0x0439, 202}, {0x043a, 203},
-	{0x043b, 204}, {0x043c, 205}, {0x043d, 206}, {0x043e, 207},
-	{0x043f, 208}, {0x0440, 210}, {0x0441, 211}, {0x0442, 212},
-	{0x0443, 213}, {0x0444, 198}, {0x0445, 200}, {0x0446, 195},
-	{0x0447, 222}, {0x0448, 219}, {0x0449, 221}, {0x044a, 223},
-	{0x044b, 217}, {0x044c, 216}, {0x044d, 220}, {0x044e, 192},
-	{0x044f, 209}, {0x0451, 163}, {0x2022,   7}, {0x203c,  19},
-	{0x2190,  27}, {0x2191,  24}, {0x2192,  26}, {0x2193,  25},
-	{0x2194,  29}, {0x2195,  18}, {0x21a8,  23}, {0x2219, 149},
-	{0x221a, 150}, {0x221f,  28}, {0x2248, 151}, {0x2264, 152},
-	{0x2265, 153}, {0x2320, 147}, {0x2321, 155}, {0x2500, 128},
-	{0x2502, 129}, {0x250c, 130}, {0x2510, 131}, {0x2514, 132},
-	{0x2518, 133}, {0x251c, 134}, {0x2524, 135}, {0x252c, 136},
-	{0x2534, 137}, {0x253c, 138}, {0x2550, 160}, {0x2551, 161},
-	{0x2552, 162}, {0x2553, 164}, {0x2554, 165}, {0x2555, 166},
-	{0x2556, 167}, {0x2557, 168}, {0x2558, 169}, {0x2559, 170},
-	{0x255a, 171}, {0x255b, 172}, {0x255c, 173}, {0x255d, 174},
-	{0x255e, 175}, {0x255f, 176}, {0x2560, 177}, {0x2561, 178},
-	{0x2562, 180}, {0x2563, 181}, {0x2564, 182}, {0x2565, 183},
-	{0x2566, 184}, {0x2567, 185}, {0x2568, 186}, {0x2569, 187},
-	{0x256a, 188}, {0x256b, 189}, {0x256c, 190}, {0x2580, 139},
-	{0x2584, 140}, {0x2588, 141}, {0x258c, 142}, {0x2590, 143},
-	{0x2591, 144}, {0x2592, 145}, {0x2593, 146}, {0x25a0, 148},
-	{0x25ac,  22}, {0x25b2,  30}, {0x25ba,  16}, {0x25bc,  31},
-	{0x25c4,  17}, {0x25cb,   9}, {0x25d8,   8}, {0x25d9,  10},
-	{0x263a,   1}, {0x263b,   2}, {0x263c,  15}, {0x2640,  12},
-	{0x2642,  11}, {0x2660,   6}, {0x2663,   5}, {0x2665,   3},
-	{0x2666,   4}, {0x266a,  13}, {0x266b,  14}, {0xfffd, '?'}
-};
-
-const static uint32_t koi8_r_unicode_table[128] = {
-	0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524,
-	0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590,
-	0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248,
-	0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7,
-	0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556,
-	0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e,
-	0x255f, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565,
-	0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x00a9,
-	0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
-	0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,
-	0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
-	0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a,
-	0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
-	0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,
-	0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
-	0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a
-};
-
-const static uint32_t empty_ext_table[32] = {
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd
-};
-
-const static struct ciolib_cpmap iso8859_2_table[127] = {
-	{0x00a0, 160}, {0x00a4, 164}, {0x00a7, 167}, {0x00a8, 168},
-	{0x00ad, 173}, {0x00b0, 176}, {0x00b4, 180}, {0x00b6, 20},
-	{0x00b8, 184}, {0x00c1, 193}, {0x00c2, 194}, {0x00c4, 196},
-	{0x00c7, 199}, {0x00c9, 201}, {0x00cb, 203}, {0x00cd, 205},
-	{0x00ce, 206}, {0x00d3, 211}, {0x00d4, 212}, {0x00d6, 214},
-	{0x00d7, 215}, {0x00da, 218}, {0x00dc, 220}, {0x00dd, 221},
-	{0x00df, 223}, {0x00e1, 225}, {0x00e2, 226}, {0x00e4, 228},
-	{0x00e7, 231}, {0x00e9, 233}, {0x00eb, 235}, {0x00ed, 237},
-	{0x00ee, 238}, {0x00f3, 243}, {0x00f4, 244}, {0x00f6, 246},
-	{0x00f7, 247}, {0x00fa, 250}, {0x00fc, 252}, {0x00fd, 253},
-	{0x0102, 195}, {0x0103, 227}, {0x0104, 161}, {0x0105, 177},
-	{0x0106, 198}, {0x0107, 230}, {0x010c, 200}, {0x010d, 232},
-	{0x010e, 207}, {0x010f, 239}, {0x0110, 208}, {0x0111, 240},
-	{0x0118, 202}, {0x0119, 234}, {0x011a, 204}, {0x011b, 236},
-	{0x0139, 197}, {0x013a, 229}, {0x013d, 165}, {0x013e, 181},
-	{0x0141, 163}, {0x0142, 179}, {0x0143, 209}, {0x0144, 241},
-	{0x0147, 210}, {0x0148, 242}, {0x0150, 213}, {0x0151, 245},
-	{0x0154, 192}, {0x0155, 224}, {0x0158, 216}, {0x0159, 248},
-	{0x015a, 166}, {0x015b, 182}, {0x015e, 170}, {0x015f, 186},
-	{0x0160, 169}, {0x0161, 185}, {0x0162, 222}, {0x0163, 254},
-	{0x0164, 171}, {0x0165, 187}, {0x016e, 217}, {0x016f, 249},
-	{0x0170, 219}, {0x0171, 251}, {0x0179, 172}, {0x017a, 188},
-	{0x017b, 175}, {0x017c, 191}, {0x017d, 174}, {0x017e, 190},
-	{0x02c7, 183}, {0x02d8, 162}, {0x02d9, 255}, {0x02db, 178},
-	{0x02dd, 189}, {0x2022, 7}, {0x203c, 19}, {0x2190, 27},
-	{0x2191, 24}, {0x2192, 26}, {0x2193, 25}, {0x2194, 29},
-	{0x2195, 18}, {0x21a8, 23}, {0x221f, 28}, {0x25ac, 22},
-	{0x25b2, 30}, {0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17},
-	{0x25cb, 9}, {0x25d8, 8}, {0x25d9, 10}, {0x263a, 1},
-	{0x263b, 2}, {0x263c, 15}, {0x2640, 12}, {0x2642, 11},
-	{0x2660, 6}, {0x2663, 5}, {0x2665, 3}, {0x2666, 4},
-	{0x266a, 13}, {0x266b, 14}, {0xfffd, 63}
-};
-
-const static uint32_t iso8859_2_unicode_table[128] = {
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0x00a0, 0x0104, 0x02d8, 0x0141, 0x00a4, 0x013d, 0x015a, 0x00a7,
-	0x00a8, 0x0160, 0x015e, 0x0164, 0x0179, 0x00ad, 0x017d, 0x017b,
-	0x00b0, 0x0105, 0x02db, 0x0142, 0x00b4, 0x013e, 0x015b, 0x02c7,
-	0x00b8, 0x0161, 0x015f, 0x0165, 0x017a, 0x02dd, 0x017e, 0x017c,
-	0x0154, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0139, 0x0106, 0x00c7,
-	0x010c, 0x00c9, 0x0118, 0x00cb, 0x011a, 0x00cd, 0x00ce, 0x010e,
-	0x0110, 0x0143, 0x0147, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x00d7,
-	0x0158, 0x016e, 0x00da, 0x0170, 0x00dc, 0x00dd, 0x0162, 0x00df,
-	0x0155, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x013a, 0x0107, 0x00e7,
-	0x010d, 0x00e9, 0x0119, 0x00eb, 0x011b, 0x00ed, 0x00ee, 0x010f,
-	0x0111, 0x0144, 0x0148, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x00f7,
-	0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9
-};
-
-const static struct ciolib_cpmap iso8859_4_table[127] = {
-	{0x00a0, 160}, {0x00a4, 164}, {0x00a7, 167}, {0x00a8, 168},
-	{0x00ad, 173}, {0x00af, 175}, {0x00b0, 176}, {0x00b4, 180},
-	{0x00b6, 20}, {0x00b8, 184}, {0x00c1, 193}, {0x00c2, 194},
-	{0x00c3, 195}, {0x00c4, 196}, {0x00c5, 197}, {0x00c6, 198},
-	{0x00c9, 201}, {0x00cb, 203}, {0x00cd, 205}, {0x00ce, 206},
-	{0x00d4, 212}, {0x00d5, 213}, {0x00d6, 214}, {0x00d7, 215},
-	{0x00d8, 216}, {0x00da, 218}, {0x00db, 219}, {0x00dc, 220},
-	{0x00df, 223}, {0x00e1, 225}, {0x00e2, 226}, {0x00e3, 227},
-	{0x00e4, 228}, {0x00e5, 229}, {0x00e6, 230}, {0x00e9, 233},
-	{0x00eb, 235}, {0x00ed, 237}, {0x00ee, 238}, {0x00f4, 244},
-	{0x00f5, 245}, {0x00f6, 246}, {0x00f7, 247}, {0x00f8, 248},
-	{0x00fa, 250}, {0x00fb, 251}, {0x00fc, 252}, {0x0100, 192},
-	{0x0101, 224}, {0x0104, 161}, {0x0105, 177}, {0x010c, 200},
-	{0x010d, 232}, {0x0110, 208}, {0x0111, 240}, {0x0112, 170},
-	{0x0113, 186}, {0x0116, 204}, {0x0117, 236}, {0x0118, 202},
-	{0x0119, 234}, {0x0122, 171}, {0x0123, 187}, {0x0128, 165},
-	{0x0129, 181}, {0x012a, 207}, {0x012b, 239}, {0x012e, 199},
-	{0x012f, 231}, {0x0136, 211}, {0x0137, 243}, {0x0138, 162},
-	{0x013b, 166}, {0x013c, 182}, {0x0145, 209}, {0x0146, 241},
-	{0x014a, 189}, {0x014b, 191}, {0x014c, 210}, {0x014d, 242},
-	{0x0156, 163}, {0x0157, 179}, {0x0160, 169}, {0x0161, 185},
-	{0x0166, 172}, {0x0167, 188}, {0x0168, 221}, {0x0169, 253},
-	{0x016a, 222}, {0x016b, 254}, {0x0172, 217}, {0x0173, 249},
-	{0x017d, 174}, {0x017e, 190}, {0x02c7, 183}, {0x02d9, 255},
-	{0x02db, 178}, {0x2022, 7}, {0x203c, 19}, {0x2190, 27},
-	{0x2191, 24}, {0x2192, 26}, {0x2193, 25}, {0x2194, 29},
-	{0x2195, 18}, {0x21a8, 23}, {0x221f, 28}, {0x25ac, 22},
-	{0x25b2, 30}, {0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17},
-	{0x25cb, 9}, {0x25d8, 8}, {0x25d9, 10}, {0x263a, 1},
-	{0x263b, 2}, {0x263c, 15}, {0x2640, 12}, {0x2642, 11},
-	{0x2660, 6}, {0x2663, 5}, {0x2665, 3}, {0x2666, 4},
-	{0x266a, 13}, {0x266b, 14}, {0xfffd, 63}
-};
-
-const static uint32_t iso8859_4_unicode_table[128] = {
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0x00a0, 0x0104, 0x0138, 0x0156, 0x00a4, 0x0128, 0x013b, 0x00a7,
-	0x00a8, 0x0160, 0x0112, 0x0122, 0x0166, 0x00ad, 0x017d, 0x00af,
-	0x00b0, 0x0105, 0x02db, 0x0157, 0x00b4, 0x0129, 0x013c, 0x02c7,
-	0x00b8, 0x0161, 0x0113, 0x0123, 0x0167, 0x014a, 0x017e, 0x014b,
-	0x0100, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x012e,
-	0x010c, 0x00c9, 0x0118, 0x00cb, 0x0116, 0x00cd, 0x00ce, 0x012a,
-	0x0110, 0x0145, 0x014c, 0x0136, 0x00d4, 0x00d5, 0x00d6, 0x00d7,
-	0x00d8, 0x0172, 0x00da, 0x00db, 0x00dc, 0x0168, 0x016a, 0x00df,
-	0x0101, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x012f,
-	0x010d, 0x00e9, 0x0119, 0x00eb, 0x0117, 0x00ed, 0x00ee, 0x012b,
-	0x0111, 0x0146, 0x014d, 0x0137, 0x00f4, 0x00f5, 0x00f6, 0x00f7,
-	0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x0169, 0x016b, 0x02d9
-};
-
-#if 0
-const static struct ciolib_cpmap cp866_table[160] = {
-	{0x00a0, 255}, {0x00a4, 253}, {0x00a7,  21}, {0x00b0, 248},
-	{0x00b6,  20}, {0x00b7, 250}, {0x0401, 240}, {0x0404, 242},
-	{0x0407, 244}, {0x040e, 246}, {0x0410, 128}, {0x0411, 129},
-	{0x0412, 130}, {0x0413, 131}, {0x0414, 132}, {0x0415, 133},
-	{0x0416, 134}, {0x0417, 135}, {0x0418, 136}, {0x0419, 137},
-	{0x041a, 138}, {0x041b, 139}, {0x041c, 140}, {0x041d, 141},
-	{0x041e, 142}, {0x041f, 143}, {0x0420, 144}, {0x0421, 145},
-	{0x0422, 146}, {0x0423, 147}, {0x0424, 148}, {0x0425, 149},
-	{0x0426, 150}, {0x0427, 151}, {0x0428, 152}, {0x0429, 153},
-	{0x042a, 154}, {0x042b, 155}, {0x042c, 156}, {0x042d, 157},
-	{0x042e, 158}, {0x042f, 159}, {0x0430, 160}, {0x0431, 161},
-	{0x0432, 162}, {0x0433, 163}, {0x0434, 164}, {0x0435, 165},
-	{0x0436, 166}, {0x0437, 167}, {0x0438, 168}, {0x0439, 169},
-	{0x043a, 170}, {0x043b, 171}, {0x043c, 172}, {0x043d, 173},
-	{0x043e, 174}, {0x043f, 175}, {0x0440, 224}, {0x0441, 225},
-	{0x0442, 226}, {0x0443, 227}, {0x0444, 228}, {0x0445, 229},
-	{0x0446, 230}, {0x0447, 231}, {0x0448, 232}, {0x0449, 233},
-	{0x044a, 234}, {0x044b, 235}, {0x044c, 236}, {0x044d, 237},
-	{0x044e, 238}, {0x044f, 239}, {0x0451, 241}, {0x0454, 243},
-	{0x0457, 245}, {0x045e, 247}, {0x2022,   7}, {0x203c,  19},
-	{0x2116, 252}, {0x2190,  27}, {0x2191,  24}, {0x2192,  26},
-	{0x2193,  25}, {0x2194,  29}, {0x2195,  18}, {0x21a8,  23},
-	{0x2219, 249}, {0x221a, 251}, {0x221f,  28}, {0x2500, 196},
-	{0x2502, 179}, {0x250c, 218}, {0x2510, 191}, {0x2514, 192},
-	{0x2518, 217}, {0x251c, 195}, {0x2524, 180}, {0x252c, 194},
-	{0x2534, 193}, {0x253c, 197}, {0x2550, 205}, {0x2551, 186},
-	{0x2552, 213}, {0x2553, 214}, {0x2554, 201}, {0x2555, 184},
-	{0x2556, 183}, {0x2557, 187}, {0x2558, 212}, {0x2559, 211},
-	{0x255a, 200}, {0x255b, 190}, {0x255c, 189}, {0x255d, 188},
-	{0x255e, 198}, {0x255f, 199}, {0x2560, 204}, {0x2561, 181},
-	{0x2562, 182}, {0x2563, 185}, {0x2564, 209}, {0x2565, 210},
-	{0x2566, 203}, {0x2567, 207}, {0x2568, 208}, {0x2569, 202},
-	{0x256a, 216}, {0x256b, 215}, {0x256c, 206}, {0x2580, 223},
-	{0x2584, 220}, {0x2588, 219}, {0x258c, 221}, {0x2590, 222},
-	{0x2591, 176}, {0x2592, 177}, {0x2593, 178}, {0x25a0, 254},
-	{0x25ac,  22}, {0x25b2,  30}, {0x25ba,  16}, {0x25bc,  31},
-	{0x25c4,  17}, {0x25cb,   9}, {0x25d8,   8}, {0x25d9,  10},
-	{0x263a,   1}, {0x263b,   2}, {0x263c,  15}, {0x2640,  12},
-	{0x2642,  11}, {0x2660,   6}, {0x2663,   5}, {0x2665,   3},
-	{0x2666,   4}, {0x266a,  13}, {0x266b,  14}, {0xfffd, '?'}
-};
-
-const static uint32_t cp866_unicode_table[128] = {
-	0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
-	0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
-	0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
-	0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
-	0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
-	0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
-	0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
-	0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
-	0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
-	0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
-	0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
-	0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
-	0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
-	0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,
-	0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040e, 0x045e,
-	0x00b0, 0x2219, 0x00b7, 0x221a, 0x2116, 0x00a4, 0x25a0, 0x00a0
-};
-#endif
-
-const static struct ciolib_cpmap cp866m_table[160] = {
-	{0x00a0, 255}, {0x00a7,  21}, {0x00b0, 248}, {0x00B2, 253},
-	{0x00b6,  20}, {0x00b7, 250}, {0x00F7, 246}, {0x0401, 240},
-	{0x0410, 128}, {0x0411, 129}, {0x0412, 130}, {0x0413, 131},
-	{0x0414, 132}, {0x0415, 133}, {0x0416, 134}, {0x0417, 135},
-	{0x0418, 136}, {0x0419, 137}, {0x041a, 138}, {0x041b, 139},
-	{0x041c, 140}, {0x041d, 141}, {0x041e, 142}, {0x041f, 143},
-	{0x0420, 144}, {0x0421, 145}, {0x0422, 146}, {0x0423, 147},
-	{0x0424, 148}, {0x0425, 149}, {0x0426, 150}, {0x0427, 151},
-	{0x0428, 152}, {0x0429, 153}, {0x042a, 154}, {0x042b, 155},
-	{0x042c, 156}, {0x042d, 157}, {0x042e, 158}, {0x042f, 159},
-	{0x0430, 160}, {0x0431, 161}, {0x0432, 162}, {0x0433, 163},
-	{0x0434, 164}, {0x0435, 165}, {0x0436, 166}, {0x0437, 167},
-	{0x0438, 168}, {0x0439, 169}, {0x043a, 170}, {0x043b, 171},
-	{0x043c, 172}, {0x043d, 173}, {0x043e, 174}, {0x043f, 175},
-	{0x0440, 224}, {0x0441, 225}, {0x0442, 226}, {0x0443, 227},
-	{0x0444, 228}, {0x0445, 229}, {0x0446, 230}, {0x0447, 231},
-	{0x0448, 232}, {0x0449, 233}, {0x044a, 234}, {0x044b, 235},
-	{0x044c, 236}, {0x044d, 237}, {0x044e, 238}, {0x044f, 239},
-	{0x0451, 241}, {0x045F, 252}, {0x2022,   7}, {0x203c,  19},
-	{0x2190,  27}, {0x2191,  24}, {0x2192,  26}, {0x2193,  25},
-	{0x2194,  29}, {0x2195,  18}, {0x21a8,  23}, {0x2219, 249},
-	{0x221a, 251}, {0x221f,  28}, {0x2264, 243}, {0x2265, 242},
-	{0x2320, 244}, {0x2321, 245}, {0x2248, 247}, {0x2500, 196},
-	{0x2502, 179}, {0x250c, 218}, {0x2510, 191}, {0x2514, 192},
-	{0x2518, 217}, {0x251c, 195}, {0x2524, 180}, {0x252c, 194},
-	{0x2534, 193}, {0x253c, 197}, {0x2550, 205}, {0x2551, 186},
-	{0x2552, 213}, {0x2553, 214}, {0x2554, 201}, {0x2555, 184},
-	{0x2556, 183}, {0x2557, 187}, {0x2558, 212}, {0x2559, 211},
-	{0x255a, 200}, {0x255b, 190}, {0x255c, 189}, {0x255d, 188},
-	{0x255e, 198}, {0x255f, 199}, {0x2560, 204}, {0x2561, 181},
-	{0x2562, 182}, {0x2563, 185}, {0x2564, 209}, {0x2565, 210},
-	{0x2566, 203}, {0x2567, 207}, {0x2568, 208}, {0x2569, 202},
-	{0x256a, 216}, {0x256b, 215}, {0x256c, 206}, {0x2580, 223},
-	{0x2584, 220}, {0x2588, 219}, {0x258c, 221}, {0x2590, 222},
-	{0x2591, 176}, {0x2592, 177}, {0x2593, 178}, {0x25a0, 254},
-	{0x25ac,  22}, {0x25b2,  30}, {0x25ba,  16}, {0x25bc,  31},
-	{0x25c4,  17}, {0x25cb,   9}, {0x25d8,   8}, {0x25d9,  10},
-	{0x263a,   1}, {0x263b,   2}, {0x263c,  15}, {0x2640,  12},
-	{0x2642,  11}, {0x2660,   6}, {0x2663,   5}, {0x2665,   3},
-	{0x2666,   4}, {0x266a,  13}, {0x266b,  14}, {0xfffd, '?'}
-};
-
-const static uint32_t cp866m_unicode_table[128] = {
-	0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
-	0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
-	0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
-	0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
-	0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
-	0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
-	0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
-	0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
-	0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
-	0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
-	0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
-	0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
-	0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
-	0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,
-	0x0401, 0x0451, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248,
-	0x00b0, 0x2219, 0x00b7, 0x221a, 0x045F, 0x00B2, 0x25a0, 0x00a0
-};
-
-const static struct ciolib_cpmap iso8859_9_table[126] = {
-	{0x00a0, 160}, {0x00a1, 161}, {0x00a2, 162}, {0x00a3, 163},
-	{0x00a4, 164}, {0x00a5, 165}, {0x00a6, 166}, {0x00a7, 167},
-	{0x00a8, 168}, {0x00a9, 169}, {0x00aa, 170}, {0x00ab, 171},
-	{0x00ac, 172}, {0x00ad, 173}, {0x00ae, 174}, {0x00af, 175},
-	{0x00b0, 176}, {0x00b1, 177}, {0x00b2, 178}, {0x00b3, 179},
-	{0x00b4, 180}, {0x00b5, 181}, {0x00b6, 182}, {0x00b7, 183},
-	{0x00b8, 184}, {0x00b9, 185}, {0x00ba, 186}, {0x00bb, 187},
-	{0x00bc, 188}, {0x00bd, 189}, {0x00be, 190}, {0x00bf, 191},
-	{0x00c0, 192}, {0x00c1, 193}, {0x00c2, 194}, {0x00c3, 195},
-	{0x00c4, 196}, {0x00c5, 197}, {0x00c6, 198}, {0x00c7, 199},
-	{0x00c8, 200}, {0x00c9, 201}, {0x00ca, 202}, {0x00cb, 203},
-	{0x00cc, 204}, {0x00cd, 205}, {0x00ce, 206}, {0x00cf, 207},
-	{0x00d1, 209}, {0x00d2, 210}, {0x00d3, 211}, {0x00d4, 212},
-	{0x00d5, 213}, {0x00d6, 214}, {0x00d7, 215}, {0x00d8, 216},
-	{0x00d9, 217}, {0x00da, 218}, {0x00db, 219}, {0x00dc, 220},
-	{0x00df, 223}, {0x00e0, 224}, {0x00e1, 225}, {0x00e2, 226},
-	{0x00e3, 227}, {0x00e4, 228}, {0x00e5, 229}, {0x00e6, 230},
-	{0x00e7, 231}, {0x00e8, 232}, {0x00e9, 233}, {0x00ea, 234},
-	{0x00eb, 235}, {0x00ec, 236}, {0x00ed, 237}, {0x00ee, 238},
-	{0x00ef, 239}, {0x00f1, 241}, {0x00f2, 242}, {0x00f3, 243},
-	{0x00f4, 244}, {0x00f5, 245}, {0x00f6, 246}, {0x00f7, 247},
-	{0x00f8, 248}, {0x00f9, 249}, {0x00fa, 250}, {0x00fb, 251},
-	{0x00fc, 252}, {0x00ff, 255}, {0x011e, 208}, {0x011f, 240},
-	{0x0130, 221}, {0x0131, 253}, {0x015e, 222}, {0x015f, 254},
-	{0x2022, 7}, {0x203c, 19}, {0x2190, 27}, {0x2191, 24},
-	{0x2192, 26}, {0x2193, 25}, {0x2194, 29}, {0x2195, 18},
-	{0x21a8, 23}, {0x221f, 28}, {0x25ac, 22}, {0x25b2, 30},
-	{0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17}, {0x25cb, 9},
-	{0x25d8, 8}, {0x25d9, 10}, {0x263a, 1}, {0x263b, 2},
-	{0x263c, 15}, {0x2640, 12}, {0x2642, 11}, {0x2660, 6},
-	{0x2663, 5}, {0x2665, 3}, {0x2666, 4}, {0x266a, 13},
-	{0x266b, 14}, {0xfffd, 63}
-};
-
-const static uint32_t iso8859_9_unicode_table[128] = {
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,
-	0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,
-	0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,
-	0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf,
-	0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7,
-	0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,
-	0x011e, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7,
-	0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0130, 0x015e, 0x00df,
-	0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7,
-	0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,
-	0x011f, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7,
-	0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff
-};
-
-const static struct ciolib_cpmap iso8859_8_table[90] = {
-	{0x00a0, 160}, {0x00a2, 162}, {0x00a3, 163}, {0x00a4, 164},
-	{0x00a5, 165}, {0x00a6, 166}, {0x00a7, 167}, {0x00a8, 168},
-	{0x00a9, 169}, {0x00ab, 171}, {0x00ac, 172}, {0x00ad, 173},
-	{0x00ae, 174}, {0x00af, 175}, {0x00b0, 176}, {0x00b1, 177},
-	{0x00b2, 178}, {0x00b3, 179}, {0x00b4, 180}, {0x00b5, 181},
-	{0x00b6, 182}, {0x00b7, 183}, {0x00b8, 184}, {0x00b9, 185},
-	{0x00bb, 187}, {0x00bc, 188}, {0x00bd, 189}, {0x00be, 190},
-	{0x00d7, 170}, {0x00f7, 186}, {0x05d0, 224}, {0x05d1, 225},
-	{0x05d2, 226}, {0x05d3, 227}, {0x05d4, 228}, {0x05d5, 229},
-	{0x05d6, 230}, {0x05d7, 231}, {0x05d8, 232}, {0x05d9, 233},
-	{0x05da, 234}, {0x05db, 235}, {0x05dc, 236}, {0x05dd, 237},
-	{0x05de, 238}, {0x05df, 239}, {0x05e0, 240}, {0x05e1, 241},
-	{0x05e2, 242}, {0x05e3, 243}, {0x05e4, 244}, {0x05e5, 245},
-	{0x05e6, 246}, {0x05e7, 247}, {0x05e8, 248}, {0x05e9, 249},
-	{0x05ea, 250}, {0x200e, 253}, {0x200f, 254}, {0x2017, 223},
-	{0x2022, 7}, {0x203c, 19}, {0x2190, 27}, {0x2191, 24},
-	{0x2192, 26}, {0x2193, 25}, {0x2194, 29}, {0x2195, 18},
-	{0x21a8, 23}, {0x221f, 28}, {0x25ac, 22}, {0x25b2, 30},
-	{0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17}, {0x25cb, 9},
-	{0x25d8, 8}, {0x25d9, 10}, {0x263a, 1}, {0x263b, 2},
-	{0x263c, 15}, {0x2640, 12}, {0x2642, 11}, {0x2660, 6},
-	{0x2663, 5}, {0x2665, 3}, {0x2666, 4}, {0x266a, 13},
-	{0x266b, 14}, {0xfffd, 63}
-};
-
-const static uint32_t iso8859_8_unicode_table[128] = {
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0x00a0, 0xfffd, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,
-	0x00a8, 0x00a9, 0x00d7, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,
-	0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,
-	0x00b8, 0x00b9, 0x00f7, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2017,
-	0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7,
-	0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df,
-	0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7,
-	0x05e8, 0x05e9, 0x05ea, 0xfffd, 0xfffd, 0x200e, 0x200f, 0xfffd
-};
-
-const static struct ciolib_cpmap koi8_u_table[160] = {
-	{0x00a0, 154}, {0x00a7,  21}, {0x00a9, 191}, {0x00b0, 156},
-	{0x00b2, 157}, {0x00b6,  20}, {0x00b7, 158}, {0x00f7, 159},
-	{0x0401, 179}, {0x0404, 180}, {0x0406, 182}, {0x0407, 183},
-	{0x0410, 225}, {0x0411, 226}, {0x0412, 247}, {0x0413, 231},
-	{0x0414, 228}, {0x0415, 229}, {0x0416, 246}, {0x0417, 250},
-	{0x0418, 233}, {0x0419, 234}, {0x041a, 235}, {0x041b, 236},
-	{0x041c, 237}, {0x041d, 238}, {0x041e, 239}, {0x041f, 240},
-	{0x0420, 242}, {0x0421, 243}, {0x0422, 244}, {0x0423, 245},
-	{0x0424, 230}, {0x0425, 232}, {0x0426, 227}, {0x0427, 254},
-	{0x0428, 251}, {0x0429, 253}, {0x042a, 255}, {0x042b, 249},
-	{0x042c, 248}, {0x042d, 252}, {0x042e, 224}, {0x042f, 241},
-	{0x0430, 193}, {0x0431, 194}, {0x0432, 215}, {0x0433, 199},
-	{0x0434, 196}, {0x0435, 197}, {0x0436, 214}, {0x0437, 218},
-	{0x0438, 201}, {0x0439, 202}, {0x043a, 203}, {0x043b, 204},
-	{0x043c, 205}, {0x043d, 206}, {0x043e, 207}, {0x043f, 208},
-	{0x0440, 210}, {0x0441, 211}, {0x0442, 212}, {0x0443, 213},
-	{0x0444, 198}, {0x0445, 200}, {0x0446, 195}, {0x0447, 222},
-	{0x0448, 219}, {0x0449, 221}, {0x044a, 223}, {0x044b, 217},
-	{0x044c, 216}, {0x044d, 220}, {0x044e, 192}, {0x044f, 209},
-	{0x0451, 163}, {0x0454, 164}, {0x0456, 166}, {0x0457, 167},
-	{0x0490, 189}, {0x0491, 173}, {0x2022,   7}, {0x203c,  19},
-	{0x2190,  27}, {0x2191,  24}, {0x2192,  26}, {0x2193,  25},
-	{0x2194,  29}, {0x2195,  18}, {0x21a8,  23}, {0x2219, 149},
-	{0x221a, 150}, {0x221f,  28}, {0x2248, 151}, {0x2264, 152},
-	{0x2265, 153}, {0x2320, 147}, {0x2321, 155}, {0x2500, 128},
-	{0x2502, 129}, {0x250c, 130}, {0x2510, 131}, {0x2514, 132},
-	{0x2518, 133}, {0x251c, 134}, {0x2524, 135}, {0x252c, 136},
-	{0x2534, 137}, {0x253c, 138}, {0x2550, 160}, {0x2551, 161},
-	{0x2552, 162}, {0x2554, 165}, {0x2557, 168}, {0x2558, 169},
-	{0x2559, 170}, {0x255a, 171}, {0x255b, 172}, {0x255d, 174},
-	{0x255e, 175}, {0x255f, 176}, {0x2560, 177}, {0x2561, 178},
-	{0x2563, 181}, {0x2566, 184}, {0x2567, 185}, {0x2568, 186},
-	{0x2569, 187}, {0x256a, 188}, {0x256c, 190}, {0x2580, 139},
-	{0x2584, 140}, {0x2588, 141}, {0x258c, 142}, {0x2590, 143},
-	{0x2591, 144}, {0x2592, 145}, {0x2593, 146}, {0x25a0, 148},
-	{0x25ac,  22}, {0x25b2,  30}, {0x25ba,  16}, {0x25bc,  31},
-	{0x25c4,  17}, {0x25cb,   9}, {0x25d8,   8}, {0x25d9,  10},
-	{0x263a,   1}, {0x263b,   2}, {0x263c,  15}, {0x2640,  12},
-	{0x2642,  11}, {0x2660,   6}, {0x2663,   5}, {0x2665,   3},
-	{0x2666,   4}, {0x266a,  13}, {0x266b,  14}, {0xfffd, '?'}
-};
-
-const static uint32_t koi8_u_unicode_table[128] = {
-	0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524,
-	0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590,
-	0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248,
-	0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7,
-	0x2550, 0x2551, 0x2552, 0x0451, 0x0454, 0x2554, 0x0456, 0x0457,
-	0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x0491, 0x255d, 0x255e,
-	0x255f, 0x2560, 0x2561, 0x0401, 0x0404, 0x2563, 0x0406, 0x0407,
-	0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x0490, 0x256c, 0x00a9,
-	0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
-	0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e,
-	0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
-	0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a,
-	0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
-	0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e,
-	0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
-	0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a
-};
-
-const static struct ciolib_cpmap iso8859_15_table[126] = {
-	{0x00a0, 160}, {0x00a1, 161}, {0x00a2, 162}, {0x00a3, 163},
-	{0x00a5, 165}, {0x00a7, 167}, {0x00a9, 169}, {0x00aa, 170},
-	{0x00ab, 171}, {0x00ac, 172}, {0x00ad, 173}, {0x00ae, 174},
-	{0x00af, 175}, {0x00b0, 176}, {0x00b1, 177}, {0x00b2, 178},
-	{0x00b3, 179}, {0x00b5, 181}, {0x00b6, 20}, {0x00b7, 183},
-	{0x00b9, 185}, {0x00ba, 186}, {0x00bb, 187}, {0x00bf, 191},
-	{0x00c0, 192}, {0x00c1, 193}, {0x00c2, 194}, {0x00c3, 195},
-	{0x00c4, 196}, {0x00c5, 197}, {0x00c6, 198}, {0x00c7, 199},
-	{0x00c8, 200}, {0x00c9, 201}, {0x00ca, 202}, {0x00cb, 203},
-	{0x00cc, 204}, {0x00cd, 205}, {0x00ce, 206}, {0x00cf, 207},
-	{0x00d0, 208}, {0x00d1, 209}, {0x00d2, 210}, {0x00d3, 211},
-	{0x00d4, 212}, {0x00d5, 213}, {0x00d6, 214}, {0x00d7, 215},
-	{0x00d8, 216}, {0x00d9, 217}, {0x00da, 218}, {0x00db, 219},
-	{0x00dc, 220}, {0x00dd, 221}, {0x00de, 222}, {0x00df, 223},
-	{0x00e0, 224}, {0x00e1, 225}, {0x00e2, 226}, {0x00e3, 227},
-	{0x00e4, 228}, {0x00e5, 229}, {0x00e6, 230}, {0x00e7, 231},
-	{0x00e8, 232}, {0x00e9, 233}, {0x00ea, 234}, {0x00eb, 235},
-	{0x00ec, 236}, {0x00ed, 237}, {0x00ee, 238}, {0x00ef, 239},
-	{0x00f0, 240}, {0x00f1, 241}, {0x00f2, 242}, {0x00f3, 243},
-	{0x00f4, 244}, {0x00f5, 245}, {0x00f6, 246}, {0x00f7, 247},
-	{0x00f8, 248}, {0x00f9, 249}, {0x00fa, 250}, {0x00fb, 251},
-	{0x00fc, 252}, {0x00fd, 253}, {0x00fe, 254}, {0x00ff, 255},
-	{0x0152, 188}, {0x0153, 189}, {0x0160, 166}, {0x0161, 168},
-	{0x0178, 190}, {0x017d, 180}, {0x017e, 184}, {0x2022, 7},
-	{0x203c, 19}, {0x20ac, 164}, {0x2190, 27}, {0x2191, 24},
-	{0x2192, 26}, {0x2193, 25}, {0x2194, 29}, {0x2195, 18},
-	{0x21a8, 23}, {0x221f, 28}, {0x25ac, 22}, {0x25b2, 30},
-	{0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17}, {0x25cb, 9},
-	{0x25d8, 8}, {0x25d9, 10}, {0x263a, 1}, {0x263b, 2},
-	{0x263c, 15}, {0x2640, 12}, {0x2642, 11}, {0x2660, 6},
-	{0x2663, 5}, {0x2665, 3}, {0x2666, 4}, {0x266a, 13},
-	{0x266b, 14}, {0xfffd, 63}
-};
-
-const static uint32_t iso8859_15_unicode_table[128] = {
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x20ac, 0x00a5, 0x0160, 0x00a7,
-	0x0161, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,
-	0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x017d, 0x00b5, 0x00b6, 0x00b7,
-	0x017e, 0x00b9, 0x00ba, 0x00bb, 0x0152, 0x0153, 0x0178, 0x00bf,
-	0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7,
-	0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,
-	0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7,
-	0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df,
-	0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7,
-	0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,
-	0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7,
-	0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff
-};
-
-const static struct ciolib_cpmap iso8859_5_table[127] = {
-	{0x00a0, 160}, {0x00a7, 21}, {0x00ad, 173}, {0x00b6, 20},
-	{0x0401, 161}, {0x0402, 162}, {0x0403, 163}, {0x0404, 164},
-	{0x0405, 165}, {0x0406, 166}, {0x0407, 167}, {0x0408, 168},
-	{0x0409, 169}, {0x040a, 170}, {0x040b, 171}, {0x040c, 172},
-	{0x040e, 174}, {0x040f, 175}, {0x0410, 176}, {0x0411, 177},
-	{0x0412, 178}, {0x0413, 179}, {0x0414, 180}, {0x0415, 181},
-	{0x0416, 182}, {0x0417, 183}, {0x0418, 184}, {0x0419, 185},
-	{0x041a, 186}, {0x041b, 187}, {0x041c, 188}, {0x041d, 189},
-	{0x041e, 190}, {0x041f, 191}, {0x0420, 192}, {0x0421, 193},
-	{0x0422, 194}, {0x0423, 195}, {0x0424, 196}, {0x0425, 197},
-	{0x0426, 198}, {0x0427, 199}, {0x0428, 200}, {0x0429, 201},
-	{0x042a, 202}, {0x042b, 203}, {0x042c, 204}, {0x042d, 205},
-	{0x042e, 206}, {0x042f, 207}, {0x0430, 208}, {0x0431, 209},
-	{0x0432, 210}, {0x0433, 211}, {0x0434, 212}, {0x0435, 213},
-	{0x0436, 214}, {0x0437, 215}, {0x0438, 216}, {0x0439, 217},
-	{0x043a, 218}, {0x043b, 219}, {0x043c, 220}, {0x043d, 221},
-	{0x043e, 222}, {0x043f, 223}, {0x0440, 224}, {0x0441, 225},
-	{0x0442, 226}, {0x0443, 227}, {0x0444, 228}, {0x0445, 229},
-	{0x0446, 230}, {0x0447, 231}, {0x0448, 232}, {0x0449, 233},
-	{0x044a, 234}, {0x044b, 235}, {0x044c, 236}, {0x044d, 237},
-	{0x044e, 238}, {0x044f, 239}, {0x0451, 241}, {0x0452, 242},
-	{0x0453, 243}, {0x0454, 244}, {0x0455, 245}, {0x0456, 246},
-	{0x0457, 247}, {0x0458, 248}, {0x0459, 249}, {0x045a, 250},
-	{0x045b, 251}, {0x045c, 252}, {0x045e, 254}, {0x045f, 255},
-	{0x2022, 7}, {0x203c, 19}, {0x2116, 240}, {0x2190, 27},
-	{0x2191, 24}, {0x2192, 26}, {0x2193, 25}, {0x2194, 29},
-	{0x2195, 18}, {0x21a8, 23}, {0x221f, 28}, {0x25ac, 22},
-	{0x25b2, 30}, {0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17},
-	{0x25cb, 9}, {0x25d8, 8}, {0x25d9, 10}, {0x263a, 1},
-	{0x263b, 2}, {0x263c, 15}, {0x2640, 12}, {0x2642, 11},
-	{0x2660, 6}, {0x2663, 5}, {0x2665, 3}, {0x2666, 4},
-	{0x266a, 13}, {0x266b, 14}, {0xfffd, 63}
-};
-
-const static uint32_t iso8859_5_unicode_table[128] = {
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0x00a0, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407,
-	0x0408, 0x0409, 0x040a, 0x040b, 0x040c, 0x00ad, 0x040e, 0x040f,
-	0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
-	0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
-	0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
-	0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
-	0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
-	0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
-	0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
-	0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,
-	0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457,
-	0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x00a7, 0x045e, 0x045f
-};
-
-const static struct ciolib_cpmap cp850_table[158] = {
-	{0x00a0, 255}, {0x00a1, 173}, {0x00a2, 189}, {0x00a3, 156},
-	{0x00a4, 207}, {0x00a5, 190}, {0x00a6, 221}, {0x00a7, 21},
-	{0x00a8, 249}, {0x00a9, 184}, {0x00aa, 166}, {0x00ab, 174},
-	{0x00ac, 170}, {0x00ad, 240}, {0x00ae, 169}, {0x00af, 238},
-	{0x00b0, 248}, {0x00b1, 241}, {0x00b2, 253}, {0x00b3, 252},
-	{0x00b4, 239}, {0x00b5, 230}, {0x00b6, 20}, {0x00b7, 250},
-	{0x00b8, 247}, {0x00b9, 251}, {0x00ba, 167}, {0x00bb, 175},
-	{0x00bc, 172}, {0x00bd, 171}, {0x00be, 243}, {0x00bf, 168},
-	{0x00c0, 183}, {0x00c1, 181}, {0x00c2, 182}, {0x00c3, 199},
-	{0x00c4, 142}, {0x00c5, 143}, {0x00c6, 146}, {0x00c7, 128},
-	{0x00c8, 212}, {0x00c9, 144}, {0x00ca, 210}, {0x00cb, 211},
-	{0x00cc, 222}, {0x00cd, 214}, {0x00ce, 215}, {0x00cf, 216},
-	{0x00d0, 209}, {0x00d1, 165}, {0x00d2, 227}, {0x00d3, 224},
-	{0x00d4, 226}, {0x00d5, 229}, {0x00d6, 153}, {0x00d7, 158},
-	{0x00d8, 157}, {0x00d9, 235}, {0x00da, 233}, {0x00db, 234},
-	{0x00dc, 154}, {0x00dd, 237}, {0x00de, 232}, {0x00df, 225},
-	{0x00e0, 133}, {0x00e1, 160}, {0x00e2, 131}, {0x00e3, 198},
-	{0x00e4, 132}, {0x00e5, 134}, {0x00e6, 145}, {0x00e7, 135},
-	{0x00e8, 138}, {0x00e9, 130}, {0x00ea, 136}, {0x00eb, 137},
-	{0x00ec, 141}, {0x00ed, 161}, {0x00ee, 140}, {0x00ef, 139},
-	{0x00f0, 208}, {0x00f1, 164}, {0x00f2, 149}, {0x00f3, 162},
-	{0x00f4, 147}, {0x00f5, 228}, {0x00f6, 148}, {0x00f7, 246},
-	{0x00f8, 155}, {0x00f9, 151}, {0x00fa, 163}, {0x00fb, 150},
-	{0x00fc, 129}, {0x00fd, 236}, {0x00fe, 231}, {0x00ff, 152},
-	{0x0131, 213}, {0x0192, 159}, {0x2017, 242}, {0x2022, 7},
-	{0x203c, 19}, {0x2190, 27}, {0x2191, 24}, {0x2192, 26},
-	{0x2193, 25}, {0x2194, 29}, {0x2195, 18}, {0x21a8, 23},
-	{0x221f, 28}, {0x2500, 196}, {0x2502, 179}, {0x250c, 218},
-	{0x2510, 191}, {0x2514, 192}, {0x2518, 217}, {0x251c, 195},
-	{0x2524, 180}, {0x252c, 194}, {0x2534, 193}, {0x253c, 197},
-	{0x2550, 205}, {0x2551, 186}, {0x2554, 201}, {0x2557, 187},
-	{0x255a, 200}, {0x255d, 188}, {0x2560, 204}, {0x2563, 185},
-	{0x2566, 203}, {0x2569, 202}, {0x256c, 206}, {0x2580, 223},
-	{0x2584, 220}, {0x2588, 219}, {0x2591, 176}, {0x2592, 177},
-	{0x2593, 178}, {0x25a0, 254}, {0x25ac, 22}, {0x25b2, 30},
-	{0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17}, {0x25cb, 9},
-	{0x25d8, 8}, {0x25d9, 10}, {0x263a, 1}, {0x263b, 2},
-	{0x263c, 15}, {0x2640, 12}, {0x2642, 11}, {0x2660, 6},
-	{0x2663, 5}, {0x2665, 3}, {0x2666, 4}, {0x266a, 13},
-	{0x266b, 14}, {0xfffd, 63}
-};
-
-const static uint32_t cp850_unicode_table[128] = {
-	0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7,
-	0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5,
-	0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9,
-	0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x00d7, 0x0192,
-	0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba,
-	0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb,
-	0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0,
-	0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510,
-	0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3,
-	0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4,
-	0x00f0, 0x00d0, 0x00ca, 0x00cb, 0x00c8, 0x0131, 0x00cd, 0x00ce,
-	0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580,
-	0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0x00fe,
-	0x00de, 0x00da, 0x00db, 0x00d9, 0x00fd, 0x00dd, 0x00af, 0x00b4,
-	0x00ad, 0x00b1, 0x2017, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8,
-	0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0
-};
-
-const static struct ciolib_cpmap cp865_table[160] = {
-	{0x00a0, 255}, {0x00a1, 173}, {0x00a3, 156}, {0x00a4, 175},
-	{0x00a7,  21}, {0x00aa, 166}, {0x00ab, 174}, {0x00ac, 170},
-	{0x00b0, 248}, {0x00b1, 241}, {0x00b2, 253}, {0x00b5, 230},
-	{0x00b6,  20}, {0x00b7, 250}, {0x00ba, 167}, {0x00bc, 172},
-	{0x00bd, 171}, {0x00bf, 168}, {0x00c4, 142}, {0x00c5, 143},
-	{0x00c6, 146}, {0x00c7, 128}, {0x00c9, 144}, {0x00d1, 165},
-	{0x00d6, 153}, {0x00d8, 157}, {0x00dc, 154}, {0x00df, 225},
-	{0x00e0, 133}, {0x00e1, 160}, {0x00e2, 131}, {0x00e4, 132},
-	{0x00e5, 134}, {0x00e6, 145}, {0x00e7, 135}, {0x00e8, 138},
-	{0x00e9, 130}, {0x00ea, 136}, {0x00eb, 137}, {0x00ec, 141},
-	{0x00ed, 161}, {0x00ee, 140}, {0x00ef, 139}, {0x00f1, 164},
-	{0x00f2, 149}, {0x00f3, 162}, {0x00f4, 147}, {0x00f6, 148},
-	{0x00f7, 246}, {0x00f8, 155}, {0x00f9, 151}, {0x00fa, 163},
-	{0x00fb, 150}, {0x00fc, 129}, {0x00ff, 152}, {0x0192, 159},
-	{0x0393, 226}, {0x0398, 233}, {0x03a3, 228}, {0x03a6, 232},
-	{0x03a9, 234}, {0x03b1, 224}, {0x03b4, 235}, {0x03b5, 238},
-	{0x03c0, 227}, {0x03c3, 229}, {0x03c4, 231}, {0x03c6, 237},
-	{0x2022,   7}, {0x203c,  19}, {0x207f, 252}, {0x20a7, 158},
-	{0x2190,  27}, {0x2191,  24}, {0x2192,  26}, {0x2193,  25},
-	{0x2194,  29}, {0x2195,  18}, {0x21a8,  23}, {0x2219, 249},
-	{0x221a, 251}, {0x221e, 236}, {0x221f,  28}, {0x2229, 239},
-	{0x2248, 247}, {0x2261, 240}, {0x2264, 243}, {0x2265, 242},
-	{0x2310, 169}, {0x2320, 244}, {0x2321, 245}, {0x2500, 196},
-	{0x2502, 179}, {0x250c, 218}, {0x2510, 191}, {0x2514, 192},
-	{0x2518, 217}, {0x251c, 195}, {0x2524, 180}, {0x252c, 194},
-	{0x2534, 193}, {0x253c, 197}, {0x2550, 205}, {0x2551, 186},
-	{0x2552, 213}, {0x2553, 214}, {0x2554, 201}, {0x2555, 184},
-	{0x2556, 183}, {0x2557, 187}, {0x2558, 212}, {0x2559, 211},
-	{0x255a, 200}, {0x255b, 190}, {0x255c, 189}, {0x255d, 188},
-	{0x255e, 198}, {0x255f, 199}, {0x2560, 204}, {0x2561, 181},
-	{0x2562, 182}, {0x2563, 185}, {0x2564, 209}, {0x2565, 210},
-	{0x2566, 203}, {0x2567, 207}, {0x2568, 208}, {0x2569, 202},
-	{0x256a, 216}, {0x256b, 215}, {0x256c, 206}, {0x2580, 223},
-	{0x2584, 220}, {0x2588, 219}, {0x258c, 221}, {0x2590, 222},
-	{0x2591, 176}, {0x2592, 177}, {0x2593, 178}, {0x25a0, 254},
-	{0x25ac,  22}, {0x25b2,  30}, {0x25ba,  16}, {0x25bc,  31},
-	{0x25c4,  17}, {0x25cb,   9}, {0x25d8,   8}, {0x25d9,  10},
-	{0x263a,   1}, {0x263b,   2}, {0x263c,  15}, {0x2640,  12},
-	{0x2642,  11}, {0x2660,   6}, {0x2663,   5}, {0x2665,   3},
-	{0x2666,   4}, {0x266a,  13}, {0x266b,  14}, {0xfffd, '?'}
-};
-
-const static uint32_t cp865_unicode_table[128] = {
-	0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7,
-	0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5,
-	0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9,
-	0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x20a7, 0x0192,
-	0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba,
-	0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00a4,
-	0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
-	0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
-	0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
-	0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
-	0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
-	0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
-	0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4,
-	0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229,
-	0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248,
-	0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0
-
-};
-
-const static struct ciolib_cpmap iso8859_7_table[124] = {
-	{0x00a0, 160}, {0x00a3, 163}, {0x00a6, 166}, {0x00a7, 21},
-	{0x00a8, 168}, {0x00a9, 169}, {0x00ab, 171}, {0x00ac, 172},
-	{0x00ad, 173}, {0x00b0, 176}, {0x00b1, 177}, {0x00b2, 178},
-	{0x00b3, 179}, {0x00b6, 20}, {0x00b7, 183}, {0x00bb, 187},
-	{0x00bd, 189}, {0x037a, 170}, {0x0384, 180}, {0x0385, 181},
-	{0x0386, 182}, {0x0388, 184}, {0x0389, 185}, {0x038a, 186},
-	{0x038c, 188}, {0x038e, 190}, {0x038f, 191}, {0x0390, 192},
-	{0x0391, 193}, {0x0392, 194}, {0x0393, 195}, {0x0394, 196},
-	{0x0395, 197}, {0x0396, 198}, {0x0397, 199}, {0x0398, 200},
-	{0x0399, 201}, {0x039a, 202}, {0x039b, 203}, {0x039c, 204},
-	{0x039d, 205}, {0x039e, 206}, {0x039f, 207}, {0x03a0, 208},
-	{0x03a1, 209}, {0x03a3, 211}, {0x03a4, 212}, {0x03a5, 213},
-	{0x03a6, 214}, {0x03a7, 215}, {0x03a8, 216}, {0x03a9, 217},
-	{0x03aa, 218}, {0x03ab, 219}, {0x03ac, 220}, {0x03ad, 221},
-	{0x03ae, 222}, {0x03af, 223}, {0x03b0, 224}, {0x03b1, 225},
-	{0x03b2, 226}, {0x03b3, 227}, {0x03b4, 228}, {0x03b5, 229},
-	{0x03b6, 230}, {0x03b7, 231}, {0x03b8, 232}, {0x03b9, 233},
-	{0x03ba, 234}, {0x03bb, 235}, {0x03bc, 236}, {0x03bd, 237},
-	{0x03be, 238}, {0x03bf, 239}, {0x03c0, 240}, {0x03c1, 241},
-	{0x03c2, 242}, {0x03c3, 243}, {0x03c4, 244}, {0x03c5, 245},
-	{0x03c6, 246}, {0x03c7, 247}, {0x03c8, 248}, {0x03c9, 249},
-	{0x03ca, 250}, {0x03cb, 251}, {0x03cc, 252}, {0x03cd, 253},
-	{0x03ce, 254}, {0x2015, 175}, {0x2018, 161}, {0x2019, 162},
-	{0x2022, 7}, {0x203c, 19}, {0x20ac, 164}, {0x20af, 165},
-	{0x2190, 27}, {0x2191, 24}, {0x2192, 26}, {0x2193, 25},
-	{0x2194, 29}, {0x2195, 18}, {0x21a8, 23}, {0x221f, 28},
-	{0x25ac, 22}, {0x25b2, 30}, {0x25ba, 16}, {0x25bc, 31},
-	{0x25c4, 17}, {0x25cb, 9}, {0x25d8, 8}, {0x25d9, 10},
-	{0x263a, 1}, {0x263b, 2}, {0x263c, 15}, {0x2640, 12},
-	{0x2642, 11}, {0x2660, 6}, {0x2663, 5}, {0x2665, 3},
-	{0x2666, 4}, {0x266a, 13}, {0x266b, 14}, {0xfffd, 63}
-};
-
-const static uint32_t iso8859_7_unicode_table[128] = {
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0x00a0, 0x2018, 0x2019, 0x00a3, 0x20ac, 0x20af, 0x00a6, 0x00a7,
-	0x00a8, 0x00a9, 0x037a, 0x00ab, 0x00ac, 0x00ad, 0xfffd, 0x2015,
-	0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x0384, 0x0385, 0x0386, 0x00b7,
-	0x0388, 0x0389, 0x038a, 0x00bb, 0x038c, 0x00bd, 0x038e, 0x038f,
-	0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397,
-	0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f,
-	0x03a0, 0x03a1, 0xfffd, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7,
-	0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x03ac, 0x03ad, 0x03ae, 0x03af,
-	0x03b0, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7,
-	0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf,
-	0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7,
-	0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce, 0xfffd
-};
-
-const static struct ciolib_cpmap iso8859_1_table[126] = {
-	{0x00a0, 160}, {0x00a1, 161}, {0x00a2, 162}, {0x00a3, 163},
-	{0x00a4, 164}, {0x00a5, 165}, {0x00a6, 166}, {0x00a7, 167},
-	{0x00a8, 168}, {0x00a9, 169}, {0x00aa, 170}, {0x00ab, 171},
-	{0x00ac, 172}, {0x00ad, 173}, {0x00ae, 174}, {0x00af, 175},
-	{0x00b0, 176}, {0x00b1, 177}, {0x00b2, 178}, {0x00b3, 179},
-	{0x00b4, 180}, {0x00b5, 181}, {0x00b6, 182}, {0x00b7, 183},
-	{0x00b8, 184}, {0x00b9, 185}, {0x00ba, 186}, {0x00bb, 187},
-	{0x00bc, 188}, {0x00bd, 189}, {0x00be, 190}, {0x00bf, 191},
-	{0x00c0, 192}, {0x00c1, 193}, {0x00c2, 194}, {0x00c3, 195},
-	{0x00c4, 196}, {0x00c5, 197}, {0x00c6, 198}, {0x00c7, 199},
-	{0x00c8, 200}, {0x00c9, 201}, {0x00ca, 202}, {0x00cb, 203},
-	{0x00cc, 204}, {0x00cd, 205}, {0x00ce, 206}, {0x00cf, 207},
-	{0x00d0, 208}, {0x00d1, 209}, {0x00d2, 210}, {0x00d3, 211},
-	{0x00d4, 212}, {0x00d5, 213}, {0x00d6, 214}, {0x00d7, 215},
-	{0x00d8, 216}, {0x00d9, 217}, {0x00da, 218}, {0x00db, 219},
-	{0x00dc, 220}, {0x00dd, 221}, {0x00de, 222}, {0x00df, 223},
-	{0x00e0, 224}, {0x00e1, 225}, {0x00e2, 226}, {0x00e3, 227},
-	{0x00e4, 228}, {0x00e5, 229}, {0x00e6, 230}, {0x00e7, 231},
-	{0x00e8, 232}, {0x00e9, 233}, {0x00ea, 234}, {0x00eb, 235},
-	{0x00ec, 236}, {0x00ed, 237}, {0x00ee, 238}, {0x00ef, 239},
-	{0x00f0, 240}, {0x00f1, 241}, {0x00f2, 242}, {0x00f3, 243},
-	{0x00f4, 244}, {0x00f5, 245}, {0x00f6, 246}, {0x00f7, 247},
-	{0x00f8, 248}, {0x00f9, 249}, {0x00fa, 250}, {0x00fb, 251},
-	{0x00fc, 252}, {0x00fd, 253}, {0x00fe, 254}, {0x00ff, 255},
-	{0x2022, 7}, {0x203c, 19}, {0x2190, 27}, {0x2191, 24},
-	{0x2192, 26}, {0x2193, 25}, {0x2194, 29}, {0x2195, 18},
-	{0x21a8, 23}, {0x221f, 28}, {0x25ac, 22}, {0x25b2, 30},
-	{0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17}, {0x25cb, 9},
-	{0x25d8, 8}, {0x25d9, 10}, {0x263a, 1}, {0x263b, 2},
-	{0x263c, 15}, {0x2640, 12}, {0x2642, 11}, {0x2660, 6},
-	{0x2663, 5}, {0x2665, 3}, {0x2666, 4}, {0x266a, 13},
-	{0x266b, 14}, {0xfffd, 63}
-};
-
-const static uint32_t iso8859_1_unicode_table[128] = {
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,
-	0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,
-	0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,
-	0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf,
-	0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7,
-	0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf,
-	0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7,
-	0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df,
-	0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7,
-	0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef,
-	0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7,
-	0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff
-};
-
-const static struct ciolib_cpmap cp866m2_table[160] = {
-	{0x00a0, 255}, {0x00a7,  21}, {0x00A9, 252}, {0x00b0, 248},
-	{0x00B2, 253}, {0x00b6,  20}, {0x00b7, 250}, {0x00F7, 246},
-	{0x0401, 240}, {0x0410, 128}, {0x0411, 129}, {0x0412, 130},
-	{0x0413, 131}, {0x0414, 132}, {0x0415, 133}, {0x0416, 134},
-	{0x0417, 135}, {0x0418, 136}, {0x0419, 137}, {0x041a, 138},
-	{0x041b, 139}, {0x041c, 140}, {0x041d, 141}, {0x041e, 142},
-	{0x041f, 143}, {0x0420, 144}, {0x0421, 145}, {0x0422, 146},
-	{0x0423, 147}, {0x0424, 148}, {0x0425, 149}, {0x0426, 150},
-	{0x0427, 151}, {0x0428, 152}, {0x0429, 153}, {0x042a, 154},
-	{0x042b, 155}, {0x042c, 156}, {0x042d, 157}, {0x042e, 158},
-	{0x042f, 159}, {0x0430, 160}, {0x0431, 161}, {0x0432, 162},
-	{0x0433, 163}, {0x0434, 164}, {0x0435, 165}, {0x0436, 166},
-	{0x0437, 167}, {0x0438, 168}, {0x0439, 169}, {0x043a, 170},
-	{0x043b, 171}, {0x043c, 172}, {0x043d, 173}, {0x043e, 174},
-	{0x043f, 175}, {0x0440, 224}, {0x0441, 225}, {0x0442, 226},
-	{0x0443, 227}, {0x0444, 228}, {0x0445, 229}, {0x0446, 230},
-	{0x0447, 231}, {0x0448, 232}, {0x0449, 233}, {0x044a, 234},
-	{0x044b, 235}, {0x044c, 236}, {0x044d, 237}, {0x044e, 238},
-	{0x044f, 239}, {0x0451, 241}, {0x2022,   7}, {0x203c,  19},
-	{0x2190,  27}, {0x2191,  24}, {0x2192,  26}, {0x2193,  25},
-	{0x2194,  29}, {0x2195,  18}, {0x21a8,  23}, {0x2219, 249},
-	{0x221a, 251}, {0x221f,  28}, {0x2264, 243}, {0x2265, 242},
-	{0x2320, 244}, {0x2321, 245}, {0x2248, 247}, {0x2500, 196},
-	{0x2502, 179}, {0x250c, 218}, {0x2510, 191}, {0x2514, 192},
-	{0x2518, 217}, {0x251c, 195}, {0x2524, 180}, {0x252c, 194},
-	{0x2534, 193}, {0x253c, 197}, {0x2550, 205}, {0x2551, 186},
-	{0x2552, 213}, {0x2553, 214}, {0x2554, 201}, {0x2555, 184},
-	{0x2556, 183}, {0x2557, 187}, {0x2558, 212}, {0x2559, 211},
-	{0x255a, 200}, {0x255b, 190}, {0x255c, 189}, {0x255d, 188},
-	{0x255e, 198}, {0x255f, 199}, {0x2560, 204}, {0x2561, 181},
-	{0x2562, 182}, {0x2563, 185}, {0x2564, 209}, {0x2565, 210},
-	{0x2566, 203}, {0x2567, 207}, {0x2568, 208}, {0x2569, 202},
-	{0x256a, 216}, {0x256b, 215}, {0x256c, 206}, {0x2580, 223},
-	{0x2584, 220}, {0x2588, 219}, {0x258c, 221}, {0x2590, 222},
-	{0x2591, 176}, {0x2592, 177}, {0x2593, 178}, {0x25a0, 254},
-	{0x25ac,  22}, {0x25b2,  30}, {0x25ba,  16}, {0x25bc,  31},
-	{0x25c4,  17}, {0x25cb,   9}, {0x25d8,   8}, {0x25d9,  10},
-	{0x263a,   1}, {0x263b,   2}, {0x263c,  15}, {0x2640,  12},
-	{0x2642,  11}, {0x2660,   6}, {0x2663,   5}, {0x2665,   3},
-	{0x2666,   4}, {0x266a,  13}, {0x266b,  14}, {0xfffd, '?'}
-};
-
-const static uint32_t cp866m2_unicode_table[128] = {
-	0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
-	0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
-	0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
-	0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
-	0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
-	0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
-	0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
-	0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
-	0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
-	0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
-	0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
-	0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
-	0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
-	0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,
-	0x0401, 0x0451, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248,
-	0x00b0, 0x2219, 0x00b7, 0x221a, 0x00A9, 0x00B2, 0x25a0, 0x00a0
-};
-
-const static struct ciolib_cpmap cp866u_table[160] = {
-	{0x00a0, 255}, {0x00a7,  21}, {0x00A9, 252}, {0x00B2, 253},
-	{0x00b6,  20}, {0x00b7, 250}, {0x0401, 240}, {0x0404, 244},
-	{0x0406, 246}, {0x0407, 248}, {0x0410, 128}, {0x0411, 129},
-	{0x0412, 130}, {0x0413, 131}, {0x0414, 132}, {0x0415, 133},
-	{0x0416, 134}, {0x0417, 135}, {0x0418, 136}, {0x0419, 137},
-	{0x041a, 138}, {0x041b, 139}, {0x041c, 140}, {0x041d, 141},
-	{0x041e, 142}, {0x041f, 143}, {0x0420, 144}, {0x0421, 145},
-	{0x0422, 146}, {0x0423, 147}, {0x0424, 148}, {0x0425, 149},
-	{0x0426, 150}, {0x0427, 151}, {0x0428, 152}, {0x0429, 153},
-	{0x042a, 154}, {0x042b, 155}, {0x042c, 156}, {0x042d, 157},
-	{0x042e, 158}, {0x042f, 159}, {0x0430, 160}, {0x0431, 161},
-	{0x0432, 162}, {0x0433, 163}, {0x0434, 164}, {0x0435, 165},
-	{0x0436, 166}, {0x0437, 167}, {0x0438, 168}, {0x0439, 169},
-	{0x043a, 170}, {0x043b, 171}, {0x043c, 172}, {0x043d, 173},
-	{0x043e, 174}, {0x043f, 175}, {0x0440, 224}, {0x0441, 225},
-	{0x0442, 226}, {0x0443, 227}, {0x0444, 228}, {0x0445, 229},
-	{0x0446, 230}, {0x0447, 231}, {0x0448, 232}, {0x0449, 233},
-	{0x044a, 234}, {0x044b, 235}, {0x044c, 236}, {0x044d, 237},
-	{0x044e, 238}, {0x044f, 239}, {0x0451, 241}, {0x0454, 245},
-	{0x0456, 247}, {0x0457, 249}, {0x0490, 242}, {0x0491, 243},
-	{0x2022,   7}, {0x203c,  19}, {0x2190,  27}, {0x2191,  24},
-	{0x2192,  26}, {0x2193,  25}, {0x2194,  29}, {0x2195,  18},
-	{0x21a8,  23}, {0x221a, 251}, {0x221f,  28}, {0x2500, 196},
-	{0x2502, 179}, {0x250c, 218}, {0x2510, 191}, {0x2514, 192},
-	{0x2518, 217}, {0x251c, 195}, {0x2524, 180}, {0x252c, 194},
-	{0x2534, 193}, {0x253c, 197}, {0x2550, 205}, {0x2551, 186},
-	{0x2552, 213}, {0x2553, 214}, {0x2554, 201}, {0x2555, 184},
-	{0x2556, 183}, {0x2557, 187}, {0x2558, 212}, {0x2559, 211},
-	{0x255a, 200}, {0x255b, 190}, {0x255c, 189}, {0x255d, 188},
-	{0x255e, 198}, {0x255f, 199}, {0x2560, 204}, {0x2561, 181},
-	{0x2562, 182}, {0x2563, 185}, {0x2564, 209}, {0x2565, 210},
-	{0x2566, 203}, {0x2567, 207}, {0x2568, 208}, {0x2569, 202},
-	{0x256a, 216}, {0x256b, 215}, {0x256c, 206}, {0x2580, 223},
-	{0x2584, 220}, {0x2588, 219}, {0x258c, 221}, {0x2590, 222},
-	{0x2591, 176}, {0x2592, 177}, {0x2593, 178}, {0x25a0, 254},
-	{0x25ac,  22}, {0x25b2,  30}, {0x25ba,  16}, {0x25bc,  31},
-	{0x25c4,  17}, {0x25cb,   9}, {0x25d8,   8}, {0x25d9,  10},
-	{0x263a,   1}, {0x263b,   2}, {0x263c,  15}, {0x2640,  12},
-	{0x2642,  11}, {0x2660,   6}, {0x2663,   5}, {0x2665,   3},
-	{0x2666,   4}, {0x266a,  13}, {0x266b,  14}, {0xfffd, '?'}
-};
-
-const static uint32_t cp866u_unicode_table[128] = {
-	0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
-	0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
-	0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
-	0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
-	0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
-	0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
-	0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
-	0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
-	0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
-	0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
-	0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
-	0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
-	0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
-	0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,
-	0x0401, 0x0451, 0x0490, 0x0491, 0x0404, 0x0454, 0x0406, 0x0456,
-	0x0407, 0x0457, 0x00b7, 0x221a, 0x00A9, 0x00B2, 0x25a0, 0x00a0
-};
-
-const static struct ciolib_cpmap cp1131_table[160] = {
-	{0x00a0, 255}, {0x00a7,  21}, {0x00b6,  20}, {0x00b7, 250},
-	{0x0401, 240}, {0x0404, 242}, {0x0406, 248}, {0x0407, 244},
-	{0x040e, 246}, {0x0410, 128}, {0x0411, 129}, {0x0412, 130},
-	{0x0413, 131}, {0x0414, 132}, {0x0415, 133}, {0x0416, 134},
-	{0x0417, 135}, {0x0418, 136}, {0x0419, 137}, {0x041a, 138},
-	{0x041b, 139}, {0x041c, 140}, {0x041d, 141}, {0x041e, 142},
-	{0x041f, 143}, {0x0420, 144}, {0x0421, 145}, {0x0422, 146},
-	{0x0423, 147}, {0x0424, 148}, {0x0425, 149}, {0x0426, 150},
-	{0x0427, 151}, {0x0428, 152}, {0x0429, 153}, {0x042a, 154},
-	{0x042b, 155}, {0x042c, 156}, {0x042d, 157}, {0x042e, 158},
-	{0x042f, 159}, {0x0430, 160}, {0x0431, 161}, {0x0432, 162},
-	{0x0433, 163}, {0x0434, 164}, {0x0435, 165}, {0x0436, 166},
-	{0x0437, 167}, {0x0438, 168}, {0x0439, 169}, {0x043a, 170},
-	{0x043b, 171}, {0x043c, 172}, {0x043d, 173}, {0x043e, 174},
-	{0x043f, 175}, {0x0440, 224}, {0x0441, 225}, {0x0442, 226},
-	{0x0443, 227}, {0x0444, 228}, {0x0445, 229}, {0x0446, 230},
-	{0x0447, 231}, {0x0448, 232}, {0x0449, 233}, {0x044a, 234},
-	{0x044b, 235}, {0x044c, 236}, {0x044d, 237}, {0x044e, 238},
-	{0x044f, 239}, {0x0451, 241}, {0x0454, 243}, {0x0456, 249},
-	{0x0457, 245}, {0x045e, 247}, {0x0490, 252}, {0x0491, 253},
-	{0x2022,   7}, {0x203c,  19}, {0x2190,  27}, {0x2191,  24},
-	{0x2192,  26}, {0x2193,  25}, {0x2194,  29}, {0x2195,  18},
-	{0x21a8,  23}, {0x2219, 254}, {0x221a, 251}, {0x221f,  28},
-	{0x2500, 196}, {0x2502, 179}, {0x250c, 218}, {0x2510, 191},
-	{0x2514, 192}, {0x2518, 217}, {0x251c, 195}, {0x2524, 180},
-	{0x252c, 194}, {0x2534, 193}, {0x253c, 197}, {0x2550, 205},
-	{0x2551, 186}, {0x2552, 213}, {0x2553, 214}, {0x2554, 201},
-	{0x2555, 184}, {0x2556, 183}, {0x2557, 187}, {0x2558, 212},
-	{0x2559, 211}, {0x255a, 200}, {0x255b, 190}, {0x255c, 189},
-	{0x255d, 188}, {0x255e, 198}, {0x255f, 199}, {0x2560, 204},
-	{0x2561, 181}, {0x2562, 182}, {0x2563, 185}, {0x2564, 209},
-	{0x2565, 210}, {0x2566, 203}, {0x2567, 207}, {0x2568, 208},
-	{0x2569, 202}, {0x256a, 216}, {0x256b, 215}, {0x256c, 206},
-	{0x2580, 223}, {0x2584, 220}, {0x2588, 219}, {0x258c, 221},
-	{0x2590, 222}, {0x2591, 176}, {0x2592, 177}, {0x2593, 178},
-	{0x25ac,  22}, {0x25b2,  30}, {0x25ba,  16}, {0x25bc,  31},
-	{0x25c4,  17}, {0x25cb,   9}, {0x25d8,   8}, {0x25d9,  10},
-	{0x263a,   1}, {0x263b,   2}, {0x263c,  15}, {0x2640,  12},
-	{0x2642,  11}, {0x2660,   6}, {0x2663,   5}, {0x2665,   3},
-	{0x2666,   4}, {0x266a,  13}, {0x266b,  14}, {0xfffd, '?'}
-};
-
-const static uint32_t cp1131_unicode_table[128] = {
-	0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
-	0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
-	0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
-	0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
-	0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
-	0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
-	0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
-	0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510,
-	0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f,
-	0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567,
-	0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b,
-	0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580,
-	0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
-	0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f,
-	0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040e, 0x045e,
-	0x0406, 0x0456, 0x00b7, 0x221a, 0x0490, 0x0491, 0x2219, 0x00a0
-};
-
-const static struct ciolib_cpmap armscii8_table[122] = {
-	{0x00a0, 160}, {0x00a7, 162}, {0x00ab, 167}, {0x00b6, 20},
-	{0x00bb, 166}, {0x02bc, 254}, {0x0531, 178}, {0x0532, 180},
-	{0x0533, 182}, {0x0534, 184}, {0x0535, 186}, {0x0536, 188},
-	{0x0537, 190}, {0x0538, 192}, {0x0539, 194}, {0x053a, 196},
-	{0x053b, 198}, {0x053c, 200}, {0x053d, 202}, {0x053e, 204},
-	{0x053f, 206}, {0x0540, 208}, {0x0541, 210}, {0x0542, 212},
-	{0x0543, 214}, {0x0544, 216}, {0x0545, 218}, {0x0546, 220},
-	{0x0547, 222}, {0x0548, 224}, {0x0549, 226}, {0x054a, 228},
-	{0x054b, 230}, {0x054c, 232}, {0x054d, 234}, {0x054e, 236},
-	{0x054f, 238}, {0x0550, 240}, {0x0551, 242}, {0x0552, 244},
-	{0x0553, 246}, {0x0554, 248}, {0x0555, 250}, {0x0556, 252},
-	{0x055b, 176}, {0x055c, 175}, {0x055d, 170}, {0x055e, 177},
-	{0x0561, 179}, {0x0562, 181}, {0x0563, 183}, {0x0564, 185},
-	{0x0565, 187}, {0x0566, 189}, {0x0567, 191}, {0x0568, 193},
-	{0x0569, 195}, {0x056a, 197}, {0x056b, 199}, {0x056c, 201},
-	{0x056d, 203}, {0x056e, 205}, {0x056f, 207}, {0x0570, 209},
-	{0x0571, 211}, {0x0572, 213}, {0x0573, 215}, {0x0574, 217},
-	{0x0575, 219}, {0x0576, 221}, {0x0577, 223}, {0x0578, 225},
-	{0x0579, 227}, {0x057a, 229}, {0x057b, 231}, {0x057c, 233},
-	{0x057d, 235}, {0x057e, 237}, {0x057f, 239}, {0x0580, 241},
-	{0x0581, 243}, {0x0582, 245}, {0x0583, 247}, {0x0584, 249},
-	{0x0585, 251}, {0x0586, 253}, {0x0589, 163}, {0x058a, 173},
-	{0x058e, 161}, {0x2013, 172}, {0x2014, 168}, {0x2022, 7},
-	{0x2026, 174}, {0x203c, 19}, {0x2190, 27}, {0x2191, 24},
-	{0x2192, 26}, {0x2193, 25}, {0x2194, 29}, {0x2195, 18},
-	{0x21a8, 23}, {0x221f, 28}, {0x25ac, 22}, {0x25b2, 30},
-	{0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17}, {0x25cb, 9},
-	{0x25d8, 8}, {0x25d9, 10}, {0x263a, 1}, {0x263b, 2},
-	{0x263c, 15}, {0x2640, 12}, {0x2642, 11}, {0x2660, 6},
-	{0x2663, 5}, {0x2665, 3}, {0x2666, 4}, {0x266a, 13},
-	{0x266b, 14}, {0xfffd, 63}
-};
-
-const static uint32_t armscii8_unicode_table[128] = {
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0x00a0, 0x058e, 0x00a7, 0x0589, 0x0029, 0x002a, 0x00bb, 0x00ab,
-	0x2014, 0x002e, 0x055d, 0x002c, 0x2013, 0x058a, 0x2026, 0x055c,
-	0x055b, 0x055e, 0x0531, 0x0561, 0x0532, 0x0562, 0x0533, 0x0563,
-	0x0534, 0x0564, 0x0535, 0x0565, 0x0536, 0x0566, 0x0537, 0x0567,
-	0x0538, 0x0568, 0x0539, 0x0569, 0x053a, 0x056a, 0x053b, 0x056b,
-	0x053c, 0x056c, 0x053d, 0x056d, 0x053e, 0x056e, 0x053f, 0x056f,
-	0x0540, 0x0570, 0x0541, 0x0571, 0x0542, 0x0572, 0x0543, 0x0573,
-	0x0544, 0x0574, 0x0545, 0x0575, 0x0546, 0x0576, 0x0547, 0x0577,
-	0x0548, 0x0578, 0x0549, 0x0579, 0x054a, 0x057a, 0x054b, 0x057b,
-	0x054c, 0x057c, 0x054d, 0x057d, 0x054e, 0x057e, 0x054f, 0x057f,
-	0x0550, 0x0580, 0x0551, 0x0581, 0x0552, 0x0582, 0x0553, 0x0583,
-	0x0554, 0x0584, 0x0555, 0x0585, 0x0556, 0x0586, 0x02bc, 0xfffd
-};
-
-const static struct ciolib_cpmap haik8_table[122] = {
-	{0x00a0, 128}, {0x00a7, 21}, {0x00ab, 135}, {0x00b6, 20},
-	{0x00bb, 134}, {0x02bc, 254}, {0x0531, 146}, {0x0532, 148},
-	{0x0533, 150}, {0x0534, 152}, {0x0535, 154}, {0x0536, 156},
-	{0x0537, 158}, {0x0538, 160}, {0x0539, 162}, {0x053a, 164},
-	{0x053b, 166}, {0x053c, 168}, {0x053d, 170}, {0x053e, 172},
-	{0x053f, 174}, {0x0540, 176}, {0x0541, 178}, {0x0542, 180},
-	{0x0543, 182}, {0x0544, 184}, {0x0545, 186}, {0x0546, 188},
-	{0x0547, 190}, {0x0548, 224}, {0x0549, 226}, {0x054a, 228},
-	{0x054b, 230}, {0x054c, 232}, {0x054d, 234}, {0x054e, 236},
-	{0x054f, 238}, {0x0550, 240}, {0x0551, 242}, {0x0552, 244},
-	{0x0553, 246}, {0x0554, 248}, {0x0555, 250}, {0x0556, 252},
-	{0x055b, 144}, {0x055c, 143}, {0x055d, 138}, {0x055e, 145},
-	{0x0561, 147}, {0x0562, 149}, {0x0563, 151}, {0x0564, 153},
-	{0x0565, 155}, {0x0566, 157}, {0x0567, 159}, {0x0568, 161},
-	{0x0569, 163}, {0x056a, 165}, {0x056b, 167}, {0x056c, 169},
-	{0x056d, 171}, {0x056e, 173}, {0x056f, 175}, {0x0570, 177},
-	{0x0571, 179}, {0x0572, 181}, {0x0573, 183}, {0x0574, 185},
-	{0x0575, 187}, {0x0576, 189}, {0x0577, 191}, {0x0578, 225},
-	{0x0579, 227}, {0x057a, 229}, {0x057b, 231}, {0x057c, 233},
-	{0x057d, 235}, {0x057e, 237}, {0x057f, 239}, {0x0580, 241},
-	{0x0581, 243}, {0x0582, 245}, {0x0583, 247}, {0x0584, 249},
-	{0x0585, 251}, {0x0586, 253}, {0x0589, 131}, {0x058a, 141},
-	{0x058e, 129}, {0x2013, 140}, {0x2014, 136}, {0x2022, 7},
-	{0x2026, 142}, {0x203c, 19}, {0x2190, 27}, {0x2191, 24},
-	{0x2192, 26}, {0x2193, 25}, {0x2194, 29}, {0x2195, 18},
-	{0x21a8, 23}, {0x221f, 28}, {0x25ac, 22}, {0x25b2, 30},
-	{0x25ba, 16}, {0x25bc, 31}, {0x25c4, 17}, {0x25cb, 9},
-	{0x25d8, 8}, {0x25d9, 10}, {0x263a, 1}, {0x263b, 2},
-	{0x263c, 15}, {0x2640, 12}, {0x2642, 11}, {0x2660, 6},
-	{0x2663, 5}, {0x2665, 3}, {0x2666, 4}, {0x266a, 13},
-	{0x266b, 14}, {0xfffd, 63}
-};
-
-const static uint32_t haik8_unicode_table[128] = {
-	0x00a0, 0x058e, 0x00a7, 0x0589, 0x0029, 0x002a, 0x00bb, 0x00ab,
-	0x2014, 0x002e, 0x055d, 0x002c, 0x2013, 0x058a, 0x2026, 0x055c,
-	0x055b, 0x055e, 0x0531, 0x0561, 0x0532, 0x0562, 0x0533, 0x0563,
-	0x0534, 0x0564, 0x0535, 0x0565, 0x0536, 0x0566, 0x0537, 0x0567,
-	0x0538, 0x0568, 0x0539, 0x0569, 0x053a, 0x056a, 0x053b, 0x056b,
-	0x053c, 0x056c, 0x053d, 0x056d, 0x053e, 0x056e, 0x053f, 0x056f,
-	0x0540, 0x0570, 0x0541, 0x0571, 0x0542, 0x0572, 0x0543, 0x0573,
-	0x0544, 0x0574, 0x0545, 0x0575, 0x0546, 0x0576, 0x0547, 0x0577,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0x0548, 0x0578, 0x0549, 0x0579, 0x054a, 0x057a, 0x054b, 0x057b,
-	0x054c, 0x057c, 0x054d, 0x057d, 0x054e, 0x057e, 0x054f, 0x057f,
-	0x0550, 0x0580, 0x0551, 0x0581, 0x0552, 0x0582, 0x0553, 0x0583,
-	0x0554, 0x0584, 0x0555, 0x0585, 0x0556, 0x0586, 0x02bc, 0xfffd
-};
-
-const static struct ciolib_cpmap atascii_table[148] = {
-	{0x0007, 252}, {0x0008, 126}, {0x0009, 127}, {0x000d, 155},
-	{0x001b, 27}, {0x0020, 32}, {0x0021, 33}, {0x0022, 34},
-	{0x0023, 35}, {0x0024, 36}, {0x0025, 37}, {0x0026, 38},
-	{0x0027, 39}, {0x0028, 40}, {0x0029, 41}, {0x002a, 42},
-	{0x002b, 43}, {0x002c, 44}, {0x002d, 45}, {0x002e, 46},
-	{0x002f, 47}, {0x0030, 48}, {0x0031, 49}, {0x0032, 50},
-	{0x0033, 51}, {0x0034, 52}, {0x0035, 53}, {0x0036, 54},
-	{0x0037, 55}, {0x0038, 56}, {0x0039, 57}, {0x003a, 58},
-	{0x003b, 59}, {0x003c, 60}, {0x003d, 61}, {0x003e, 62},
-	{0x003f, 63}, {0x0040, 64}, {0x0041, 65}, {0x0042, 66},
-	{0x0043, 67}, {0x0044, 68}, {0x0045, 69}, {0x0046, 70},
-	{0x0047, 71}, {0x0048, 72}, {0x0049, 73}, {0x004a, 74},
-	{0x004b, 75}, {0x004c, 76}, {0x004d, 77}, {0x004e, 78},
-	{0x004f, 79}, {0x0050, 80}, {0x0051, 81}, {0x0052, 82},
-	{0x0053, 83}, {0x0054, 84}, {0x0055, 85}, {0x0056, 86},
-	{0x0057, 87}, {0x0058, 88}, {0x0059, 89}, {0x005a, 90},
-	{0x005b, 91}, {0x005c, 92}, {0x005d, 93}, {0x005e, 94},
-	{0x005f, 95}, {0x0061, 97}, {0x0062, 98}, {0x0063, 99},
-	{0x0064, 100}, {0x0065, 101}, {0x0066, 102}, {0x0067, 103},
-	{0x0068, 104}, {0x0069, 105}, {0x006a, 106}, {0x006b, 107},
-	{0x006c, 108}, {0x006d, 109}, {0x006e, 110}, {0x006f, 111},
-	{0x0070, 112}, {0x0071, 113}, {0x0072, 114}, {0x0073, 115},
-	{0x0074, 116}, {0x0075, 117}, {0x0076, 118}, {0x0077, 119},
-	{0x0078, 120}, {0x0079, 121}, {0x007a, 122}, {0x007c, 124},
-	{0x007f, 253}, {0x00a0, 155}, {0x2022, 148}, {0x2190, 30},
-	{0x2191, 28}, {0x2192, 159}, {0x2193, 157}, {0x21b0, 125},
-	{0x241b, 27}, {0x2500, 18}, {0x250c, 145}, {0x2510, 5},
-	{0x2514, 26}, {0x2518, 131}, {0x251c, 129}, {0x2524, 132},
-	{0x252c, 23}, {0x2534, 24}, {0x253c, 147}, {0x2571, 6},
-	{0x2572, 135}, {0x2580, 149}, {0x2582, 142}, {0x2584, 21},
-	{0x2586, 141}, {0x2588, 160}, {0x258a, 130}, {0x258c, 25},
-	{0x258e, 150}, {0x2590, 153}, {0x2596, 143}, {0x2597, 137},
-	{0x2598, 140}, {0x2599, 139}, {0x259b, 137}, {0x259c, 143},
-	{0x259d, 139}, {0x259f, 140}, {0x25b6, 127}, {0x25c0, 126},
-	{0x25d8, 148}, {0x25e2, 136}, {0x25e3, 10}, {0x25e4, 136},
-	{0x25e5, 138}, {0x2660, 123}, {0x2663, 144}, {0x2665, 63},
-	{0x2666, 96}, {0xfffd, 63}, {0x1fb82, 13}, {0x1fb87, 2}
-};
-
-const static uint32_t atascii_unicode_table[256] = {
-	0x2665, 0x251c,0x1fb87, 0x2518, 0x2524, 0x2510, 0x2571, 0x2572,
-	0x25e2, 0x2597, 0x25e3, 0x259d, 0x2598,0x1fb82, 0x2582, 0x2596,
-	0x2663, 0x250c, 0x2500, 0x253c, 0x2022, 0x2584, 0x258e, 0x252c,
-	0x2534, 0x258c, 0x2514, 0x001b, 0x2191, 0x2193, 0x2190, 0x2192,
-	0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
-	0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
-	0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
-	0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
-	0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-	0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
-	0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
-	0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
-	0x2666, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
-	0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
-	0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
-	0x0078, 0x0079, 0x007a, 0x2660, 0x007c, 0x21b0, 0x0008, 0x0009,
-	0x2665, 0x251c, 0x258a, 0x2518, 0x2524, 0x2510, 0x2571, 0x2572,
-	0x25e4, 0x259b, 0x25e5, 0x2599, 0x259f, 0x2586, 0x2582, 0x259c,
-	0x2663, 0x250c, 0x2500, 0x253c, 0x25d8, 0x2580, 0x258e, 0x252c,
-	0x2534, 0x2590, 0x2514, 0x000d, 0x2191, 0x2193, 0x2190, 0x2192,
-	0x2588, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
-	0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
-	0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
-	0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
-	0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-	0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
-	0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
-	0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
-	0x2666, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
-	0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
-	0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
-	0x0078, 0x0079, 0x007a, 0x2660, 0x0007, 0x007f, 0x25c0, 0x25b6
-};
-
-const static uint32_t atascii_ext_table[256] = {
-	0x2665, 0x251c,0x1fb87, 0x2518, 0x2524, 0x2510, 0x2571, 0x2572,
-	0x25e2, 0x2597, 0x25e3, 0x259d, 0x2598,0x1fb82, 0x2582, 0x2596,
-	0x2663, 0x250c, 0x2500, 0x253c, 0x2022, 0x2584, 0x258e, 0x252c,
-	0x2534, 0x258c, 0x2514, 0x241b, 0x2191, 0x2193, 0x2190, 0x2192,
-	0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
-	0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
-	0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
-	0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
-	0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-	0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
-	0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
-	0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
-	0x2666, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
-	0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
-	0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
-	0x0078, 0x0079, 0x007a, 0x2660, 0x007c, 0x21b0, 0x25c0, 0x25b6,
-	0x2665, 0x251c,0x1fb87, 0x2518, 0x2524, 0x2510, 0x2571, 0x2572,
-	0x25e2, 0x2597, 0x25e3, 0x259d, 0x2598,0x1fb82, 0x2582, 0x2596,
-	0x2663, 0x250c, 0x2500, 0x253c, 0x2022, 0x2584, 0x258e, 0x252c,
-	0x2534, 0x258c, 0x2514, 0x00a0, 0x2191, 0x2193, 0x2190, 0x2192,
-	0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
-	0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
-	0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
-	0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
-	0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-	0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
-	0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
-	0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
-	0x2666, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
-	0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
-	0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
-	0x0078, 0x0079, 0x007a, 0x2660, 0x007c, 0x21b0, 0x25c0, 0x25b6
-};
-
-const static struct ciolib_cpmap petsciiu_table[129] = {
-	{0x0020, 32}, {0x0021, 33}, {0x0022, 34}, {0x0023, 35},
-	{0x0024, 36}, {0x0025, 37}, {0x0026, 38}, {0x0027, 39},
-	{0x0028, 40}, {0x0029, 41}, {0x002a, 42}, {0x002b, 43},
-	{0x002c, 44}, {0x002d, 45}, {0x002e, 46}, {0x002f, 47},
-	{0x0030, 48}, {0x0031, 49}, {0x0032, 50}, {0x0033, 51},
-	{0x0034, 52}, {0x0035, 53}, {0x0036, 54}, {0x0037, 55},
-	{0x0038, 56}, {0x0039, 57}, {0x003a, 58}, {0x003b, 59},
-	{0x003c, 60}, {0x003d, 61}, {0x003e, 62}, {0x003f, 63},
-	{0x0040, 64}, {0x0041, 65}, {0x0042, 66}, {0x0043, 67},
-	{0x0044, 68}, {0x0045, 69}, {0x0046, 70}, {0x0047, 71},
-	{0x0048, 72}, {0x0049, 73}, {0x004a, 74}, {0x004b, 75},
-	{0x004c, 76}, {0x004d, 77}, {0x004e, 78}, {0x004f, 79},
-	{0x0050, 80}, {0x0051, 81}, {0x0052, 82}, {0x0053, 83},
-	{0x0054, 84}, {0x0055, 85}, {0x0056, 86}, {0x0057, 87},
-	{0x0058, 88}, {0x0059, 89}, {0x005a, 90}, {0x005b, 91},
-	{0x005d, 93}, {0x00a0, 160}, {0x00a3, 92}, {0x03c0, 126},
-	{0x2190, 95}, {0x2191, 94}, {0x2500, 96}, {0x2502, 125},
-	{0x250c, 176}, {0x2510, 174}, {0x2514, 173}, {0x2518, 189},
-	{0x251c, 171}, {0x2524, 179}, {0x252c, 178}, {0x2534, 177},
-	{0x253c, 123}, {0x256d, 117}, {0x256e, 105}, {0x256f, 107},
-	{0x2570, 106}, {0x2571, 110}, {0x2572, 109}, {0x2573, 118},
-	{0x2581, 164}, {0x2582, 175}, {0x2583, 185}, {0x2584, 162},
-	{0x258c, 161}, {0x258d, 181}, {0x258e, 180}, {0x258f, 165},
-	{0x2592, 166}, {0x2594, 163}, {0x2595, 167}, {0x2596, 187},
-	{0x2597, 172}, {0x2598, 190}, {0x259a, 191}, {0x259d, 188},
-	{0x25cb, 119}, {0x25cf, 113}, {0x25e4, 169}, {0x25e5, 127},
-	{0x2660, 97}, {0x2663, 120}, {0x2665, 115}, {0x2666, 122},
-	{0xfffd, 63}, {0x1fb70, 116}, {0x1fb71, 103}, {0x1fb72, 98},
-	{0x1fb74, 104}, {0x1fb75, 121}, {0x1fb76, 101}, {0x1fb77, 100},
-	{0x1fb78, 99}, {0x1fb7a, 102}, {0x1fb7b, 114}, {0x1fb7c, 108},
-	{0x1fb7d, 111}, {0x1fb7e, 112}, {0x1fb7f, 186}, {0x1fb82, 183},
-	{0x1fb83, 184}, {0x1fb87, 170}, {0x1fb88, 182}, {0x1fb8c, 124},
-	{0x1fb8f, 168}
-};
-
-const static uint32_t petsciiu_unicode_table[256] = {
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
-	0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
-	0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
-	0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
-	0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-	0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
-	0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
-	0x0058, 0x0059, 0x005a, 0x005b, 0x00a3, 0x005d, 0x2191, 0x2190,
-	0x2500, 0x2660,0x1fb72,0x1fb78,0x1fb77,0x1fb76,0x1fb7a,0x1fb71,
-	0x1fb74,0x256e, 0x2570, 0x256f,0x1fb7c, 0x2572, 0x2571,0x1fb7d,
-	0x1fb7e,0x25cf,0x1fb7b, 0x2665,0x1fb70, 0x256d, 0x2573, 0x25cb,
-	0x2663,0x1fb75, 0x2666, 0x253c,0x1fb8c, 0x2502, 0x03c0, 0x25e5,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0x00a0, 0x258c, 0x2584, 0x2594, 0x2581, 0x258f, 0x2592, 0x2595,
-	0x1fb8f,0x25e4,0x1fb87, 0x251c, 0x2597, 0x2514, 0x2510, 0x2582,
-	0x250c, 0x2534, 0x252c, 0x2524, 0x258e, 0x258d,0x1fb88,0x1fb82,
-	0x1fb83,0x2583,0x1fb7f, 0x2596, 0x259d, 0x2518, 0x2598, 0x259a,
-	0x2500, 0x2660,0x1fb72,0x1fb78,0x1fb77,0x1fb76,0x1fb7a,0x1fb71,
-	0x1fb74,0x256e, 0x2570, 0x256f,0x1fb7c, 0x2572, 0x2571,0x1fb7d,
-	0x1fb7e,0x25cf,0x1fb7b, 0x2665,0x1fb70, 0x256d, 0x2573, 0x25cb,
-	0x2663,0x1fb75, 0x2666, 0x253c,0x1fb8c, 0x2502, 0x03c0, 0x25e5,
-	0x00a0, 0x258c, 0x2584, 0x2594, 0x2581, 0x258f, 0x2592, 0x2595,
-	0x1fb8f,0x25e4,0x1fb87, 0x251c, 0x2597, 0x2514, 0x2510, 0x2582,
-	0x250c, 0x2534, 0x252c, 0x2524, 0x258e, 0x258d,0x1fb88,0x1fb82,
-	0x1fb83,0x2583,0x1fb7f, 0x2596, 0x259d, 0x2518, 0x2598, 0x03c0
-};
-
-const static struct ciolib_cpmap petsciil_table[129] = {
-	{0x0020, 32}, {0x0021, 33}, {0x0022, 34}, {0x0023, 35},
-	{0x0024, 36}, {0x0025, 37}, {0x0026, 38}, {0x0027, 39},
-	{0x0028, 40}, {0x0029, 41}, {0x002a, 42}, {0x002b, 43},
-	{0x002c, 44}, {0x002d, 45}, {0x002e, 46}, {0x002f, 47},
-	{0x0030, 48}, {0x0031, 49}, {0x0032, 50}, {0x0033, 51},
-	{0x0034, 52}, {0x0035, 53}, {0x0036, 54}, {0x0037, 55},
-	{0x0038, 56}, {0x0039, 57}, {0x003a, 58}, {0x003b, 59},
-	{0x003c, 60}, {0x003d, 61}, {0x003e, 62}, {0x003f, 63},
-	{0x0040, 64}, {0x0041, 97}, {0x0042, 98}, {0x0043, 99},
-	{0x0044, 100}, {0x0045, 101}, {0x0046, 102}, {0x0047, 103},
-	{0x0048, 104}, {0x0049, 105}, {0x004a, 106}, {0x004b, 107},
-	{0x004c, 108}, {0x004d, 109}, {0x004e, 110}, {0x004f, 111},
-	{0x0050, 112}, {0x0051, 113}, {0x0052, 114}, {0x0053, 115},
-	{0x0054, 116}, {0x0055, 117}, {0x0056, 118}, {0x0057, 119},
-	{0x0058, 120}, {0x0059, 121}, {0x005a, 122}, {0x005b, 91},
-	{0x005d, 93}, {0x0061, 65}, {0x0062, 66}, {0x0063, 67},
-	{0x0064, 68}, {0x0065, 69}, {0x0066, 70}, {0x0067, 71},
-	{0x0068, 72}, {0x0069, 73}, {0x006a, 74}, {0x006b, 75},
-	{0x006c, 76}, {0x006d, 77}, {0x006e, 78}, {0x006f, 79},
-	{0x0070, 80}, {0x0071, 81}, {0x0072, 82}, {0x0073, 83},
-	{0x0074, 84}, {0x0075, 85}, {0x0076, 86}, {0x0077, 87},
-	{0x0078, 88}, {0x0079, 89}, {0x007a, 90}, {0x00a0, 160},
-	{0x00a3, 92}, {0x2190, 95}, {0x2191, 94}, {0x2500, 96},
-	{0x2502, 125}, {0x250c, 176}, {0x2510, 174}, {0x2514, 173},
-	{0x2518, 189}, {0x251c, 171}, {0x2524, 179}, {0x252c, 178},
-	{0x2534, 177}, {0x253c, 123}, {0x2581, 164}, {0x2582, 175},
-	{0x2583, 185}, {0x2584, 162}, {0x258c, 161}, {0x258d, 181},
-	{0x258e, 180}, {0x258f, 165}, {0x2592, 166}, {0x2594, 163},
-	{0x2595, 167}, {0x2596, 187}, {0x2597, 172}, {0x2598, 190},
-	{0x259a, 191}, {0x259d, 188}, {0x2713, 186}, {0xfffd, 63},
-	{0x1fb82, 183}, {0x1fb83, 184}, {0x1fb87, 170}, {0x1fb88, 182},
-	{0x1fb8c, 124}, {0x1fb8f, 168}, {0x1fb96, 126}, {0x1fb98, 127},
-	{0x1fb99, 169}
-};
-
-const static uint32_t petsciil_unicode_table[256] = {
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
-	0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
-	0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
-	0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
-	0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
-	0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
-	0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
-	0x0078, 0x0079, 0x007a, 0x005b, 0x00a3, 0x005d, 0x2191, 0x2190,
-	0x2500, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-	0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
-	0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
-	0x0058, 0x0059, 0x005a, 0x253c,0x1fb8c, 0x2502,0x1fb96,0x1fb98,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd,
-	0x00a0, 0x258c, 0x2584, 0x2594, 0x2581, 0x258f, 0x2592, 0x2595,
-	0x1fb8f,0x1fb99,0x1fb87,0x251c, 0x2597, 0x2514, 0x2510, 0x2582,
-	0x250c, 0x2534, 0x252c, 0x2524, 0x258e, 0x258d,0x1fb88,0x1fb82,
-	0x1fb83,0x2583, 0x2713, 0x2596, 0x259d, 0x2518, 0x2598, 0x259a,
-	0x2500, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
-	0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
-	0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
-	0x0058, 0x0059, 0x005a, 0x253c,0x1fb8c, 0x2502,0x1fb96,0x1fb98,
-	0x00a0, 0x258c, 0x2584, 0x2594, 0x2581, 0x258f, 0x2592, 0x2595,
-	0x1fb8f,0x1fb99,0x1fb87,0x251c, 0x2597, 0x2514, 0x2510, 0x2582,
-	0x250c, 0x2534, 0x252c, 0x2524, 0x258e, 0x258d,0x1fb88,0x1fb82,
-	0x1fb83,0x2583, 0x2713, 0x2596, 0x259d, 0x2518, 0x2598,0x1fb96
-};
-
-static int
-cmptab(const void *key, const void *entry)
-{
-	const uint32_t *pkey = key;
-	const struct ciolib_cpmap *pentry = entry;
-
-	if (*pkey == pentry->unicode)
-		return 0;
-	if (*pkey < pentry->unicode)
-		return -1;
-	return 1;
-}
-
-static uint8_t
-cptable_from_unicode_cpoint(uint32_t cpoint, char unmapped, const struct codepage_def *cpdef)
-{
-	struct ciolib_cpmap *mapped;
-
-	if (cpoint < 128)
-		return cpoint;
-	mapped = bsearch(&cpoint, cpdef->cp_table, cpdef->cp_table_sz, sizeof(cpdef->cp_table[0]), cmptab);
-	if (mapped == NULL)
-		return unmapped;
-	return mapped->cpchar;
-}
-
-static uint32_t
-cpoint_from_cptable(uint8_t ch, const struct codepage_def *cpdef)
-{
-	if (ch < 128)
-		return ch;
-	return cpdef->cp_unicode_table[ch - 128];
-}
-
-static uint32_t
-cpoint_from_cptable_ext(uint8_t ch, const struct codepage_def *cpdef)
-{
-	if (ch < 32)
-		return cpdef->cp_ext_unicode_table[ch];
-	return ciolib_cp[cpdef->cp].from_cpchar(ch, cpdef);
-}
-
-static uint32_t
-ft_cpoint_from_cptable(uint8_t ch, const struct codepage_def *cpdef)
-{
-	return cpdef->cp_unicode_table[ch];
-}
-
-static uint32_t
-ft_cpoint_from_cptable_ext(uint8_t ch, const struct codepage_def *cpdef)
-{
-	return cpdef->cp_ext_unicode_table[ch];
-}
-
-static int
-write_cp(uint8_t *str, uint32_t cp)
-{
-	if (cp < 128) {
-		*str = cp;
-		return 1;
-	}
-	if (cp < 0x800) {
-		*(str++) = 0xc0 | (cp >> 6);
-		*(str++) = 0x80 | (cp & 0x3f);
-		return 2;
-	}
-	if (cp < 0x10000) {
-		*(str++) = 0xe0 | (cp >> 12);
-		*(str++) = 0x80 | ((cp >> 6) & 0x3f);
-		*(str++) = 0x80 | (cp & 0x3f);
-		return 3;
-	}
-	if (cp < 0x110000) {
-		*(str++) = 0xf0 | (cp >> 18);
-		*(str++) = 0x80 | ((cp >> 12) & 0x3f);
-		*(str++) = 0x80 | ((cp >> 6) & 0x3f);
-		*(str++) = 0x80 | (cp & 0x3f);
-		return 4;
-	}
-	return -1;
-}
-
-static int
-read_cp(const uint8_t *str, uint32_t *cp)
-{
-	int incode;
-	const uint8_t *p = str;
-
-	if (cp == NULL)
-		goto error;
-
-	if (str == NULL)
-		goto error;
-
-	if (*p & 0x80) {
-		if ((*p & 0xe0) == 0xc0) {
-			incode = 1;
-			*cp = *p & 0x1f;
-		}
-		else if ((*p & 0xf0) == 0xe0) {
-			incode = 2;
-			*cp = *p & 0x0f;
-		}
-		else if ((*p & 0xf8) == 0xf0) {
-			incode = 3;
-			*cp = *p & 0x07;
-		}
-		else
-			goto error;
-
-		while (incode) {
-			p++;
-			incode--;
-			if ((*p & 0xc0) != 0x80)
-				goto error;
-			*cp <<= 6;
-			*cp |= (*p & 0x3f);
-		}
-	}
-	else {
-		*cp = *p;
-	}
-	return p - str + 1;
-
-error:
-	if (cp)
-		*cp = 0xffff;
-	return -1;
-}
-
-static int
-utf8_bytes(uint32_t cp)
-{
-	if (cp < 0x80)
-		return 1;
-	if (cp < 0x800)
-		return 2;
-	if (cp < 0x10000)
-		return 3;
-	if (cp < 0x11000)
-		return 4;
-	return -1;
-}
-
-static uint8_t *
-cpstr_to_utf8(const char *cpstr, size_t buflen, size_t *outlen, const struct codepage_def *cpdef)
-{
-	size_t needed = 0;
-	int cplen;
-	uint8_t *ret = NULL;
-	uint8_t *rp;
-	size_t idx;
-	uint8_t ch;
-
-	// Calculate the number of bytes needed
-	for (idx = 0; idx < buflen; idx++) {
-		ch = cpstr[idx];
-		if (ch == 0)
-			cplen = 4;
-		else if (ch < 128)
-			cplen = 1;
-		else
-			cplen = utf8_bytes(cpdef->cp_unicode_table[ch - 128]);
-		if (cplen == -1)
-			goto error;
-		needed += cplen;
-	}
-
-	ret = malloc(needed + 1);
-	if (ret == NULL)
-		goto error;
-
-	rp = ret;
-	for (idx = 0; idx < buflen; idx++) {
-		ch = cpstr[idx];
-		if (ch == 0) {
-			*(rp++) = 0xef;
-			*(rp++) = 0xbf;
-			*(rp++) = 0xbe;
-			cplen = 0;
-		}
-		else if (ch < 128) {
-			*rp = ch;
-			cplen = 1;
-		}
-		else {
-			cplen = write_cp(rp, cpdef->cp_unicode_table[ch - 128]);
-			if (cplen < 1)
-				goto error;
-		}
-		rp += cplen;
-	}
-	*rp = 0;
-	if (outlen)
-		*outlen = rp - ret;
-	return ret;
-
-error:
-	free(ret);
-	return NULL;
-}
-
-static uint8_t
-ft_from_unicode_cpoint(uint32_t cpoint, char unmapped, const struct codepage_def *cpdef)
-{
-	struct ciolib_cpmap *mapped;
-
-	mapped = bsearch(&cpoint, cpdef->cp_table, cpdef->cp_table_sz, sizeof(cpdef->cp_table[0]), cmptab);
-	if (mapped == NULL)
-		return unmapped;
-	return mapped->cpchar;
-}
-
-static uint8_t *
-ftstr_to_utf8(const char *cpstr, size_t buflen, size_t *outlen, const struct codepage_def *cpdef)
-{
-	size_t needed = 0;
-	int cplen;
-	uint8_t *ret = NULL;
-	uint8_t *rp;
-	size_t idx;
-	uint8_t ch;
-
-	// Calculate the number of bytes needed
-	for (idx = 0; idx < buflen; idx++) {
-		ch = cpstr[idx];
-		cplen = utf8_bytes(cpdef->cp_unicode_table[ch]);
-		if (cplen == -1)
-			goto error;
-		needed += cplen;
-	}
-
-	ret = malloc(needed + 1);
-	if (ret == NULL)
-		goto error;
-
-	rp = ret;
-	for (idx = 0; idx < buflen; idx++) {
-		ch = cpstr[idx];
-		cplen = write_cp(rp, cpdef->cp_unicode_table[ch]);
-		if (cplen < 1)
-			goto error;
-		rp += cplen;
-	}
-	*rp = 0;
-	if (outlen)
-		*outlen = rp - ret;
-	return ret;
-
-error:
-	free(ret);
-	return NULL;
-}
-
-/*
- * Converts UTF-8 to defined codepage, replacing unmapped characters
- * with unmapped if unmapped is zero, unmapped characters are stripped.
- * 
- * Returns NULL if there are invalid sequences or codepoints.
- * Does not normalize the unicode, just a simple mapping
- * (TODO: Normalize into combined chars etc)
- */
-static char *
-utf8_to_cpstr(const uint8_t *utf8str, char unmapped, size_t inlen, size_t *outlen, const struct codepage_def *cpdef)
-{
-	size_t idx;
-	char *rp;
-	size_t outsz = 0;
-	int incode = 0;
-	uint32_t codepoint;
-	char *ret = NULL;
-
-	// TODO: Normalize UTF-8...
-
-	// Calculate the number of code points and validate.
-	for (idx = 0; idx < inlen; idx++) {
-		if (incode) {
-			switch (utf8str[idx] & 0xc0) {
-				case 0x80:
-					incode--;
-					if (incode == 0)
-						outsz++;
-					break;
-				default:
-					goto error;
-			}
-		}
-		else {
-			if (utf8str[idx] & 0x80) {
-				if ((utf8str[idx] & 0xe0) == 0xc0)
-					incode = 1;
-				else if ((utf8str[idx] & 0xf0) == 0xe0)
-					incode = 2;
-				else if ((utf8str[idx] & 0xf8) == 0xf0)
-					incode = 3;
-				else
-					goto error;
-			}
-			else
-				outsz++;
-		}
-	}
-	ret = malloc(outsz + 1);
-	if (ret == NULL)
-		goto error;
-	rp = ret;
-
-	// Fill the string...
-	for (idx = 0; idx < inlen;) {
-		idx += read_cp(&utf8str[idx], &codepoint);
-		if (codepoint == 0xffff || codepoint == 0xfffe)
-			goto error;
-		*(rp++) = cpdef->from_unicode_cpoint(codepoint, unmapped, cpdef);
-	}
-	*rp = 0;
-	if (outlen)
-		*outlen = rp - ret;
-
-	return ret;
-error:
-	free(ret);
-	return NULL;
-}
-
-const struct codepage_def ciolib_cp[CIOLIB_CP_COUNT] = {
-	// 0
-	{"CP437", CIOLIB_CP437, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		cp437_table, sizeof(cp437_table) / sizeof(cp437_table[0]),
-		cp437_unicode_table, cp437_ext_table},
-	{"CP1251", CIOLIB_CP1251, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		cp1251_table, sizeof(cp1251_table) / sizeof(cp1251_table[0]),
-		cp1251_unicode_table, cp437_ext_table},
-	{"KOI8-R", CIOLIB_KOI8_R, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		koi8_r_table, sizeof(koi8_r_table) / sizeof(koi8_r_table[0]),
-		koi8_r_unicode_table, empty_ext_table},
-	{"ISO-8859-2", CIOLIB_ISO_8859_2, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		iso8859_2_table, sizeof(iso8859_2_table) / sizeof(iso8859_2_table[0]),
-		iso8859_2_unicode_table, empty_ext_table},
-	{"ISO-8859-4", CIOLIB_ISO_8859_4, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		iso8859_4_table, sizeof(iso8859_4_table) / sizeof(iso8859_4_table[0]),
-		iso8859_4_unicode_table, empty_ext_table},
-	// 5
-	{"CP866M", CIOLIB_CP866M, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		cp866m_table, sizeof(cp866m_table) / sizeof(cp866m_table[0]),
-		cp866m_unicode_table, cp437_ext_table},
-	{"ISO-8859-9", CIOLIB_ISO_8859_9, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		iso8859_9_table, sizeof(iso8859_9_table) / sizeof(iso8859_9_table[0]),
-		iso8859_9_unicode_table, empty_ext_table},
-	{"ISO-8859-8", CIOLIB_ISO_8859_8, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		iso8859_8_table, sizeof(iso8859_8_table) / sizeof(iso8859_8_table[0]),
-		iso8859_8_unicode_table, empty_ext_table},
-	{"KOI8-U", CIOLIB_KOI8_U, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		koi8_u_table, sizeof(koi8_u_table) / sizeof(koi8_u_table[0]),
-		koi8_u_unicode_table, empty_ext_table},
-	{"ISO-8859-15", CIOLIB_ISO_8859_15, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		iso8859_15_table, sizeof(iso8859_15_table) / sizeof(iso8859_15_table[0]),
-		iso8859_15_unicode_table, empty_ext_table},
-	// 10
-	{"ISO-8859-5", CIOLIB_ISO_8859_5, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		iso8859_5_table, sizeof(iso8859_5_table) / sizeof(iso8859_5_table[0]),
-		iso8859_5_unicode_table, empty_ext_table},
-	{"CP850", CIOLIB_CP850, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		cp850_table, sizeof(cp850_table) / sizeof(cp850_table[0]),
-		cp850_unicode_table, cp437_ext_table},
-	{"CP865", CIOLIB_CP865, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		cp865_table, sizeof(cp865_table) / sizeof(cp865_table[0]),
-		cp865_unicode_table, cp437_ext_table},
-	{"ISO-8859-7", CIOLIB_ISO_8859_7, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		iso8859_7_table, sizeof(iso8859_7_table) / sizeof(iso8859_7_table[0]),
-		iso8859_7_unicode_table, empty_ext_table},
-	{"ISO-8859-1", CIOLIB_ISO_8859_1, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		iso8859_1_table, sizeof(iso8859_1_table) / sizeof(iso8859_1_table[0]),
-		iso8859_1_unicode_table, empty_ext_table},
-	// 15
-	{"CP866M2", CIOLIB_CP866M2, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		cp866m2_table, sizeof(cp866m2_table) / sizeof(cp866m2_table[0]),
-		cp866m2_unicode_table, cp437_ext_table},
-	{"CP866U", CIOLIB_CP866U, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		cp866u_table, sizeof(cp866u_table) / sizeof(cp866u_table[0]),
-		cp866u_unicode_table, cp437_ext_table},
-	{"CP1131", CIOLIB_CP1131, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		cp1131_table, sizeof(cp1131_table) / sizeof(cp1131_table[0]),
-		cp1131_unicode_table, cp437_ext_table},
-	{"ARMSCII-8", CIOLIB_ARMSCII8, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		armscii8_table, sizeof(armscii8_table) / sizeof(armscii8_table[0]),
-		armscii8_unicode_table, cp437_ext_table},
-	{"HAIK8", CIOLIB_HAIK8, cpstr_to_utf8, utf8_to_cpstr, cptable_from_unicode_cpoint, cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		haik8_table, sizeof(haik8_table) / sizeof(haik8_table[0]),
-		haik8_unicode_table, cp437_ext_table},
-	// 20
-	{"ATASCII", CIOLIB_ATASCII, ftstr_to_utf8, utf8_to_cpstr, ft_from_unicode_cpoint, ft_cpoint_from_cptable,  ft_cpoint_from_cptable_ext, 
-		atascii_table, sizeof(atascii_table) / sizeof(atascii_table[0]),
-		atascii_unicode_table, atascii_ext_table},
-	{"PETSCIIU", CIOLIB_PETSCIIU, ftstr_to_utf8, utf8_to_cpstr, ft_from_unicode_cpoint, ft_cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		petsciiu_table, sizeof(petsciiu_table) / sizeof(petsciiu_table[0]),
-		petsciiu_unicode_table, empty_ext_table},
-	{"PETSCIIL", CIOLIB_PETSCIIL, ftstr_to_utf8, utf8_to_cpstr, ft_from_unicode_cpoint, ft_cpoint_from_cptable,  cpoint_from_cptable_ext, 
-		petsciil_table, sizeof(petsciil_table) / sizeof(petsciil_table[0]),
-		petsciil_unicode_table, empty_ext_table},
-};
-
-uint8_t *cp_to_utf8(enum ciolib_codepage cp, const char *cpstr, size_t buflen, size_t *outlen)
-{
-	if (cp < 0 || cp >= CIOLIB_CP_COUNT)
-		return NULL;
-
-	return ciolib_cp[cp].to_utf8(cpstr, buflen, outlen, &ciolib_cp[cp]);
-}
-
-char *utf8_to_cp(enum ciolib_codepage cp, const uint8_t *utf8str, char unmapped, size_t buflen, size_t *outlen)
-{
-	if (cp < 0 || cp >= CIOLIB_CP_COUNT)
-		return NULL;
-
-	return ciolib_cp[cp].utf8_to(utf8str, unmapped, buflen, outlen, &ciolib_cp[cp]);
-}
-
-uint8_t cpchar_from_unicode_cpoint(enum ciolib_codepage cp, uint32_t cpoint, char unmapped)
-{
-	if (cp < 0 || cp >= CIOLIB_CP_COUNT)
-		return unmapped;
-
-	return ciolib_cp[cp].from_unicode_cpoint(cpoint, unmapped, &ciolib_cp[cp]);
-}
-
-uint32_t cpoint_from_cpchar(enum ciolib_codepage cp, uint8_t ch)
-{
-	if (cp < 0 || cp >= CIOLIB_CP_COUNT)
-		return 0;
-
-	return ciolib_cp[cp].from_cpchar(ch, &ciolib_cp[cp]);
-}
-
-uint32_t cpoint_from_cpchar_ext(enum ciolib_codepage cp, uint8_t ch)
-{
-	if (cp < 0 || cp >= CIOLIB_CP_COUNT)
-		return 0;
-
-	return ciolib_cp[cp].from_cpchar_ext(ch, &ciolib_cp[cp]);
-}
diff --git a/ciolib/utf8_codepages.h b/ciolib/utf8_codepages.h
deleted file mode 100644
index f654d9c33d18687004723b3f63405669f10223ce..0000000000000000000000000000000000000000
--- a/ciolib/utf8_codepages.h
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifndef UTF8_CODEPAGES_H
-#define UTF8_CODEPAGES_H
-
-enum ciolib_codepage {
-	CIOLIB_CP437,
-	CIOLIB_CP1251,
-	CIOLIB_KOI8_R,
-	CIOLIB_ISO_8859_2,
-	CIOLIB_ISO_8859_4,
-	CIOLIB_CP866M,
-	CIOLIB_ISO_8859_9,
-	CIOLIB_ISO_8859_8,
-	CIOLIB_KOI8_U,
-	CIOLIB_ISO_8859_15,
-	CIOLIB_ISO_8859_5,
-	CIOLIB_CP850,
-	CIOLIB_CP865,
-	CIOLIB_ISO_8859_7,
-	CIOLIB_ISO_8859_1,
-	CIOLIB_CP866M2,
-	CIOLIB_CP866U,
-	CIOLIB_CP1131,
-	CIOLIB_ARMSCII8,
-	CIOLIB_HAIK8,
-	CIOLIB_ATASCII,
-	CIOLIB_PETSCIIU,
-	CIOLIB_PETSCIIL,
-	CIOLIB_CP_COUNT
-};
-
-struct codepage_def {
-	const char name[32];
-	const enum ciolib_codepage cp;
-	uint8_t *(*to_utf8)(const char *cp437str, size_t buflen, size_t *outlen, const struct codepage_def *cpdef);
-	char *(*utf8_to)(const uint8_t *utf8str, char unmapped, size_t buflen, size_t *outlen, const struct codepage_def *cpdef);
-	uint8_t (*from_unicode_cpoint)(uint32_t cpoint, char unmapped, const struct codepage_def *cpdef);
-	uint32_t (*from_cpchar)(uint8_t cpoint, const struct codepage_def *cpdef);
-	uint32_t (*from_cpchar_ext)(uint8_t cpoint, const struct codepage_def *cpdef);
-	const struct ciolib_cpmap *cp_table;
-	const size_t cp_table_sz;
-	const uint32_t *cp_unicode_table;
-	const uint32_t *cp_ext_unicode_table;
-};
-
-extern const struct codepage_def ciolib_cp[CIOLIB_CP_COUNT];
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-uint8_t *cp_to_utf8(enum ciolib_codepage cp, const char *cpstr, size_t buflen, size_t *outlen);
-char *utf8_to_cp(enum ciolib_codepage cp, const uint8_t *utf8str, char unmapped, size_t buflen, size_t *outlen);
-uint8_t cpchar_from_unicode_cpoint(enum ciolib_codepage cp, uint32_t cpoint, char unmapped);
-uint32_t cpoint_from_cpchar(enum ciolib_codepage cp, uint8_t ch);
-uint32_t cpoint_from_cpchar_ext(enum ciolib_codepage cp, uint8_t ch);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/ciolib/vidmodes.c b/ciolib/vidmodes.c
deleted file mode 100644
index cd8bbb8969eeca4138a769f0fbdbcb28a08ebf83..0000000000000000000000000000000000000000
--- a/ciolib/vidmodes.c
+++ /dev/null
@@ -1,390 +0,0 @@
-/* $Id: vidmodes.c,v 1.33 2020/06/27 00:04:45 deuce Exp $ */
-
-#include <stdlib.h>
-#include <stdbool.h>
-
-/* xpdev: */
-#include <gen_defs.h>	/* FREE_AND_NULL */
-
-#include "vidmodes.h"
-
-// TODO: Pretty much all the 1:1 aspect ratios are wrong...
-struct video_params vparams[] = {
-	/* BW 40x25 */
-	{BW40, GREYSCALE_PALETTE,             40, 25, 14, 15, 16, 8, 7, 0,  4, 3, 320,  200},
-	/* CO 40x25 */
-	{C40, COLOUR_PALETTE,                 40, 25, 14, 15, 16, 8, 7, 0,  4, 3, 320,  200},
-	/* BW 80x25 */
-	{BW80, GREYSCALE_PALETTE,             80, 25, 14, 15, 16, 8, 7, 0,  4, 3, 640,  400},
-	/* CO 80x25 */
-	{C80, COLOUR_PALETTE,                 80, 25, 14, 15, 16, 8, 7, 0,  4, 3, 640,  400},
-	/* MONO */
-	{MONO, 0,                             80, 25, 14, 15, 16, 8, 7, 0,  4, 3, 640,  400},
-	/* CO 40x14 */
-	{C40X14, COLOUR_PALETTE,              40, 14, 14, 15, 16, 8, 7, 0,  4, 3, 320,  224},
-	/* CO 40x21 */
-	{C40X21, COLOUR_PALETTE,              40, 21, 14, 15, 16, 8, 7, 0,  4, 3, 320,  336},
-	/* CO 40x28 */
-	{C40X28, COLOUR_PALETTE,              40, 28, 12, 13, 14, 8, 7, 0,  4, 3, 320,  392},
-	/* CO 40x43 */
-	{C40X43, COLOUR_PALETTE,              40, 43,  7,  7,  8, 8, 7, 0,  4, 3, 320,  774},
-	/* CO 40x50 */
-	{C40X50, COLOUR_PALETTE,              40, 50,  7,  7,  8, 8, 7, 0,  4, 3, 320,  400},
-	/* CO 40x60 */
-	{C40X60, COLOUR_PALETTE,              40, 60,  7,  7,  8, 8, 7, 0,  4, 3, 320,  480},
-	/* CO 80x14 */
-	{C80X14, COLOUR_PALETTE,              80, 14, 14, 15, 16, 8, 7, 0,  4, 3, 640,  224},
-	/* CO 80x21 */
-	{C80X21, COLOUR_PALETTE,              80, 21, 14, 15, 16, 8, 7, 0,  4, 3, 640,  336},
-	/* CO 80x28 */
-	{C80X28, COLOUR_PALETTE,              80, 28, 12, 13, 14, 8, 7, 0,  4, 3, 640,  392},
-	/* CO 80x30 */
-	{C80X30, COLOUR_PALETTE,              80, 30, 14, 15, 16, 8, 7, 0,  4, 3, 640,  480},
-	/* CO 80x43 */
-	{C80X43, COLOUR_PALETTE,              80, 43,  7,  7,  8, 8, 7, 0,  4, 3, 640,  350},
-	/* EGA 80x25 */
-	{EGA80X25, COLOUR_PALETTE,            80, 25, 12, 13, 14, 8, 7, 0,  4, 3, 640,  350},
-	/* CO 80x50 */
-	{C80X50, COLOUR_PALETTE,              80, 50,  7,  7,  8, 8, 7, 0,  4, 3, 640,  400},
-	/* CO 80x60 */
-	{C80X60, COLOUR_PALETTE,              80, 60,  7,  7,  8, 8, 7, 0,  4, 3, 640,  480},
-	/* B 40x14 */
-	{BW40X14, GREYSCALE_PALETTE,          40, 14, 14, 15, 16, 8, 7, 0,  4, 3, 320,  224},
-	/* BW 40x21 */
-	{BW40X21, GREYSCALE_PALETTE,          40, 21, 14, 15, 16, 8, 7, 0,  4, 3, 320,  336},
-	/* BW 40x28 */
-	{BW40X28, GREYSCALE_PALETTE,          40, 28, 12, 13, 14, 8, 7, 0,  4, 3, 320,  392},
-	/* BW 40x43 */
-	{BW40X43, GREYSCALE_PALETTE,          40, 43,  7,  7, 14, 8, 7, 0,  4, 3, 320,  350},
-	/* BW 40x50 */
-	{BW40X50, GREYSCALE_PALETTE,          40, 50,  7,  7,  8, 8, 7, 0,  4, 3, 320,  400},
-	/* BW 40x60 */
-	{BW40X60, GREYSCALE_PALETTE,          40, 60,  7,  7,  8, 8, 7, 0,  4, 3, 320,  480},
-	/* BW 80x14 */
-	{BW80X14, GREYSCALE_PALETTE,          80, 14, 14, 15, 16, 8, 7, 0,  4, 3, 640,  224},
-	/* BW 80x21 */
-	{BW80X21, GREYSCALE_PALETTE,          80, 21, 14, 15, 16, 8, 7, 0,  4, 3, 640,  336},
-	/* BW 80x28 */
-	{BW80X28, GREYSCALE_PALETTE,          80, 28, 12, 13, 14, 8, 7, 0,  4, 3, 640,  392},
-	/* BW 80x43 */
-	{BW80X43, GREYSCALE_PALETTE,          80, 43,  7,  7, 14, 8, 7, 0,  4, 3, 640,  350},
-	/* BW 80x50 */
-	{BW80X50, GREYSCALE_PALETTE,          80, 50,  7,  7,  8, 8, 7, 0,  4, 3, 640,  400},
-	/* BW 80x60 */
-	{BW80X60, GREYSCALE_PALETTE,          80, 60,  7,  7,  8, 8, 7, 0,  4, 3, 640,  480},
-	/* MONO 80x14 */
-	{MONO14, MONO_PALETTE,                80, 14, 14, 15, 16, 8, 7, 0,  4, 3, 640,  224},
-	/* MONO 80x21 */
-	{MONO21, MONO_PALETTE,                80, 21, 14, 15, 16, 8, 7, 0,  4, 3, 640,  336},
-	/* MONO 80x28 */
-	{MONO28, MONO_PALETTE,                80, 28, 12, 13, 14, 8, 7, 0,  4, 3, 640,  392},
-	/* MONO 80x43 */
-	{MONO43, MONO_PALETTE,                80, 43,  7,  7, 14, 8, 7, 0,  4, 3, 640,  350},
-	/* MONO 80x50 */
-	{MONO50, MONO_PALETTE,                80, 50,  7,  7,  8, 8, 7, 0,  4, 3, 640,  400},
-	/* MONO 80x60 */
-	{MONO60, MONO_PALETTE,                80, 60,  7,  7,  8, 8, 7, 0,  4, 3, 640,  480},
-	/* Magical C4350 Mode */
-	{C4350, COLOUR_PALETTE,               80, 50,  7,  7,  8, 8, 7, 0,  4, 3, 640,  400},
-	/* Commodore 64 40x25 mode */
-	// This is the NTSC aspect ratio... the pixel aspect ratio is about 75:100 due to the
-	// borders.
-	{C64_40X25, C64_PALETTE,              40, 25,  0,  7,  8, 8, 0x6e, CIOLIB_VIDEO_BGBRIGHT|CIOLIB_VIDEO_NOBLINK,  6, 5, 320, 200},
-	/* Commodore 128 40x25 mode */
-	// The C128 uses the same aspect ratio as the C64 in 40 column mode
-	{C128_40X25, C64_PALETTE,             40, 25,  0,  7,  8, 8, 0xbd, CIOLIB_VIDEO_BGBRIGHT|CIOLIB_VIDEO_NOBLINK,  6, 5, 320, 200},
-	/* Commodore 128 80x25 mode */
-	// But in 80-column mode is a 4:3 CGA style output.
-	{C128_80X25, COLOUR_PALETTE,          80, 25,  0,  7,  8, 8, 7,    CIOLIB_VIDEO_BGBRIGHT|CIOLIB_VIDEO_NOBLINK,  4, 3, 640, 200},
-	/* Atari 800 40x24 mode */
-	{ATARI_40X24, ATARI_PALETTE,          40, 24,  0,  7,  8, 8, 7, 0,  4, 3, 320,  192},
-	/* Atari 800 XEP80 80x25 mode */
-	{ATARI_80X25, GREYSCALE_PALETTE,      80, 25,  0, 15, 16, 8, 7, 0,  4, 3, 640,  400},
-	/* VESA 21x132 mode */
-	{VESA_132X21, COLOUR_PALETTE,        132, 21, 14, 15, 16, 8, 7, 0,  4, 3, 1056, 336},
-	/* VESA 25x132 mode */
-	{VESA_132X25, COLOUR_PALETTE,        132, 25, 14, 15, 16, 8, 7, 0,  4, 3, 1056, 400},
-	/* VESA 28x132 mode */
-	{VESA_132X28, COLOUR_PALETTE,        132, 28, 12, 13, 14, 8, 7, 0,  4, 3, 1056, 392},
-	/* VESA 30x132 mode */
-	{VESA_132X30, COLOUR_PALETTE,        132, 30, 14, 15, 16, 8, 7, 0,  4, 3, 1056, 480},
-	/* VESA 34x132 mode */
-	{VESA_132X34, COLOUR_PALETTE,        132, 34, 12, 13, 14, 8, 7, 0,  4, 3, 1056, 476},
-	/* VESA 43x132 mode */
-	{VESA_132X43, COLOUR_PALETTE,        132, 43,  7,  7,  8, 8, 7, 0,  4, 3, 1056, 350},
-	/* VESA 50x132 mode */
-	{VESA_132X50, COLOUR_PALETTE,        132, 50,  7,  7,  8, 8, 7, 0,  4, 3, 1056, 400},
-	/* VESA 60x132 mode */
-	{VESA_132X60, COLOUR_PALETTE,        132, 60,  7,  7,  8, 8, 7, 0,  4, 3, 1056, 480},
-	/* Awesome modes */
-	{ST132X37_16_9, COLOUR_PALETTE,      132, 37, 14, 15, 16, 8, 7, 0, 16, 9, 1056, 600},
-	{ST132X52_5_4, COLOUR_PALETTE,       132, 52, 14, 15, 16, 8, 7, 0,  5, 4, 1056, 823},
-	/* Stupid modes */
-	{VGA80X25, COLOUR_PALETTE,            80, 25, 14, 15, 16, 9, 7, CIOLIB_VIDEO_EXPAND | CIOLIB_VIDEO_LINE_GRAPHICS_EXPAND, 4, 3, 720, 400},
-	/* DigitalMon */
-	{LCD80X25, COLOUR_PALETTE,            80, 25, 14, 15, 16, 8, 7, 0,  8, 5, 640,  400},
-	/* Custom mode */
-	{CIOLIB_MODE_CUSTOM, COLOUR_PALETTE, 80,  25, 14, 15, 16, 8, 7, 0,  0, 0,   -1,  -1},
-};
-
-uint32_t palettes[5][16] = {
-	/* Mono */
-	{ 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-	  0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07
-	},
-	/* Black and White */
-	{ 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-	  0x08, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f
-	},
-	/* Colour */
-	{ 0x00, 0x04, 0x02, 0x06, 0x01, 0x05, 0x03, 0x07, 
-	  0x08, 0x0c, 0x0a, 0x0e, 0x09, 0x0d, 0x0b, 0x0f
-	},
-	/* C64 */
-	{ 0x100, 0x101, 0x102, 0x103, 0x104, 0x105, 0x106, 0x107, 
-	  0x108, 0x109, 0x10a, 0x10b, 0x10c, 0x10d, 0x10e, 0x10f
-	},
-	/* Atari */
-	{ 0x110, 0x111, 0x111, 0x111, 0x111, 0x111, 0x111, 0x111,
-	  0x111, 0x111, 0x111, 0x111, 0x111, 0x111, 0x111, 0x111
-	},
-};
-
-struct dac_colors dac_default[TOTAL_DAC_SIZE] = {
-	/* "System" colours */
-	{0, 0, 0},       // Black
-	{168, 0, 0},     // Red
-	{0, 168, 0},     // Green
-	{168, 84, 0},    // Brown
-	{0, 0, 168},     // Blue
-	{168, 0, 168},   // Magenta
-	{0, 168, 168},   // Cyan
-	{168, 168, 168}, // Light Gray
-
-	{84, 84, 84},    // Dark Gray
-	{255, 84, 84},   // Light Red
-	{84, 255, 84},   // Light Green
-	{255, 255, 84},  // Yellow
-	{84, 84, 255},   // Light Blue
-	{255, 84, 255},  // Light Magenta
-	{84, 255, 255},  // Light Cyan
-	{255, 255, 255}, // White
-
-	/* XTerm 256 colour palette */
-	{0, 0, 0}, {0, 0, 95}, {0, 0, 135}, {0, 0, 175},
-	{0, 0, 215}, {0, 0, 255}, {0, 95, 0}, {0, 95, 95},
-	{0, 95, 135}, {0, 95, 175}, {0, 95, 215}, {0, 95, 255},
-	{0, 135, 0}, {0, 135, 95}, {0, 135, 135}, {0, 135, 175},
-	{0, 135, 215}, {0, 135, 255}, {0, 175, 0}, {0, 175, 95},
-	{0, 175, 135}, {0, 175, 175}, {0, 175, 215}, {0, 175, 255},
-	{0, 215, 0}, {0, 215, 95}, {0, 215, 135}, {0, 215, 175},
-	{0, 215, 215}, {0, 215, 255}, {0, 255, 0}, {0, 255, 95},
-	{0, 255, 135}, {0, 255, 175}, {0, 255, 215}, {0, 255, 255},
-	{95, 0, 0}, {95, 0, 95}, {95, 0, 135}, {95, 0, 175},
-	{95, 0, 215}, {95, 0, 255}, {95, 95, 0}, {95, 95, 95},
-	{95, 95, 135}, {95, 95, 175}, {95, 95, 215}, {95, 95, 255},
-	{95, 135, 0}, {95, 135, 95}, {95, 135, 135}, {95, 135, 175},
-	{95, 135, 215}, {95, 135, 255}, {95, 175, 0}, {95, 175, 95},
-	{95, 175, 135}, {95, 175, 175}, {95, 175, 215}, {95, 175, 255},
-	{95, 215, 0}, {95, 215, 95}, {95, 215, 135}, {95, 215, 175},
-	{95, 215, 215}, {95, 215, 255}, {95, 255, 0}, {95, 255, 95},
-	{95, 255, 135}, {95, 255, 175}, {95, 255, 215}, {95, 255, 255},
-	{135, 0, 0}, {135, 0, 95}, {135, 0, 135}, {135, 0, 175},
-	{135, 0, 215}, {135, 0, 255}, {135, 95, 0}, {135, 95, 95},
-	{135, 95, 135}, {135, 95, 175}, {135, 95, 215}, {135, 95, 255},
-	{135, 135, 0}, {135, 135, 95}, {135, 135, 135}, {135, 135, 175},
-	{135, 135, 215}, {135, 135, 255}, {135, 175, 0}, {135, 175, 95},
-	{135, 175, 135}, {135, 175, 175}, {135, 175, 215}, {135, 175, 255},
-	{135, 215, 0}, {135, 215, 95}, {135, 215, 135}, {135, 215, 175},
-	{135, 215, 215}, {135, 215, 255}, {135, 255, 0}, {135, 255, 95},
-	{135, 255, 135}, {135, 255, 175}, {135, 255, 215}, {135, 255, 255},
-	{175, 0, 0}, {175, 0, 95}, {175, 0, 135}, {175, 0, 175},
-	{175, 0, 215}, {175, 0, 255}, {175, 95, 0}, {175, 95, 95},
-	{175, 95, 135}, {175, 95, 175}, {175, 95, 215}, {175, 95, 255},
-	{175, 135, 0}, {175, 135, 95}, {175, 135, 135}, {175, 135, 175},
-	{175, 135, 215}, {175, 135, 255}, {175, 175, 0}, {175, 175, 95},
-	{175, 175, 135}, {175, 175, 175}, {175, 175, 215}, {175, 175, 255},
-	{175, 215, 0}, {175, 215, 95}, {175, 215, 135}, {175, 215, 175},
-	{175, 215, 215}, {175, 215, 255}, {175, 255, 0}, {175, 255, 95},
-	{175, 255, 135}, {175, 255, 175}, {175, 255, 215}, {175, 255, 255},
-	{215, 0, 0}, {215, 0, 95}, {215, 0, 135}, {215, 0, 175},
-	{215, 0, 215}, {215, 0, 255}, {215, 95, 0}, {215, 95, 95},
-	{215, 95, 135}, {215, 95, 175}, {215, 95, 215}, {215, 95, 255},
-	{215, 135, 0}, {215, 135, 95}, {215, 135, 135}, {215, 135, 175},
-	{215, 135, 215}, {215, 135, 255}, {215, 175, 0}, {215, 175, 95},
-	{215, 175, 135}, {215, 175, 175}, {215, 175, 215}, {215, 175, 255},
-	{215, 215, 0}, {215, 215, 95}, {215, 215, 135}, {215, 215, 175},
-	{215, 215, 215}, {215, 215, 255}, {215, 255, 0}, {215, 255, 95},
-	{215, 255, 135}, {215, 255, 175}, {215, 255, 215}, {215, 255, 255},
-	{255, 0, 0}, {255, 0, 95}, {255, 0, 135}, {255, 0, 175},
-	{255, 0, 215}, {255, 0, 255}, {255, 95, 0}, {255, 95, 95},
-	{255, 95, 135}, {255, 95, 175}, {255, 95, 215}, {255, 95, 255},
-	{255, 135, 0}, {255, 135, 95}, {255, 135, 135}, {255, 135, 175},
-	{255, 135, 215}, {255, 135, 255}, {255, 175, 0}, {255, 175, 95},
-	{255, 175, 135}, {255, 175, 175}, {255, 175, 215}, {255, 175, 255},
-	{255, 215, 0}, {255, 215, 95}, {255, 215, 135}, {255, 215, 175},
-	{255, 215, 215}, {255, 215, 255}, {255, 255, 0}, {255, 255, 95},
-	{255, 255, 135}, {255, 255, 175}, {255, 255, 215}, {255, 255, 255},
-	{8, 8, 8}, {18, 18, 18}, {28, 28, 28}, {38, 38, 38},
-	{48, 48, 48}, {58, 58, 58}, {68, 68, 68}, {78, 78, 78},
-	{88, 88, 88}, {98, 98, 98}, {108, 108, 108}, {118, 118, 118},
-	{128, 128, 128}, {138, 138, 138}, {148, 148, 148}, {158, 158, 158},
-	{168, 168, 168}, {178, 178, 178}, {188, 188, 188}, {198, 198, 198},
-	{208, 208, 208}, {218, 218, 218}, {228, 228, 228}, {238, 238, 238}, 
-
-	/* C64 colours */
-	/* Black, White, Red, Cyan, Purple, Green, Blue, Yellow */
-	/* Orange, Brown, Lt Red, Dk Grey, Grey, Lt Green, Lt Blue, Lt Grey */
-#if 0
-	/* Taken from CTerm source */
-	{0x00, 0x00, 0x00},	// Black
-	{0xFD, 0xFE, 0xFC},	// White
-	{0xBE, 0x1A, 0x24},	// Red
-	{0x30, 0xE6, 0xC6},	// Cyan
-	{0xB4, 0x1A, 0xE2},	// Purple
-	{0x1F, 0xD2, 0x1E},	// Green
-	{0x21, 0x1B, 0xAE},	// Blue
-	{0xDF, 0xF6, 0x0A},	// Yellow
-	{0xB8, 0x41, 0x04},	// Orange
-	{0x6A, 0x33, 0x04},	// Brown
-	{0xFE, 0x4A, 0x57},	// Light Red
-	{0x42, 0x45, 0x40},	// Dark Grey
-	{0x70, 0x74, 0x6F},	// Grey
-	{0x59, 0xFE, 0x59},	// Light Green
-	{0x5F, 0x53, 0xFE},	// Light Blue
-	{0xA4, 0xA7, 0xA2},	// Light Grey
-#else
-	/*
-	 * Taken from https://www.pepto.de/projects/colorvic/
-	 * a much more convincing source.
-	 */
-	{0x00, 0x00, 0x00},
-	{0xFF, 0xFF, 0xFF},
-	{0x81, 0x33, 0x38},
-	{0x75, 0xCE, 0xC8},
-	{0x8E, 0x3C, 0x97},
-	{0x56, 0xAC, 0x4D},
-	{0x2E, 0x2C, 0x9B},
-	{0xED, 0xF1, 0x71},
-	{0x8E, 0x50, 0x29},
-	{0x55, 0x38, 0x00},
-	{0xC4, 0x6C, 0x71},
-	{0x4A, 0x4A, 0x4A},
-	{0x7B, 0x7B, 0x7B},
-	{0xA9, 0xFF, 0x9F},
-	{0x70, 0x6D, 0xEB},
-	{0xB2, 0xB2, 0xB2},
-#endif
-
-	/* Atari Colours */
-	/* BG, FG */
-	{0, 81, 129}, {96, 183, 231},
-};
-
-int find_vmode(int mode)
-{
-    unsigned i;
-
-	for (i = 0; i < NUMMODES; i++)
-		if (vparams[i].mode == mode)
-			return i;
-
-	return -1;
-}
-
-struct vstat_vmem *get_vmem(struct video_stats *vs)
-{
-	vs->vmem->refcount++;
-	return vs->vmem;
-}
-
-void release_vmem(struct vstat_vmem *vm)
-{
-	if (vm == NULL)
-		return;
-	vm->refcount--;
-	if (vm->refcount == 0) {
-		FREE_AND_NULL(vm->vmem);
-		FREE_AND_NULL(vm);
-	}
-}
-
-static struct vstat_vmem *new_vmem(int cols, int rows, bool palette)
-{
-	struct vstat_vmem *ret = malloc(sizeof(struct vstat_vmem));
-
-	if (ret == NULL)
-		return ret;
-	ret->refcount = 1;
-	ret->vmem = malloc(cols*rows*sizeof(ret->vmem[0]));
-	if (ret->vmem == NULL) {
-		free(ret);
-		return NULL;
-	}
-	return ret;
-}
-
-int load_vmode(struct video_stats *vs, int mode)
-{
-	int i;
-
-	i=find_vmode(mode);
-	if(i==-1)
-		return(-1);
-	release_vmem(vs->vmem);
-	vs->vmem=new_vmem(vparams[i].cols, vparams[i].rows, vs->flags & VIDMODES_FLAG_PALETTE_VMEM);
-	if (vs->vmem == NULL)
-		return -1;
-	vs->rows=vparams[i].rows;
-	vs->cols=vparams[i].cols;
-	vs->curs_start=vparams[i].curs_start;
-	vs->curs_end=vparams[i].curs_end;
-	vs->default_curs_start=vparams[i].curs_start;
-	vs->default_curs_end=vparams[i].curs_end;
-	vs->curs_blinks=1;
-	vs->curs_visible=1;
-	vs->curs_row=1;
-	vs->curs_col=1;
-	vs->bright_background=vparams[i].flags & CIOLIB_VIDEO_BGBRIGHT;
-	vs->no_bright=vparams[i].flags & CIOLIB_VIDEO_NOBRIGHT;
-	vs->bright_altcharset=vparams[i].flags & CIOLIB_VIDEO_ALTCHARS;
-	vs->no_blink=vparams[i].flags & CIOLIB_VIDEO_NOBLINK;
-	vs->blink_altcharset=vparams[i].flags & CIOLIB_VIDEO_BLINKALTCHARS;
-	if (vparams[i].flags & CIOLIB_VIDEO_EXPAND)
-		vs->flags |= VIDMODES_FLAG_EXPAND;
-	else
-		vs->flags &= ~VIDMODES_FLAG_EXPAND;
-	if (vparams[i].flags & CIOLIB_VIDEO_LINE_GRAPHICS_EXPAND)
-		vs->flags |= VIDMODES_FLAG_LINE_GRAPHICS_EXPAND;
-	else
-		vs->flags &= ~VIDMODES_FLAG_LINE_GRAPHICS_EXPAND;
-	if(vs->curs_row < 0)
-		vs->curs_row=0;
-	if(vs->curs_row >= vparams[i].rows)
-		vs->curs_row=vparams[i].rows-1;
-	if(vs->curs_col < 0)
-		vs->curs_col=0;
-	if(vs->curs_col >= vparams[i].cols)
-		vs->curs_col=vparams[i].cols-1;
-	memcpy(vs->palette, palettes[vparams[i].palette], sizeof(vs->palette));
-	vs->charheight=vparams[i].charheight;
-	vs->charwidth=vparams[i].charwidth;
-	vs->mode=mode;
-	vs->currattr = vparams[i].default_attr;
-	vs->aspect_width = vparams[i].aspect_width;
-	vs->aspect_height = vparams[i].aspect_height;
-	if (vs->aspect_width == 0 || vs->aspect_height == 0) {
-		vs->aspect_width = vs->scrnwidth;
-		vs->aspect_height = vs->scrnheight;
-	}
-	if (vparams[i].xres > 0)
-		vs->scrnwidth = vparams[i].xres;
-	else
-		vs->scrnwidth = vs->charwidth * vs->cols;
-	if (vparams[i].yres > 0)
-		vs->scrnheight = vparams[i].yres;
-	else
-		vs->scrnheight = vs->charheight * vs->rows;
-	vs->forced_font = NULL;
-	return(0);
-}
diff --git a/ciolib/vidmodes.h b/ciolib/vidmodes.h
deleted file mode 100644
index ebdcf38e74e182ed632cb15cf37d246c082d05a3..0000000000000000000000000000000000000000
--- a/ciolib/vidmodes.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/* $Id: vidmodes.h,v 1.33 2020/06/27 00:04:45 deuce Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _VIDMODES_H_
-#define _VIDMODES_H_
-
-#if (defined CIOLIB_IMPORTS)
- #undef CIOLIB_IMPORTS
-#endif
-#if (defined CIOLIB_EXPORTS)
- #undef CIOLIB_EXPORTS
-#endif
-
-#include "ciolib.h"
-
-#define TOTAL_DAC_SIZE	274
-
-/* Entry type for the DAC table. */
-struct dac_colors {
-	unsigned char red;
-	unsigned char green;
-	unsigned char blue;
-};
-
-struct  video_params {
-	int	mode;
-	int palette;
-	int	cols;
-	int rows;
-	int	curs_start;
-	int curs_end;
-	int charheight;
-	int charwidth;
-	int	default_attr;
-	int	flags;
-	int	aspect_width;
-	int	aspect_height;
-	int	xres;
-	int	yres;
-};
-
-struct vstat_vmem {
-	unsigned refcount;
-	struct vmem_cell *vmem;
-};
-
-struct video_stats {
-	int rows;
-	int cols;
-	int curs_row;
-	int curs_col;
-	int curs_start;
-	int curs_end;
-	int curs_blinks;
-	int curs_visible;
-	int default_curs_start;
-	int default_curs_end;
-	int mode;
-	int charheight;
-	int charwidth;
-	int bright_background;
-	int blink;
-	int curs_blink;
-	int no_bright;
-	int no_blink;
-	int bright_altcharset;
-	int blink_altcharset;
-	int currattr;
-	int scaling;
-	int scrnwidth;
-	int scrnheight;
-	int winwidth;
-	int winheight;
-	int aspect_width;
-	int aspect_height;
-	uint32_t flags;
-#define VIDMODES_FLAG_PALETTE_VMEM         1
-#define VIDMODES_FLAG_EXPAND               2
-#define VIDMODES_FLAG_LINE_GRAPHICS_EXPAND 4
-	uint32_t palette[16];
-	struct vstat_vmem *vmem;
-	uint8_t *forced_font;
-};
-
-enum {
-	 MONO_PALETTE
-	,GREYSCALE_PALETTE
-	,COLOUR_PALETTE
-	,C64_PALETTE
-	,ATARI_PALETTE
-};
-
-extern struct video_params vparams[56];
-#define NUMMODES      (sizeof(vparams) / sizeof(struct video_params))
-extern uint32_t palettes[5][16];
-extern struct dac_colors dac_default[TOTAL_DAC_SIZE];
-extern char vga_font_bitmap[4096];
-extern char vga_font_bitmap14[3584];
-extern char vga_font_bitmap8[2048];
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-int find_vmode(int mode);
-struct vstat_vmem *get_vmem(struct video_stats *vs);
-void release_vmem(struct vstat_vmem *vm);
-int load_vmode(struct video_stats *vs, int mode);
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/ciolib/win32cio.c b/ciolib/win32cio.c
deleted file mode 100644
index e1c4ac8f6bd3eba2f568ff5aaa79ce809daa3922..0000000000000000000000000000000000000000
--- a/ciolib/win32cio.c
+++ /dev/null
@@ -1,934 +0,0 @@
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <windows.h>	/* INPUT_RECORD, etc. */
-#include <genwrap.h>
-#include <stdio.h>		/* stdin */
-#if defined(_WIN32)
- #include <malloc.h>	/* alloca() on Win32 */
-#endif
-
-#include "ciolib.h"
-#include "vidmodes.h"
-#include "win32cio.h"
-
-struct keyvals {
-	int	VirtualKeyCode
-		,Key
-		,Shift
-		,CTRL
-		,ALT;
-};
-
-CIOLIBEXPORTVAR const struct keyvals keyval[] =
-{
-	{VK_BACK, 0x08, 0x08, 0x7f, 0x0e00},
-	{VK_TAB, 0x09, 0x0f00, 0x9400, 0xa500},
-	{VK_RETURN, 0x0d, 0x0d, 0x0a, 0xa600},
-	{VK_ESCAPE, 0x1b, 0x1b, 0x1b, 0x0100},
-	{VK_SPACE, 0x20, 0x20, 0x0300, 0x20,},
-	{'0', '0', ')', 0, 0x8100},
-	{'1', '1', '!', 0, 0x7800},
-	{'2', '2', '@', 0x0300, 0x7900},
-	{'3', '3', '#', 0, 0x7a00},
-	{'4', '4', '$', 0, 0x7b00},
-	{'5', '5', '%', 0, 0x7c00},
-	{'6', '6', '^', 0x1e, 0x7d00},
-	{'7', '7', '&', 0, 0x7e00},
-	{'8', '8', '*', 0, 0x7f00},
-	{'9', '9', '(', 0, 0x8000},
-	{'A', 'a', 'A', 0x01, 0x1e00},
-	{'B', 'b', 'B', 0x02, 0x3000},
-	{'C', 'c', 'C', 0x03, 0x2e00},
-	{'D', 'd', 'D', 0x04, 0x2000},
-	{'E', 'e', 'E', 0x05, 0x1200},
-	{'F', 'f', 'F', 0x06, 0x2100},
-	{'G', 'g', 'G', 0x07, 0x2200},
-	{'H', 'h', 'H', 0x08, 0x2300},
-	{'I', 'i', 'I', 0x09, 0x1700},
-	{'J', 'j', 'J', 0x0a, 0x2400},
-	{'K', 'k', 'K', 0x0b, 0x2500},
-	{'L', 'l', 'L', 0x0c, 0x2600},
-	{'M', 'm', 'M', 0x0d, 0x3200},
-	{'N', 'n', 'N', 0x0e, 0x3100},
-	{'O', 'o', 'O', 0x0f, 0x1800},
-	{'P', 'p', 'P', 0x10, 0x1900},
-	{'Q', 'q', 'Q', 0x11, 0x1000},
-	{'R', 'r', 'R', 0x12, 0x1300},
-	{'S', 's', 'S', 0x13, 0x1f00},
-	{'T', 't', 'T', 0x14, 0x1400},
-	{'U', 'u', 'U', 0x15, 0x1600},
-	{'V', 'v', 'V', 0x16, 0x2f00},
-	{'W', 'w', 'W', 0x17, 0x1100},
-	{'X', 'x', 'X', 0x18, 0x2d00},
-	{'Y', 'y', 'Y', 0x19, 0x1500},
-	{'Z', 'z', 'Z', 0x1a, 0x2c00},
-	{VK_PRIOR, 0x4900, 0x4900, 0x8400, 0x9900},
-	{VK_NEXT, 0x5100, 0x5100, 0x7600, 0xa100},
-	{VK_END, 0x4f00, 0x4f00, 0x7500, 0x9f00},
-	{VK_HOME, 0x4700, 0x4700, 0x7700, 0x9700},
-	{VK_LEFT, 0x4b00, 0x4b00, 0x7300, 0x9b00},
-	{VK_UP, 0x4800, 0x4800, 0x8d00, 0x9800},
-	{VK_RIGHT, 0x4d00, 0x4d00, 0x7400, 0x9d00},
-	{VK_DOWN, 0x5000, 0x5000, 0x9100, 0xa000},
-	{VK_INSERT, CIO_KEY_IC, CIO_KEY_SHIFT_IC, CIO_KEY_CTRL_IC, CIO_KEY_ALT_IC},
-	{VK_DELETE, CIO_KEY_DC, CIO_KEY_SHIFT_DC, CIO_KEY_CTRL_DC, CIO_KEY_CTRL_IC},
-	{VK_NUMPAD0, '0', 0x5200, 0x9200, 0},
-	{VK_NUMPAD1, '1', 0x4f00, 0x7500, 0},
-	{VK_NUMPAD2, '2', 0x5000, 0x9100, 0},
-	{VK_NUMPAD3, '3', 0x5100, 0x7600, 0},
-	{VK_NUMPAD4, '4', 0x4b00, 0x7300, 0},
-	{VK_NUMPAD5, '5', 0x4c00, 0x8f00, 0},
-	{VK_NUMPAD6, '6', 0x4d00, 0x7400, 0},
-	{VK_NUMPAD7, '7', 0x4700, 0x7700, 0},
-	{VK_NUMPAD8, '8', 0x4800, 0x8d00, 0},
-	{VK_NUMPAD9, '9', 0x4900, 0x8400, 0},
-	{VK_MULTIPLY, '*', '*', 0x9600, 0x3700},
-	{VK_ADD, '+', '+', 0x9000, 0x4e00},
-	{VK_SUBTRACT, '-', '-', 0x8e00, 0x4a00},
-	{VK_DECIMAL, '.', '.', 0x5300, 0x9300},
-	{VK_DIVIDE, '/', '/', 0x9500, 0xa400},
-	{VK_F1, 0x3b00, 0x5400, 0x5e00, 0x6800},
-	{VK_F2, 0x3c00, 0x5500, 0x5f00, 0x6900},
-	{VK_F3, 0x3d00, 0x5600, 0x6000, 0x6a00},
-	{VK_F4, 0x3e00, 0x5700, 0x6100, 0x6b00},
-	{VK_F5, 0x3f00, 0x5800, 0x6200, 0x6c00},
-	{VK_F6, 0x4000, 0x5900, 0x6300, 0x6d00},
-	{VK_F7, 0x4100, 0x5a00, 0x6400, 0x6e00},
-	{VK_F8, 0x4200, 0x5b00, 0x6500, 0x6f00},
-	{VK_F9, 0x4300, 0x5c00, 0x6600, 0x7000},
-	{VK_F10, 0x4400, 0x5d00, 0x6700, 0x7100},
-	{VK_F11, 0x8500, 0x8700, 0x8900, 0x8b00},
-	{VK_F12, 0x8600, 0x8800, 0x8a00, 0x8c00},
-	{0xdc, '\\', '|', 0x1c, 0x2b00},
-	{0xbf, '/', '?', 0, 0x3500},
-	{0xbd, '-', '_', 0x1f, 0x8200},
-	{0xbb, '=', '+', 0, 0x8300},
-	{0xdb, '[', '{', 0x1b, 0x1a00},
-	{0xdd, ']', '}', 0x1d, 0x1b00},
-	{0xba, ';', ':', 0, 0x2700},
-	{0xde, '\'', '"', 0, 0x2800},
-	{0xbc, ',', '<', 0, 0x3300},
-	{0xbe, '.', '>', 0, 0x3400},
-	{0xc0, '`', '~', 0, 0x2900},
-	{0, 0, 0, 0, 0}	/** END **/
-};
-
-/* Mouse related stuff */
-static int domouse=1;
-static DWORD last_state=0;
-static int LastX=-1, LastY=-1;
-
-static int modeidx=3;
-
-#if defined(_DEBUG)
-static void dputs(const char* str)
-{
-	char msg[1024];
-
-	SAFEPRINTF(msg,"%s\r\n",str);
-	OutputDebugString(msg);
-}
-#endif
-
-static void dprintf(const char* fmt, ...)
-{
-#if defined(_DEBUG)
-	va_list argptr;
-	char sbuf[1024];
-
-    va_start(argptr,fmt);
-    vsnprintf(sbuf,sizeof(sbuf),fmt,argptr);
-	sbuf[sizeof(sbuf)-1]=0;
-    va_end(argptr);
-    dputs(sbuf);
-#endif /* _DEBUG */
-}
-
-static WORD DOStoWinAttr(int newattr)
-{
-	WORD ret=0;
-
-	if(newattr&0x01)
-		ret|=FOREGROUND_BLUE;
-	if(newattr&0x02)
-		ret|=FOREGROUND_GREEN;
-	if(newattr&0x04)
-		ret|=FOREGROUND_RED;
-	if(newattr&0x08)
-		ret|=FOREGROUND_INTENSITY;
-	if(newattr&0x10)
-		ret|=BACKGROUND_BLUE;
-	if(newattr&0x20)
-		ret|=BACKGROUND_GREEN;
-	if(newattr&0x40)
-		ret|=BACKGROUND_RED;
-	if(newattr&0x80)
-		ret|=BACKGROUND_INTENSITY;
-	return(ret);
-}
-
-static unsigned char WintoDOSAttr(WORD newattr)
-{
-	unsigned char ret=0;
-
-	if(newattr&FOREGROUND_BLUE)
-		ret|=0x01;
-	if(newattr&FOREGROUND_GREEN)
-		ret|=0x02;
-	if(newattr&FOREGROUND_RED)
-		ret|=0x04;
-	if(newattr&FOREGROUND_INTENSITY)
-		ret|=0x08;
-	if(newattr&BACKGROUND_BLUE)
-		ret|=0x10;
-	if(newattr&BACKGROUND_GREEN)
-		ret|=0x20;
-	if(newattr&BACKGROUND_RED)
-		ret|=0x40;
-	if(newattr&BACKGROUND_INTENSITY)
-		ret|=0x80;
-	return(ret);
-}
-
-static int win32_getchcode(WORD code, DWORD state)
-{
-	int i;
-
-	for(i=0;keyval[i].Key;i++) {
-		if(keyval[i].VirtualKeyCode==code) {
-			if(state & (RIGHT_ALT_PRESSED|LEFT_ALT_PRESSED))
-				return(keyval[i].ALT);
-			if(state & (RIGHT_CTRL_PRESSED|LEFT_CTRL_PRESSED))
-				return(keyval[i].CTRL);
-			if((state & (CAPSLOCK_ON)) && isalpha(keyval[i].Key)) {
-				if(!(state & SHIFT_PRESSED))
-					return(keyval[i].Shift);
-			}
-			else {
-				if(state & (SHIFT_PRESSED))
-					return(keyval[i].Shift);
-			}
-			return(keyval[i].Key);
-		}
-	}
-	return(0);
-}
-
-static int win32_keyboardio(int isgetch)
-{
-	INPUT_RECORD input;
-	DWORD num=0;
-	HANDLE h;
-	static WORD lastch;
-
-	if((h=GetStdHandle(STD_INPUT_HANDLE)) == INVALID_HANDLE_VALUE)
-		return(0);
-
-	while(1) {
-		if(lastch) {
-			if(isgetch) {
-				BYTE ch;
-				ch=lastch&0xff;
-				lastch>>=8;
-				return(ch);
-			}
-			else
-				return(TRUE);
-		}
-
-		while(1) {
-			GetNumberOfConsoleInputEvents(h, &num);
-			if(num)
-				break;
-			if(mouse_trywait()) {
-				lastch=CIO_KEY_MOUSE;
-				break;
-			}
-			if(isgetch)
-				SLEEP(1);
-			else
-				return(FALSE);
-		}
-
-		if(lastch)
-			continue;
-
-		if(!ReadConsoleInput(h, &input, 1, &num)
-				|| !num || (input.EventType!=KEY_EVENT && input.EventType!=MOUSE_EVENT))
-			continue;
-
-		switch(input.EventType) {
-			case KEY_EVENT:
-
-#ifdef DEBUG_KEY_EVENTS
-				dprintf("KEY_EVENT: KeyDown=%u"
-					,input.Event.KeyEvent.bKeyDown);
-				dprintf("           RepeatCount=%u"
-					,input.Event.KeyEvent.wRepeatCount);
-				dprintf("           VirtualKeyCode=0x%04hX"
-					,input.Event.KeyEvent.wVirtualKeyCode);
-				dprintf("           VirtualScanCode=0x%04hX"
-					,input.Event.KeyEvent.wVirtualScanCode);
-				dprintf("           uChar.AsciiChar=0x%02X (%u)"
-					,(BYTE)input.Event.KeyEvent.uChar.AsciiChar
-					,(BYTE)input.Event.KeyEvent.uChar.AsciiChar);
-				dprintf("           ControlKeyState=0x%08lX"
-					,input.Event.KeyEvent.dwControlKeyState); 
-#endif
-
-				if(input.Event.KeyEvent.bKeyDown) {
-					/* Is this an AltGr key? */
-					if(((input.Event.KeyEvent.dwControlKeyState & (RIGHT_ALT_PRESSED|LEFT_CTRL_PRESSED)) == (RIGHT_ALT_PRESSED|LEFT_CTRL_PRESSED))
-							&& (BYTE)input.Event.KeyEvent.uChar.AsciiChar) {
-						lastch=(BYTE)input.Event.KeyEvent.uChar.AsciiChar;
-					}
-					/* Is this a modified char? */
-					else if((input.Event.KeyEvent.dwControlKeyState & (RIGHT_ALT_PRESSED|LEFT_ALT_PRESSED|RIGHT_CTRL_PRESSED|LEFT_CTRL_PRESSED|ENHANCED_KEY))
-							|| (input.Event.KeyEvent.wVirtualKeyCode >= VK_F1 && input.Event.KeyEvent.wVirtualKeyCode <= VK_F24)
-							|| !input.Event.KeyEvent.uChar.AsciiChar) {
-						lastch=win32_getchcode(input.Event.KeyEvent.wVirtualKeyCode, input.Event.KeyEvent.dwControlKeyState);
-					}
-					/* Must be a normal char then! */
-					else {
-						lastch=(BYTE)input.Event.KeyEvent.uChar.AsciiChar;
-					}
-				} else if(input.Event.KeyEvent.wVirtualKeyCode == VK_MENU)
-					lastch=(BYTE)input.Event.KeyEvent.uChar.AsciiChar;
-
-				break;
-			case MOUSE_EVENT:
-				if(domouse) {
-					if(input.Event.MouseEvent.dwMousePosition.X+1 != LastX || input.Event.MouseEvent.dwMousePosition.Y+1 != LastY) {
-						LastX=input.Event.MouseEvent.dwMousePosition.X+1;
-						LastY=input.Event.MouseEvent.dwMousePosition.Y+1;
-						ciomouse_gotevent(CIOLIB_MOUSE_MOVE,LastX,LastY, -1, -1);
-					}
-					if (input.Event.MouseEvent.dwEventFlags == 0) {
-						if(last_state != input.Event.MouseEvent.dwButtonState) {
-							switch(input.Event.MouseEvent.dwButtonState ^ last_state) {
-								case FROM_LEFT_1ST_BUTTON_PRESSED:
-									if(input.Event.MouseEvent.dwButtonState & FROM_LEFT_1ST_BUTTON_PRESSED)
-										ciomouse_gotevent(CIOLIB_BUTTON_1_PRESS,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1, -1, -1);
-									else
-										ciomouse_gotevent(CIOLIB_BUTTON_1_RELEASE,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1, -1, -1);
-									break;
-								case FROM_LEFT_2ND_BUTTON_PRESSED:
-									if(input.Event.MouseEvent.dwButtonState & FROM_LEFT_2ND_BUTTON_PRESSED)
-										ciomouse_gotevent(CIOLIB_BUTTON_2_PRESS,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1, -1, -1);
-									else
-										ciomouse_gotevent(CIOLIB_BUTTON_2_RELEASE,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1, -1, -1);
-									break;
-								case RIGHTMOST_BUTTON_PRESSED:
-									if(input.Event.MouseEvent.dwButtonState & RIGHTMOST_BUTTON_PRESSED)
-										ciomouse_gotevent(CIOLIB_BUTTON_3_PRESS,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1, -1, -1);
-									else
-										ciomouse_gotevent(CIOLIB_BUTTON_3_RELEASE,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1, -1, -1);
-									break;
-							}
-							last_state=input.Event.MouseEvent.dwButtonState;
-						}
-					}
-					else if (input.Event.MouseEvent.dwEventFlags == MOUSE_WHEELED) {
-						// If the high word of the dwButtonState member contains a positive value... ARGH!
-						if (input.Event.MouseEvent.dwButtonState & 0x80000000) {
-							ciomouse_gotevent(CIOLIB_BUTTON_5_PRESS,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1, -1, -1);
-						}
-						else {
-							ciomouse_gotevent(CIOLIB_BUTTON_4_PRESS,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1, -1, -1);
-						}
-					}
-				}
-		}
-	}
-}
-
-int win32_kbhit(void)
-{
-	return(win32_keyboardio(FALSE));
-}
-
-int win32_getch(void)
-{
-	int ret=win32_keyboardio(TRUE);
-	dprintf("win32_getch = 0x%02X (%u)", (BYTE)ret, (BYTE)ret);
-	return(ret);
-}
-
-#ifndef ENABLE_EXTENDED_FLAGS
-#define ENABLE_INSERT_MODE		0x0020
-#define ENABLE_QUICK_EDIT_MODE	0x0040
-#define ENABLE_EXTENDED_FLAGS	0x0080
-#define ENABLE_AUTO_POSITION	0x0100
-#endif
-
-static DWORD	orig_in_conmode=0;
-static DWORD	orig_out_conmode=0;
-static void *	win32_suspendbuf=NULL;
-
-#ifndef CONSOLE_FULLSCREEN_MODE
-/* SetConsoleDisplayMode parameter value */
-#define CONSOLE_FULLSCREEN_MODE	1		// Text is displayed in full-screen mode.
-#define CONSOLE_WINDOWED_MODE	2		// Text is displayed in a console window.
-#endif
-
-static DWORD	orig_display_mode=0;
-
-/*-----------------------------------------------------------------------------
-NT_SetConsoleDisplayMode - Set the console display to fullscreen or windowed.
-
-Parameters:
-    hOutputHandle - Output handle of cosole, usually 
-                        "GetStdHandle(STD_OUTPUT_HANDLE)"
-    dwNewMode - 0=windowed, 1=fullscreen
-
-Returns Values: 
-    TRUE if successful, otherwise FALSE is returned. Call GetLastError() for 
-    extened information.
-
-Remarks:
-    This only works on NT based versions of Windows.
-
-    If dwNewMode is anything other than 0 or 1, FALSE is returned and 
-    GetLastError() returns ERROR_INVALID_PARAMETER.
-    
-    If dwNewMode specfies the current mode, FALSE is returned and 
-    GetLastError() returns ERROR_INVALID_PARAMETER. Use the (documented) 
-    function GetConsoleDisplayMode() to determine the current display mode.
------------------------------------------------------------------------------*/
-BOOL NT_SetConsoleDisplayMode(HANDLE hOutputHandle, DWORD dwNewMode)
-{
-    typedef BOOL (WINAPI *SCDMProc_t) (HANDLE, DWORD, LPDWORD);
-    SCDMProc_t SetConsoleDisplayMode;
-    HMODULE hKernel32;
-    BOOL	ret;
-    const char KERNEL32_NAME[] = "kernel32.dll";
-
-    hKernel32 = LoadLibrary(KERNEL32_NAME);
-    if (hKernel32 == NULL)
-        return FALSE;
-
-    SetConsoleDisplayMode = 
-        (SCDMProc_t)GetProcAddress(hKernel32, "SetConsoleDisplayMode");
-    if (SetConsoleDisplayMode == NULL)
-    {
-        SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-        ret = FALSE;
-    }
-    else
-    {
-        DWORD dummy=0;
-        ret = SetConsoleDisplayMode(hOutputHandle, dwNewMode, &dummy);
-		dprintf("SetConsoleDisplayMode(%d) returned %d", dwNewMode, ret);
-    }
-        
-    FreeLibrary(hKernel32);
-
-	return ret;
-}
-
-BOOL NT_GetConsoleDisplayMode(DWORD* mode)
-{
-    typedef BOOL (WINAPI *GCDMProc_t) (LPDWORD);
-    GCDMProc_t GetConsoleDisplayMode;
-    HMODULE hKernel32;
-    BOOL	ret;
-    const char KERNEL32_NAME[] = "kernel32.dll";
-
-    hKernel32 = LoadLibrary(KERNEL32_NAME);
-    if (hKernel32 == NULL)
-        return FALSE;
-
-    GetConsoleDisplayMode = 
-        (GCDMProc_t)GetProcAddress(hKernel32, "GetConsoleDisplayMode");
-    if (GetConsoleDisplayMode == NULL)
-    {
-        SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
-        ret = FALSE;
-    }
-    else
-    {
-        ret = GetConsoleDisplayMode(mode);
-		dprintf("GetConsoleDisplayMode() returned %d (%d)", ret, *mode);
-    }
-        
-    FreeLibrary(hKernel32);
-
-	return ret;
-}
-
-
-void RestoreDisplayMode(void)
-{
-	if(orig_display_mode==0)
-		NT_SetConsoleDisplayMode(GetStdHandle(STD_OUTPUT_HANDLE),CONSOLE_WINDOWED_MODE);
-}
-
-void win32_suspend(void)
-{
-	HANDLE h;
-
-	if((h=GetStdHandle(STD_OUTPUT_HANDLE)) != INVALID_HANDLE_VALUE)
-		SetConsoleMode(h, orig_out_conmode);
-	if((h=GetStdHandle(STD_INPUT_HANDLE)) != INVALID_HANDLE_VALUE)
-		SetConsoleMode(h, orig_in_conmode);
-}
-
-void win32_resume(void)
-{
-	DWORD	conmode;
-	HANDLE	h;
-
-	conmode=ENABLE_MOUSE_INPUT|ENABLE_EXTENDED_FLAGS;
-	if((h=GetStdHandle(STD_INPUT_HANDLE)) != INVALID_HANDLE_VALUE)
-		SetConsoleMode(h, conmode);
-
-    conmode=orig_out_conmode;
-    conmode&=~ENABLE_PROCESSED_OUTPUT;
-    conmode&=~ENABLE_WRAP_AT_EOL_OUTPUT;
-	if((h=GetStdHandle(STD_OUTPUT_HANDLE)) != INVALID_HANDLE_VALUE)
-		SetConsoleMode(h, conmode);
-}
-
-static BOOL WINAPI ControlHandler(unsigned long CtrlType)
-{
-	return TRUE;
-}
-
-int win32_initciolib(long inmode)
-{
-	DWORD	conmode;
-	HANDLE	h;
-	CONSOLE_SCREEN_BUFFER_INFO	sbuff;
-
-	dprintf("win32_initciolib(%u)", inmode);
-	if(!isatty(fileno(stdin))) {
-		if(!AllocConsole())
-			return(0);
-	}
-
-	SetConsoleCtrlHandler(ControlHandler,TRUE);
-	if((h=GetStdHandle(STD_INPUT_HANDLE))==INVALID_HANDLE_VALUE
-		|| !GetConsoleMode(h, &orig_in_conmode))
-		return(0);
-	conmode=ENABLE_MOUSE_INPUT|ENABLE_EXTENDED_FLAGS;
-	if(!SetConsoleMode(h, conmode))
-		return(0);
-
-	if((h=GetStdHandle(STD_OUTPUT_HANDLE))==INVALID_HANDLE_VALUE
-		|| !GetConsoleMode(h, &orig_out_conmode))
-		return(0);
-	conmode=orig_out_conmode;
-	conmode&=~ENABLE_PROCESSED_OUTPUT;
-	conmode&=~ENABLE_WRAP_AT_EOL_OUTPUT;
-	if(!SetConsoleMode(h, conmode))
-		return(0);
-
-	if(GetConsoleScreenBufferInfo(h, &sbuff)==0) {
-		win32_textmode(C80);	// TODO: This likely won't work...
-	}
-	else {
-		/* Switch to closest mode to current screen size */
-		unsigned screenwidth = sbuff.srWindow.Right - sbuff.srWindow.Left + 1;
-		unsigned screenheight = sbuff.srWindow.Bottom - sbuff.srWindow.Top + 1;
-		if (screenwidth > 0xff)
-			cio_textinfo.screenwidth = 0xff;
-		else
-			cio_textinfo.screenwidth = screenwidth;
-		if (screenheight > 0xff)
-			cio_textinfo.screenheight = 0xff;
-		else
-			cio_textinfo.screenheight = screenheight;
-
-		if(cio_textinfo.screenwidth>=132) {
-			if(cio_textinfo.screenheight<25)
-				win32_textmode(VESA_132X21);
-			else if(cio_textinfo.screenheight<28)
-				win32_textmode(VESA_132X25);
-			else if(cio_textinfo.screenheight<30)
-				win32_textmode(VESA_132X28);
-			else if(cio_textinfo.screenheight<34)
-				win32_textmode(VESA_132X30);
-			else if(cio_textinfo.screenheight<43)
-				win32_textmode(VESA_132X34);
-			else if(cio_textinfo.screenheight<50)
-				win32_textmode(VESA_132X43);
-			else if(cio_textinfo.screenheight<60)
-				win32_textmode(VESA_132X50);
-			else
-				win32_textmode(VESA_132X60);
-		}
-		else if(cio_textinfo.screenwidth>=80) {
-			if(cio_textinfo.screenheight<21)
-				win32_textmode(C80X14);
-			else if(cio_textinfo.screenheight<25)
-				win32_textmode(C80X21);
-			else if(cio_textinfo.screenheight<28)
-				win32_textmode(C80);
-			else if(cio_textinfo.screenheight<43)
-				win32_textmode(C80X28);
-			else if(cio_textinfo.screenheight<50)
-				win32_textmode(C80X43);
-			else if(cio_textinfo.screenheight<60)
-				win32_textmode(C80X50);
-			else
-				win32_textmode(C80X60);
-		}
-		else {
-			if(cio_textinfo.screenheight<21)
-				win32_textmode(C40X14);
-			else if(cio_textinfo.screenheight<25)
-				win32_textmode(C40X21);
-			else if(cio_textinfo.screenheight<28)
-				win32_textmode(C40);
-			else if(cio_textinfo.screenheight<43)
-				win32_textmode(C40X28);
-			else if(cio_textinfo.screenheight<50)
-				win32_textmode(C40X43);
-			else if(cio_textinfo.screenheight<60)
-				win32_textmode(C40X50);
-			else
-				win32_textmode(C40X60);
-		}
-	}
-
-	NT_GetConsoleDisplayMode(&orig_display_mode);
-	if(inmode==CIOLIB_MODE_CONIO_FULLSCREEN) {
-		NT_SetConsoleDisplayMode(h,CONSOLE_FULLSCREEN_MODE);
-		atexit(RestoreDisplayMode);
-	}
-	cio_api.mouse=1;
-	cio_api.options = CONIO_OPT_BRIGHT_BACKGROUND | CONIO_OPT_CUSTOM_CURSOR | CONIO_OPT_SET_TITLE;
-	return(1);
-}
-
-int win32_hidemouse(void)
-{
-	/* domouse=0; */
-	return(0);
-}
-
-int win32_showmouse(void)
-{
-	/* domouse=1; */
-	return(0);
-}
-
-void win32_textmode(int mode)
-{
-	int		i;
-	HANDLE	h;
-	COORD	sz;
-	SMALL_RECT	rc;
-#if 0
-	CONSOLE_SCREEN_BUFFER_INFOEX	bi;
-#endif
-
-	for(i=0;i<NUMMODES;i++) {
-		if(vparams[i].mode==mode)
-			modeidx=i;
-	}
-	sz.X = cio_textinfo.screenwidth > vparams[modeidx].cols ? cio_textinfo.screenwidth : vparams[modeidx].cols;
-	sz.Y = cio_textinfo.screenheight > vparams[modeidx].rows ? cio_textinfo.screenheight : vparams[modeidx].rows;
-	rc.Left=0;
-	rc.Right=vparams[modeidx].cols-1;
-	rc.Top=0;
-	rc.Bottom=vparams[modeidx].rows-1;
-
-	if ((h=GetStdHandle(STD_OUTPUT_HANDLE)) == INVALID_HANDLE_VALUE)
-		return;
-	if (!SetConsoleScreenBufferSize(h,sz))
-		return;	// Note: This fails and returns here with large windows (e.g. width > 255)
-	if (!SetConsoleWindowInfo(h,TRUE,&rc))
-		return;
-	sz.X=vparams[modeidx].cols;
-	sz.Y=vparams[modeidx].rows;
-	if (!SetConsoleScreenBufferSize(h,sz))
-		return;
-
-	cio_textinfo.attribute=7;
-	cio_textinfo.normattr=7;
-	cio_textinfo.currmode=vparams[modeidx].mode;
-	cio_textinfo.screenheight=(unsigned char)sz.Y;
-	cio_textinfo.screenwidth=(unsigned char)sz.X;
-	cio_textinfo.curx=1;
-	cio_textinfo.cury=1;
-	cio_textinfo.winleft=1;
-	cio_textinfo.wintop=1;
-	cio_textinfo.winright=cio_textinfo.screenwidth;
-	cio_textinfo.winbottom=cio_textinfo.screenheight;
-#if 0
-	if (GetConsoleScreenBufferInfoEx(GetStdHandle(STD_OUTPUT_HANDLE), &bi)) {
-		for (i = 0; i < 16; i++) {
-			bi.ColorTable[] = RGB(dac_default[palettes[vparams[modeidx]][i]].red, dac_default[palettes[vparams[modeidx].palette][i]].green, dac_default[palettes[vparams[modeidx]][i]].blue);
-		}
-		if (SetConsoleScreenBufferInfoEx(GetStdHandle(STD_OUTPUT_HANDLE), &bi)) {
-			cio_api.options |= CONIO_OPT_PALETTE_SETTING;
-		}
-	}
-#endif
-}
-
-int win32_gettext(int left, int top, int right, int bottom, void* buf)
-{
-	CHAR_INFO *ci;
-	int	x;
-	int	y;
-	COORD	bs;
-	COORD	bc;
-	HANDLE	h;
-	SMALL_RECT	reg;
-	unsigned char	*bu;
-
-	bu=buf;
-	bs.X=right-left+1;
-	bs.Y=bottom-top+1;
-	bc.X=0;
-	bc.Y=0;
-	reg.Left=left-1;
-	reg.Right=right-1;
-	reg.Top=top-1;
-	reg.Bottom=bottom-1;
-	ci=(CHAR_INFO *)alloca(sizeof(CHAR_INFO)*(bs.X*bs.Y));
-	if((h=GetStdHandle(STD_OUTPUT_HANDLE)) == INVALID_HANDLE_VALUE)
-		return 0; // failure
-	ReadConsoleOutput(h,ci,bs,bc,&reg);
-	for(y=0;y<=(bottom-top);y++) {
-		for(x=0;x<=(right-left);x++) {
-			bu[((y*bs.X)+x)*2]=ci[(y*bs.X)+x].Char.AsciiChar;
-			bu[(((y*bs.X)+x)*2)+1]=WintoDOSAttr(ci[(y*bs.X)+x].Attributes);
-		}
-	}
-	return 1;
-}
-
-void win32_gotoxy(int x, int y)
-{
-	COORD	cp;
-	HANDLE	h;
-	static int curx=-1;
-	static int cury=-1;
-
-	cio_textinfo.curx=x;
-	cio_textinfo.cury=y;
-	cp.X=cio_textinfo.winleft+x-2;
-	cp.Y=cio_textinfo.wintop+y-2;
-	if(cp.X != curx || cp.Y != cury) {
-		if(!hold_update && (h=GetStdHandle(STD_OUTPUT_HANDLE)) != INVALID_HANDLE_VALUE) {
-			SetConsoleCursorPosition(h,cp);
-			curx=cp.X;
-			cury=cp.Y;
-		}
-	}
-}
-
-int win32_puttext(int left, int top, int right, int bottom, void* buf)
-{
-	CHAR_INFO *ci;
-	int	x;
-	int	y;
-	HANDLE	h;
-	COORD	bs;
-	COORD	bc;
-	SMALL_RECT	reg;
-	unsigned char	*bu;
-
-	bu=buf;
-	bs.X=right-left+1;
-	bs.Y=bottom-top+1;
-	bc.X=0;
-	bc.Y=0;
-	reg.Left=left-1;
-	reg.Right=right-1;
-	reg.Top=top-1;
-	reg.Bottom=bottom-1;
-	ci=(CHAR_INFO *)alloca(sizeof(CHAR_INFO)*(bs.X*bs.Y));
-	for(y=0;y<bs.Y;y++) {
-		for(x=0;x<bs.X;x++) {
-			ci[(y*bs.X)+x].Char.AsciiChar=bu[((y*bs.X)+x)*2];
-			ci[(y*bs.X)+x].Attributes=DOStoWinAttr(bu[(((y*bs.X)+x)*2)+1]);
-		}
-	}
-	if((h=GetStdHandle(STD_OUTPUT_HANDLE)) != INVALID_HANDLE_VALUE)
-		WriteConsoleOutput(h,ci,bs,bc,&reg);
-	return 1;
-}
-
-void win32_setcursortype(int type)
-{
-	HANDLE h;
-	CONSOLE_CURSOR_INFO	ci;
-
-	switch(type) {
-		case _NOCURSOR:
-			ci.bVisible=FALSE;
-			ci.dwSize=1;
-			break;
-		
-		case _SOLIDCURSOR:
-			ci.bVisible=TRUE;
-			ci.dwSize=99;
-			break;
-		
-		default:	/* Normal cursor */
-			ci.bVisible=TRUE;
-			ci.dwSize=13;
-			break;
-	}
-	if((h=GetStdHandle(STD_OUTPUT_HANDLE)) != INVALID_HANDLE_VALUE)
-		SetConsoleCursorInfo(h,&ci);
-}
-
-void win32_settitle(const char *title)
-{
-	SetConsoleTitle(title);
-}
-
-void win32_copytext(const char *text, size_t buflen)
-{
-	HGLOBAL	clipbuf;
-	LPWSTR	clip;
-	int new_buflen = MultiByteToWideChar(CP_UTF8, 0, text, buflen, NULL, 0);
-
-	new_buflen = MultiByteToWideChar(CP_UTF8, 0, text, buflen, NULL, 0);
-	if (new_buflen == 0) {
-		return;
-	}
-	clipbuf=GlobalAlloc(GMEM_MOVEABLE, new_buflen * sizeof(WCHAR));
-	if (clipbuf == NULL) {
-		return;
-	}
-	clip=GlobalLock(clipbuf);
-	if (MultiByteToWideChar(CP_UTF8, 0, text, buflen, clip, new_buflen) != new_buflen) {
-		GlobalUnlock(clipbuf);
-		GlobalFree(clipbuf);
-		return;
-	}
-	GlobalUnlock(clipbuf);
-	if(!OpenClipboard(NULL)) {
-		GlobalFree(clipbuf);
-		return;
-	}
-	EmptyClipboard();
-	if (SetClipboardData(CF_UNICODETEXT, clipbuf) == NULL) {
-		GlobalFree(clipbuf);
-	}
-	CloseClipboard();
-}
-
-char *win32_getcliptext(void)
-{
-	HGLOBAL	clipbuf;
-	LPWSTR	clip;
-	char *ret = NULL;
-	int u8sz;
-
-	if (!IsClipboardFormatAvailable(CF_UNICODETEXT))
-		return(NULL);
-	if (!OpenClipboard(NULL))
-		return(NULL);
-	clipbuf = GetClipboardData(CF_UNICODETEXT);
-	if (clipbuf != NULL) {
-		clip = GlobalLock(clipbuf);
-		if (clip != NULL) {
-			u8sz = WideCharToMultiByte(CP_UTF8, 0, clip, -1, NULL, 0, NULL, NULL);
-			if (u8sz > 0) {
-				ret = (char *)malloc(u8sz);
-				if(ret != NULL) {
-					if (WideCharToMultiByte(CP_UTF8, 0, clip, -1, ret, u8sz, NULL, NULL) == 0)
-						FREE_AND_NULL(ret);
-				}
-			}
-			GlobalUnlock(clipbuf);
-		}
-	}
-	CloseClipboard();
-
-	return(ret);
-}
-
-void win32_getcustomcursor(int *s, int *e, int *r, int *b, int *v)
-{
-	CONSOLE_CURSOR_INFO	ci;
-	HANDLE				h;
-
-	if((h=GetStdHandle(STD_INPUT_HANDLE)) == INVALID_HANDLE_VALUE)
-		return;
-
-	GetConsoleCursorInfo(h, &ci);
-	if(s)
-		*s=100-ci.dwSize;
-	if(e)
-		*e=99;
-	if(r)
-		*r=100;
-	if(b)
-		*b=1;
-	if(v)
-		*v=ci.bVisible?1:0;
-}
-
-void win32_setcustomcursor(int s, int e, int r, int b, int v)
-{
-	CONSOLE_CURSOR_INFO	ci;
-	HANDLE				h;
-
-	if((h=GetStdHandle(STD_INPUT_HANDLE)) == INVALID_HANDLE_VALUE)
-		return;
-
-	ci.bVisible=v;
-	if(e>s)
-		ci.bVisible=0;
-	else {
-		if(r>0)
-			ci.dwSize=(1+e-s)/r;
-		else
-			ci.dwSize=100;
-	}
-}
-
-int win32_getvideoflags(void)
-{
-	DWORD	mode;
-
-	if(!NT_GetConsoleDisplayMode(&mode))
-		return(CIOLIB_VIDEO_BGBRIGHT);
-	if(mode==CONSOLE_FULLSCREEN_MODE)
-		return(0);
-	return(CIOLIB_VIDEO_BGBRIGHT);
-}
-
-int win32_setpalette(uint32_t entry, uint16_t r, uint16_t g, uint16_t b)
-{
-#if 0
-	CONSOLE_SCREEN_BUFFER_INFOEX	bi;
-
-	if (entry > 15)
-		return 0;
-
-	if (!GetConsoleScreenBufferInfoEx(GetStdHandle(STD_OUTPUT_HANDLE), &bi))
-		return 0;
-
-	bi.ColorTable[entry] = RGB(r >> 8, g >> 8, b >> 8);
-	if (!SetConsoleScreenBufferInfoEx(GetStdHandle(STD_OUTPUT_HANDLE), &bi))
-		return 0;
-#endif
-
-	return 1;
-}
diff --git a/ciolib/win32cio.h b/ciolib/win32cio.h
deleted file mode 100644
index 79ad4be9b0f31a243f711d60ee2175a383c16c76..0000000000000000000000000000000000000000
--- a/ciolib/win32cio.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* $Id: win32cio.h,v 1.15 2018/07/24 01:10:58 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _WIN32CIO_H_
-#define _WIN32CIO_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-int win32_kbhit(void);
-int win32_getch(void);
-int win32_getmouse(struct cio_mouse_event *mevent);
-int win32_hidemouse(void);
-int win32_showmouse(void);
-
-int	win32_gettext(int left, int top, int right, int bottom, void*);
-void	win32_gotoxy(int x, int y);
-int	win32_puttext(int left, int top, int right, int bottom, void*);
-void	win32_textmode(int newmode);
-void	win32_setcursortype(int);
-int	win32_getch(void);
-int	win32_kbhit(void);
-void	win32_settitle(const char *title);
-int	win32_initciolib(long inmode);
-void win32_copytext(const char *text, size_t buflen);
-char *win32_getcliptext(void);
-void	win32_suspend(void);
-void	win32_resume(void);
-void win32_getcustomcursor(int *s, int *e, int *r, int *b, int *v);
-void win32_setcustomcursor(int s, int e, int r, int b, int v);
-int win32_getvideoflags(void);
-int win32_setpalette(uint32_t entry, uint16_t r, uint16_t g, uint16_t b);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/ciolib/x_cio.c b/ciolib/x_cio.c
deleted file mode 100644
index 1146a65d4a6512401bc22045095e5508bb74b7c6..0000000000000000000000000000000000000000
--- a/ciolib/x_cio.c
+++ /dev/null
@@ -1,558 +0,0 @@
-/* $Id: x_cio.c,v 1.56 2020/05/07 20:26:51 deuce Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <locale.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-
-#include <threadwrap.h>
-#include <xp_dl.h>
-
-#if (defined CIOLIB_IMPORTS)
- #undef CIOLIB_IMPORTS
-#endif
-#if (defined CIOLIB_EXPORTS)
- #undef CIOLIB_EXPORTS
-#endif
-
-#include "ciolib.h"
-#include "x_cio.h"
-#include "x_events.h"
-
-#define BITMAP_CIOLIB_DRIVER
-#include "bitmap_con.h"
-
-int x_kbhit(void)
-{
-	fd_set	rfd;
-	struct timeval tv;
-
-	memset(&tv, 0, sizeof(tv));
-	FD_ZERO(&rfd);
-	FD_SET(key_pipe[0], &rfd);
-	return(select(key_pipe[0]+1, &rfd, NULL, NULL, &tv)==1);
-}
-
-int x_getch(void)
-{
-	unsigned char ch;
-
-	while(read(key_pipe[0], &ch, 1)!=1);
-	return(ch);
-}
-
-static void write_event(struct x11_local_event *ev)
-{
-	size_t sent = 0;
-	char *buf = (char *)ev;
-	fd_set	wfd;
-	int rv;
-
-	FD_ZERO(&wfd);
-	FD_SET(local_pipe[1], &wfd);
-
-	while (sent < sizeof(*ev)) {
-		select(local_pipe[1]+1, NULL, &wfd, NULL, NULL);
-		rv = write(local_pipe[1], buf + sent, sizeof(*ev) - sent);
-		if (rv > 0)
-			sent += rv;
-	}
-}
-
-void x_beep(void)
-{
-	struct x11_local_event ev = {0};
-
-	ev.type=X11_LOCAL_BEEP;
-	write_event(&ev);
-}
-
-void x_textmode(int mode)
-{
-	struct x11_local_event ev = {0};
-
-	ev.type=X11_LOCAL_SETMODE;
-	ev.data.mode = mode;
-	write_event(&ev);
-	sem_wait(&mode_set);
-}
-
-void x_setname(const char *name)
-{
-	struct x11_local_event ev = {0};
-
-	ev.type=X11_LOCAL_SETNAME;
-	SAFECOPY(ev.data.name, name);
-	write_event(&ev);
-}
-
-void x_settitle(const char *title)
-{
-	struct x11_local_event ev = {0};
-
-	ev.type=X11_LOCAL_SETTITLE;
-	SAFECOPY(ev.data.title, title);
-	write_event(&ev);
-}
-
-void x_seticon(const void *icon, unsigned long size)
-{
-	const uint32_t *icon32 = icon;
-	struct x11_local_event ev = {0};
-	int i;
-
-	ev.data.icon_data = malloc((size*size + 2)*sizeof(ev.data.icon_data[0]));
-	if (ev.data.icon_data != NULL) {
-		ev.type=X11_LOCAL_SETICON;
-		for (i = 0; i < size*size; i++)
-			ev.data.icon_data[i + 2] = ((icon32[i] & 0xff000000))|((icon32[i] & 0x00ff0000) >> 16)|((icon32[i] & 0x0000ff00))|((icon32[i] & 0x000000ff)<<16);
-		ev.data.icon_data[0] = size;
-		ev.data.icon_data[1] = size;
-		write_event(&ev);
-	}
-}
-
-void x_copytext(const char *text, size_t buflen)
-{
-	struct x11_local_event ev = {0};
-
-	pthread_mutex_lock(&copybuf_mutex);
-	FREE_AND_NULL(copybuf);
-
-	copybuf=strdup(text);
-	if(copybuf) {
-		ev.type=X11_LOCAL_COPY;
-		write_event(&ev);
-		copybuf_format = XA_STRING;
-	}
-	pthread_mutex_unlock(&copybuf_mutex);
-	return;
-}
-
-char *x_getcliptext(void)
-{
-	char *ret=NULL;
-	struct x11_local_event ev = {0};
-
-	ev.type=X11_LOCAL_PASTE;
-	write_event(&ev);
-	sem_wait(&pastebuf_set);
-	if(pastebuf!=NULL)
-		ret=strdup(pastebuf);
-	sem_post(&pastebuf_used);
-	return(ret);
-}
-
-int x_get_window_info(int *width, int *height, int *xpos, int *ypos)
-{
-	if(width)
-		*width=x11_window_width;
-	if(height)
-		*height=x11_window_height;
-	if(xpos)
-		*xpos=x11_window_xpos;
-	if(ypos)
-		*ypos=x11_window_ypos;
-	
-	return(1);
-}
-
-/* Mouse event/keyboard thread */
-void x11_mouse_thread(void *data)
-{
-	//uint16_t	key=((CIO_KEY_MOUSE&0xFF)<<8)|((CIO_KEY_MOUSE>>8)&0xFF);
-	uint16_t	key=CIO_KEY_MOUSE;
-
-	SetThreadName("X11 Mouse");
-	while(1) {
-		if(mouse_wait())
-			write(key_pipe[1], &key, 2);
-	}
-}
-
-int x_init(void)
-{
-	dll_handle	dl;
-	const char *libnames[]={"X11",NULL};
-	Status (*xit)(void);
-
-	/* Ensure we haven't already initialized */
-	if(x11_initialized)
-		return(0);
-
-	/* Set up the pipe for local events */
-	if(pipe(local_pipe))
-		return(-1);
-
-	/* And the keyboard pipe */
-	if(pipe(key_pipe))
-		return(-1);
-
-	/* Load X11 functions */
-	if((dl=xp_dlopen(libnames,RTLD_LAZY,7))==NULL)
-		return(-1);
-	if((xit=xp_dlsym(dl,XInitThreads))!=NULL)
-		xit();
-	if((x11.XChangeGC=xp_dlsym(dl,XChangeGC))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XCopyPlane=xp_dlsym(dl,XCopyPlane))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XFillRectangle=xp_dlsym(dl,XFillRectangle))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XDrawPoint=xp_dlsym(dl,XDrawPoint))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XFlush=xp_dlsym(dl,XFlush))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XSync=xp_dlsym(dl,XSync))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XBell=xp_dlsym(dl,XBell))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XLookupString=xp_dlsym(dl,XLookupString))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XNextEvent=xp_dlsym(dl,XNextEvent))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XAllocSizeHints=xp_dlsym(dl,XAllocSizeHints))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XSetWMNormalHints=xp_dlsym(dl,XSetWMNormalHints))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XResizeWindow=xp_dlsym(dl,XResizeWindow))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XMapWindow=xp_dlsym(dl,XMapWindow))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XFree=xp_dlsym(dl,XFree))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XFreePixmap=xp_dlsym(dl,XFreePixmap))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XCreatePixmap=xp_dlsym(dl,XCreatePixmap))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XCopyArea=xp_dlsym(dl,XCopyArea))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XCreateBitmapFromData=xp_dlsym(dl,XCreateBitmapFromData))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XAllocColor=xp_dlsym(dl,XAllocColor))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XOpenDisplay=xp_dlsym(dl,XOpenDisplay))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XCloseDisplay=xp_dlsym(dl,XCloseDisplay))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XCreateSimpleWindow=xp_dlsym(dl,XCreateSimpleWindow))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XCreateGC=xp_dlsym(dl,XCreateGC))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XSelectInput=xp_dlsym(dl,XSelectInput))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XStoreName=xp_dlsym(dl,XStoreName))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XGetSelectionOwner=xp_dlsym(dl,XGetSelectionOwner))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XConvertSelection=xp_dlsym(dl,XConvertSelection))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XGetWindowProperty=xp_dlsym(dl,XGetWindowProperty))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XChangeProperty=xp_dlsym(dl,XChangeProperty))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XSendEvent=xp_dlsym(dl,XSendEvent))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XPutImage=xp_dlsym(dl,XPutImage))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-#ifndef XDestroyImage
-	if((x11.XDestroyImage=xp_dlsym(dl,XDestroyImage))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-#endif
-#ifndef XPutPixel
-	if((x11.XPutPixel=xp_dlsym(dl,XPutPixel))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-#endif
-	if((x11.XCreateImage=xp_dlsym(dl,XCreateImage))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XSetSelectionOwner=xp_dlsym(dl,XSetSelectionOwner))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XSetIconName=xp_dlsym(dl,XSetIconName))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XSynchronize=xp_dlsym(dl,XSynchronize))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XGetWindowAttributes=xp_dlsym(dl,XGetWindowAttributes))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XAllocWMHints=xp_dlsym(dl,XAllocWMHints))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XSetWMProperties=xp_dlsym(dl,XSetWMProperties))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XSetWMProtocols=xp_dlsym(dl,XSetWMProtocols))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XInternAtom=xp_dlsym(dl,XInternAtom))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XFreeColors=xp_dlsym(dl,XFreeColors))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XGetVisualInfo=xp_dlsym(dl,XGetVisualInfo))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XCreateWindow=xp_dlsym(dl,XCreateWindow))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XCreateColormap=xp_dlsym(dl,XCreateColormap))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XAllocClassHint=xp_dlsym(dl,XAllocClassHint))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XSetForeground=xp_dlsym(dl,XSetForeground))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XSetLocaleModifiers=xp_dlsym(dl,XSetLocaleModifiers))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XOpenIM=xp_dlsym(dl,XOpenIM))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XCreateIC=xp_dlsym(dl,XCreateIC))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XwcLookupString=xp_dlsym(dl,XwcLookupString))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XSetICFocus=xp_dlsym(dl,XSetICFocus))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XFilterEvent=xp_dlsym(dl,XFilterEvent))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XCreateFontCursor=xp_dlsym(dl,XCreateFontCursor))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XDefineCursor=xp_dlsym(dl,XDefineCursor))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if((x11.XFreeCursor=xp_dlsym(dl,XFreeCursor))==NULL) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	setlocale(LC_ALL, "");
-	x11.XSetLocaleModifiers("@im=none");
-
-	if(sem_init(&pastebuf_set, 0, 0)) {
-		xp_dlclose(dl);
-		return(-1);
-	}
-	if(sem_init(&pastebuf_used, 0, 0)) {
-		xp_dlclose(dl);
-		sem_destroy(&pastebuf_set);
-		return(-1);
-	}
-	if(sem_init(&init_complete, 0, 0)) {
-		xp_dlclose(dl);
-		sem_destroy(&pastebuf_set);
-		sem_destroy(&pastebuf_used);
-		return(-1);
-	}
-	if(sem_init(&mode_set, 0, 0)) {
-		xp_dlclose(dl);
-		sem_destroy(&pastebuf_set);
-		sem_destroy(&pastebuf_used);
-		sem_destroy(&init_complete);
-		return(-1);
-	}
-
-	if(pthread_mutex_init(&copybuf_mutex, 0)) {
-		xp_dlclose(dl);
-		sem_destroy(&pastebuf_set);
-		sem_destroy(&pastebuf_used);
-		sem_destroy(&init_complete);
-		sem_destroy(&mode_set);
-		return(-1);
-	}
-
-	_beginthread(x11_event_thread,1<<16,NULL);
-	sem_wait(&init_complete);
-	if(!x11_initialized) {
-		xp_dlclose(dl);
-		sem_destroy(&pastebuf_set);
-		sem_destroy(&pastebuf_used);
-		sem_destroy(&init_complete);
-		sem_destroy(&mode_set);
-		pthread_mutex_destroy(&copybuf_mutex);
-		return(-1);
-	}
-	_beginthread(x11_mouse_thread,1<<16,NULL);
-	cio_api.options |= CONIO_OPT_SET_TITLE | CONIO_OPT_SET_NAME | CONIO_OPT_SET_ICON;
-	return(0);
-}
-
-void x11_drawrect(struct rectlist *data)
-{
-	struct x11_local_event ev = {0};
-
-	ev.type=X11_LOCAL_DRAWRECT;
-	if(x11_initialized) {
-		ev.data.rect=data;
-		write_event(&ev);
-	}
-}
-
-void x11_flush(void)
-{
-	struct x11_local_event ev = {0};
-
-	ev.type=X11_LOCAL_FLUSH;
-	if(x11_initialized)
-		write_event(&ev);
-}
-
-void x_setscaling(int newval)
-{
-	if (newval < 1)
-		newval = 1;
-	pthread_mutex_lock(&vstatlock);
-	x_cvstat.scaling = vstat.scaling = newval;
-	pthread_mutex_unlock(&vstatlock);
-}
-
-int x_getscaling(void)
-{
-	return x_cvstat.scaling;
-}
-
-int x_mousepointer(enum ciolib_mouse_ptr type)
-{
-	struct x11_local_event ev = {0};
-
-	ev.type=X11_LOCAL_MOUSEPOINTER;
-	if(x11_initialized) {
-		ev.data.ptr=type;
-		write_event(&ev);
-		return 1;
-	}
-	return 0;
-}
diff --git a/ciolib/x_cio.h b/ciolib/x_cio.h
deleted file mode 100644
index 158d052d33f59fd9de8aeb056e5cabe3afd26eaf..0000000000000000000000000000000000000000
--- a/ciolib/x_cio.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/* $Id: x_cio.h,v 1.27 2020/05/07 20:26:51 deuce Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifdef __unix__
-#if (defined CIOLIB_IMPORTS)
- #undef CIOLIB_IMPORTS
-#endif
-#if (defined CIOLIB_EXPORTS)
- #undef CIOLIB_EXPORTS
-#endif
-
-#include "ciolib.h"
-#include "bitmap_con.h"
-#include "x_events.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-int x_puttext(int sx, int sy, int ex, int ey, void *fill);
-int x_gettext(int sx, int sy, int ex, int ey, void *fill);
-void x_textattr(int attr);
-int x_kbhit(void);
-void x_delay(long msec);
-int x_wherey(void);
-int x_wherex(void);
-int x_putch(int ch);
-void x_gotoxy(int x, int y);
-int x_init(void);
-void x_initciolib(long inmode);
-void x_gettextinfo(struct text_info *info);
-void x_setcursortype(int type);
-int x_getch(void);
-int x_getche(void);
-void x_beep(void);
-void x_textmode(int mode);
-void x_setname(const char *name);
-void x_settitle(const char *title);
-void x_copytext(const char *text, size_t buflen);
-char *x_getcliptext(void);
-int x_setfont(int font, int force);
-int x_getfont(void);
-int x_loadfont(char *filename);
-int x_get_window_info(int *width, int *height, int *xpos, int *ypos);
-void x11_drawrect(struct rectlist *data);
-void x11_flush(void);
-void x_setscaling(int newval);
-int x_getscaling(void);
-void x_seticon(const void *icon, unsigned long size);
-int x_mousepointer(enum ciolib_mouse_ptr type);
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/ciolib/x_events.c b/ciolib/x_events.c
deleted file mode 100644
index bd8d1c840a04266be98b09136fb23d84cddb1e5d..0000000000000000000000000000000000000000
--- a/ciolib/x_events.c
+++ /dev/null
@@ -1,1364 +0,0 @@
-/*
- * This file contains ONLY the functions that are called from the
- * event thread.
- */
- 
-#include <math.h>
-#include <unistd.h>
-#include <stdbool.h>
-
-#include <fcntl.h>
-#include <limits.h>
-#include <locale.h>
-#include <stdio.h>
-
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#include <X11/keysym.h>
-#include <X11/Xatom.h>
-#include <X11/cursorfont.h>
-
-#include <threadwrap.h>
-#include <genwrap.h>
-#include <dirwrap.h>
-
-#include "vidmodes.h"
-
-#include "ciolib.h"
-#define BITMAP_CIOLIB_DRIVER
-#include "bitmap_con.h"
-#include "link_list.h"
-#include "scale.h"
-#include "x_events.h"
-#include "x_cio.h"
-#include "utf8_codepages.h"
-
-/*
- * Exported variables 
- */
-
-int local_pipe[2];			/* Used for passing local events */
-int key_pipe[2];			/* Used for passing keyboard events */
-
-struct x11 x11;
-
-char 	*copybuf;
-pthread_mutex_t	copybuf_mutex;
-char 	*pastebuf;
-sem_t	pastebuf_set;
-sem_t	pastebuf_used;
-sem_t	init_complete;
-sem_t	mode_set;
-int x11_window_xpos;
-int x11_window_ypos;
-int x11_window_width;
-int x11_window_height;
-int x11_initialized=0;
-sem_t	event_thread_complete;
-int	terminate = 0;
-Atom	copybuf_format;
-Atom	pastebuf_format;
-
-/*
- * Local variables
- */
-
-/* Sets the atom to be used for copy/paste operations */
-#define CONSOLE_CLIPBOARD	XA_PRIMARY
-static Atom WM_DELETE_WINDOW=0;
-
-static Display *dpy=NULL;
-static Window win;
-static Cursor curs = None;
-static Visual visual;
-static bool VisualIsRGB8 = false;
-static XImage *xim;
-static XIM im;
-static XIC ic;
-static unsigned int depth=0;
-static int xfd;
-static unsigned long black;
-static unsigned long white;
-static int bitmap_width=0;
-static int bitmap_height=0;
-static int old_scaling = 0;
-struct video_stats x_cvstat;
-static unsigned long base_pixel;
-static int r_shift;
-static int g_shift;
-static int b_shift;
-static struct graphics_buffer *last = NULL;
-
-/* Array of Graphics Contexts */
-static GC gc;
-
-static WORD Ascii2Scan[] = {
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0x000e, 0x000f, 0xffff, 0xffff, 0xffff, 0x001c, 0xffff, 0xffff,
- 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
- 0xffff, 0xffff, 0xffff, 0x0001, 0xffff, 0xffff, 0xffff, 0xffff,
- 0x0039, 0x0102, 0x0128, 0x0104, 0x0105, 0x0106, 0x0108, 0x0028,
- 0x010a, 0x010b, 0x0109, 0x010d, 0x0033, 0x000c, 0x0034, 0x0035,
- 0x000b, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008,
- 0x0009, 0x000a, 0x0127, 0x0027, 0x0133, 0x000d, 0x0134, 0x0135,
- 0x0103, 0x011e, 0x0130, 0x012e, 0x0120, 0x0112, 0x0121, 0x0122,
- 0x0123, 0x0117, 0x0124, 0x0125, 0x0126, 0x0132, 0x0131, 0x0118,
- 0x0119, 0x0110, 0x0113, 0x011f, 0x0114, 0x0116, 0x012f, 0x0111,
- 0x012d, 0x0115, 0x012c, 0x001a, 0x002b, 0x001b, 0x0107, 0x010c,
- 0x0029, 0x001e, 0x0030, 0x002e, 0x0020, 0x0012, 0x0021, 0x0022,
- 0x0023, 0x0017, 0x0024, 0x0025, 0x0026, 0x0032, 0x0031, 0x0018,
- 0x0019, 0x0010, 0x0013, 0x001f, 0x0014, 0x0016, 0x002f, 0x0011,
- 0x002d, 0x0015, 0x002c, 0x011a, 0x012b, 0x011b, 0x0129, 0xffff,
-};
-
-static struct {
-    WORD	base;
-    WORD	shift;
-    WORD	ctrl;
-    WORD	alt;
-} ScanCodes[] = {
-    {	0xffff, 0xffff, 0xffff, 0xffff }, /* key  0 */
-    {	0x011b, 0x011b, 0x011b, 0xffff }, /* key  1 - Escape key */
-    {	0x0231, 0x0221, 0xffff, 0x7800 }, /* key  2 - '1' */
-    {	0x0332, 0x0340, 0x0300, 0x7900 }, /* key  3 - '2' - special handling */
-    {	0x0433, 0x0423, 0xffff, 0x7a00 }, /* key  4 - '3' */
-    {	0x0534, 0x0524, 0xffff, 0x7b00 }, /* key  5 - '4' */
-    {	0x0635, 0x0625, 0xffff, 0x7c00 }, /* key  6 - '5' */
-    {	0x0736, 0x075e, 0x071e, 0x7d00 }, /* key  7 - '6' */
-    {	0x0837, 0x0826, 0xffff, 0x7e00 }, /* key  8 - '7' */
-    {	0x0938, 0x092a, 0xffff, 0x7f00 }, /* key  9 - '8' */
-    {	0x0a39, 0x0a28, 0xffff, 0x8000 }, /* key 10 - '9' */
-    {	0x0b30, 0x0b29, 0xffff, 0x8100 }, /* key 11 - '0' */
-    {	0x0c2d, 0x0c5f, 0x0c1f, 0x8200 }, /* key 12 - '-' */
-    {	0x0d3d, 0x0d2b, 0xffff, 0x8300 }, /* key 13 - '=' */
-    {	0x0e08, 0x0e08, 0x0e7f, 0xffff }, /* key 14 - backspace */
-    {	0x0f09, 0x0f00, 0xffff, 0xffff }, /* key 15 - tab */
-    {	0x1071, 0x1051, 0x1011, 0x1000 }, /* key 16 - 'Q' */
-    {	0x1177, 0x1157, 0x1117, 0x1100 }, /* key 17 - 'W' */
-    {	0x1265, 0x1245, 0x1205, 0x1200 }, /* key 18 - 'E' */
-    {	0x1372, 0x1352, 0x1312, 0x1300 }, /* key 19 - 'R' */
-    {	0x1474, 0x1454, 0x1414, 0x1400 }, /* key 20 - 'T' */
-    {	0x1579, 0x1559, 0x1519, 0x1500 }, /* key 21 - 'Y' */
-    {	0x1675, 0x1655, 0x1615, 0x1600 }, /* key 22 - 'U' */
-    {	0x1769, 0x1749, 0x1709, 0x1700 }, /* key 23 - 'I' */
-    {	0x186f, 0x184f, 0x180f, 0x1800 }, /* key 24 - 'O' */
-    {	0x1970, 0x1950, 0x1910, 0x1900 }, /* key 25 - 'P' */
-    {	0x1a5b, 0x1a7b, 0x1a1b, 0xffff }, /* key 26 - '[' */
-    {	0x1b5d, 0x1b7d, 0x1b1d, 0xffff }, /* key 27 - ']' */
-    {	0x1c0d, 0x1c0d, 0x1c0a, 0xffff }, /* key 28 - CR */
-    {	0xffff, 0xffff, 0xffff, 0xffff }, /* key 29 - control */
-    {	0x1e61, 0x1e41, 0x1e01, 0x1e00 }, /* key 30 - 'A' */
-    {	0x1f73, 0x1f53, 0x1f13, 0x1f00 }, /* key 31 - 'S' */
-    {	0x2064, 0x2044, 0x2004, 0x2000 }, /* key 32 - 'D' */
-    {	0x2166, 0x2146, 0x2106, 0x2100 }, /* key 33 - 'F' */
-    {	0x2267, 0x2247, 0x2207, 0x2200 }, /* key 34 - 'G' */
-    {	0x2368, 0x2348, 0x2308, 0x2300 }, /* key 35 - 'H' */
-    {	0x246a, 0x244a, 0x240a, 0x2400 }, /* key 36 - 'J' */
-    {	0x256b, 0x254b, 0x250b, 0x2500 }, /* key 37 - 'K' */
-    {	0x266c, 0x264c, 0x260c, 0x2600 }, /* key 38 - 'L' */
-    {	0x273b, 0x273a, 0xffff, 0xffff }, /* key 39 - ';' */
-    {	0x2827, 0x2822, 0xffff, 0xffff }, /* key 40 - ''' */
-    {	0x2960, 0x297e, 0xffff, 0xffff }, /* key 41 - '`' */
-    {	0xffff, 0xffff, 0xffff, 0xffff }, /* key 42 - left shift */
-    {	0x2b5c, 0x2b7c, 0x2b1c, 0xffff }, /* key 43 - '' */
-    {	0x2c7a, 0x2c5a, 0x2c1a, 0x2c00 }, /* key 44 - 'Z' */
-    {	0x2d78, 0x2d58, 0x2d18, 0x2d00 }, /* key 45 - 'X' */
-    {	0x2e63, 0x2e43, 0x2e03, 0x2e00 }, /* key 46 - 'C' */
-    {	0x2f76, 0x2f56, 0x2f16, 0x2f00 }, /* key 47 - 'V' */
-    {	0x3062, 0x3042, 0x3002, 0x3000 }, /* key 48 - 'B' */
-    {	0x316e, 0x314e, 0x310e, 0x3100 }, /* key 49 - 'N' */
-    {	0x326d, 0x324d, 0x320d, 0x3200 }, /* key 50 - 'M' */
-    {	0x332c, 0x333c, 0xffff, 0xffff }, /* key 51 - ',' */
-    {	0x342e, 0x343e, 0xffff, 0xffff }, /* key 52 - '.' */
-    {	0x352f, 0x353f, 0xffff, 0xffff }, /* key 53 - '/' */
-    {	0xffff, 0xffff, 0xffff, 0xffff }, /* key 54 - right shift - */
-    {	0x372a, 0xffff, 0x3772, 0xffff }, /* key 55 - prt-scr - */
-    {	0xffff, 0xffff, 0xffff, 0xffff }, /* key 56 - Alt - */
-    {	0x3920, 0x3920, 0x3920, 0x3920 }, /* key 57 - space bar */
-    {	0xffff, 0xffff, 0xffff, 0xffff }, /* key 58 - caps-lock -  */
-    {	0x3b00, 0x5400, 0x5e00, 0x6800 }, /* key 59 - F1 */
-    {	0x3c00, 0x5500, 0x5f00, 0x6900 }, /* key 60 - F2 */
-    {	0x3d00, 0x5600, 0x6000, 0x6a00 }, /* key 61 - F3 */
-    {	0x3e00, 0x5700, 0x6100, 0x6b00 }, /* key 62 - F4 */
-    {	0x3f00, 0x5800, 0x6200, 0x6c00 }, /* key 63 - F5 */
-    {	0x4000, 0x5900, 0x6300, 0x6d00 }, /* key 64 - F6 */
-    {	0x4100, 0x5a00, 0x6400, 0x6e00 }, /* key 65 - F7 */
-    {	0x4200, 0x5b00, 0x6500, 0x6f00 }, /* key 66 - F8 */
-    {	0x4300, 0x5c00, 0x6600, 0x7000 }, /* key 67 - F9 */
-    {	0x4400, 0x5d00, 0x6700, 0x7100 }, /* key 68 - F10 */
-    {	0xffff, 0xffff, 0xffff, 0xffff }, /* key 69 - num-lock - */
-    {	0xffff, 0xffff, 0xffff, 0xffff }, /* key 70 - scroll-lock -  */
-    {	0x4700, 0x4737, 0x7700, 0xffff }, /* key 71 - home */
-    {	0x4800, 0x4838, 0x8d00, 0x9800 }, /* key 72 - cursor up */
-    {	0x4900, 0x4939, 0x8400, 0xffff }, /* key 73 - page up */
-    {	0x4a2d, 0x4a2d, 0xffff, 0xffff }, /* key 74 - minus sign */
-    {	0x4b00, 0x4b34, 0x7300, 0xffff }, /* key 75 - cursor left */
-    {	0xffff, 0x4c35, 0xffff, 0xffff }, /* key 76 - center key */
-    {	0x4d00, 0x4d36, 0x7400, 0xffff }, /* key 77 - cursor right */
-    {	0x4e2b, 0x4e2b, 0xffff, 0xffff }, /* key 78 - plus sign */
-    {	0x4f00, 0x4f31, 0x7500, 0xffff }, /* key 79 - end */
-    {	0x5000, 0x5032, 0x9100, 0xa000 }, /* key 80 - cursor down */
-    {	0x5100, 0x5133, 0x7600, 0xffff }, /* key 81 - page down */
-    {	CIO_KEY_IC, CIO_KEY_SHIFT_IC, CIO_KEY_CTRL_IC, CIO_KEY_ALT_IC}, /* key 82 - insert */
-    {	CIO_KEY_DC, CIO_KEY_SHIFT_DC, CIO_KEY_CTRL_DC, CIO_KEY_ALT_IC}, /* key 83 - delete */
-    {	0xffff, 0xffff, 0xffff, 0xffff }, /* key 84 - sys key */
-    {	0xffff, 0xffff, 0xffff, 0xffff }, /* key 85 */
-    {	0xffff, 0xffff, 0xffff, 0xffff }, /* key 86 */
-    {	0x8500, 0x5787, 0x8900, 0x8b00 }, /* key 87 - F11 */
-    {	0x8600, 0x5888, 0x8a00, 0x8c00 }, /* key 88 - F12 */
-};
-
-static void resize_xim(void)
-{
-	int width = bitmap_width * x_cvstat.scaling;
-	int height = bitmap_height * x_cvstat.scaling;
-
-	aspect_correct(&width, &height, x_cvstat.aspect_width, x_cvstat.aspect_height);
-	if (xim) {
-		if (width == xim->width
-		    && height == xim->height) {
-			if (last) {
-				release_buffer(last);
-				last = NULL;
-			}
-			x11.XFillRectangle(dpy, win, gc, 0, 0, x11_window_width, x11_window_height);
-			return;
-		}
-#ifdef XDestroyImage
-		XDestroyImage(xim);
-#else
-		x11.XDestroyImage(xim);
-#endif
-	}
-	if (last) {
-		release_buffer(last);
-		last = NULL;
-	}
-	xim = x11.XCreateImage(dpy, &visual, depth, ZPixmap, 0, NULL, width, height, 32, 0);
-	xim->data=(char *)calloc(1, xim->bytes_per_line*xim->height);
-	x11.XFillRectangle(dpy, win, gc, 0, 0, x11_window_width, x11_window_height);
-}
-
-/* Swiped from FreeBSD libc */
-static int
-my_fls(unsigned long mask)
-{
-        int bit;
-
-        if (mask == 0)
-                return (0);
-        for (bit = 1; mask != 1; bit++)
-                mask = mask >> 1;
-        return (bit);
-}
-
-/* Get a connection to the X server and create the window. */
-static int init_window()
-{
-	XGCValues gcv;
-	int i;
-	XWMHints *wmhints;
-	XClassHint *classhints;
-	int ret;
-	int best=-1;
-	int best_depth=0;
-	int best_cmap=0;
-	XVisualInfo template = {0};
-	XVisualInfo *vi;
-
-	dpy = x11.XOpenDisplay(NULL);
-	if (dpy == NULL) {
-		return(-1);
-	}
-	xfd = ConnectionNumber(dpy);
-	x11.utf8 = x11.XInternAtom(dpy, "UTF8_STRING", False);
-	x11.targets = x11.XInternAtom(dpy, "TARGETS", False);
-
-	template.screen = DefaultScreen(dpy);
-	template.class = TrueColor;
-	vi = x11.XGetVisualInfo(dpy, VisualScreenMask | VisualClassMask, &template, &ret);
-	for (i=0; i<ret; i++) {
-		if (vi[i].depth >= best_depth && vi[i].colormap_size >= best_cmap) {
-			best = i;
-			best_depth = vi[i].depth;
-		}
-	}
-	if (best != -1) {
-		visual = *vi[best].visual;
-		/*
-		 * TODO: Set VisualIsRGB8 if appropriate...
-		 * "appropriate" in this context means it's a sequence of
-		 * unpadded uint32_t values in XXRRGGBB format where XX is
-		 * ignored, and RR, GG, and BB are Red, Green, Blue values
-		 * respectively.
-		 */
-		base_pixel = ULONG_MAX;
-		base_pixel &= ~visual.red_mask;
-		base_pixel &= ~visual.green_mask;
-		base_pixel &= ~visual.blue_mask;
-		r_shift = my_fls(visual.red_mask)-16;
-		g_shift = my_fls(visual.green_mask)-16;
-		b_shift = my_fls(visual.blue_mask)-16;
-	}
-	else {
-		fprintf(stderr, "Unable to find TrueColor visual\n");
-		x11.XFree(vi);
-		return -1;
-	}
-	x11.XFree(vi);
-
-	/* Allocate black and white */
-	black=BlackPixel(dpy, DefaultScreen(dpy));
-	white=WhitePixel(dpy, DefaultScreen(dpy));
-
-    /* Create window, but defer setting a size and GC. */
-	XSetWindowAttributes wa = {0};
-	wa.colormap = x11.XCreateColormap(dpy, DefaultRootWindow(dpy), &visual, AllocNone);
-	wa.background_pixel = black;
-	wa.border_pixel = black;
-	depth = best_depth;
-    win = x11.XCreateWindow(dpy, DefaultRootWindow(dpy), 0, 0,
-			      640*x_cvstat.scaling, 400*x_cvstat.scaling, 2, depth, InputOutput, &visual, CWColormap | CWBorderPixel | CWBackPixel, &wa);
-
-	classhints=x11.XAllocClassHint();
-	if (classhints)
-		classhints->res_name = classhints->res_class = "CIOLIB";
-	wmhints=x11.XAllocWMHints();
-	if(wmhints) {
-		wmhints->initial_state=NormalState;
-		wmhints->flags = (StateHint/* | IconPixmapHint | IconMaskHint*/ | InputHint);
-		wmhints->input = True;
-		x11.XSetWMProperties(dpy, win, NULL, NULL, 0, 0, NULL, wmhints, classhints);
-		x11.XFree(wmhints);
-	}
-	im = x11.XOpenIM(dpy, NULL, "CIOLIB", "CIOLIB");
-	if (im != NULL) {
-		ic = x11.XCreateIC(im, XNClientWindow, win, XNInputStyle, XIMPreeditNothing | XIMStatusNothing, NULL);
-		if (ic)
-			x11.XSetICFocus(ic);
-	}
-
-	if (classhints)
-		x11.XFree(classhints);
-
-	WM_DELETE_WINDOW = x11.XInternAtom(dpy, "WM_DELETE_WINDOW", False);
-
-	gcv.function = GXcopy;
-	gcv.foreground = black | 0xff000000;
-	gcv.background = white;
-	gcv.graphics_exposures = False;
-	gc=x11.XCreateGC(dpy, win, GCFunction | GCForeground | GCBackground | GCGraphicsExposures, &gcv);
-
-	x11.XSelectInput(dpy, win, KeyReleaseMask | KeyPressMask |
-		     ExposureMask | ButtonPressMask
-		     | ButtonReleaseMask | PointerMotionMask | StructureNotifyMask);
-
-	x11.XStoreName(dpy, win, "SyncConsole");
-	x11.XSetWMProtocols(dpy, win, &WM_DELETE_WINDOW, 1);
-
-	return(0);
-}
-
-/*
- * Actually maps (shows) the window
- */
-static void map_window()
-{
-	XSizeHints *sh;
-	int minwidth = bitmap_width;
-	int minheight = bitmap_height;
-
-	sh = x11.XAllocSizeHints();
-	if (sh == NULL) {
-		fprintf(stderr, "Could not get XSizeHints structure");
-		exit(1);
-	}
-
-	sh->base_width = bitmap_width * x_cvstat.scaling;
-	sh->base_height = bitmap_height * x_cvstat.scaling;
-
-	aspect_correct(&sh->base_width, &sh->base_height, x_cvstat.aspect_width, x_cvstat.aspect_height);
-	aspect_correct(&minwidth, &minheight, x_cvstat.aspect_width, x_cvstat.aspect_height);
-
-	sh->min_width = sh->width_inc = sh->min_aspect.x = sh->max_aspect.x = minwidth;
-	sh->min_height = sh->height_inc = sh->min_aspect.y = sh->max_aspect.y = minheight;
-
-	sh->flags = USSize | PMinSize | PSize | PResizeInc | PAspect;
-
-	x11.XSetWMNormalHints(dpy, win, sh);
-	x11.XMapWindow(dpy, win);
-
-	x11.XFree(sh);
-
-	return;
-}
-
-/* Resize the window. This function is called after a mode change. */
-static void resize_window()
-{
-	int width = bitmap_width * x_cvstat.scaling;
-	int height = bitmap_height * x_cvstat.scaling;
-
-	aspect_correct(&width, &height, x_cvstat.aspect_width, x_cvstat.aspect_height);
-	x11.XResizeWindow(dpy, win, width, height);
-	resize_xim();
-
-	return;
-}
-
-static void init_mode_internal(int mode)
-{
-	int oldcols;
-
-	oldcols=x_cvstat.cols;
-
-	pthread_mutex_lock(&blinker_lock);
-	pthread_mutex_lock(&vstatlock);
-	if (last) {
-		release_buffer(last);
-		last = NULL;
-	}
-	bitmap_drv_init_mode(mode, &bitmap_width, &bitmap_height);
-
-	/* Deal with 40 col doubling */
-	if(oldcols != vstat.cols) {
-		if(oldcols == 40)
-			vstat.scaling /= 2;
-		if(vstat.cols == 40)
-			vstat.scaling *= 2;
-	}
-	if(vstat.scaling < 1)
-		vstat.scaling = 1;
-
-	x_cvstat = vstat;
-	pthread_mutex_unlock(&vstatlock);
-	pthread_mutex_unlock(&blinker_lock);
-	map_window();
-}
-
-static void check_scaling(void)
-{
-	if (old_scaling != x_cvstat.scaling) {
-		resize_window();
-		old_scaling = x_cvstat.scaling;
-	}
-}
-
-static int init_mode(int mode)
-{
-	init_mode_internal(mode);
-	resize_window();
-	bitmap_drv_request_pixels();
-
-	sem_post(&mode_set);
-	return(0);
-}
-
-static int video_init()
-{
-    /* If we are running under X, get a connection to the X server and create
-       an empty window of size (1, 1). It makes a couple of init functions a
-       lot easier. */
-	if(x_cvstat.scaling<1)
-		x_setscaling(1);
-    if(init_window())
-		return(-1);
-
-	bitmap_drv_init(x11_drawrect, x11_flush);
-
-    /* Initialize mode 3 (text, 80x25, 16 colors) */
-    init_mode_internal(3);
-
-    return(0);
-}
-
-static void
-local_draw_rect(struct rectlist *rect)
-{
-	int x, y, xoff = 0, yoff = 0;
-	unsigned int r, g, b;
-	unsigned long pixel;
-	int cleft;
-	int cright = -100;
-	int ctop;
-	int cbottom = -1;
-	int idx;
-	uint32_t last_pixel = 0x55555555;
-	struct graphics_buffer *source;
-
-	if (bitmap_width != rect->rect.width || bitmap_height != rect->rect.height) {
-		bitmap_drv_free_rect(rect);
-		return;
-	}
-
-	xoff = (x11_window_width - xim->width) / 2;
-	if (xoff < 0)
-		xoff = 0;
-	yoff = (x11_window_height - xim->height) / 2;
-	if (yoff < 0)
-		yoff = 0;
-
-	// Scale...
-	source = do_scale(rect, x_cvstat.scaling, x_cvstat.scaling, x_cvstat.aspect_width, x_cvstat.aspect_height);
-	bitmap_drv_free_rect(rect);
-	if (source == NULL)
-		return;
-	cleft = source->w;
-	ctop = source->h;
-
-	xoff = (x11_window_width - source->w) / 2;
-	if (xoff < 0)
-		xoff = 0;
-	yoff = (x11_window_height - source->h) / 2;
-	if (yoff < 0)
-		yoff = 0;
-
-	if (last && (last->w != source->w || last->h != source->h)) {
-		release_buffer(last);
-		last = NULL;
-	}
-
-	/* TODO: Translate into local colour depth */
-	idx = 0;
-
-	for (y = 0; y < source->h; y++) {
-		for (x = 0; x < source->w; x++) {
-			if (last) {
-				if (last->data[idx] != source->data[idx]) {
-					if (x < cleft)
-						cleft = x;
-					if (x > cright)
-						cright = x;
-					if (y < ctop)
-						ctop = y;
-					if (y > cbottom)
-						cbottom = y;
-				}
-				else {
-					idx++;
-					continue;
-				}
-			}
-			if (VisualIsRGB8) {
-				pixel = source->data[idx];
-				((uint32_t*)xim->data)[idx] = pixel;
-			}
-			else {
-				if (last_pixel != source->data[idx]) {
-					last_pixel = source->data[idx];
-					r = source->data[idx] >> 16 & 0xff;
-					g = source->data[idx] >> 8 & 0xff;
-					b = source->data[idx] & 0xff;
-					r = (r<<8)|r;
-					g = (g<<8)|g;
-					b = (b<<8)|b;
-					pixel = base_pixel;
-					if (r_shift >= 0)
-						pixel |= (r << r_shift) & visual.red_mask;
-					else
-						pixel |= (r >> (0-r_shift)) & visual.red_mask;
-					if (g_shift >= 0)
-						pixel |= (g << g_shift) & visual.green_mask;
-					else
-						pixel |= (g >> (0-g_shift)) & visual.green_mask;
-					if (b_shift >= 0)
-						pixel |= (b << b_shift) & visual.blue_mask;
-					else
-						pixel |= (b >> (0-b_shift)) & visual.blue_mask;
-				}
-#ifdef XPutPixel
-				XPutPixel(xim, x, y, pixel);
-#else
-				x11.XPutPixel(xim, x, y, pixel);
-#endif
-			}
-			idx++;
-		}
-		/* This line was changed */
-		// TODO: Previously this did one update per display line...
-		if (last && cright >= 0 && (cbottom != y || y == source->h - 1)) {
-			x11.XPutImage(dpy, win, gc, xim, cleft, ctop
-			    , cleft + xoff, ctop + yoff
-			    , (cright - cleft + 1), (cbottom - ctop + 1));
-			cleft = source->w;
-			cright = cbottom = -100;
-			ctop = source->h;
-		}
-	}
-
-	if (last == NULL)
-		x11.XPutImage(dpy, win, gc, xim, 0, 0, xoff, yoff, source->w, source->h);
-	else
-		release_buffer(last);
-	last = source;
-}
-
-static void handle_resize_event(int width, int height)
-{
-	int newFSH=1;
-	int newFSW=1;
-
-	aspect_fix(&width, &height, x_cvstat.aspect_width, x_cvstat.aspect_height);
-	newFSH=width / bitmap_width;
-	newFSW=height / bitmap_height;
-	if(newFSW<1)
-		newFSW=1;
-	if(newFSH<1)
-		newFSH=1;
-	if(newFSH<newFSW)
-		x_setscaling(newFSH);
-	else
-		x_setscaling(newFSW);
-	old_scaling = x_cvstat.scaling;
-	if(x_cvstat.scaling > 16)
-		x_setscaling(16);
-
-	/*
-	 * We only need to resize if the width/height are not even multiples,
-	 * or if the two axis don't scale the same way.
-	 * Otherwise, we can simply resend everything
-	 */
-	if (newFSH != newFSW)
-		resize_window();
-	else
-		resize_xim();
-	bitmap_drv_request_pixels();
-}
-
-static void expose_rect(int x, int y, int width, int height)
-{
-	int sx,sy,ex,ey;
-	int xoff=0, yoff=0;
-
-	xoff = (x11_window_width - xim->width) / 2;
-	if (xoff < 0)
-		xoff = 0;
-	yoff = (x11_window_height - xim->height) / 2;
-	if (yoff < 0)
-		yoff = 0;
-
-	if (xoff > 0 || yoff > 0) {
-		if (x < xoff || y < yoff || x + width > xoff + xim->width || y + height > yoff + xim->height) {
-			x11.XFillRectangle(dpy, win, gc, 0, 0, x11_window_width, yoff);
-			x11.XFillRectangle(dpy, win, gc, 0, yoff, xoff, yoff + xim->height);
-			x11.XFillRectangle(dpy, win, gc, xoff+xim->width, yoff, x11_window_width, yoff + xim->height);
-			x11.XFillRectangle(dpy, win, gc, 0, yoff + xim->height, x11_window_width, x11_window_height);
-		}
-	}
-
-	sx=(x-xoff)/x_cvstat.scaling;
-	sy=(y-yoff)/(x_cvstat.scaling);
-	if (sx < 0)
-		sx = 0;
-	if (sy < 0)
-		sy = 0;
-
-	ex=(x-xoff)+width-1;
-	ey=(y-yoff)+height-1;
-	if (ex < 0)
-		ex = 0;
-	if (ey < 0)
-		ey = 0;
-	if((ex+1)%x_cvstat.scaling) {
-		ex += x_cvstat.scaling-(ex%x_cvstat.scaling);
-	}
-	if((ey+1)%(x_cvstat.scaling)) {
-		ey += x_cvstat.scaling-(ey%(x_cvstat.scaling));
-	}
-	ex=ex/x_cvstat.scaling;
-	ey=ey/(x_cvstat.scaling);
-
-	/* Since we're exposing, we *have* to redraw */
-	if (last) {
-		release_buffer(last);
-		last = NULL;
-		bitmap_drv_request_some_pixels(sx, sy, ex-sx+1, ey-sy+1);
-	}
-	// Do nothing...
-	if (sx == ex || sy == ey)
-		return;
-	bitmap_drv_request_some_pixels(sx, sy, ex-sx+1, ey-sy+1);
-}
-
-static bool
-xlat_mouse_xy(int *x, int *y)
-{
-	int xoff, yoff;
-
-	xoff = (x11_window_width - xim->width) / 2;
-	if (xoff < 0)
-		xoff = 0;
-	yoff = (x11_window_height - xim->height) / 2;
-	if (yoff < 0)
-		yoff = 0;
-
-	if (*x < xoff)
-		return false;
-	if (*y < yoff)
-		return false;
-	*x -= xoff;
-	*y -= yoff;
-	if (*x >= xim->width)
-		return false;
-	if (*y >= xim->height)
-		return false;
-	*x *= x_cvstat.scrnwidth;
-	*y *= x_cvstat.scrnheight;
-	*x /= xim->width;
-	*y /= xim->height;
-	return true;
-}
-
-static int x11_event(XEvent *ev)
-{
-	if (x11.XFilterEvent(ev, win))
-		return 0;
-	switch (ev->type) {
-		case ClientMessage:
-			if (ev->xclient.format == 32 && ev->xclient.data.l[0] == WM_DELETE_WINDOW) {
-				uint16_t key=CIO_KEY_QUIT;
-				write(key_pipe[1], &key, 2);
-			}
-			break;
-		/* Graphics related events */
-		case ConfigureNotify: {
-			int width, height;
-
-			if (x11_window_xpos != ev->xconfigure.x || x11_window_ypos != ev->xconfigure.y) {
-				x11_window_xpos=ev->xconfigure.x;
-				x11_window_ypos=ev->xconfigure.y;
-			}
-			if (x11_window_width != ev->xconfigure.width || x11_window_height != ev->xconfigure.height) {
-				x11_window_width=ev->xconfigure.width;
-				x11_window_height=ev->xconfigure.height;
-				handle_resize_event(ev->xconfigure.width, ev->xconfigure.height);
-				break;
-			}
-			width = bitmap_width * x_cvstat.scaling;
-			height = bitmap_height * x_cvstat.scaling;
-
-			aspect_correct(&width, &height, x_cvstat.aspect_width, x_cvstat.aspect_height);
-			if (ev->xconfigure.width != width || ev->xconfigure.height != height) {
-				// We can't have the size we requested... accept the size we got.
-				int newFSH=1;
-				int newFSW=1;
-
-				width = ev->xconfigure.width;
-				height = ev->xconfigure.height;
-				aspect_fix(&width, &height, x_cvstat.aspect_width, x_cvstat.aspect_height);
-				newFSH=width / bitmap_width;
-				newFSW=height / bitmap_height;
-				if(newFSW<1)
-					newFSW=1;
-				if(newFSH<1)
-					newFSH=1;
-				if(newFSH<newFSW)
-					x_setscaling(newFSH);
-				else
-					x_setscaling(newFSW);
-				old_scaling = x_cvstat.scaling;
-				if(x_cvstat.scaling > 16)
-					x_setscaling(16);
-
-				resize_xim();
-				bitmap_drv_request_pixels();
-			}
-			break;
-		}
-		case NoExpose:
-			break;
-		case GraphicsExpose:
-			expose_rect(ev->xgraphicsexpose.x, ev->xgraphicsexpose.y, ev->xgraphicsexpose.width, ev->xgraphicsexpose.height);
-			break;
-		case Expose:
-			expose_rect(ev->xexpose.x, ev->xexpose.y, ev->xexpose.width, ev->xexpose.height);
-			break;
-
-		/* Copy/Paste events */
-		case SelectionClear:
-			{
-				XSelectionClearEvent *req;
-
-				req=&(ev->xselectionclear);
-				pthread_mutex_lock(&copybuf_mutex);
-				if(req->selection==CONSOLE_CLIPBOARD)
-					FREE_AND_NULL(copybuf);
-				pthread_mutex_unlock(&copybuf_mutex);
-			}
-			break;
-		case SelectionNotify:
-			{
-				int format;
-				unsigned long len, bytes_left, dummy;
-
-				if(ev->xselection.selection != CONSOLE_CLIPBOARD)
-					break;
-				if(ev->xselection.requestor!=win)
-					break;
-				if(ev->xselection.property) {
-					x11.XGetWindowProperty(dpy, win, ev->xselection.property, 0, 0, True, AnyPropertyType, &pastebuf_format, &format, &len, &bytes_left, (unsigned char **)(&pastebuf));
-					if(bytes_left > 0 && format==8) {
-						x11.XGetWindowProperty(dpy, win, ev->xselection.property, 0, bytes_left, True, AnyPropertyType, &pastebuf_format, &format, &len, &dummy, (unsigned char **)&pastebuf);
-						if (x11.utf8 && pastebuf_format == x11.utf8) {
-							char *opb = pastebuf;
-							pastebuf = (char *)utf8_to_cp(CIOLIB_ISO_8859_1, (uint8_t *)pastebuf, '?', strlen(pastebuf), NULL);
-							if (pastebuf == NULL)
-								pastebuf = opb;
-							else
-								x11.XFree(opb);
-						}
-					}
-					else
-						pastebuf=NULL;
-				}
-				else
-					pastebuf=NULL;
-
-				/* Set paste buffer */
-				sem_post(&pastebuf_set);
-				sem_wait(&pastebuf_used);
-				if (x11.utf8 && pastebuf_format == x11.utf8)
-					free(pastebuf);
-				else
-					x11.XFree(pastebuf);
-				pastebuf=NULL;
-			}
-			break;
-		case SelectionRequest:
-			{
-				XSelectionRequestEvent *req;
-				XEvent respond;
-				Atom supported[3];
-				int count = 0;
-
-				req=&(ev->xselectionrequest);
-				pthread_mutex_lock(&copybuf_mutex);
-				if (x11.targets == 0)
-					x11.targets = x11.XInternAtom(dpy, "TARGETS", False);
-				respond.xselection.property=None;
-				if(copybuf!=NULL) {
-					if(req->target==XA_STRING) {
-						char *cpstr = utf8_to_cp(CIOLIB_ISO_8859_1, (uint8_t *)copybuf, '?', strlen(copybuf), NULL);
-						if (cpstr != NULL) {
-							x11.XChangeProperty(dpy, req->requestor, req->property, XA_STRING, 8, PropModeReplace, (uint8_t *)cpstr, strlen((char *)cpstr));
-							respond.xselection.property=req->property;
-							free(cpstr);
-						}
-					}
-					else if(req->target == x11.utf8) {
-						x11.XChangeProperty(dpy, req->requestor, req->property, x11.utf8, 8, PropModeReplace, (uint8_t *)copybuf, strlen((char *)copybuf));
-						respond.xselection.property=req->property;
-					}
-					else if(req->target == x11.targets) {
-						if (x11.utf8 == 0)
-							x11.utf8 = x11.XInternAtom(dpy, "UTF8_STRING", False);
-
-						supported[count++] = x11.targets;
-						supported[count++] = XA_STRING;
-						if (x11.utf8)
-							supported[count++] = x11.utf8;
-						x11.XChangeProperty(dpy, req->requestor, req->property, XA_ATOM, 32, PropModeReplace, (unsigned char *)supported, count);
-						respond.xselection.property=req->property;
-					}
-				}
-				respond.xselection.requestor=req->requestor;
-				respond.xselection.selection=req->selection;
-				respond.xselection.time=req->time;
-				respond.xselection.target=req->target;
-				respond.xselection.type=SelectionNotify;
-				respond.xselection.display=req->display;
-				x11.XSendEvent(dpy,req->requestor,0,0,&respond);
-				x11.XFlush(dpy);
-				pthread_mutex_unlock(&copybuf_mutex);
-			}
-			break;
-
-		/* Mouse Events */
-		case MotionNotify:
-			{
-				XMotionEvent *me = (XMotionEvent *)ev;
-				if (!xlat_mouse_xy(&me->x, &me->y))
-					break;
-				int x_res = me->x;
-				int y_res = me->y;
-
-				me->x /= x_cvstat.charwidth;
-				me->y /= x_cvstat.charheight;
-				me->x++;
-				me->y++;
-				if(me->x<1)
-					me->x=1;
-				if(me->y<1)
-					me->y=1;
-				if(me->x>x_cvstat.cols)
-					me->x=x_cvstat.cols;
-				if(me->y>x_cvstat.rows+1)
-					me->y=x_cvstat.rows+1;
-				ciomouse_gotevent(CIOLIB_MOUSE_MOVE,me->x,me->y, x_res, y_res);
-	    	}
-			break;
-		case ButtonRelease:
-			{
-				XButtonEvent *be = (XButtonEvent *)ev;
-				if (!xlat_mouse_xy(&be->x, &be->y))
-					break;
-				int x_res = be->x;
-				int y_res = be->y;
-
-				be->x/=x_cvstat.charwidth;
-				be->y/=x_cvstat.charheight;
-				be->x++;
-				be->y++;
-				if(be->x<1)
-					be->x=1;
-				if(be->y<1)
-					be->y=1;
-				if(be->x>x_cvstat.cols)
-					be->x=x_cvstat.cols;
-				if(be->y>x_cvstat.rows+1)
-					be->y=x_cvstat.rows+1;
-				if (be->button <= 3) {
-					ciomouse_gotevent(CIOLIB_BUTTON_RELEASE(be->button),be->x,be->y, x_res, y_res);
-				}
-	    	}
-			break;
-		case ButtonPress:
-			{
-				XButtonEvent *be = (XButtonEvent *)ev;
-				if (!xlat_mouse_xy(&be->x, &be->y))
-					break;
-				int x_res = be->x;
-				int y_res = be->y;
-
-				be->x/=x_cvstat.charwidth;
-				be->y/=x_cvstat.charheight;
-				be->x++;
-				be->y++;
-				if(be->x<1)
-					be->x=1;
-				if(be->y<1)
-					be->y=1;
-				if(be->x>x_cvstat.cols)
-					be->x=x_cvstat.cols;
-				if(be->y>x_cvstat.rows+1)
-					be->y=x_cvstat.rows+1;
-				if (be->button <= 5) {
-					ciomouse_gotevent(CIOLIB_BUTTON_PRESS(be->button),be->x,be->y, x_res, y_res);
-				}
-	    	}
-			break;
-
-		/* Keyboard Events */
-		case KeyPress:
-			{
-				static char buf[128];
-				static wchar_t wbuf[128];
-				KeySym ks;
-				int nlock = 0;
-				WORD scan = 0xffff;
-				Status lus = 0;
-				int cnt;
-				int i;
-				uint8_t ch;
-
-				if (ic)
-					cnt = x11.XwcLookupString(ic, (XKeyPressedEvent *)ev, wbuf, sizeof(wbuf)/sizeof(wbuf[0]), &ks, &lus);
-				else {
-					cnt = x11.XLookupString((XKeyEvent *)ev, buf, sizeof(buf), &ks, NULL);
-					lus = XLookupKeySym;
-				}
-
-				switch(lus) {
-					case XLookupNone:
-						ks = 0xffff;
-						break;
-					case XLookupBoth:
-					case XLookupChars:
-						if (lus == XLookupChars || ((ev->xkey.state & (Mod1Mask | ControlMask)) == 0)) {
-							for (i = 0; i < cnt; i++) {
-								if (wbuf[i] < 127)
-									ch = wbuf[i];
-								else
-									ch = cpchar_from_unicode_cpoint(getcodepage(), wbuf[i], 0);
-								if (ch) {
-									write(key_pipe[1], &ch, 1);
-								}
-							}
-							break;
-						}
-						// Fallthrough
-					case XLookupKeySym:
-						switch (ks) {
-							case XK_Escape:
-								scan = 1;
-								goto docode;
-
-							case XK_Tab:
-							case XK_ISO_Left_Tab:
-								scan = 15;
-								goto docode;
-					
-							case XK_Return:
-							case XK_KP_Enter:
-								scan = 28;
-								goto docode;
-
-							case XK_Print:
-								scan = 55;
-								goto docode;
-
-							case XK_F1:
-							case XK_F2:
-							case XK_F3:
-							case XK_F4:
-							case XK_F5:
-							case XK_F6:
-							case XK_F7:
-							case XK_F8:
-							case XK_F9:
-							case XK_F10:
-								scan = ks - XK_F1 + 59;
-								goto docode;
-
-							case XK_KP_7:
-								nlock = 1;
-							case XK_Home:
-							case XK_KP_Home:
-								scan = 71;
-								goto docode;
-
-							case XK_KP_8:
-								nlock = 1;
-							case XK_Up:
-							case XK_KP_Up:
-								scan = 72;
-								goto docode;
-
-							case XK_KP_9:
-								nlock = 1;
-							case XK_Prior:
-							case XK_KP_Prior:
-								scan = 73;
-								goto docode;
-
-							case XK_KP_Subtract:
-								scan = 74;
-								goto docode;
-
-							case XK_KP_4:
-								nlock = 1;
-							case XK_Left:
-							case XK_KP_Left:
-								if (ev->xkey.state & Mod1Mask) {
-									if (x_cvstat.scaling > 1)
-										x_cvstat.scaling--;
-								}
-								scan = 75;
-								goto docode;
-
-							case XK_KP_5:
-								nlock = 1;
-							case XK_Begin:
-							case XK_KP_Begin:
-								scan = 76;
-								goto docode;
-
-							case XK_KP_6:
-								nlock = 1;
-							case XK_Right:
-							case XK_KP_Right:
-								scan = 77;
-								if (ev->xkey.state & Mod1Mask) {
-									if (x_cvstat.scaling < 7)
-										x_cvstat.scaling++;
-								}
-								goto docode;
-
-							case XK_KP_Add:
-								scan = 78;
-								goto docode;
-
-							case XK_KP_1:
-								nlock = 1;
-							case XK_End:
-							case XK_KP_End:
-								scan = 79;
-								goto docode;
-
-							case XK_KP_2:
-								nlock = 1;
-							case XK_Down:
-							case XK_KP_Down:
-								scan = 80;
-								goto docode;
-
-							case XK_KP_3:
-								nlock = 1;
-							case XK_Next:
-							case XK_KP_Next:
-								scan = 81;
-								goto docode;
-
-							case XK_KP_0:
-								nlock = 1;
-							case XK_Insert:
-							case XK_KP_Insert:
-								scan = 82;
-								goto docode;
-
-							case XK_KP_Decimal:
-								nlock = 1;
-								scan = 83;
-								goto docode;
-
-							case XK_Delete:
-							case XK_KP_Delete:
-								/* scan = flipdelete ? 14 : 83; */
-								scan = 83;
-								goto docode;
-
-							case XK_BackSpace:
-								/* scan = flipdelete ? 83 : 14; */
-								scan = 14;
-								goto docode;
-
-							case XK_F11:
-								scan = 87;
-								goto docode;
-							case XK_F12:
-								scan = 88;
-								goto docode;
-
-
-							case XK_KP_Divide:
-								scan = Ascii2Scan['/'];
-								goto docode;
-
-							case XK_KP_Multiply:
-								scan = Ascii2Scan['*'];
-								goto docode;
-
-							default:
-								if (ks < ' ' || ks > '~')
-									break;
-								scan = Ascii2Scan[ks]; 
-								docode:
-								if (nlock)
-									scan |= 0x100;
-
-								if ((scan & ~0x100) > 88) {
-									scan = 0xffff;
-									break;
-								}
-
-								if (ev->xkey.state & Mod1Mask) {
-									scan = ScanCodes[scan & 0xff].alt;
-								} else if ((ev->xkey.state & ShiftMask) || (scan & 0x100)) {
-									scan = ScanCodes[scan & 0xff].shift;
-								} else if (ev->xkey.state & ControlMask) {
-									scan = ScanCodes[scan & 0xff].ctrl;
-								}  else
-									scan = ScanCodes[scan & 0xff].base;
-
-								break;
-						}
-						if (scan != 0xffff) {
-							uint16_t key=scan;
-							write(key_pipe[1], &key, (scan&0xff)?1:2);
-						}
-						break;
-				}
-				return(1);
-			}
-		default:
-			break;
-	}
-	return(0);
-}
-
-static void x11_terminate_event_thread(void)
-{
-	terminate = 1;
-	sem_wait(&event_thread_complete);
-}
-
-static void readev(struct x11_local_event *lev)
-{
-	fd_set	rfd;
-	int ret;
-	int rcvd = 0;
-	char *buf = (char *)lev;
-
-	FD_ZERO(&rfd);
-	FD_SET(local_pipe[0], &rfd);
-
-	while (rcvd < sizeof(*lev)) {
-		select(local_pipe[0]+1, &rfd, NULL, NULL, NULL);
-		ret = read(local_pipe[0], buf+rcvd, sizeof(*lev) - rcvd);
-		if (ret > 0)
-			rcvd += ret;
-	}
-}
-
-void x11_event_thread(void *args)
-{
-	int x;
-	int high_fd;
-	fd_set fdset;
-	XEvent ev;
-	static struct timeval tv;
-
-	SetThreadName("X11 Events");
-	if(video_init()) {
-		sem_post(&init_complete);
-		return;
-	}
-	sem_init(&event_thread_complete, 0, 0);
-	atexit(x11_terminate_event_thread);
-
-	if(local_pipe[0] > xfd)
-		high_fd=local_pipe[0];
-	else
-		high_fd=xfd;
-
-	x11.XSync(dpy, False);
-	x11_initialized=1;
-	sem_post(&init_complete);
-	for (;!terminate;) {
-		check_scaling();
-
-		tv.tv_sec=0;
-		tv.tv_usec=54925; /* was 54925 (was also 10) */ 
-
-		/*
-		 * Handle any events just sitting around...
-		 */
-		while (QLength(dpy) > 0) {
-			x11.XNextEvent(dpy, &ev);
-			x11_event(&ev);
-		}
-
-		FD_ZERO(&fdset);
-		FD_SET(xfd, &fdset);
-		FD_SET(local_pipe[0], &fdset);
-
-		x = select(high_fd+1, &fdset, 0, 0, &tv);
-
-		switch (x) {
-			case -1:
-				/*
-				* Errno might be wrong, so we just select again.
-				* This could cause a problem if something really
-				* was wrong with select....
-				*/
-
-				/* perror("select"); */
-				break;
-			case 0:
-				/* Timeout */
-				break;
-			default:
-				if (FD_ISSET(xfd, &fdset)) {
-					// This blocks for the event...
-					x11.XNextEvent(dpy, &ev);
-					x11_event(&ev);
-					// And this reads anything else from the queue.
-					while (QLength(dpy) > 0) {
-						x11.XNextEvent(dpy, &ev);
-						x11_event(&ev);
-					}
-				}
-				if(FD_ISSET(local_pipe[0], &fdset)) {
-					struct x11_local_event lev;
-
-					readev(&lev);
-					switch(lev.type) {
-						case X11_LOCAL_SETMODE:
-							init_mode(lev.data.mode);
-							break;
-						case X11_LOCAL_SETNAME:
-							x11.XSetIconName(dpy, win, lev.data.name);
-							x11.XFlush(dpy);
-							break;
-						case X11_LOCAL_SETTITLE:
-							x11.XStoreName(dpy, win, lev.data.title);
-							x11.XFlush(dpy);
-							break;
-						case X11_LOCAL_COPY:
-							x11.XSetSelectionOwner(dpy, CONSOLE_CLIPBOARD, win, CurrentTime);
-							break;
-						case X11_LOCAL_PASTE: 
-							{
-								Window sowner=None;
-
-								sowner=x11.XGetSelectionOwner(dpy, CONSOLE_CLIPBOARD);
-								if(sowner==win) {
-									/* Get your own primary selection */
-									if(copybuf==NULL)
-										pastebuf=NULL;
-									else {
-										pastebuf=strdup(copybuf);
-										pastebuf_format = copybuf_format;
-									}
-									/* Set paste buffer */
-									sem_post(&pastebuf_set);
-									sem_wait(&pastebuf_used);
-									FREE_AND_NULL(pastebuf);
-								}
-								else if(sowner!=None) {
-									x11.XConvertSelection(dpy, CONSOLE_CLIPBOARD, x11.utf8 ? x11.utf8 : XA_STRING, x11.utf8 ? x11.utf8 : XA_STRING, win, CurrentTime);
-								}
-								else {
-									/* Set paste buffer */
-									pastebuf=NULL;
-									sem_post(&pastebuf_set);
-									sem_wait(&pastebuf_used);
-								}
-							}
-							break;
-						case X11_LOCAL_DRAWRECT:
-							local_draw_rect(lev.data.rect);
-							break;
-						case X11_LOCAL_FLUSH:
-							x11.XFlush(dpy);
-							break;
-						case X11_LOCAL_BEEP:
-							x11.XBell(dpy, 100);
-							break;
-						case X11_LOCAL_SETICON: {
-							Atom wmicon = x11.XInternAtom(dpy, "_NET_WM_ICON", False);
-							if (wmicon) {
-								x11.XChangeProperty(dpy, win, wmicon, XA_CARDINAL, 32, PropModeReplace, (unsigned char *)lev.data.icon_data, lev.data.icon_data[0] * lev.data.icon_data[1] + 2);
-								x11.XFlush(dpy);
-							}
-							free(lev.data.icon_data);
-							break;
-						}
-						case X11_LOCAL_MOUSEPOINTER: {
-							unsigned shape = UINT_MAX;
-							Cursor oc = curs;
-							switch (lev.data.ptr) {
-								case CIOLIB_MOUSEPTR_ARROW:
-									// Use default
-									break;
-								case CIOLIB_MOUSEPTR_BAR:
-									shape = XC_xterm;
-									break;
-							}
-							if (shape == UINT_MAX)
-								x11.XDefineCursor(dpy, win, None);
-							else {
-								curs = x11.XCreateFontCursor(dpy, shape);
-								x11.XDefineCursor(dpy, win, curs);
-							}
-							if (oc != None && oc != curs)
-								x11.XFreeCursor(dpy, oc);
-							break;
-						}
-					}
-				}
-		}
-	}
-	x11.XCloseDisplay(dpy);
-	sem_post(&event_thread_complete);
-}
diff --git a/ciolib/x_events.h b/ciolib/x_events.h
deleted file mode 100644
index eb44f6ce2b190565f4443faf52c793fcb7abeb7d..0000000000000000000000000000000000000000
--- a/ciolib/x_events.h
+++ /dev/null
@@ -1,128 +0,0 @@
-#ifndef _X_EVENTS_H_
-#define _X_EVENTS_H_
-
-#include <X11/Xlib.h>
-#include <X11/Xresource.h>
-#include <X11/Xutil.h>
-#include <X11/keysym.h>
-#include <X11/Xatom.h>
-
-enum x11_local_events {
-	 X11_LOCAL_SETMODE
-	,X11_LOCAL_SETNAME
-	,X11_LOCAL_SETTITLE
-	,X11_LOCAL_COPY
-	,X11_LOCAL_PASTE
-	,X11_LOCAL_DRAWRECT
-	,X11_LOCAL_FLUSH
-	,X11_LOCAL_BEEP
-	,X11_LOCAL_SETICON
-	,X11_LOCAL_MOUSEPOINTER
-};
-
-struct x11_local_event {
-	enum x11_local_events	type;
-	union {
-		int		mode;
-		char	name[81];
-		char	title[81];
-		struct	rectlist *rect;
-		unsigned long	*icon_data;
-		enum ciolib_mouse_ptr ptr;
-	} data;
-};
-
-/* X functions */
-struct x11 {
-	int		(*XChangeGC)	(Display*, GC, unsigned long, XGCValues*);
-	int		(*XCopyPlane)	(Display*, Drawable, Drawable, GC, int, int, unsigned int, unsigned int, int, int, unsigned long);
-	int		(*XFillRectangle)	(Display*, Drawable, GC, int, int, unsigned int, unsigned int);
-	int		(*XDrawPoint)	(Display*, Drawable, GC, int, int);
-	int		(*XFlush)		(Display*);
-	int		(*XSync)		(Display*, Bool);
-	int		(*XBell)		(Display*, int);
-	int		(*XLookupString)(XKeyEvent*, char*, int, KeySym*, XComposeStatus*);
-	int		(*XNextEvent)	(Display*, XEvent *);
-	XSizeHints*	(*XAllocSizeHints)(void);
-	void		(*XSetWMNormalHints)	(Display*, Window, XSizeHints*);
-	int		(*XResizeWindow)(Display*, Window, unsigned int, unsigned int);
-	int		(*XMapWindow)	(Display*, Window);
-	int		(*XFree)		(void *data);
-	int		(*XFreePixmap)	(Display*, Pixmap);
-	Pixmap	(*XCreatePixmap)(Display*, Drawable, unsigned int, unsigned int, unsigned int);
-	void	(*XCopyArea)	(Display*, Drawable, Drawable, GC, int, int, unsigned int, unsigned int, int, int);
-	Pixmap	(*XCreateBitmapFromData)	(Display*, Drawable, _Xconst char*, unsigned int, unsigned int);
-	Status	(*XAllocColor)	(Display*, Colormap, XColor*);
-	Display*(*XOpenDisplay)	(_Xconst char*);
-	int	(*XCloseDisplay)	(Display*);
-	Window	(*XCreateSimpleWindow)	(Display*, Window, int, int, unsigned int, unsigned int, unsigned int, unsigned long, unsigned long);
-	GC		(*XCreateGC)	(Display*, Drawable, unsigned long, XGCValues*);
-	int		(*XSelectInput)	(Display*, Window, long);
-	int		(*XStoreName)	(Display*, Window, _Xconst char*);
-	Window	(*XGetSelectionOwner)	(Display*, Atom);
-	int		(*XConvertSelection)	(Display*, Atom, Atom, Atom, Window, Time);
-	int		(*XGetWindowProperty)	(Display*, Window, Atom, long, long, Bool, Atom, Atom*, int*, unsigned long *, unsigned long *, unsigned char **);
-	int		(*XChangeProperty)		(Display*, Window, Atom, Atom, int, int, _Xconst unsigned char*, int);
-	Status	(*XSendEvent)	(Display*, Window, Bool, long, XEvent*);
-	XImage*	(*XCreateImage)	(Display *, Visual *, unsigned int, int, int, char *,unsigned int, unsigned int, int, int);
-#ifndef XPutPixel
-	void	(*XPutPixel)	(XImage*,int,int,unsigned long);
-#endif
-	int	(*XPutImage)	(Display*, Drawable, GC, XImage *, int,int,int,int,unsigned int,unsigned int);
-#ifndef XDestroyImage
-	void	(*XDestroyImage)(XImage*);
-#endif
-	int		(*XSetSelectionOwner)	(Display*, Atom, Window, Time);	
-	int		(*XSetIconName)	(Display*, Window, _Xconst char *);
-	int		(*XSynchronize)	(Display*, Bool);
-	Status	(*XGetWindowAttributes)	(Display*,Window,XWindowAttributes*);
-	XWMHints* (*XAllocWMHints) (void);
-	void	(*XSetWMProperties) (Display*, Window, XTextProperty*, XTextProperty*, char**, int, XSizeHints*, XWMHints*, XClassHint*);
-	Status	(*XSetWMProtocols) (Display*, Window, Atom *, int);
-	Atom	(*XInternAtom) (Display *, char *, Bool);
-	int		(*XFreeColors) (Display*, Colormap, unsigned long *, int, unsigned long);
-	XVisualInfo *(*XGetVisualInfo)(Display *display, long vinfo_mask, XVisualInfo *vinfo_template, int *nitems_return);
-	Window (*XCreateWindow)(Display *display, Window parent, int x, int y, unsigned int width, unsigned int height, unsigned int border_width, int depth, 
-                       unsigned int class, Visual *visual, unsigned long valuemask, XSetWindowAttributes *attributes);
-	Colormap (*XCreateColormap)(Display *display, Window w, Visual *visual, int alloc);
-	XClassHint *(*XAllocClassHint)(void);
-	int (*XSetForeground)(Display *display, GC gc, unsigned long foreground);
-	char *(*XSetLocaleModifiers)(char *modifier_list);
-	XIM (*XOpenIM)(Display *display, XrmDatabase db, char *res_name, char *res_class);
-	XIC (*XCreateIC)(XIM im, ...);
-	int (*XwcLookupString)(XIC ic, XKeyPressedEvent *event, wchar_t *buffer_return, int wchars_buffer, KeySym *keysym_return, Status *status_return);
-	void (*XSetICFocus)(XIC ic);
-	Bool (*XFilterEvent)(XEvent *event, Window w);
-	Cursor (*XCreateFontCursor)(Display *display, unsigned int shape);
-	int (*XDefineCursor)(Display *display, Window w, Cursor cursor);
-	int (*XFreeCursor)(Display *display, Cursor cursor);
-	Atom utf8;
-	Atom targets;
-};
-
-extern int local_pipe[2];			/* Used for passing local events */
-extern int key_pipe[2];			/* Used for passing keyboard events */
-
-extern struct x11 x11;
-
-extern char 	*copybuf;
-extern pthread_mutex_t	copybuf_mutex;
-extern char 	*pastebuf;
-extern sem_t	pastebuf_set;
-extern sem_t	pastebuf_used;
-extern Atom	copybuf_format;
-extern Atom	pastebuf_format;
-extern sem_t	init_complete;
-extern sem_t	mode_set;
-extern sem_t	event_thread_complete;
-extern int terminate;
-extern int x11_window_xpos;
-extern int x11_window_ypos;
-extern int x11_window_width;
-extern int x11_window_height;
-extern int x11_initialized;
-extern struct video_stats x_cvstat;
-
-void x11_event_thread(void *args);
-
-#endif
diff --git a/ciolib/xbr.c b/ciolib/xbr.c
deleted file mode 100644
index a7f02ed6e36332dc04aee59226c883b407d537e4..0000000000000000000000000000000000000000
--- a/ciolib/xbr.c
+++ /dev/null
@@ -1,299 +0,0 @@
-/*
- * This file is part of FFmpeg.
- *
- * Copyright (c) 2011, 2012 Hyllian/Jararaca <sergiogdb@gmail.com>
- * Copyright (c) 2014 Arwa Arif <arwaarif1994@gmail.com>
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * XBR Filter is used for depixelization of image.
- * This is based on Hyllian's xBR shader.
- *
- * @see https://forums.libretro.com/t/xbr-algorithm-tutorial/123
- * @see https://github.com/yoyofr/iFBA/blob/master/fba_src/src/intf/video/scalers/xbr.cpp
- */
-
-#include <inttypes.h>
-#include <stdlib.h>
-#include "scale.h"
-
-#define LB_MASK       0x00FEFEFE
-#define RED_BLUE_MASK 0x00FF00FF
-#define GREEN_MASK    0x0000FF00
-
-#ifdef PI
-#undef PI
-#endif
-
-static uint32_t pixel_diff(uint32_t x, uint32_t y)
-{
-#define YMASK 0xff0000
-#define UMASK 0x00ff00
-#define VMASK 0x0000ff
-#define ABSDIFF(a,b) (abs((int)(a)-(int)(b)))
-
-    uint32_t yuv1 = r2y[x & 0xffffff];
-
-    uint32_t yuv2 = r2y[y & 0xffffff];
-
-    return (ABSDIFF(yuv1 & YMASK, yuv2 & YMASK) >> 16) +
-           (ABSDIFF(yuv1 & UMASK, yuv2 & UMASK) >>  8) +
-            ABSDIFF(yuv1 & VMASK, yuv2 & VMASK);
-}
-
-#define ALPHA_BLEND_128_W(a, b) ((((a) & LB_MASK) >> 1) + (((b) & LB_MASK) >> 1))
-#define ALPHA_BLEND_BASE(a, b, m, s) (  (RED_BLUE_MASK & (((a) & RED_BLUE_MASK) + (((((b) & RED_BLUE_MASK) - ((a) & RED_BLUE_MASK)) * (m)) >> (s)))) \
-                                      | (GREEN_MASK    & (((a) & GREEN_MASK)    + (((((b) & GREEN_MASK)    - ((a) & GREEN_MASK))    * (m)) >> (s)))))
-#define ALPHA_BLEND_32_W(a, b)  ALPHA_BLEND_BASE(a, b, 1, 3)
-#define ALPHA_BLEND_64_W(a, b)  ALPHA_BLEND_BASE(a, b, 1, 2)
-#define ALPHA_BLEND_192_W(a, b) ALPHA_BLEND_BASE(a, b, 3, 2)
-#define ALPHA_BLEND_224_W(a, b) ALPHA_BLEND_BASE(a, b, 7, 3)
-
-#define df(A, B) pixel_diff(A, B)
-#define eq(A, B) (df(A, B) < 155)
-
-#define FILT2(PE, PI, PH, PF, PG, PC, PD, PB, PA, G5, C4, G0, D0, C1, B1, F4, I4, H5, I5, A0, A1,   \
-              N0, N1, N2, N3) do {                                                                  \
-    if (PE != PH && PE != PF) {                                                                     \
-        const unsigned e = df(PE,PC) + df(PE,PG) + df(PI,H5) + df(PI,F4) + (df(PH,PF)<<2);          \
-        const unsigned i = df(PH,PD) + df(PH,I5) + df(PF,I4) + df(PF,PB) + (df(PE,PI)<<2);          \
-        if (e <= i) {                                                                               \
-            const unsigned px = df(PE,PF) <= df(PE,PH) ? PF : PH;                                   \
-            if ((e < i) && ((!eq(PF,PB) && !eq(PH,PD)) || (eq(PE,PI)                                \
-                          && (!eq(PF,I4) && !eq(PH,I5)))                                            \
-                          || eq(PE,PG) || eq(PE,PC))) {                                             \
-                const unsigned ke = df(PF,PG);                                                      \
-                const unsigned ki = df(PH,PC);                                                      \
-                const int left    = ke<<1 <= ki && PE != PG && PD != PG;                            \
-                const int up      = ke >= ki<<1 && PE != PC && PB != PC;                            \
-                if (left && up) {                                                                   \
-                    E[N3] = ALPHA_BLEND_224_W(E[N3], px);                                           \
-                    E[N2] = ALPHA_BLEND_64_W( E[N2], px);                                           \
-                    E[N1] = E[N2];                                                                  \
-                } else if (left) {                                                                  \
-                    E[N3] = ALPHA_BLEND_192_W(E[N3], px);                                           \
-                    E[N2] = ALPHA_BLEND_64_W( E[N2], px);                                           \
-                } else if (up) {                                                                    \
-                    E[N3] = ALPHA_BLEND_192_W(E[N3], px);                                           \
-                    E[N1] = ALPHA_BLEND_64_W( E[N1], px);                                           \
-                } else { /* diagonal */                                                             \
-                    E[N3] = ALPHA_BLEND_128_W(E[N3], px);                                           \
-                }                                                                                   \
-            } else {                                                                                \
-                E[N3] = ALPHA_BLEND_128_W(E[N3], px);                                               \
-            }                                                                                       \
-        }                                                                                           \
-    }                                                                                               \
-} while (0)
-
-#define FILT3(PE, PI, PH, PF, PG, PC, PD, PB, PA, G5, C4, G0, D0, C1, B1, F4, I4, H5, I5, A0, A1,   \
-              N0, N1, N2, N3, N4, N5, N6, N7, N8) do {                                              \
-    if (PE != PH && PE != PF) {                                                                     \
-        const unsigned e = df(PE,PC) + df(PE,PG) + df(PI,H5) + df(PI,F4) + (df(PH,PF)<<2);          \
-        const unsigned i = df(PH,PD) + df(PH,I5) + df(PF,I4) + df(PF,PB) + (df(PE,PI)<<2);          \
-        if (e <= i) {                                                                               \
-            const unsigned px = df(PE,PF) <= df(PE,PH) ? PF : PH;                                   \
-            if (e < i && ((!eq(PF,PB) && !eq(PF,PC)) || (!eq(PH,PD) && !eq(PH,PG)) || (eq(PE,PI)    \
-                          && ((!eq(PF,F4) && !eq(PF,I4)) || (!eq(PH,H5) && !eq(PH,I5))))            \
-                          || eq(PE,PG) || eq(PE,PC))) {                                             \
-                const unsigned ke = df(PF,PG);                                                      \
-                const unsigned ki = df(PH,PC);                                                      \
-                const int left    = ke<<1 <= ki && PE != PG && PD != PG;                            \
-                const int up      = ke >= ki<<1 && PE != PC && PB != PC;                            \
-                if (left && up) {                                                                   \
-                    E[N7] = ALPHA_BLEND_192_W(E[N7], px);                                           \
-                    E[N6] = ALPHA_BLEND_64_W( E[N6], px);                                           \
-                    E[N5] = E[N7];                                                                  \
-                    E[N2] = E[N6];                                                                  \
-                    E[N8] = px;                                                                     \
-                } else if (left) {                                                                  \
-                    E[N7] = ALPHA_BLEND_192_W(E[N7], px);                                           \
-                    E[N5] = ALPHA_BLEND_64_W( E[N5], px);                                           \
-                    E[N6] = ALPHA_BLEND_64_W( E[N6], px);                                           \
-                    E[N8] = px;                                                                     \
-                } else if (up) {                                                                    \
-                    E[N5] = ALPHA_BLEND_192_W(E[N5], px);                                           \
-                    E[N7] = ALPHA_BLEND_64_W( E[N7], px);                                           \
-                    E[N2] = ALPHA_BLEND_64_W( E[N2], px);                                           \
-                    E[N8] = px;                                                                     \
-                } else { /* diagonal */                                                             \
-                    E[N8] = ALPHA_BLEND_224_W(E[N8], px);                                           \
-                    E[N5] = ALPHA_BLEND_32_W( E[N5], px);                                           \
-                    E[N7] = ALPHA_BLEND_32_W( E[N7], px);                                           \
-                }                                                                                   \
-            } else {                                                                                \
-                E[N8] = ALPHA_BLEND_128_W(E[N8], px);                                               \
-            }                                                                                       \
-        }                                                                                           \
-    }                                                                                               \
-} while (0)
-
-#define FILT4(PE, PI, PH, PF, PG, PC, PD, PB, PA, G5, C4, G0, D0, C1, B1, F4, I4, H5, I5, A0, A1,   \
-              N15, N14, N11, N3, N7, N10, N13, N12, N9, N6, N2, N1, N5, N8, N4, N0) do {            \
-    if (PE != PH && PE != PF) {                                                                     \
-        const unsigned e = df(PE,PC) + df(PE,PG) + df(PI,H5) + df(PI,F4) + (df(PH,PF)<<2);          \
-        const unsigned i = df(PH,PD) + df(PH,I5) + df(PF,I4) + df(PF,PB) + (df(PE,PI)<<2);          \
-        if (e <= i) {                                                                               \
-            const unsigned px = df(PE,PF) <= df(PE,PH) ? PF : PH;                                   \
-            if (e < i && ((!eq(PF,PB) && !eq(PH,PD)) || (eq(PE,PI)                                  \
-                          && (!eq(PF,I4) && !eq(PH,I5)))                                            \
-                          || eq(PE,PG) || eq(PE,PC))) {                                             \
-                const unsigned ke = df(PF,PG);                                                      \
-                const unsigned ki = df(PH,PC);                                                      \
-                const int left    = ke<<1 <= ki && PE != PG && PD != PG;                            \
-                const int up      = ke >= ki<<1 && PE != PC && PB != PC;                            \
-                if (left && up) {                                                                   \
-                    E[N13] = ALPHA_BLEND_192_W(E[N13], px);                                         \
-                    E[N12] = ALPHA_BLEND_64_W( E[N12], px);                                         \
-                    E[N15] = E[N14] = E[N11] = px;                                                  \
-                    E[N10] = E[N3]  = E[N12];                                                       \
-                    E[N7]  = E[N13];                                                                \
-                } else if (left) {                                                                  \
-                    E[N11] = ALPHA_BLEND_192_W(E[N11], px);                                         \
-                    E[N13] = ALPHA_BLEND_192_W(E[N13], px);                                         \
-                    E[N10] = ALPHA_BLEND_64_W( E[N10], px);                                         \
-                    E[N12] = ALPHA_BLEND_64_W( E[N12], px);                                         \
-                    E[N14] = px;                                                                    \
-                    E[N15] = px;                                                                    \
-                } else if (up) {                                                                    \
-                    E[N14] = ALPHA_BLEND_192_W(E[N14], px);                                         \
-                    E[N7 ] = ALPHA_BLEND_192_W(E[N7 ], px);                                         \
-                    E[N10] = ALPHA_BLEND_64_W( E[N10], px);                                         \
-                    E[N3 ] = ALPHA_BLEND_64_W( E[N3 ], px);                                         \
-                    E[N11] = px;                                                                    \
-                    E[N15] = px;                                                                    \
-                } else { /* diagonal */                                                             \
-                    E[N11] = ALPHA_BLEND_128_W(E[N11], px);                                         \
-                    E[N14] = ALPHA_BLEND_128_W(E[N14], px);                                         \
-                    E[N15] = px;                                                                    \
-                }                                                                                   \
-            } else {                                                                                \
-                E[N15] = ALPHA_BLEND_128_W(E[N15], px);                                             \
-            }                                                                                       \
-        }                                                                                           \
-    }                                                                                               \
-} while (0)
-
-#define CLAMP(x) do { \
-	if (x < 0) \
-		x = 0; \
-	else if (x > 255) \
-		x = 255; \
-} while(0)
-
-void
-xbr_filter(uint32_t *data, uint32_t *out, int width, int height, int n)
-{
-    int x, y;
-    const int nl = width * n;
-    const int nl1 = nl + nl;
-    const int nl2 = nl1 + nl;
-
-    for (y = 0; y < height; y++) {
-
-        uint32_t *E = out + y * width * n * n;
-        const uint32_t *sa2 = (data + y * width - 2); /* center */
-        const uint32_t *sa1 = sa2 - (width); /* up x1 */
-        const uint32_t *sa0 = sa1 - (width); /* up x2 */
-        const uint32_t *sa3 = sa2 + (width); /* down x1 */
-        const uint32_t *sa4 = sa3 + (width); /* down x2 */
-
-        if (y <= 1) {
-            sa0 = sa1;
-            if (y == 0) {
-                sa0 = sa1 = sa2;
-            }
-        }
-
-        if (y >= height - 2) {
-            sa4 = sa3;
-            if (y == height - 1) {
-                sa4 = sa3 = sa2;
-            }
-        }
-
-        for (x = 0; x < width; x++) {
-            const uint32_t B1 = sa0[2];
-            const uint32_t PB = sa1[2];
-            const uint32_t PE = sa2[2];
-            const uint32_t PH = sa3[2];
-            const uint32_t H5 = sa4[2];
-
-            const int pprev = 2 - (x > 0);
-            const uint32_t A1 = sa0[pprev];
-            const uint32_t PA = sa1[pprev];
-            const uint32_t PD = sa2[pprev];
-            const uint32_t PG = sa3[pprev];
-            const uint32_t G5 = sa4[pprev];
-
-            const int pprev2 = pprev - (x > 1);
-            const uint32_t A0 = sa1[pprev2];
-            const uint32_t D0 = sa2[pprev2];
-            const uint32_t G0 = sa3[pprev2];
-
-            const int pnext = 3 - (x == width - 1);
-            const uint32_t C1 = sa0[pnext];
-            const uint32_t PC = sa1[pnext];
-            const uint32_t PF = sa2[pnext];
-            const uint32_t PI = sa3[pnext];
-            const uint32_t I5 = sa4[pnext];
-
-            const int pnext2 = pnext + 1 - (x >= width - 2);
-            const uint32_t C4 = sa1[pnext2];
-            const uint32_t F4 = sa2[pnext2];
-            const uint32_t I4 = sa3[pnext2];
-
-            if (n == 2) {
-                E[0]  = E[1]      =     // 0, 1
-                E[nl] = E[nl + 1] = PE; // 2, 3
-
-                FILT2(PE, PI, PH, PF, PG, PC, PD, PB, PA, G5, C4, G0, D0, C1, B1, F4, I4, H5, I5, A0, A1, 0, 1, nl, nl+1);
-                FILT2(PE, PC, PF, PB, PI, PA, PH, PD, PG, I4, A1, I5, H5, A0, D0, B1, C1, F4, C4, G5, G0, nl, 0, nl+1, 1);
-                FILT2(PE, PA, PB, PD, PC, PG, PF, PH, PI, C1, G0, C4, F4, G5, H5, D0, A0, B1, A1, I4, I5, nl+1, nl, 1, 0);
-                FILT2(PE, PG, PD, PH, PA, PI, PB, PF, PC, A0, I5, A1, B1, I4, F4, H5, G5, D0, G0, C1, C4, 1, nl+1, 0, nl);
-            } else if (n == 3) {
-                E[0]   = E[1]     = E[2]     =     // 0, 1, 2
-                E[nl]  = E[nl+1]  = E[nl+2]  =     // 3, 4, 5
-                E[nl1] = E[nl1+1] = E[nl1+2] = PE; // 6, 7, 8
-
-                FILT3(PE, PI, PH, PF, PG, PC, PD, PB, PA, G5, C4, G0, D0, C1, B1, F4, I4, H5, I5, A0, A1, 0, 1, 2, nl, nl+1, nl+2, nl1, nl1+1, nl1+2);
-                FILT3(PE, PC, PF, PB, PI, PA, PH, PD, PG, I4, A1, I5, H5, A0, D0, B1, C1, F4, C4, G5, G0, nl1, nl, 0, nl1+1, nl+1, 1, nl1+2, nl+2, 2);
-                FILT3(PE, PA, PB, PD, PC, PG, PF, PH, PI, C1, G0, C4, F4, G5, H5, D0, A0, B1, A1, I4, I5, nl1+2, nl1+1, nl1, nl+2, nl+1, nl, 2, 1, 0);
-                FILT3(PE, PG, PD, PH, PA, PI, PB, PF, PC, A0, I5, A1, B1, I4, F4, H5, G5, D0, G0, C1, C4, 2, nl+2, nl1+2, 1, nl+1, nl1+1, 0, nl, nl1);
-            } else if (n == 4) {
-                E[0]   = E[1]     = E[2]     = E[3]     =     //  0,  1,  2,  3
-                E[nl]  = E[nl+1]  = E[nl+2]  = E[nl+3]  =     //  4,  5,  6,  7
-                E[nl1] = E[nl1+1] = E[nl1+2] = E[nl1+3] =     //  8,  9, 10, 11
-                E[nl2] = E[nl2+1] = E[nl2+2] = E[nl2+3] = PE; // 12, 13, 14, 15
-
-                FILT4(PE, PI, PH, PF, PG, PC, PD, PB, PA, G5, C4, G0, D0, C1, B1, F4, I4, H5, I5, A0, A1, nl2+3, nl2+2, nl1+3, 3, nl+3, nl1+2, nl2+1, nl2, nl1+1, nl+2, 2, 1, nl+1, nl1, nl, 0);
-                FILT4(PE, PC, PF, PB, PI, PA, PH, PD, PG, I4, A1, I5, H5, A0, D0, B1, C1, F4, C4, G5, G0, 3, nl+3, 2, 0, 1, nl+2, nl1+3, nl2+3, nl1+2, nl+1, nl, nl1, nl1+1, nl2+2, nl2+1, nl2);
-                FILT4(PE, PA, PB, PD, PC, PG, PF, PH, PI, C1, G0, C4, F4, G5, H5, D0, A0, B1, A1, I4, I5, 0, 1, nl, nl2, nl1, nl+1, 2, 3, nl+2, nl1+1, nl2+1, nl2+2, nl1+2, nl+3, nl1+3, nl2+3);
-                FILT4(PE, PG, PD, PH, PA, PI, PB, PF, PC, A0, I5, A1, B1, I4, F4, H5, G5, D0, G0, C1, C4, nl2, nl1, nl2+1, nl2+3, nl2+2, nl1+1, nl, 0, nl+1, nl1+2, nl1+3, nl+3, nl+2, 1, 2, 3);
-            }
-
-            sa0 += 1;
-            sa1 += 1;
-            sa2 += 1;
-            sa3 += 1;
-            sa4 += 1;
-
-            E += n;
-        }
-    }
-}
diff --git a/ciolib/xbr.h b/ciolib/xbr.h
deleted file mode 100644
index c8c32aeb647a5f3ab1410368cd7a02cb5f9589c2..0000000000000000000000000000000000000000
--- a/ciolib/xbr.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <inttypes.h>
-
-void xbr_filter(uint32_t *data, uint32_t *out, int width, int height, int n);
-
diff --git a/comio/CMakeLists.txt b/comio/CMakeLists.txt
deleted file mode 100644
index 5212bed571b4d1d9b4ab6b898f551c608e7090cb..0000000000000000000000000000000000000000
--- a/comio/CMakeLists.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-project (COMIO C)
-
-cmake_minimum_required(VERSION 3.11)
-
-set(SOURCE
-	comio.c
-)
-
-set(HEADER
-	comio.h
-)
-
-if(WIN32)
-	list(APPEND SOURCE comio_win32.c)
-else()
-	list(APPEND SOURCE comio_nix.c)
-endif()
-
-add_library(comio OBJECT ${SOURCE})
-if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
-	target_compile_definitions(comio PRIVATE SPEED_MACROS_ONLY)
-endif()
-target_include_directories(comio PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
-
-target_link_libraries(comio xpdev)
diff --git a/comio/comio.c b/comio/comio.c
deleted file mode 100644
index 2901527a62088519b3374de53c09f85740792290..0000000000000000000000000000000000000000
--- a/comio/comio.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* comio.c */
-
-/* Synchronet Serial Communications I/O Library Common Functions */
-
-/* $Id: comio.c,v 1.4 2020/06/26 19:33:08 deuce Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include "comio.h"
-#include "genwrap.h"	/* msclock */
-
-size_t comReadBuf(COM_HANDLE handle, char* buf, size_t buflen, const char* terminators, int timeout)
-{
-	BYTE		ch;
-	size_t		len=0;
-	msclock_t	start=msclock();
-
-	while(len < buflen) {
-		if(!comReadByte(handle, &ch)) {
-			if(msclock()-start >= timeout)
-				break;
-			YIELD();
-			continue;
-		}
-		if(len && terminators!=NULL && strchr(terminators, ch)!=NULL)
-			break;
-		buf[len++]=ch;
-	}
-
-	return len;
-}
-
-size_t comReadLine(COM_HANDLE handle, char* buf, size_t buflen, int timeout)
-{
-	size_t	len;
-
-	len=comReadBuf(handle, buf, buflen-1, "\n", timeout);
-
-	buf[len]=0;
-
-	return len;
-}
-
diff --git a/comio/comio.h b/comio/comio.h
deleted file mode 100644
index 557381ba28d52fa5710637be26b19f82d1ec2f09..0000000000000000000000000000000000000000
--- a/comio/comio.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/* comio.h */
-
-/* Synchronet Serial Communications (COM) I/O Library */
-
-/* $Id: comio.h,v 1.15 2020/06/26 19:56:48 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _COMIO_H
-#define _COMIO_H
-
-#include <gen_defs.h>	/* BOOL */
-
-#define COM_ERROR						-1
-
-#ifdef _WIN32
-	#if defined(COMIO_IMPORTS) || defined(COMIO_EXPORTS)
-		#if defined(COMIO_IMPORTS)
-			#define COMIOEXPORT __declspec( dllimport )
-		#else
-			#define COMIOEXPORT __declspec( dllexport )
-		#endif
-	#else	/* self-contained executable */
-		#define COMIOEXPORT
-	#endif
-#else
-	#define COMIOEXPORT
-#endif
-
-#ifdef _WIN32
-	#include <windows.h>
-
-    #define COM_HANDLE					HANDLE
-	#define COM_HANDLE_INVALID			INVALID_HANDLE_VALUE
-	#define COM_ERROR_VALUE				GetLastError()
-/* Modem Status bits */
-	#define COM_CTS						MS_CTS_ON
-	#define COM_DSR						MS_DSR_ON
-	#define COM_RING					MS_RING_ON
-	#define	COM_DCD						MS_RLSD_ON
-#else
-	#include <termios.h>
-
-    #define COM_HANDLE					int
-	#define COM_HANDLE_INVALID			-1
-	#define COM_ERROR_VALUE				errno
-
-/* Stuff we apparently don't care about... 
- *
- *	TIOCM_LE   Line Enable.
- *	TIOCM_DTR  Data Terminal Ready.
- *	TIOCM_RTS  Request To Send.
- *	TIOCM_ST   Secondary Transmit.
- *	TIOCM_SR   Secondary Receive.
- */
-
-	#define COM_CTS						TIOCM_CTS  /* Clear To Send. */
-#ifdef TIOCM_CAR
-	#define COM_DCD						TIOCM_CAR  /* Carrier Detect. */
-#else
-	#define COM_DCD						TIOCM_CD   /* Carrier Detect (synonym). */
-#endif
-#ifdef TIOCM_RNG
-	#define COM_RING					TIOCM_RNG  /* Ring Indication. */
-#else
-	#define COM_RING					TIOCM_RI   /* Ring Indication (synonym). */
-#endif
-	#define COM_DSR						TIOCM_DSR  /* Data Set Ready. */
-
-#endif
-
-#define COM_FLOW_CONTROL_NONE			0
-#define COM_FLOW_CONTROL_RTS_CTS		(1<<0)
-#define COM_FLOW_CONTROL_DTR_DSR		(1<<1)
-#define COM_FLOW_CONTROL_XON_OFF		(1<<2)
-
-/**************/
-/* Prototypes */
-/**************/
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-COMIOEXPORT char*		comVersion(char* str, size_t len);
-COMIOEXPORT COM_HANDLE	comOpen(const char* device);
-COMIOEXPORT BOOL		comClose(COM_HANDLE);
-COMIOEXPORT long		comGetBaudRate(COM_HANDLE);
-COMIOEXPORT BOOL		comSetBaudRate(COM_HANDLE, ulong rate);
-COMIOEXPORT int			comGetFlowControl(COM_HANDLE);
-COMIOEXPORT BOOL		comSetFlowControl(COM_HANDLE, int);
-COMIOEXPORT int			comGetModemStatus(COM_HANDLE);
-COMIOEXPORT int			comRaiseDTR(COM_HANDLE);
-COMIOEXPORT int			comLowerDTR(COM_HANDLE);
-COMIOEXPORT int			comRaiseRTS(COM_HANDLE);
-COMIOEXPORT int			comLowerRTS(COM_HANDLE);
-COMIOEXPORT BOOL		comWriteByte(COM_HANDLE, BYTE);
-COMIOEXPORT int			comWriteBuf(COM_HANDLE, const BYTE*, size_t buflen);
-COMIOEXPORT int			comWriteString(COM_HANDLE, const char*);
-COMIOEXPORT BOOL		comReadByte(COM_HANDLE, BYTE*);
-COMIOEXPORT size_t		comReadBuf(COM_HANDLE, char* buf, size_t buflen
-							,const char* terminators, int timeout /* in milliseconds */);
-COMIOEXPORT size_t		comReadLine(COM_HANDLE, char* buf, size_t buflen
-							,int timeout /* in milliseconds */);
-COMIOEXPORT BOOL		comPurgeInput(COM_HANDLE);
-COMIOEXPORT BOOL		comPurgeOutput(COM_HANDLE);
-
-#if defined(__cplusplus)
-}
-#endif
-
-
-#endif /* Don't add anything after this #endif statement */
diff --git a/comio/comio_nix.c b/comio/comio_nix.c
deleted file mode 100644
index 03f33d498d5423eb61dfc9823e2303261a57fa67..0000000000000000000000000000000000000000
--- a/comio/comio_nix.c
+++ /dev/null
@@ -1,413 +0,0 @@
-/* comio_nix.c */
-
-/* Synchronet Serial Communications I/O Library Functions for *nix */
-
-/* $Id: comio_nix.c,v 1.19 2020/06/27 08:23:39 deuce Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4       (Plain Text/Source Code File Header)            *
- * @format.use-tabs true    (see http://www.synchro.net/ptsc_hdr.html)      *
- *                                                                          *
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html           *
- *                                                                          *
- * This library is free software; you can redistribute it and/or            *
- * modify it under the terms of the GNU Lesser General Public License       *
- * as published by the Free Software Foundation; either version 2           *
- * of the License, or (at your option) any later version.                   *
- * See the GNU Lesser General Public License for more details: lgpl.txt or  *
- * http://www.fsf.org/copyleft/lesser.html                                  *
- *                                                                          *
- * Anonymous FTP access to the most recent released source is available at  *
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net  *
- *                                                                          *
- * Anonymous CVS access to the development source and modification history  *
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:                  *
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login            *
- *     (just hit return, no password is necessary)                          *
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src     *
- *                                                                          *
- * For Synchronet coding style and modification guidelines, see             *
- * http://www.synchro.net/source.html                                       *
- *                                                                          *
- * You are encouraged to submit any modifications (preferably in Unix diff  *
- * format) via e-mail to mods@synchro.net                                   *
- *                                                                          *
- * Note: If this box doesn't appear square, then you need to fix your tabs. *
- ****************************************************************************/
-
-#include <sys/ioctl.h>
-#include <sys/file.h>
-#include <fcntl.h>      // O_NONBLOCK
-#include "comio.h"
-#include "genwrap.h"
-
-#if defined(CCTS_OFLOW) && defined(CRTS_IFLOW)
- #define CTSRTS_FLOW_CFLAGS (CCTS_OFLOW | CRTS_IFLOW)
-#elif defined(CRTSCTS)
- #define CTSRTS_FLOW_CFLAGS (CRTSCTS)
-#else
- #error No way to control CTS/RTS flow control
-#endif
-
-#if defined(IXON) && defined (IXOFF)
- #define XONXOFF_FLOW_IFLAGS (IXON | IXOFF)
-#else
- #error No way to control XON/XOFF flow control
-#endif
-
-#ifdef SPEED_MACROS_ONLY
-
-#define SUPPORTED_SPEED(x) \
-    if (speed <= (x)) \
-        return B##x
-
-speed_t rate_to_macro(unsigned long speed)
-{
-    // Standard values
-    SUPPORTED_SPEED(0);
-    SUPPORTED_SPEED(50);
-    SUPPORTED_SPEED(75);
-    SUPPORTED_SPEED(110);
-    SUPPORTED_SPEED(134);
-    SUPPORTED_SPEED(150);
-    SUPPORTED_SPEED(200);
-    SUPPORTED_SPEED(300);
-    SUPPORTED_SPEED(600);
-    SUPPORTED_SPEED(1200);
-    SUPPORTED_SPEED(1800);
-    SUPPORTED_SPEED(2400);
-    SUPPORTED_SPEED(4800);
-    SUPPORTED_SPEED(9600);
-    SUPPORTED_SPEED(19200);
-    SUPPORTED_SPEED(38400);
-
-    // Non-POSIX
-#ifdef B57600
-    SUPPORTED_SPEED(57600);
-#endif
-#ifdef B115200
-    SUPPORTED_SPEED(115200);
-#endif
-#ifdef B230400
-    SUPPORTED_SPEED(230400);
-#endif
-#ifdef B460800
-    SUPPORTED_SPEED(460800);
-#endif
-#ifdef B500000
-    SUPPORTED_SPEED(500000);
-#endif
-#ifdef B576000
-    SUPPORTED_SPEED(576000);
-#endif
-#ifdef B921600
-    SUPPORTED_SPEED(921600);
-#endif
-#ifdef B1000000
-    SUPPORTED_SPEED(1000000);
-#endif
-#ifdef B1152000
-    SUPPORTED_SPEED(1152000);
-#endif
-#ifdef B1500000
-    SUPPORTED_SPEED(1500000);
-#endif
-#ifdef B2000000
-    SUPPORTED_SPEED(2000000);
-#endif
-#ifdef B2500000
-    SUPPORTED_SPEED(2500000);
-#endif
-#ifdef B3000000
-    SUPPORTED_SPEED(3000000);
-#endif
-#ifdef B3500000
-    SUPPORTED_SPEED(3500000);
-#endif
-#ifdef B4000000
-    SUPPORTED_SPEED(4000000);
-#endif
-    return B0;
-}
-#undef SUPPORTED_SPEED
-#define SUPPORTED_SPEED(x) \
-    if (speed == B##x) \
-        return x;
-
-unsigned long macro_to_rate(speed_t speed)
-{
-    // Standard values
-    SUPPORTED_SPEED(0);
-    SUPPORTED_SPEED(50);
-    SUPPORTED_SPEED(75);
-    SUPPORTED_SPEED(110);
-    SUPPORTED_SPEED(134);
-    SUPPORTED_SPEED(150);
-    SUPPORTED_SPEED(200);
-    SUPPORTED_SPEED(300);
-    SUPPORTED_SPEED(600);
-    SUPPORTED_SPEED(1200);
-    SUPPORTED_SPEED(1800);
-    SUPPORTED_SPEED(2400);
-    SUPPORTED_SPEED(4800);
-    SUPPORTED_SPEED(9600);
-    SUPPORTED_SPEED(19200);
-    SUPPORTED_SPEED(38400);
-
-    // Non-POSIX
-#ifdef B57600
-    SUPPORTED_SPEED(57600);
-#endif
-#ifdef B115200
-    SUPPORTED_SPEED(115200);
-#endif
-#ifdef B230400
-    SUPPORTED_SPEED(230400);
-#endif
-#ifdef B460800
-    SUPPORTED_SPEED(460800);
-#endif
-#ifdef B500000
-    SUPPORTED_SPEED(500000);
-#endif
-#ifdef B576000
-    SUPPORTED_SPEED(576000);
-#endif
-#ifdef B921600
-    SUPPORTED_SPEED(921600);
-#endif
-#ifdef B1000000
-    SUPPORTED_SPEED(1000000);
-#endif
-#ifdef B1152000
-    SUPPORTED_SPEED(1152000);
-#endif
-#ifdef B1500000
-    SUPPORTED_SPEED(1500000);
-#endif
-#ifdef B2000000
-    SUPPORTED_SPEED(2000000);
-#endif
-#ifdef B2500000
-    SUPPORTED_SPEED(2500000);
-#endif
-#ifdef B3000000
-    SUPPORTED_SPEED(3000000);
-#endif
-#ifdef B3500000
-    SUPPORTED_SPEED(3500000);
-#endif
-#ifdef B4000000
-    SUPPORTED_SPEED(4000000);
-#endif
-    return 0;
-}
-#undef SUPPORTED_SPEED
-
-#else
-#define rate_to_macro(x)    (x)
-#define macro_to_rate(x)    (x)
-#endif
-
-char* comVersion(char* str, size_t len)
-{
-    char revision[16];
-
-    sscanf("$Revision: 1.19 $", "%*s %s", revision);
-
-    safe_snprintf(str,len,"Synchronet Communications I/O Library for "PLATFORM_DESC" v%s", revision);
-    return str;
-}
-
-COM_HANDLE comOpen(const char* device)
-{
-    COM_HANDLE handle;
-    struct termios t;
-
-    if((handle=open(device, O_NONBLOCK|O_RDWR))==COM_HANDLE_INVALID)
-        return COM_HANDLE_INVALID;
-
-    if(tcgetattr(handle, &t)==-1) {
-        close(handle);
-        return COM_HANDLE_INVALID;
-    }
-
-    t.c_iflag = (
-                  IGNBRK   /* ignore BREAK condition */
-                | IGNPAR   /* ignore (discard) parity errors */
-                );
-    t.c_oflag = 0;  /* No output processing */
-    t.c_cflag = (
-                  CS8         /* 8 bits */
-                | CREAD       /* enable receiver */
-/*
-Fun snippet from the FreeBSD manpage:
-
-     If CREAD is set, the receiver is enabled.  Otherwise, no character is
-     received.  Not all hardware supports this bit.  In fact, this flag is
-     pretty silly and if it were not part of the termios specification it
-     would be omitted.
-*/
-                | HUPCL       /* hang up on last close */
-                | CLOCAL      /* ignore modem status lines */
-                | CTSRTS_FLOW_CFLAGS
-                );
-    t.c_lflag = 0;  /* No local modes */
-    if(tcsetattr(handle, TCSANOW, &t)==-1) {
-        close(handle);
-        return COM_HANDLE_INVALID;
-    }
-
-    return handle;
-}
-
-BOOL comClose(COM_HANDLE handle)
-{
-    return (!close(handle));
-}
-
-long comGetBaudRate(COM_HANDLE handle)
-{
-    struct termios t;
-    speed_t in;
-    speed_t out;
-
-    if(tcgetattr(handle, &t))
-        return COM_ERROR;
-
-    /*
-     * We actually have TWO speeds available...
-     * return the biggest one
-     */
-    in = macro_to_rate(cfgetispeed(&t));
-    out = macro_to_rate(cfgetospeed(&t));
-    return ((long)(in>out?in:out));
-}
-
-BOOL comSetBaudRate(COM_HANDLE handle, unsigned long rate)
-{
-    struct termios t;
-
-    if(tcgetattr(handle, &t))
-        return FALSE;
-
-    cfsetispeed(&t, rate_to_macro(rate));
-    cfsetospeed(&t, rate_to_macro(rate));
-    if(tcsetattr(handle, TCSANOW, &t)==-1)
-        return FALSE;
-
-    return TRUE;
-}
-
-int comGetFlowControl(COM_HANDLE handle)
-{
-    int ret = 0;
-    struct termios t;
-
-    if(tcgetattr(handle, &t)==-1)
-        return FALSE;
-
-    if ((t.c_cflag & CTSRTS_FLOW_CFLAGS) == CTSRTS_FLOW_CFLAGS)
-        ret |= COM_FLOW_CONTROL_RTS_CTS;
-    if ((t.c_iflag & XONXOFF_FLOW_IFLAGS) == XONXOFF_FLOW_IFLAGS)
-        ret |= COM_FLOW_CONTROL_XON_OFF;
-
-    return ret;
-}
-
-BOOL comSetFlowControl(COM_HANDLE handle, int modes)
-{
-    struct termios t;
-
-    if(tcgetattr(handle, &t)==-1)
-        return FALSE;
-
-    if (modes & COM_FLOW_CONTROL_RTS_CTS)
-        t.c_cflag |= CTSRTS_FLOW_CFLAGS;
-    else
-        t.c_cflag &= ~CTSRTS_FLOW_CFLAGS;
-
-    if (modes & COM_FLOW_CONTROL_XON_OFF)
-        t.c_iflag |= XONXOFF_FLOW_IFLAGS;
-    else
-        t.c_iflag &= ~XONXOFF_FLOW_IFLAGS;
-
-    if(tcsetattr(handle, TCSANOW, &t)==-1)
-        return FALSE;
-
-    return TRUE;
-}
-
-int comGetModemStatus(COM_HANDLE handle)
-{
-    int status;
-
-    if(ioctl(handle, TIOCMGET, &status)==-1)
-        return COM_ERROR;
-
-    return status;
-}
-
-static BOOL comSetFlags(COM_HANDLE handle, int flags, BOOL set)
-{
-    int cmd = set ? TIOCMBIS : TIOCMBIC;
-
-    return (ioctl(handle, cmd, &flags) == 0);
-}
-
-BOOL comRaiseDTR(COM_HANDLE handle)
-{
-    return comSetFlags(handle, TIOCM_DTR, TRUE);
-}
-
-BOOL comLowerDTR(COM_HANDLE handle)
-{
-    return comSetFlags(handle, TIOCM_DTR, FALSE);
-}
-
-BOOL comRaiseRTS(COM_HANDLE handle)
-{
-    return comSetFlags(handle, TIOCM_RTS, TRUE);
-}
-
-BOOL comLowerRTS(COM_HANDLE handle)
-{
-    return comSetFlags(handle, TIOCM_RTS, FALSE);
-}
-BOOL comWriteByte(COM_HANDLE handle, BYTE ch)
-{
-    return(write(handle, &ch, 1)==1);
-}
-
-int comWriteBuf(COM_HANDLE handle, const BYTE* buf, size_t buflen)
-{
-    return write(handle, buf, buflen);
-}
-
-/*
- * TODO: This seem kinda dangerous for short writes...
- */
-int comWriteString(COM_HANDLE handle, const char* str)
-{
-    return comWriteBuf(handle, (BYTE*)str, strlen(str));
-}
-
-BOOL comReadByte(COM_HANDLE handle, BYTE* ch)
-{
-    return(read(handle, ch, 1)==1);
-}
-
-BOOL comPurgeInput(COM_HANDLE handle)
-{
-    return(tcflush(handle, TCIFLUSH)==0);
-}
-
-BOOL comPurgeOutput(COM_HANDLE handle)
-{
-    return(tcflush(handle, TCOFLUSH)==0);
-}
-
-BOOL comDrainOutput(COM_HANDLE handle)
-{
-    return(tcdrain(handle)==0);
-}
diff --git a/comio/comio_win32.c b/comio/comio_win32.c
deleted file mode 100644
index b539dd7d29655f10df289c384e825ae25da47c98..0000000000000000000000000000000000000000
--- a/comio/comio_win32.c
+++ /dev/null
@@ -1,228 +0,0 @@
-/* comio_win32.c */
-
-/* Synchronet Serial Communications I/O Library Functions for Win32 */
-
-/* $Id: comio_win32.c,v 1.13 2020/06/26 19:56:48 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include "comio.h"
-#include "genwrap.h"
-
-char* comVersion(char* str, size_t len)
-{
-	char revision[16];
-
-	sscanf("$Revision: 1.13 $", "%*s %s", revision);
-
-	safe_snprintf(str,len,"Synchronet Communications I/O Library for "PLATFORM_DESC" v%s", revision);
-	return str;
-}
-
-COM_HANDLE comOpen(const char* device)
-{
-	COM_HANDLE handle;
-	COMMTIMEOUTS timeouts;
-	DCB	dcb;
-
-	if((handle=CreateFile(device
-		,GENERIC_READ|GENERIC_WRITE 	/* Access */
-		,0								/* Share mode */
-		,NULL							/* Security attributes */
-		,OPEN_EXISTING					/* Create access */
-		,FILE_ATTRIBUTE_NORMAL			/* File attributes */
-		,NULL							/* Template */
-		))==INVALID_HANDLE_VALUE)
-		return COM_HANDLE_INVALID;
-
-
-	if(GetCommTimeouts(handle, &timeouts)) {
-		timeouts.ReadIntervalTimeout=MAXDWORD;
-		timeouts.ReadTotalTimeoutMultiplier=0;
-		timeouts.ReadTotalTimeoutConstant=0;		// No-wait read timeout
-		timeouts.WriteTotalTimeoutMultiplier=0;
-		timeouts.WriteTotalTimeoutConstant=5000;	// 5 seconds
-		SetCommTimeouts(handle,&timeouts);
-	}
-
-	/* Force N-8-1 mode: */
-	if(GetCommState(handle, &dcb)==TRUE) {
-		dcb.ByteSize	= 8;
-		dcb.Parity		= NOPARITY;
-		dcb.StopBits	= ONESTOPBIT;
-		SetCommState(handle, &dcb);
-	}
-
-	return handle;
-}
-
-BOOL comClose(COM_HANDLE handle)
-{
-	return CloseHandle(handle);
-}
-
-long comGetBaudRate(COM_HANDLE handle)
-{
-	DCB dcb;
-
-	if(GetCommState(handle, &dcb)!=TRUE)
-		return COM_ERROR;
-
-	return dcb.BaudRate;
-}
-
-BOOL comSetBaudRate(COM_HANDLE handle, unsigned long rate)
-{
-	DCB dcb;
-
-	if(GetCommState(handle, &dcb)!=TRUE)
-		return FALSE;
-
-	dcb.BaudRate=rate;
-
-	return SetCommState(handle, &dcb);
-}
-
-int comGetFlowControl(COM_HANDLE handle)
-{
-	DCB dcb;
-	int result = 0;
-
-	if(GetCommState(handle, &dcb) != TRUE)
-		return COM_ERROR;
-
-	if(dcb.fOutxCtsFlow)
-		result |= COM_FLOW_CONTROL_RTS_CTS;
-	if(dcb.fOutxDsrFlow)
-		result |= COM_FLOW_CONTROL_DTR_DSR;
-	if(dcb.fInX && dcb.fOutX)
-		result |= COM_FLOW_CONTROL_XON_OFF;
-	return result;
-}
-
-BOOL comSetFlowControl(COM_HANDLE handle, int type)
-{
-	DCB dcb;
-
-	if(GetCommState(handle, &dcb) != TRUE)
-		return FALSE;
-
-	dcb.fOutxCtsFlow = 0;
-	dcb.fRtsControl = RTS_CONTROL_DISABLE; // This is questionable
-	dcb.fOutxDsrFlow = 0;
-	dcb.fDsrSensitivity = 0;
-	dcb.fInX = 0;
-	dcb.fOutX = 0;
-	if(type&COM_FLOW_CONTROL_RTS_CTS) {
-		dcb.fOutxCtsFlow = 1;
-		dcb.fRtsControl = RTS_CONTROL_HANDSHAKE;
-	}
-	if(type&COM_FLOW_CONTROL_DTR_DSR) {
-		dcb.fOutxDsrFlow = 1;
-		dcb.fDsrSensitivity = 1;
-	}
-	if(type&COM_FLOW_CONTROL_XON_OFF) {
-		dcb.fInX = 1;
-		dcb.fOutX = 1;
-	}
-	return SetCommState(handle, &dcb);
-}
-
-int comGetModemStatus(COM_HANDLE handle)
-{
-	DWORD status=0;
-	
-	if(GetCommModemStatus(handle, &status))
-		return status;
-	else
-		return COM_ERROR;
-}
-
-BOOL comRaiseDTR(COM_HANDLE handle)
-{
-	return EscapeCommFunction(handle, SETDTR);
-}
-
-BOOL comLowerDTR(COM_HANDLE handle)
-{
-	return EscapeCommFunction(handle, CLRDTR);
-}
-
-BOOL comRaiseRTS(COM_HANDLE handle)
-{
-	return EscapeCommFunction(handle, SETRTS);
-}
-
-BOOL comLowerRTS(COM_HANDLE handle)
-{
-	return EscapeCommFunction(handle, CLRRTS);
-}
-
-BOOL comWriteByte(COM_HANDLE handle, BYTE ch)
-{
-	DWORD wr=0;
-
-	return WriteFile(handle, &ch, sizeof(ch), &wr, NULL) && wr==sizeof(BYTE);
-}
-
-int comWriteBuf(COM_HANDLE handle, const BYTE* buf, size_t buflen)
-{
-	DWORD wr=0;
-
-	if(!WriteFile(handle, buf, buflen, &wr, NULL))
-		return COM_ERROR;
-
-	return wr;
-}
-
-int comWriteString(COM_HANDLE handle, const char* str)
-{
-	return comWriteBuf(handle, str, strlen(str));
-}
-
-BOOL comReadByte(COM_HANDLE handle, BYTE* ch)
-{
-	DWORD rd;
-
-	return ReadFile(handle, ch, sizeof(BYTE), &rd, NULL) && rd==sizeof(BYTE);
-}
-
-BOOL comPurgeInput(COM_HANDLE handle)
-{
-	return PurgeComm(handle, PURGE_RXCLEAR);
-}
-
-BOOL comPurgeOutput(COM_HANDLE handle)
-{
-	return PurgeComm(handle, PURGE_TXCLEAR);
-}
-
diff --git a/encode/CMakeLists.txt b/encode/CMakeLists.txt
deleted file mode 100644
index 2e2be23da93a1f2c78be5f9b9d7147116f44e3a6..0000000000000000000000000000000000000000
--- a/encode/CMakeLists.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-# not currently used
-
-project (Encode C)
-
-cmake_minimum_required(VERSION 3.11)
-
-set(SOURCE
-	base64.c
-	hex.c
-	lzh.c
-	utf8.c
-	uucode.c
-	yenc.c
-)
-
-set(HEADER
-	base64.h
-	lzh.h
-	utf8.h
-	uucode.h
-	yenc.h
-)
-
-add_library(encode OBJECT ${SOURCE})
-target_compile_features(encode PUBLIC c_std_99)
-target_include_directories(encode PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
-target_link_libraries(encode xpdev)
diff --git a/encode/README.md b/encode/README.md
deleted file mode 100644
index bbc7dabb663db5bc6e86c032d750f27cf16caa75..0000000000000000000000000000000000000000
--- a/encode/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Synchronet library project: encoders and decoders
-
-This directory contains code and data for various data encoders / decoders:
-e.g. base64, uuencode, yenc, UTF-8, etc.
-
-One-way/lossy encoders (e.g. checksum/hash/digest) do not belong here.
diff --git a/encode/base64.c b/encode/base64.c
deleted file mode 100644
index d7043e4c330aceaf407a851fb889696d15d8b08a..0000000000000000000000000000000000000000
--- a/encode/base64.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/* Base64 encoding/decoding routines */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <stdlib.h>
-#include <string.h>
-#include "base64.h"
-#include "gen_defs.h"
-
-static const char * base64alphabet = 
- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
-
-ssize_t b64_decode(char *target, size_t tlen, const char *source, size_t slen)
-{
-	const char	*inp;
-	char	*outp;
-	char	*outend;
-	const char	*inend;
-	int		bits=0;
-	int		working=0;
-	char *	i;
-
-	if(slen==0)
-		slen=strlen(source);
-	outp=target;
-	inp=source;
-	outend=target+tlen;
-	inend=source+slen;
-	for(;outp<outend && inp<inend;inp++) {
-		if(isspace(*inp))
-			continue;
-		working<<=6;
-		i=strchr(base64alphabet,(char)*inp);
-		if(i==NULL) {
-			return(-1);
-		}
-		if(*i=='=')  { /* pad char */
-			if((working&0xFF) != 0)
-				return(-1);
-			break;
-		}
-		bits+=6;
-		working |= (i-base64alphabet);
-		if(bits>=8) {
-			*(outp++)=(char)((working&(0xFF<<(bits-8)))>>(bits-8));
-			bits-=8;
-		}
-	}
-	if(outp == outend)  {
-		*(--outp)=0;
-		return(-1);
-	}
-	*outp=0;
-	return(outp-target);
-}
-
-static int add_char(char *pos, char ch, int done, char *end)
-{
-	if(pos>=end)  {
-		return(1);
-	}
-	if(done)
-		*pos=base64alphabet[64];
-	else
-		*pos=base64alphabet[(int)ch];
-	return(0);
-}
-
-ssize_t b64_encode(char *target, size_t tlen, const char *source, size_t slen)  {
-	const char	*inp;
-	char	*outp;
-	char	*outend;
-	const char	*inend;
-	char	*tmpbuf=NULL;
-	int		done=0;
-	char	enc;
-	int		buf;
-	
-	inp=source;
-	if(source==target)  {
-		tmpbuf=(char *)malloc(tlen);
-		if(tmpbuf==NULL)
-			return(-1);
-		outp=tmpbuf;
-	}
-	else
-		outp=target;
-
-	outend=outp+tlen;
-	inend=inp+slen;
-	for(;(inp < inend) && !done;)  {
-		enc=*(inp++);
-		buf=(enc & 0x03)<<4;
-		enc=(enc&0xFC)>>2;
-		if(add_char(outp++, enc, done, outend)) {
-			FREE_AND_NULL(tmpbuf);
-			return(-1);
-		}
-		if (inp>=inend)
-			enc=buf;
-		else
-			enc=buf|((*inp & 0xF0) >> 4);
-		if(add_char(outp++, enc, done, outend)) {
-			FREE_AND_NULL(tmpbuf);
-			return(-1);
-		}
-		if(inp==inend)
-			done=1;
-		if (!done) {
-			buf=(*(inp++)<<2)&0x3C;
-			if (inp == inend)
-				enc=buf;
-			else
-				enc=buf|((*inp & 0xC0)>>6);
-		}
-		if(add_char(outp++, enc, done, outend)) {
-			FREE_AND_NULL(tmpbuf);
-			return(-1);
-		}
-		if(inp==inend)
-			done=1;
-		if (!done)
-			enc=((int)*(inp++))&0x3F;
-		if(add_char(outp++, enc, done, outend)) {
-			FREE_AND_NULL(tmpbuf);
-			return(-1);
-		}
-		if(inp==inend)
-			done=1;
-	}
-	if(outp<outend)
-		*outp=0;
-	int result;
-	if(source==target) {
-		memcpy(target,tmpbuf,tlen);
-		result = outp - tmpbuf;
-		free(tmpbuf);
-	} else
-		result = outp - target;
-
-	return result;
-}
-
-#ifdef BASE64_TEST
-int main(int argc, char**argv)
-{
-	int i,j;
-	char buf[512];
-
-	for(i=1;i<argc;i++) {
-		j=b64_decode(buf,sizeof(buf),argv[i],0);
-		printf("%s (%d)\n",buf,j);
-	}
-
-	return 0;
-}
-#endif
diff --git a/encode/base64.h b/encode/base64.h
deleted file mode 100644
index 9f6c19e0485beba1edf190d663836a5dbd288e31..0000000000000000000000000000000000000000
--- a/encode/base64.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Base64 encoding/decoding exported function prototypes */
-
-/* $Id: base64.h,v 1.8 2019/03/22 21:29:12 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This program 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; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU General Public License for more details: gpl.txt or			*
- * http://www.fsf.org/copyleft/gpl.html										*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include "gen_defs.h"	// ssize_t
-
-#ifndef _base64_h_
-#define _base64_h_
-
-#if defined(_WIN32) && (defined(B64_IMPORTS) || defined(B64_EXPORTS))
-	#if defined(B64_IMPORTS)
-		#define B64EXPORT	__declspec(dllimport)
-	#else
-		#define B64EXPORT	__declspec(dllexport)
-	#endif
-#else	/* !_WIN32 */
-	#define B64EXPORT
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-B64EXPORT ssize_t b64_encode(char *target, size_t tlen, const char *source, size_t slen);
-B64EXPORT ssize_t b64_decode(char *target, size_t tlen, const char *source, size_t slen);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* Don't add anything after this line */
diff --git a/encode/hex.c b/encode/hex.c
deleted file mode 100644
index 5cf4c4de5d125f1e769a9c01579c383fa9b68533..0000000000000000000000000000000000000000
--- a/encode/hex.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Hexadecimal encode/decode (e.g. URL encode/decode) functions */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
- 
-#include "hex.h"
-#include "genwrap.h"
-#include "gen_defs.h"
-
-char* hex_encode(char esc, const char* src, char* chars, char* dest, size_t size)
-{
-	char* result = dest;
-	char* end = dest + (size - 1);
-
-	while(*src != '\0' && dest < end) {
-		if((*src == esc || strchr(chars, *src) != NULL) && dest + 3 < end)
-			dest += sprintf(dest, "%c%2X", esc, *src);
-		else
-			*(dest++) = *src;
-		src++;
-	}
-	*end = '\0';
-	return result;
-}
-
-char* hex_decode(char esc, char* str)
-{
-	char* src = str;
-	char* dest = str;
-	while(*src != '\0') {
-		if(*src == esc && IS_HEXDIGIT(*(src + 1)) && IS_HEXDIGIT(*(src + 2))) {
-			src++;
-			*dest = HEX_CHAR_TO_INT(*src) << 4;
-			src++;
-			*dest |= HEX_CHAR_TO_INT(*src);
-		} else
-			*dest = *src;
-		src++;
-		dest++;
-	}
-	*dest = '\0';
-	return str;
-}
diff --git a/encode/hex.h b/encode/hex.h
deleted file mode 100644
index 9765bca85e502a4666a65a52b38369be6c152fa6..0000000000000000000000000000000000000000
--- a/encode/hex.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Hex encode/decode (e.g. URL encode/decode) functions */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef hex_h_
-#define hex_h_
-
-#include <stdlib.h>	 // size_t
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-char* hex_encode(char esc, const char* src, char* chars, char* dest, size_t size);
-char* hex_decode(char esc, char* str);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* Don't add anything after this line */
\ No newline at end of file
diff --git a/encode/lzh.c b/encode/lzh.c
deleted file mode 100644
index ac863358d33da51c277044bd7437d8a588c2b578..0000000000000000000000000000000000000000
--- a/encode/lzh.c
+++ /dev/null
@@ -1,781 +0,0 @@
-/* lzh.c */
-
-/* Synchronet LZH compression library */
-
-/* $Id: lzh.c,v 1.16 2020/04/17 14:08:11 deuce Exp $ */
-
-/**************************************************************************** 
- * @format.tab-size 4		(Plain Text/Source Code File Header)			* 
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Rob Swindell's conversion of 1988 LZH (LHarc) encoding functions			* 
- * Based on Japanese version 29-NOV-1988									* 
- * LZSS coded by Haruhiko Okumura											* 
- * Adaptive Huffman Coding coded by Haruyasu Yoshizaki						* 
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-/* FreeBSD's malloc.h is deprecated, it drops a warning and */
-/* #includes <stdlib.h>, which is already here.             */
-#if !defined(__unix__)
-	#include <malloc.h>
-#endif
-
-#include "lzh.h"
-
-#define REALLOC realloc
-#define LMALLOC malloc
-#define MALLOC malloc
-#define LFREE free
-#define FREE free
-
-
-
-/* LZSS Parameters */
-
-#define LZH_N			4096	/* Size of string buffer */
-#define LZH_F			60		/* Size of look-ahead buffer */
-#define LZH_THRESHOLD	2
-#define LZH_NIL 		LZH_N	/* End of tree's node  */
-
-/* Huffman coding parameters */
-
-#define LZH_N_CHAR		(256 - LZH_THRESHOLD + LZH_F)
-					/* character code (= 0..LZH_N_CHAR-1) */
-#define LZH_T		(LZH_N_CHAR * 2 - 1)	/* Size of table */
-#define LZH_R		(LZH_T - 1) 		/* root position */
-#define MAX_FREQ	0x8000
-					/* update when cumulative frequency */
-					/* reaches to this value */
-
-/* Converted from global variables to struct Apr-21-2003 */
-typedef struct {
-
-#ifdef LZH_DYNAMIC_BUF
-
-	unsigned char*	text_buf;
-	short int		match_position, match_length,
-					*lson, *rson, *dad;
-
-	unsigned short*	freq;	 /* cumulative freq table */
-
-	/*
-	 * pointing parent nodes.
-	 * area [LZH_T..(LZH_T + LZH_N_CHAR - 1)] are pointers for leaves
-	 */
-	short int*		prnt;
-
-	/* pointing children nodes (son[], son[] + 1)*/
-	short int*		son;
-
-#else	/* STATIC */
-
-	unsigned char	text_buf[LZH_N + LZH_F - 1];
-	short int		match_position, match_length,
-					lson[LZH_N + 1], rson[LZH_N + 257], dad[LZH_N + 1];
-
-	unsigned short	freq[LZH_T + 1];   /* cumulative freq table */
-	short int		prnt[LZH_T + LZH_N_CHAR];
-	short int		son[LZH_T + 1];		  /* bug fixed by Digital Dynamics */
-
-#endif
-
-	unsigned short	getbuf;		/* Was just "unsigned" fixed 04/12/95 */
-	uint8_t			getlen;
-	unsigned		putbuf;
-	uint8_t			putlen;
-
-	unsigned short	code, len;
-
-} lzh_t;
-
-static void lzh_init_tree(lzh_t* lzh)  /* Initializing tree */
-{
-	short int  i;
-
-	for (i = LZH_N + 1; i <= LZH_N + 256; i++)
-		lzh->rson[i] = LZH_NIL;			/* root */
-	for (i = 0; i < LZH_N; i++)
-		lzh->dad[i] = LZH_NIL;			/* node */
-}
-
-/******************************/
-/* Inserting node to the tree */
-/* Only used during encoding  */
-/******************************/
-static void lzh_insert_node(lzh_t* lzh, short int r)
-{
-	short int  i, p, cmp;
-	unsigned char  *key;
-	unsigned c;
-
-	cmp = 1;
-	key = lzh->text_buf+r;
-	p = LZH_N + 1 + key[0];
-	lzh->rson[r] = lzh->lson[r] = LZH_NIL;
-	lzh->match_length = 0;
-	for ( ; ; ) {
-		if (cmp >= 0) {
-			if (lzh->rson[p] != LZH_NIL)
-				p = lzh->rson[p];
-			else {
-				lzh->rson[p] = r;
-				lzh->dad[r] = p;
-				return;
-			}
-		} else {
-			if (lzh->lson[p] != LZH_NIL)
-				p = lzh->lson[p];
-			else {
-				lzh->lson[p] = r;
-				lzh->dad[r] = p;
-				return;
-			}
-		}
-		for (i = 1; i < LZH_F; i++)
-			if ((cmp = key[i] - lzh->text_buf[p + i]) != 0)
-				break;
-		if (i > LZH_THRESHOLD) {
-			if (i > lzh->match_length) {
-				lzh->match_position = ((r - p) & (LZH_N - 1)) - 1;
-				if ((lzh->match_length = i) >= LZH_F)
-					break;
-			}
-			if (i == lzh->match_length) {
-				if ((c = ((r - p) & (LZH_N - 1)) - 1) 
-					< (unsigned)lzh->match_position) {
-					lzh->match_position = c;
-				}
-			}
-		}
-	}
-	lzh->dad[r] = lzh->dad[p];
-	lzh->lson[r] = lzh->lson[p];
-	lzh->rson[r] = lzh->rson[p];
-	lzh->dad[lzh->lson[p]] = r;
-	lzh->dad[lzh->rson[p]] = r;
-	if (lzh->rson[lzh->dad[p]] == p)
-		lzh->rson[lzh->dad[p]] = r;
-	else
-		lzh->lson[lzh->dad[p]] = r;
-	lzh->dad[p] = LZH_NIL;  /* remove p */
-}
-
-static void lzh_delete_node(lzh_t* lzh, short int p)  /* Deleting node from the tree */
-{
-	short int  q;
-
-	if (lzh->dad[p] == LZH_NIL)
-		return;			/* unregistered */
-	if (lzh->rson[p] == LZH_NIL)
-		q = lzh->lson[p];
-	else
-	if (lzh->lson[p] == LZH_NIL)
-		q = lzh->rson[p];
-	else {
-		q = lzh->lson[p];
-		if (lzh->rson[q] != LZH_NIL) {
-			do {
-				q = lzh->rson[q];
-			} while (lzh->rson[q] != LZH_NIL);
-			lzh->rson[lzh->dad[q]] = lzh->lson[q];
-			lzh->dad[lzh->lson[q]] = lzh->dad[q];
-			lzh->lson[q] = lzh->lson[p];
-			lzh->dad[lzh->lson[p]] = q;
-		}
-		lzh->rson[q] = lzh->rson[p];
-		lzh->dad[lzh->rson[p]] = q;
-	}
-	lzh->dad[q] = lzh->dad[p];
-	if (lzh->rson[lzh->dad[p]] == p)
-		lzh->rson[lzh->dad[p]] = q;
-	else
-		lzh->lson[lzh->dad[p]] = q;
-	lzh->dad[p] = LZH_NIL;
-}
-
-/*
- * Tables for encoding/decoding upper 6 bits of
- * sliding dictionary pointer
- */
-/* encoder table */
-static uint8_t lzh_p_len[64] = {
-	0x03, 0x04, 0x04, 0x04, 0x05, 0x05, 0x05, 0x05,
-	0x05, 0x05, 0x05, 0x05, 0x06, 0x06, 0x06, 0x06,
-	0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-	0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-	0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-	0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
-	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08
-};
-
-static uint8_t lzh_p_code[64] = {
-	0x00, 0x20, 0x30, 0x40, 0x50, 0x58, 0x60, 0x68,
-	0x70, 0x78, 0x80, 0x88, 0x90, 0x94, 0x98, 0x9C,
-	0xA0, 0xA4, 0xA8, 0xAC, 0xB0, 0xB4, 0xB8, 0xBC,
-	0xC0, 0xC2, 0xC4, 0xC6, 0xC8, 0xCA, 0xCC, 0xCE,
-	0xD0, 0xD2, 0xD4, 0xD6, 0xD8, 0xDA, 0xDC, 0xDE,
-	0xE0, 0xE2, 0xE4, 0xE6, 0xE8, 0xEA, 0xEC, 0xEE,
-	0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
-	0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
-};
-
-/* decoder table */
-static uint8_t lzh_d_code[256] = {
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-	0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-	0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
-	0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
-	0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
-	0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
-	0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
-	0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
-	0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-	0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
-	0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
-	0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A,
-	0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B,
-	0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x0D, 0x0D, 0x0D,
-	0x0E, 0x0E, 0x0E, 0x0E, 0x0F, 0x0F, 0x0F, 0x0F,
-	0x10, 0x10, 0x10, 0x10, 0x11, 0x11, 0x11, 0x11,
-	0x12, 0x12, 0x12, 0x12, 0x13, 0x13, 0x13, 0x13,
-	0x14, 0x14, 0x14, 0x14, 0x15, 0x15, 0x15, 0x15,
-	0x16, 0x16, 0x16, 0x16, 0x17, 0x17, 0x17, 0x17,
-	0x18, 0x18, 0x19, 0x19, 0x1A, 0x1A, 0x1B, 0x1B,
-	0x1C, 0x1C, 0x1D, 0x1D, 0x1E, 0x1E, 0x1F, 0x1F,
-	0x20, 0x20, 0x21, 0x21, 0x22, 0x22, 0x23, 0x23,
-	0x24, 0x24, 0x25, 0x25, 0x26, 0x26, 0x27, 0x27,
-	0x28, 0x28, 0x29, 0x29, 0x2A, 0x2A, 0x2B, 0x2B,
-	0x2C, 0x2C, 0x2D, 0x2D, 0x2E, 0x2E, 0x2F, 0x2F,
-	0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
-	0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
-};
-
-static uint8_t lzh_d_len[256] = {
-	0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
-	0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
-	0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
-	0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
-	0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
-	0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
-	0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
-	0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
-	0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
-	0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
-	0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
-	0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
-	0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
-	0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
-	0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
-	0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
-	0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
-	0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
-	0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-	0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-	0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-	0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-	0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-	0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
-	0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-	0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-	0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-	0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-	0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-	0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
-	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
-};
-
-
-static int lzh_getbit(lzh_t* lzh, uint8_t *inbuf, int32_t *incnt, long inlen)    /* get one bit */
-{
-	short int i;
-
-	while (lzh->getlen <= 8) {
-		if((*incnt)>=inlen)
-			i=0;
-		else
-			i=inbuf[(*incnt)++];
-		lzh->getbuf |= i << (8 - lzh->getlen);
-		lzh->getlen += 8;
-	}
-	i = lzh->getbuf;
-	lzh->getbuf <<= 1;
-	lzh->getlen--;
-	return (i < 0);
-}
-
-static short int lzh_getbyte(lzh_t* lzh, uint8_t *inbuf, int32_t *incnt, long inlen)   /* get a byte */
-{
-	unsigned short i;
-
-	while (lzh->getlen <= 8) {
-		if((*incnt)>=inlen)
-			i=0;
-		else
-			i=inbuf[(*incnt)++];
-		lzh->getbuf |= i << (8 - lzh->getlen);
-		lzh->getlen += 8;
-	}
-	i = lzh->getbuf;
-	lzh->getbuf <<= 8;
-	lzh->getlen -= 8;
-	return i >> 8;
-}
-
-
-/* output c bits */
-static void lzh_putcode(lzh_t* lzh, short int l, unsigned short c, uint8_t *outbuf, int32_t *outlen)
-{
-	lzh->putbuf |= c >> lzh->putlen;
-	if ((lzh->putlen += l) >= 8) {
-		outbuf[(*outlen)++]=(lzh->putbuf >> 8);
-		if ((lzh->putlen -= 8) >= 8) {
-			outbuf[(*outlen)++]=lzh->putbuf;
-			lzh->putlen -= 8;
-			lzh->putbuf = c << (l - lzh->putlen);
-		} else {
-			lzh->putbuf <<= 8;
-		}
-	}
-}
-
-
-/* initialize freq tree */
-
-static void lzh_start_huff(lzh_t* lzh)
-{
-	short int i, j;
-
-	for (i = 0; i < LZH_N_CHAR; i++) {
-		lzh->freq[i] = 1;
-		lzh->son[i] = i + LZH_T;
-		lzh->prnt[i + LZH_T] = i;
-	}
-	i = 0; j = LZH_N_CHAR;
-	while (j <= LZH_R) {
-		lzh->freq[j] = lzh->freq[i] + lzh->freq[i + 1];
-		lzh->son[j] = i;
-		lzh->prnt[i] = lzh->prnt[i + 1] = j;
-		i += 2; j++;
-	}
-	lzh->freq[LZH_T] = 0xffff;
-    lzh->prnt[LZH_R] = 0;
-}
-
-
-/* reconstruct freq tree */
-
-static void lzh_reconst(lzh_t* lzh)
-{
-	short int i, j, k;
-	unsigned short f, l;
-
-	/* halven cumulative freq for leaf nodes */
-	j = 0;
-	for (i = 0; i < LZH_T; i++) {
-		if (lzh->son[i] >= LZH_T) {
-			lzh->freq[j] = (lzh->freq[i] + 1) / 2;
-			lzh->son[j] = lzh->son[i];
-			j++;
-		}
-	}
-	/* make a tree : first, connect children nodes */
-	for (i = 0, j = LZH_N_CHAR; j < LZH_T; i += 2, j++) {
-		k = i + 1;
-		f = lzh->freq[j] = lzh->freq[i] + lzh->freq[k];
-		for (k = j - 1; f < lzh->freq[k]; k--);
-		k++;
-		l = (j - k) * 2;
-		
-		/* movmem() is Turbo-C dependent
-		   rewritten to memmove() by Kenji */
-		
-		/* movmem(&lzh->freq[k], &lzh->freq[k + 1], l); */
-		(void)memmove(lzh->freq+k+1,lzh->freq+k, l);
-		lzh->freq[k] = f;
-		/* movmem(&lzh->son[k], &lzh->son[k + 1], l); */
-		(void)memmove(lzh->son+k+1,lzh->son+k, l);
-		lzh->son[k] = i;
-	}
-	/* connect parent nodes */
-	for (i = 0; i < LZH_T; i++) {
-		if ((k = lzh->son[i]) >= LZH_T) {
-			lzh->prnt[k] = i;
-		} else {
-			lzh->prnt[k] = lzh->prnt[k + 1] = i;
-		}
-	}
-}
-
-/* update freq tree */
-
-static void lzh_update(lzh_t* lzh, short int c)
-{
-	short int i, j, k, l;
-
-	if (lzh->freq[LZH_R] == MAX_FREQ) {
-		lzh_reconst(lzh);
-	}
-	c = lzh->prnt[c + LZH_T];
-	do {
-		k = ++lzh->freq[c];
-
-		/* swap nodes to keep the tree freq-ordered */
-		if (((unsigned)k) > ((unsigned)lzh->freq[l = c + 1])) {
-			while (l < (sizeof(lzh->freq) / sizeof(lzh->freq[0]) - 1) && k > lzh->freq[++l]);
-			l--;
-			lzh->freq[c] = lzh->freq[l];
-			lzh->freq[l] = k;
-
-			i = lzh->son[c];
-			lzh->prnt[i] = l;
-			if (i < LZH_T) lzh->prnt[i + 1] = l;
-
-			j = lzh->son[l];
-			lzh->son[l] = i;
-
-			lzh->prnt[j] = c;
-			if (j < LZH_T) lzh->prnt[j + 1] = c;
-			lzh->son[c] = j;
-
-			c = l;
-		}
-	} while (((c = lzh->prnt[c]) != 0) && c < ((sizeof(lzh->son)/sizeof(lzh->son[0]))-1));	/* do it until reaching the root */
-}
-
-static void lzh_encode_char(lzh_t* lzh, unsigned short c, uint8_t *outbuf, int32_t *outlen)
-{
-	unsigned short i;
-	short int j, k;
-
-	i = 0;
-	j = 0;
-	k = lzh->prnt[c + LZH_T];
-
-	/* search connections from leaf node to the root */
-	do {
-		i >>= 1;
-
-		/*
-		if node's address is odd, output 1
-		else output 0
-		*/
-		if (k & 1) i += 0x8000;
-
-		j++;
-	} while ((k = lzh->prnt[k]) != LZH_R);
-	lzh_putcode(lzh, j, i, outbuf, outlen);
-	lzh->code = i;
-	lzh->len = j;
-	lzh_update(lzh,c);
-}
-
-static void lzh_encode_position(lzh_t* lzh, unsigned short c, uint8_t *outbuf, int32_t *outlen)
-{
-	unsigned short i;
-
-	/* output upper 6 bits with encoding */
-	i = c >> 6;
-	lzh_putcode(lzh, lzh_p_len[i], (unsigned short)(lzh_p_code[i] << 8), outbuf, outlen);
-
-	/* output lower 6 bits directly */
-	lzh_putcode(lzh, 6, (unsigned short)((c & 0x3f) << 10), outbuf, outlen);
-}
-
-static void lzh_encode_end(lzh_t* lzh, uint8_t *outbuf, int32_t *outlen)
-{
-	if (lzh->putlen) {
-		outbuf[(*outlen)++]=(lzh->putbuf >> 8);
-	}
-}
-
-static short int lzh_decode_char(lzh_t* lzh, uint8_t *inbuf, int32_t *incnt, long inlen)
-{
-	unsigned short c;
-
-	c = lzh->son[LZH_R];
-
-	/*
-	 * start searching tree from the root to leaves.
-	 * choose node #(lzh.son[]) if input bit == 0
-	 * else choose #(lzh.son[]+1) (input bit == 1)
-	 */
-	while (c < LZH_T) {
-		c += lzh_getbit(lzh,inbuf,incnt,inlen);
-		c = lzh->son[c];
-	}
-	c -= LZH_T;
-	lzh_update(lzh,c);
-	return c;
-}
-
-static short int lzh_decode_position(lzh_t* lzh, uint8_t *inbuf, int32_t *incnt, long inlen)
-{
-	unsigned short i, j, c;
-
-	/* decode upper 6 bits from given table */
-	i = lzh_getbyte(lzh,inbuf,incnt,inlen);
-	c = (unsigned)lzh_d_code[i] << 6;
-	j = lzh_d_len[i];
-
-	/* input lower 6 bits directly */
-	j -= 2;
-	while (j--) {
-		i = (i << 1) + lzh_getbit(lzh,inbuf,incnt,inlen);
-	}
-	return c | (i & 0x3f);
-}
-
-/* Compression */
-
-/* Encoding/Compressing */
-/* Returns length of outbuf */
-int32_t lzh_encode(uint8_t *inbuf, int32_t inlen, uint8_t *outbuf)
-{
-	short int  i, c, len, r, s, last_match_length;
-	int32_t incnt,outlen; /* textsize=0; */
-	lzh_t lzh;
-	memset(&lzh,0,sizeof(lzh));
-
-#ifdef LZH_DYNAMIC_BUF
-
-	if((lzh.text_buf=(uint8_t *)malloc(LZH_N + LZH_F - 1))==NULL)
-		return(-1);
-	if((lzh.freq=(unsigned short*)malloc((LZH_T + 1)*sizeof(unsigned short)))==NULL) {
-		free(lzh.text_buf);
-		return(-1); }
-	if((lzh.prnt=(short *)malloc((LZH_T + LZH_N_CHAR)*sizeof(short)))==NULL) {
-		free(lzh.text_buf);
-		free(lzh.freq);
-		return(-1); }
-	if((lzh.son=(short *)malloc((LZH_T + 1) * sizeof(short)))==NULL) {
-		free(lzh.text_buf);
-		free(lzh.prnt);
-		free(lzh.freq);
-		return(-1); }
-	if((lzh.lson=(short *)malloc((LZH_N + 1)*sizeof(short)))==NULL) {
-		free(lzh.text_buf);
-		free(lzh.prnt);
-		free(lzh.freq);
-		free(lzh.son);
-		return(-1); }
-	if((lzh.rson=(short *)malloc((LZH_N + 257)*sizeof(short)))==NULL) {
-		free(lzh.text_buf);
-		free(lzh.prnt);
-		free(lzh.freq);
-		free(lzh.son);
-		free(lzh.lson);
-		return(-1); }
-	if((lzh.dad=(short *)malloc((LZH_N + 1)*sizeof(short)))==NULL) {
-		free(lzh.text_buf);
-		free(lzh.prnt);
-		free(lzh.freq);
-		free(lzh.son);
-        free(lzh.lson);
-		free(lzh.rson);
-		return(-1); }
-#endif
-
-	incnt=0;
-	memcpy(outbuf,&inlen,sizeof(inlen));
-	outlen=sizeof(inlen);
-	if(!inlen) {
-#ifdef LZH_DYNAMIC_BUF
-		free(lzh.text_buf);
-		free(lzh.prnt);
-		free(lzh.freq);
-		free(lzh.son);
-        free(lzh.lson);
-        free(lzh.rson);
-		free(lzh.dad);
-#endif
-		return(outlen); }
-	lzh_start_huff(&lzh);
-	lzh_init_tree(&lzh);
-	s = 0;
-	r = LZH_N - LZH_F;
-	for (i = s; i < r; i++)
-		lzh.text_buf[i] = ' ';
-	for (len = 0; len < LZH_F && incnt<inlen; len++)
-		lzh.text_buf[r + len] = inbuf[incnt++];
-	/* textsize = len; */
-	for (i = 1; i <= LZH_F; i++)
-		lzh_insert_node(&lzh,(short)(r - i));
-	lzh_insert_node(&lzh,r);
-	do {
-		if (lzh.match_length > len)
-			lzh.match_length = len;
-		if (lzh.match_length <= LZH_THRESHOLD) {
-			lzh.match_length = 1;
-			lzh_encode_char(&lzh,lzh.text_buf[r],outbuf,&outlen);
-		} else {
-			lzh_encode_char(&lzh,(unsigned short)(255 - LZH_THRESHOLD + lzh.match_length)
-				,outbuf,&outlen);
-			lzh_encode_position(&lzh,lzh.match_position
-				,outbuf,&outlen);
-		}
-		last_match_length = lzh.match_length;
-		for (i = 0; i < last_match_length && incnt<inlen; i++) {
-			lzh_delete_node(&lzh,s);
-			c=inbuf[incnt++];
-			lzh.text_buf[s] = (uint8_t)c;
-			if (s < LZH_F - 1)
-				lzh.text_buf[s + LZH_N] = (uint8_t)c;
-			s = (s + 1) & (LZH_N - 1);
-			r = (r + 1) & (LZH_N - 1);
-			lzh_insert_node(&lzh,r);
-		}
-/***
-		if ((textsize += i) > printcount) {
-			printf("%12ld\r", textsize);
-			printcount += 1024;
-		}
-***/
-		while (i++ < last_match_length) {
-			lzh_delete_node(&lzh,s);
-			s = (s + 1) & (LZH_N - 1);
-			r = (r + 1) & (LZH_N - 1);
-			if (--len) lzh_insert_node(&lzh,r);
-		}
-	} while (len > 0);
-	lzh_encode_end(&lzh,outbuf,&outlen);
-/*
-	printf("input: %ld (%ld) bytes\n", inlen,textsize);
-	printf("output: %ld bytes\n", outlen);
-	printf("output/input: %.3f\n", (double)outlen / inlen);
-*/
-
-#ifdef LZH_DYNAMIC_BUF
-	free(lzh.text_buf);
-	free(lzh.prnt);
-	free(lzh.freq);
-	free(lzh.son);
-	free(lzh.lson);
-	free(lzh.rson);
-	free(lzh.dad);
-#endif
-
-	return(outlen);
-}
-
-/* Decoding/Uncompressing */
-/* Returns length of outbuf */
-int32_t lzh_decode(uint8_t *inbuf, int32_t inlen, uint8_t *outbuf)
-{
-	short int  i, j, k, r, c;
-	uint32_t	count;
-	int32_t		incnt,textsize;
-	lzh_t lzh;
-
-	memset(&lzh,0,sizeof(lzh));
-#ifdef LZH_DYNAMIC_BUF
-
-	if((lzh.text_buf=(uint8_t *)malloc((LZH_N + LZH_F - 1)*2))==NULL)
-		return(-1);
-	if((lzh.freq=(unsigned short *)malloc((LZH_T + 1)*sizeof(unsigned short)))
-		==NULL) {
-		free(lzh.text_buf);
-		return(-1); }
-	if((lzh.prnt=(short *)malloc((LZH_T + LZH_N_CHAR)*sizeof(short)))==NULL) {
-		free(lzh.text_buf);
-		free(lzh.freq);
-		return(-1); }
-	if((lzh.son=(short *)malloc((LZH_T + 1) * sizeof(short)))==NULL) {
-		free(lzh.text_buf);
-		free(lzh.prnt);
-		free(lzh.freq);
-		return(-1); }
-
-#endif
-
-	incnt=0;
-	memcpy(&textsize,inbuf,sizeof(textsize));
-	incnt+=sizeof(textsize);
-	if (textsize == 0) {
-#ifdef LZH_DYNAMIC_BUF
-		free(lzh.text_buf);
-		free(lzh.prnt);
-		free(lzh.freq);
-		free(lzh.son);
-#endif
-		return(textsize); }
-	lzh_start_huff(&lzh);
-	for (i = 0; i < LZH_N - LZH_F; i++)
-		*(lzh.text_buf+i) = ' ';
-	r = LZH_N - LZH_F;
-    for (count = 0; count < (unsigned long)textsize; ) {
-		c = lzh_decode_char(&lzh,inbuf,&incnt,inlen);
-		if (c < 256) {
-			outbuf[count]=(uint8_t)c;
-#if 0
-			if(r>(LZH_N + LZH_F - 1) || r<0) {
-				printf("Overflow! (%d)\n",r);
-				getch();
-				exit(-1); }
-#endif
-			*(lzh.text_buf+r) = (uint8_t)c;
-			r++;
-			r &= (LZH_N - 1);
-			count++;
-		} else {
-			i = (r - lzh_decode_position(&lzh,inbuf,&incnt,inlen) - 1)
-				& (LZH_N - 1);
-			j = c - 255 + LZH_THRESHOLD;
-			for (k = 0; k < j && count<(unsigned long)textsize; k++) {
-				c = lzh.text_buf[(i + k) & (LZH_N - 1)];
-				outbuf[count]=(uint8_t)c;
-#if 0
-				if(r>(LZH_N + LZH_F - 1) || r<0) {
-					printf("Overflow! (%d)\n",r);
-					exit(-1); }
-#endif
-				*(lzh.text_buf+r) = (uint8_t)c;
-				r++;
-				r &= (LZH_N - 1);
-				count++;
-			}
-		}
-	}
-/***
-	printf("%12ld\n", count);
-***/
-
-#ifdef LZH_DYNAMIC_BUF
-	free(lzh.text_buf);
-	free(lzh.prnt);
-	free(lzh.freq);
-	free(lzh.son);
-#endif
-
-return(count);
-}
-
-
diff --git a/encode/lzh.h b/encode/lzh.h
deleted file mode 100644
index 9776651f86b12550f4290bf854810345b389f60a..0000000000000000000000000000000000000000
--- a/encode/lzh.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Synchronet LZH compression library */
-
-/**************************************************************************** 
- * @format.tab-size 4		(Plain Text/Source Code File Header)			* 
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Rob Swindell's conversion of 1988 LZH (LHarc) encoding functions			* 
- * Based on Japanese version 29-NOV-1988									* 
- * LZSS coded by Haruhiko Okumura											* 
- * Adaptive Huffman Coding coded by Haruyasu Yoshizaki						* 
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _LZH_H_
-#define _LZH_H_
-
-#ifdef LZHEXPORT
-	#undef LZHEXPORT
-#endif
-
-#ifdef _WIN32
-	#ifdef LZHDLL	/* LZH functions in DLL */
-		#ifdef LZH_EXPORTS
-			#define LZHEXPORT __declspec( dllexport )
-		#else
-			#define LZHEXPORT __declspec( dllimport )
-		#endif
-	#else			/* self-contained executable */
-		#define LZHEXPORT
-	#endif
-#else	/* !_WIN32 */
-	#define LZHEXPORT
-#endif
-
-#include "gen_defs.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-LZHEXPORT int32_t lzh_encode(uint8_t *inbuf, int32_t inlen, uint8_t *outbuf);
-LZHEXPORT int32_t lzh_decode(uint8_t *inbuf, int32_t inlen, uint8_t *outbuf);
-#ifdef __cplusplus
-}
-#endif
-
-#ifdef __WATCOMC__	/* Use MSC standard (prepended underscore) */
-#pragma aux lzh_encode			"_*"
-#pragma aux lzh_decode          "_*"
-#endif
-
-#endif /* Do not add anything after this line */
diff --git a/encode/utf8.c b/encode/utf8.c
deleted file mode 100644
index 94c6d7d3ce8992d533005ceff1681e38ade281c8..0000000000000000000000000000000000000000
--- a/encode/utf8.c
+++ /dev/null
@@ -1,524 +0,0 @@
-/* Synchronet UTF-8 encode/decode/translate functions */
-
-/* $Id: utf8.c,v 1.9 2019/08/03 08:05:09 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include "utf8.h"
-#include "unicode.h"
-#include <stdbool.h>
-#include <string.h>
-
-char* utf8_normalize_str(char* str)
-{
-	char* dest = str;
-
-	for(char* src = str; *src != 0; src++) {
-		if(*src == '\xC2' && *(src + 1) == '\xA0') { // NO-BREAK SPACE
-			src++;
-			*dest++ = ' ';
-			continue;
-		}
-		if(*src == '\xE2') {
-			if(*(src + 1) == '\x80') {
-				switch(*(src + 2)) {
-					case '\x82': // EN SPACE
-					case '\x83': // EM SPACE
-						src += 2;
-						*dest++ = ' ';
-						continue;
-					case '\x8B': // ZERO WIDTH SPACE
-					case '\x8C': // ZERO WIDTH NON-JOINER
-					case '\x8D': // ZERO WIDTH JOINER
-						src += 2;
-						continue;
-					case '\x90': // HYPHEN
-					case '\x91': // NON-BREAKING HYPHEN
-					case '\x92': // FIGURE DASH
-					case '\x93': // EN DASH
-						src += 2;
-						*dest++ = '-';
-						continue;
-					case '\x98': // LEFT SINGLE QUOTATION MARK
-						src += 2;
-						*dest++ = '`';
-						continue;
-					case '\x99': // RIGHT SINGLE QUOTATION MARK
-					case '\xB2': // PRIME
-						src += 2;
-						*dest++ = '\'';
-						continue;
-					case '\x9C': // LEFT DOUBLE QUOTATION MARK
-					case '\x9D': // RIGHT DOUBLE QUOTATION MARK
-						src += 2;
-						*dest++ = '"';
-						continue;
-					case '\xA6': // HORIZONTAL ELLIPSIS -> ASCII periods (3)
-						src += 2;
-						for(int i = 0; i < 3; i++)
-							*dest++ =  '.';
-						continue;
-				}
-			}
-			else if(*(src + 1) == '\x81') {
-				switch(*(src + 2)) {
-					case '\x83': // HYPEN BULLET
-						src += 2;
-						*dest++ = '-';
-						continue;
-					case '\x84': // FRACTION SLASH
-						src += 2;
-						*dest++ = '/';
-						continue;
-				}
-			}
-			else if(*(src + 1) == '\x88') {
-				switch(*(src + 2)) {
-					case '\x92': // MINUS SIGN
-						src += 2;
-						*dest++ = '-';
-						continue;
-				}
-			}
-		}
-		else if(*src == '\xEF') {
-			if(*(src + 1) == '\xBB' && *(src + 2) == '\xBF') {
-				// Zero Width No-Break Space (BOM, ZWNBSP)
-				src += 2;
-				continue;
-			}
-			if(*(src + 1) == '\xBC') {
-				if(*(src + 2) >= '\x81' && *(src + 2) <= '\xBF') { // FULLWIDTH EXCLAMATION MARK through FULLWIDTH LOW LINE
-					src += 2;
-					*src -= '\x81';
-					*dest++ = '!' + *src;
-					continue;
-				}
-			}
-			else if(*(src + 1) == '\xBD') {
-				if(*(src + 2) >= '\x80' && *(src + 2) <= '\x9E') { // FULLWIDTH GRAVE ACCENT through FULLWIDTH TILDE
-					src += 2;
-					*src -= '\x80';
-					*dest++ = '`' + *src;
-					continue;
-				}
-			}
-		}
-		*dest++ = *src;
-	}
-	*dest = 0;
-	return str;
-}
-
-/* Replace all multi-byte UTF-8 sequences with 'ch' or 'zwch' (when non-zero) */
-/* When ch and zwch are 0, effectively strips all multi-byte UTF-8 codepoints from str */
-char* utf8_replace_chars(char* str, char (*lookup)(enum unicode_codepoint), char unsupported_ch, char unsupported_zwch, char error_ch)
-{
-	char* end = str + strlen(str);
-	char* dest = str;
-
-	int len ;
-	for(char* src= str; src < end; src += len) {
-		if(!(*src & 0x80)) {
-			*dest++ = *src;
-			len = 1;
-			continue;
-		}
-		enum unicode_codepoint codepoint = 0;
-		len = utf8_getc(src, end - src, &codepoint);
-		if(len < 2) {
-			if(error_ch)
-				*dest++ = error_ch;
-			len = 1;
-			continue;
-		}
-		if(lookup != NULL) {
-			char ch = lookup(codepoint);
-			if(ch) {
-				*dest++ = ch;
-				continue;
-			}
-		}
-		if(unicode_width(codepoint) == 0) {
-			if(unsupported_zwch)
-				*dest++ = unsupported_zwch;
-		} 
-		else if(unsupported_ch)
-			*dest++ = unsupported_ch;
-	}
-	*dest = 0;
-	return str;
-}
-
-bool utf8_str_is_valid(const char* str)
-{
-	const char* end = str + strlen(str);
-	while (str < end) {
-		int len = utf8_getc(str, end - str, NULL);
-		if (len < 1)
-			return false;
-		str += len;
-	}
-	return true;
-}
-
-// Return the total printed-width of UTF-8 string (str) accounting for zero/half/full-width codepoints
-size_t utf8_str_total_width(const char* str)
-{
-	size_t count = 0;
-	const char* end = str + strlen(str);
-	while (str < end) {
-		enum unicode_codepoint codepoint = 0;
-		int len = utf8_getc(str, end - str, &codepoint);
-		if (len < 1)
-			break;
-		count += unicode_width(codepoint);
-		str += len;
-	}
-	return count;
-}
-
-// Return the count of codepoints within the specified width range in UTF-8 string (str)
-size_t utf8_str_count_width(const char* str, size_t min_width, size_t max_width)
-{
-	size_t count = 0;
-	const char* end = str + strlen(str);
-	while (str < end) {
-		enum unicode_codepoint codepoint = 0;
-		int len = utf8_getc(str, end - str, &codepoint);
-		if (len < 1)
-			break;
-		size_t width = unicode_width(codepoint);
-		if(width >= min_width && width <= max_width)
-			count++;
-		str += len;
-	}
-	return count;
-}
-
-int cp437_to_utf8_str(const char* str, char* dest, size_t maxlen, unsigned char minval, size_t *outlen)
-{
-	int retval = 0;
-	size_t lcl_outlen;
-	if (outlen == NULL)
-		outlen = &lcl_outlen;
-	*outlen = 0;
-	for(const unsigned char* p = (const unsigned char*)str; *p != 0; p++) {
-		if(*outlen >= maxlen) {
-			retval = -1;
-			break;
-		}
-		enum unicode_codepoint codepoint = 0;
-		if(*p >= minval)
-			codepoint = cp437_unicode_tbl[*p];
-		if(codepoint) {
-			retval = utf8_putc(dest + *outlen, maxlen - *outlen, codepoint);
-			if(retval < 1)
-				break;
-			*outlen += retval;
-		} else {
-			*(dest + *outlen) = *p;
-			(*outlen)++;
-		}
-	}
-	*(dest + *outlen) = 0;
-	return retval;
-}
-
-int utf8_to_cp437_str(const char *src, char *dest, size_t maxlen, unsigned char minval, size_t *outlen)
-{
-	int retval = 0;
-	size_t lcl_outlen;
-	unsigned char ch;
-	if (outlen == NULL)
-		outlen = &lcl_outlen;
-	*outlen = 0;
-	for(const char* p = src; *p != 0; p += retval) {
-		if(*outlen >= maxlen) {
-			retval = -1;
-			break;
-		}
-		enum unicode_codepoint codepoint;
-		retval = utf8_getc(p, maxlen - *outlen, &codepoint);
-		if (retval < 1)
-			break;
-		ch = unicode_to_cp437(codepoint);
-		if (ch) {
-			*(dest + *outlen) = ch;
-			(*outlen)++;
-		}
-	}
-	*(dest + *outlen) = 0;
-	return retval;
-}
-
-int latin1_to_utf8_str(const char* str, char* dest, size_t maxlen, unsigned char minval, size_t *outlen)
-{
-	int retval = 0;
-	size_t lcl_outlen;
-	if (outlen == NULL)
-		outlen = &lcl_outlen;
-	*outlen = 0;
-	for(const unsigned char* p = (const unsigned char *)str; *p != 0; p++) {
-		if(*outlen >= maxlen) {
-			retval = -1;
-			break;
-		}
-		enum unicode_codepoint codepoint = 0;
-		if(*p >= minval)
-			codepoint = *p;
-		if(codepoint) {
-			retval = utf8_putc(dest + *outlen, maxlen - *outlen, codepoint);
-			if(retval < 1)
-				break;
-			*outlen += retval;
-		} else {
-			*(dest + *outlen) = *p;
-			(*outlen)++;
-		}
-	}
-	*(dest + *outlen) = 0;
-	return retval;
-}
-
-int utf8_to_latin1_str(const char *src, char *dest, size_t maxlen, unsigned char minval, size_t *outlen)
-{
-	int retval = 0;
-	size_t lcl_outlen;
-	unsigned char ch;
-	if (outlen == NULL)
-		outlen = &lcl_outlen;
-	*outlen = 0;
-	for(const char* p = src; *p != 0; p += retval) {
-		if(*outlen >= maxlen) {
-			retval = -1;
-			break;
-		}
-		enum unicode_codepoint codepoint;
-		retval = utf8_getc(p, maxlen - *outlen, &codepoint);
-		if (retval < 1)
-			break;
-		ch = unicode_to_latin1(codepoint);
-		if (ch) {
-			*(dest + *outlen) = ch;
-			(*outlen)++;
-		}
-	}
-	*(dest + *outlen) = 0;
-	return retval;
-}
-
-// From openssl/crypto/asn1/a_utf8.c:
-/*
- * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
- *
- * Licensed under the Apache License 2.0 (the "License").  You may not use
- * this file except in compliance with the License.  You can obtain a copy
- * in the file LICENSE in the source distribution or at
- * https://www.openssl.org/source/license.html
- */
-
-/* UTF8 utilities */
-
-/*-
- * This parses a UTF8 string one codepoint at a time. It is passed a pointer
- * to the string and the size of the string (in bytes). It sets 'value' to
- * the value of the current codepoint. It returns the number of bytes read
- * or a negative error code:
- * -1 = string too short
- * -2 = illegal character
- * -3 = subsequent characters not of the form 10xxxxxx
- * -4 = character encoded incorrectly (not minimal length).
- */
-
-int utf8_getc(const char *str, size_t len, enum unicode_codepoint* val)
-{
-    const unsigned char *p;
-    unsigned long value;
-    int ret;
-    if (len <= 0)
-        return 0;
-    p = (const unsigned char*)str;
-
-    /* Check syntax and work out the encoded value (if correct) */
-    if ((*p & 0x80) == 0) {
-        value = *p++ & 0x7f;
-        ret = 1;
-    } else if ((*p & 0xe0) == 0xc0) {
-        if (len < 2)
-            return -1;
-        if ((p[1] & 0xc0) != 0x80)
-            return -3;
-        value = (*p++ & 0x1f) << 6;
-        value |= *p++ & 0x3f;
-        if (value < 0x80)
-            return -4;
-        ret = 2;
-    } else if ((*p & 0xf0) == 0xe0) {
-        if (len < 3)
-            return -1;
-        if (((p[1] & 0xc0) != 0x80)
-            || ((p[2] & 0xc0) != 0x80))
-            return -3;
-        value = (*p++ & 0xf) << 12;
-        value |= (*p++ & 0x3f) << 6;
-        value |= *p++ & 0x3f;
-        if (value < 0x800)
-            return -4;
-        ret = 3;
-    } else if ((*p & 0xf8) == 0xf0) {
-        if (len < 4)
-            return -1;
-        if (((p[1] & 0xc0) != 0x80)
-            || ((p[2] & 0xc0) != 0x80)
-            || ((p[3] & 0xc0) != 0x80))
-            return -3;
-        value = ((unsigned long)(*p++ & 0x7)) << 18;
-        value |= (*p++ & 0x3f) << 12;
-        value |= (*p++ & 0x3f) << 6;
-        value |= *p++ & 0x3f;
-        if (value < 0x10000)
-            return -4;
-        ret = 4;
-    } else if ((*p & 0xfc) == 0xf8) {
-        if (len < 5)
-            return -1;
-        if (((p[1] & 0xc0) != 0x80)
-            || ((p[2] & 0xc0) != 0x80)
-            || ((p[3] & 0xc0) != 0x80)
-            || ((p[4] & 0xc0) != 0x80))
-            return -3;
-        value = ((unsigned long)(*p++ & 0x3)) << 24;
-        value |= ((unsigned long)(*p++ & 0x3f)) << 18;
-        value |= ((unsigned long)(*p++ & 0x3f)) << 12;
-        value |= (*p++ & 0x3f) << 6;
-        value |= *p++ & 0x3f;
-        if (value < 0x200000)
-            return -4;
-        ret = 5;
-    } else if ((*p & 0xfe) == 0xfc) {
-        if (len < 6)
-            return -1;
-        if (((p[1] & 0xc0) != 0x80)
-            || ((p[2] & 0xc0) != 0x80)
-            || ((p[3] & 0xc0) != 0x80)
-            || ((p[4] & 0xc0) != 0x80)
-            || ((p[5] & 0xc0) != 0x80))
-            return -3;
-        value = ((unsigned long)(*p++ & 0x1)) << 30;
-        value |= ((unsigned long)(*p++ & 0x3f)) << 24;
-        value |= ((unsigned long)(*p++ & 0x3f)) << 18;
-        value |= ((unsigned long)(*p++ & 0x3f)) << 12;
-        value |= (*p++ & 0x3f) << 6;
-        value |= *p++ & 0x3f;
-        if (value < 0x4000000)
-            return -4;
-        ret = 6;
-	} else
-        return -2;
-	if(val != NULL)
-		*val = value;
-    return ret;
-}
-
-/*
- * This takes a codepoint 'value' and writes the UTF8 encoded sequence in 'str'
- * where 'str' is a buffer of 'len' bytes. Returns the number of bytes written
- * or -1 if 'len' is too small. 'str' can be set to NULL in which case it just
- * returns the number of bytes. It will need at most 6 bytes.
- */
-
-int utf8_putc(char *str, size_t len, unsigned value)
-{
-    if (!str)
-        len = 6;                /* Maximum we will need */
-    else if (len <= 0)
-        return -1;
-    if (value < 0x80) {
-        if (str)
-            *str = (unsigned char)value;
-        return 1;
-    }
-    if (value < 0x800) {
-        if (len < 2)
-            return -1;
-        if (str) {
-            *str++ = (unsigned char)(((value >> 6) & 0x1f) | 0xc0);
-            *str = (unsigned char)((value & 0x3f) | 0x80);
-        }
-        return 2;
-    }
-    if (value < 0x10000) {
-        if (len < 3)
-            return -1;
-        if (str) {
-            *str++ = (unsigned char)(((value >> 12) & 0xf) | 0xe0);
-            *str++ = (unsigned char)(((value >> 6) & 0x3f) | 0x80);
-            *str = (unsigned char)((value & 0x3f) | 0x80);
-        }
-        return 3;
-    }
-    if (value < 0x200000) {
-        if (len < 4)
-            return -1;
-        if (str) {
-            *str++ = (unsigned char)(((value >> 18) & 0x7) | 0xf0);
-            *str++ = (unsigned char)(((value >> 12) & 0x3f) | 0x80);
-            *str++ = (unsigned char)(((value >> 6) & 0x3f) | 0x80);
-            *str = (unsigned char)((value & 0x3f) | 0x80);
-        }
-        return 4;
-    }
-    if (value < 0x4000000) {
-        if (len < 5)
-            return -1;
-        if (str) {
-            *str++ = (unsigned char)(((value >> 24) & 0x3) | 0xf8);
-            *str++ = (unsigned char)(((value >> 18) & 0x3f) | 0x80);
-            *str++ = (unsigned char)(((value >> 12) & 0x3f) | 0x80);
-            *str++ = (unsigned char)(((value >> 6) & 0x3f) | 0x80);
-            *str = (unsigned char)((value & 0x3f) | 0x80);
-        }
-        return 5;
-    }
-    if (len < 6)
-        return -1;
-    if (str) {
-        *str++ = (unsigned char)(((value >> 30) & 0x1) | 0xfc);
-        *str++ = (unsigned char)(((value >> 24) & 0x3f) | 0x80);
-        *str++ = (unsigned char)(((value >> 18) & 0x3f) | 0x80);
-        *str++ = (unsigned char)(((value >> 12) & 0x3f) | 0x80);
-        *str++ = (unsigned char)(((value >> 6) & 0x3f) | 0x80);
-        *str = (unsigned char)((value & 0x3f) | 0x80);
-    }
-    return 6;
-}
diff --git a/encode/utf8.h b/encode/utf8.h
deleted file mode 100644
index 2cbe6b9289e9d3c67c87bbe67a09fc11f594c919..0000000000000000000000000000000000000000
--- a/encode/utf8.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/* Synchronet UTF-8 translation functions */
-
-/* $Id: utf8.h,v 1.6 2019/08/03 08:05:09 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef UTF8_H_
-#define UTF8_H_
-
-#include <stdbool.h>
-#include <stdlib.h>
-#include "unicode_defs.h"
-
-#define UTF8_MAX_LEN 6	// Longest possible UTF-8 sequence
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-// Returns true if the string is valid UTF-8
-bool utf8_str_is_valid(const char*);
-
-// Returns the fixed printed-width of the UTF-8 string
-size_t utf8_str_total_width(const char*);
-
-// Return the count of codepoints within the specified width range in UTF-8 string (str)
-size_t utf8_str_count_width(const char*, size_t min_width, size_t max_width);
-
-// Normalizes (to ASCII) chars in UTF-8 string 'str', in-place, resulting in string <= original in length
-char* utf8_normalize_str(char* str);
-
-// Replace or strip UTF-8 sequences in str (in-place)
-// 'lookup' is a Unicode codepoint look-up function (optional)
-// 'unsupported_ch' is the byte used to replace unsupported Unicode codepoints (optional)
-// 'unsupported_zwch' is the byte used to replace unsupported zero-width Unicode codepoints (optional)
-// 'error_ch' is the byte used to replace invalid UTF-8 sequence bytes (optional)
-char* utf8_replace_chars(char* str, char (*lookup)(enum unicode_codepoint), char unsupported_ch, char unsupported_zwch, char error_ch);
-
-// Convert a CP437 char string (src) to UTF-8 string (dest) up to 'maxlen' bytes long (sans NUL-terminator)
-// 'minval' can be used to limit the range of converted chars.  On return, *outlen is set to the number
-// of bytes written to dest unless it is NULL
-int cp437_to_utf8_str(const char* src, char* dest, size_t maxlen, unsigned char minval, size_t *outlen);
-int utf8_to_cp437_str(const char *src, char *dest, size_t maxlen, unsigned char minval, size_t *outlen);
-
-// Convert a Latin1 char string (src) to UTF-8 string (dest) up to 'maxlen' bytes long (sans NUL-terminator)
-// 'minval' can be used to limit the range of converted chars.  On return, *outlen is set to the number
-// of bytes written to dest unless it is NULL
-int latin1_to_utf8_str(const char* str, char* dest, size_t maxlen, unsigned char minval, size_t *outlen);
-int utf8_to_latin1_str(const char *src, char *dest, size_t maxlen, unsigned char minval, size_t *outlen);
-
-// Decode a UTF-8 sequence to a UNICODE code point
-int utf8_getc(const char* str, size_t len, enum unicode_codepoint* codepoint);
-
-// Encode a UNICODE code point into a UTF-8 sequence (str)
-int utf8_putc(char* str, size_t len, unsigned codepoint);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif // Don't add anything after this line
diff --git a/encode/uucode.c b/encode/uucode.c
deleted file mode 100644
index 8c985aea4eb78e757b40b9ad77d539d101d1604c..0000000000000000000000000000000000000000
--- a/encode/uucode.c
+++ /dev/null
@@ -1,248 +0,0 @@
-/* uucode.c */
-
-/* Unix-to-unix encoding/decoding routines */
-
-/* $Id: uucode.c,v 1.6 2019/07/18 03:10:54 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This program 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; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU General Public License for more details: gpl.txt or			*
- * http://www.fsf.org/copyleft/gpl.html										*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include "uucode.h"
-
-ssize_t uudecode(char *target, size_t tlen, const char *source, size_t slen)
-{
-	int		i;
-	char	ch;
-	size_t	rd=0;
-	size_t	wr=0;
-	size_t	block;
-	size_t	len;
-	unsigned char cell[4];
-
-	if(slen==0)
-		slen=strlen(source);
-	while(rd<slen && wr<tlen) {
-		ch=source[rd++];
-		if(ch<' ')
-			continue;
-		len=(ch-' ')&0x3f;
-		if(len<=0 || rd>=slen)
-			break;
-		block=0;
-		while(block<len && wr<tlen && rd<slen) {
-			memset(cell,0,sizeof(cell));
-			/* Remove space bias */
-			for(i=0;i<sizeof(cell) && rd<slen;i++) {
-				cell[i]=source[rd++];
-				if(cell[i]>=' ') cell[i]-=' ';
-			}
-			/* Convert block of 4 6-bit chars into 3 8-bit chars */
-			target[wr]=(cell[0]&0x3f)<<2;		/* lower 6 (s1) to upper 6 (d1) */
-			target[wr++]|=(cell[1]&0x30)>>4;	/* upper 2 (s2) to lower 2 (d1) */
-			target[wr]=(cell[1]&0x0f)<<4;		/* lower 4 (s2) to upper 4 (d2) */
-			target[wr++]|=(cell[2]&0x3c)>>2;	/* upper 4 (s3) to lower 4 (d2) */
-			target[wr]=(cell[2]&0x03)<<6;		/* lower 2 (s3) to upper 2 (d3) */
-			target[wr++]|=cell[3]&0x3f;			/* lower 6 (s4) to lower 6 (d3) */
-			block+=3;
-		}
-#if 0
-		if(block!=len) {
-			fprintf(stderr,"block (%d) != len (%d)\n",block,len);
-			return(-1);
-		}
-#endif
-		while(rd<slen && source[rd]>' ')
-			rd++;	/* find whitespace (line termination) */
-		while(rd<slen && source[rd]!=0 && source[rd]<=' ') 
-			rd++;	/* skip whitespace separating blocks/lines */
-	}
-
-	return(wr);
-}
-
-#define BIAS(b) if((b)==0) (b)='`'; else (b)+=' ';
-
-ssize_t uuencode(char *target, size_t tlen, const char *source, size_t slen)
-{
-	size_t	rd=0;
-	size_t	wr=0;
-	size_t	block;
-	size_t	len;
-
-	if(slen==0)
-		slen=strlen(source);
-
-	if(tlen<3)
-		return(-1);
-	tlen-=3;	/* reserve room for terminator */
-	while(rd<=slen && wr<tlen) {
-		len=45;
-		if(rd+len>slen)
-			len=slen-rd;
-		BIAS(len);
-		target[wr++]=(char)len;
-
-		block=0;
-		while(block<len && wr<tlen && rd<slen) {
-			target[wr]=source[rd]>>2;			/* upper 6 (s1) to lower 6 (d1) */
-			BIAS(target[wr]); wr++;
-			target[wr]=(source[rd++]&0x03)<<4;	/* lower 2 (s1) to upper 2 (d2) */
-			target[wr]|=source[rd]>>4;			/* upper 4 (s2) to lower 4 (d2) */
-			BIAS(target[wr]); wr++;
-			target[wr]=(source[rd++]&0x0f)<<2;	/* lower 4 (s2) to upper 4 (d3) */
-			target[wr]|=source[rd]>>6;			/* upper 2 (s3) to lower 2 (d3) */
-			BIAS(target[wr]); wr++;
-			target[wr]=source[rd++]&0x3f;		/* lower 6 (s3) to lower 6 (d4) */
-			BIAS(target[wr]); wr++;
-			block+=3;
-		}
-		if(wr<tlen) {
-			target[wr++]='\r';
-			target[wr++]='\n';
-		}
-		if(rd>=slen)
-			break;
-	}
-
-	if(wr<tlen)
-		target[wr++]=0;
-	return(wr);
-}
-
-#ifdef UUDECODE_TEST
-
-static char* truncstr(char* str, const char* set)
-{
-	char* p;
-
-	p=strpbrk(str,set);
-	if(p!=NULL)
-		*p=0;
-
-	return(p);
-}
-
-int main(int argc, char**argv)
-{
-	char	str[1024];
-	char	buf[256];
-	char*	p;
-	FILE*	in;
-	FILE*	out=NULL;
-	int		len;
-	int		line;
-
-	if(argc<2) {
-		fprintf(stderr,"usage: uudecode infile\n");
-		return 1;
-	}
-
-	if((in=fopen(argv[1],"rb"))==NULL) {
-		perror(argv[1]);
-		return 1;
-	}
-
-	while(!feof(in)) {
-		memset(str,0,sizeof(str));
-		if(fgets(str,sizeof(str),in)==NULL)
-			break;
-		truncstr(str,"\r\n");
-		if(strncmp(str,"begin ",6)==0) {
-			p=str+7;
-			while(*p && isdigit(*p)) p++;	/* skip mode */
-			while(*p && *p<=' ') p++;
-			if((out=fopen(p,"wb"))==NULL) {
-				perror(p);
-				return 1;
-			}
-			fprintf(stderr,"Creating %s\n",p);
-			line=1;
-			continue;
-		}
-		if(strcmp(str,"end")==0) {
-			if(out!=NULL) {
-				fclose(out);
-				out=NULL;
-			}
-			continue;
-		}
-		if(out==NULL)
-			continue;
-		len=uudecode(buf,sizeof(buf),str,0);
-		if(len<0) {
-			fprintf(stderr,"!Error decoding: %s\n",str);
-			break;
-		}
-		fwrite(buf,len,1,out);
-		line++;
-	}
-
-	return 0;
-}
-#elif defined(UUENCODE_TEST)
-
-int main(int argc, char**argv)
-{
-	char	str[1024];
-	char	buf[256];
-	FILE*	in;
-	int		len;
-
-	if(argc<2) {
-		fprintf(stderr,"usage: uuencode infile\n");
-		return 1;
-	}
-
-	if((in=fopen(argv[1],"rb"))==NULL) {
-		perror(argv[1]);
-		return 1;
-	}
-
-	while(!feof(in)) {
-		len=fread(buf,1,45,in);
-		if(len<0)
-			break;
-		len=uuencode(str,sizeof(str),buf,len);
-		if(len<1)
-			break;
-		printf("%.*s",len,str);
-	}
-
-	return 0;
-}
-
-#endif
-
-
diff --git a/encode/uucode.h b/encode/uucode.h
deleted file mode 100644
index 2f506f97513e2dfb77b9d858c03e5f5997b38761..0000000000000000000000000000000000000000
--- a/encode/uucode.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* uucode.c */
-
-/* Unix-to-Unix encoding/decoding exported function prototypes */
-
-/* $Id: uucode.h,v 1.2 2018/07/24 01:11:08 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This program 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; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU General Public License for more details: gpl.txt or			*
- * http://www.fsf.org/copyleft/gpl.html										*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include "gen_defs.h"	// ssize_t
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-ssize_t uuencode(char *target, size_t tlen, const char *source, size_t slen);
-ssize_t uudecode(char *target, size_t tlen, const char *source, size_t slen);
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/encode/yenc.c b/encode/yenc.c
deleted file mode 100644
index 9cba43e78581f0930d9693a7106f488fa6a4f1df..0000000000000000000000000000000000000000
--- a/encode/yenc.c
+++ /dev/null
@@ -1,203 +0,0 @@
-/* yenc.c */
-
-/* yEnc encoding/decoding routines */
-
-/* $Id: yenc.c,v 1.2 2018/02/20 11:57:13 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This program 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; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU General Public License for more details: gpl.txt or			*
- * http://www.fsf.org/copyleft/gpl.html										*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include "yenc.h"
-
-#define YENC_BIAS			42
-#define YENC_ESCAPE_CHAR	'='
-#define YENC_ESCAPE_BIAS	64
-	
-ssize_t ydecode(char *target, size_t tlen, const char *source, size_t slen)
-{
-	char	ch;
-	size_t	rd=0;
-	size_t	wr=0;
-
-	if(slen==0)
-		slen=strlen(source);
-	while(rd<slen && wr<tlen) {
-		ch=source[rd++];
-		if(ch==YENC_ESCAPE_CHAR && rd<slen)
-			ch=source[rd++]-YENC_ESCAPE_BIAS;
-		ch-=YENC_BIAS;
-		target[wr++]=ch;
-	}
-
-	return(wr);
-}
-
-ssize_t yencode(char *target, size_t tlen, const char *source, size_t slen)
-{
-	char	ch;
-	size_t	rd=0;
-	size_t	wr=0;
-	int		done=0;
-
-	if(slen==0)
-		slen=strlen(source);
-	while(rd<=slen && wr<tlen && !done) {
-		ch=source[rd++];
-		ch+=YENC_BIAS;
-		switch(ch) {
-			case 0:
-			case '\r':
-			case '\n':
-			case YENC_ESCAPE_CHAR:
-				if(wr+1>=tlen) {	/* no room for escaped char */
-					done=1;
-					continue;
-				}
-				ch+=YENC_ESCAPE_BIAS;
-				target[wr++]=YENC_ESCAPE_CHAR;
-				break;
-		}
-		target[wr++]=ch;
-	}
-
-	if(wr<tlen)
-		target[wr++]=0;
-	return(wr);
-}
-
-#if defined(YDECODE_TEST)
-
-static char* truncstr(char* str, const char* set)
-{
-	char* p;
-
-	p=strpbrk(str,set);
-	if(p!=NULL)
-		*p=0;
-
-	return(p);
-}
-
-int main(int argc, char**argv)
-{
-	char	str[1024];
-	char	buf[256];
-	char*	p;
-	FILE*	in;
-	FILE*	out=NULL;
-	int		len;
-	int		line;
-
-	if(argc<2) {
-		fprintf(stderr,"usage: %s infile\n",argv[0]);
-		return 1;
-	}
-
-	if((in=fopen(argv[1],"rb"))==NULL) {
-		perror(argv[1]);
-		return 1;
-	}
-
-	while(!feof(in)) {
-		memset(str,0,sizeof(str));
-		if(fgets(str,sizeof(str),in)==NULL)
-			break;
-		truncstr(str,"\r\n");
-		if(strncmp(str,"=ybegin ",8)==0) {
-			p=strstr(str,"name=");
-			p+=5;
-			if((out=fopen(p,"wb"))==NULL) {
-				perror(p);
-				return 1;
-			}
-			fprintf(stderr,"Creating %s\n",p);
-			line=1;
-			continue;
-		}
-		if(strncmp(str,"=yend ",6)==0) {
-			if(out!=NULL) {
-				fclose(out);
-				out=NULL;
-			}
-			continue;
-		}
-		if(out==NULL)
-			continue;
-		len=ydecode(buf,sizeof(buf),str,0);
-		if(len<0) {
-			fprintf(stderr,"!Error decoding: %s\n",str);
-			break;
-		}
-		fwrite(buf,len,1,out);
-		line++;
-	}
-
-	return 0;
-}
-#elif defined(YENCODE_TEST)
-
-int main(int argc, char**argv)
-{
-	char	str[1024];
-	char	buf[256];
-	FILE*	in;
-	int		len;
-
-	if(argc<2) {
-		fprintf(stderr,"usage: %s infile\n",argv[0]);
-		return 1;
-	}
-
-	if((in=fopen(argv[1],"rb"))==NULL) {
-		perror(argv[1]);
-		return 1;
-	}
-
-	while(!feof(in)) {
-		len=fread(buf,1,45,in);
-		if(len<0)
-			break;
-		len=yencode(str,sizeof(str),buf,len);
-		if(len<1)
-			break;
-		printf("%.*s",len,str);
-	}
-
-	return 0;
-}
-
-#endif
-
-
diff --git a/encode/yenc.h b/encode/yenc.h
deleted file mode 100644
index 2e31d25f828ee6c613e39671994282e10165d9a5..0000000000000000000000000000000000000000
--- a/encode/yenc.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* yenc.c */
-
-/* yEnc encoding/decoding exported function prototypes */
-
-/* $Id: yenc.h,v 1.2 2018/07/24 01:11:08 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This program 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; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU General Public License for more details: gpl.txt or			*
- * http://www.fsf.org/copyleft/gpl.html										*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include "gen_defs.h"	// ssize_t
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-ssize_t yencode(char *target, size_t tlen, const char *source, size_t slen);
-ssize_t ydecode(char *target, size_t tlen, const char *source, size_t slen);
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/hash/CMakeLists.txt b/hash/CMakeLists.txt
deleted file mode 100644
index 8303fff3fb04ad249a531450efb9e3cfb2279c94..0000000000000000000000000000000000000000
--- a/hash/CMakeLists.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-project (Hash C)
-find_package(XPDev QUIET CONFIG PATHS lib/cmake/XPDev)
-
-cmake_minimum_required(VERSION 3.11)
-
-set(SOURCE
-	crc16.c
-	crc32.c
-	md5.c
-	sha1.c
-)
-
-set(HEADER
-	crc16.h
-	crc32.h
-	md5.h
-	sha1.h
-)
-
-add_library(hash OBJECT ${SOURCE})
-target_include_directories(hash PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
-target_link_libraries(hash xpdev)
diff --git a/hash/README.md b/hash/README.md
deleted file mode 100644
index 5f4b0c0c1df017433622fde23aee5669915d098e..0000000000000000000000000000000000000000
--- a/hash/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Synchronet project: hash library
-
-This directory contains code and data for various one-way hash functions
-e.g. checksums, CRCs, digests, etc.
-
diff --git a/hash/crc16.c b/hash/crc16.c
deleted file mode 100644
index c95801d1252f30d3dcb3f4fb51cec5d29943278c..0000000000000000000000000000000000000000
--- a/hash/crc16.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* CCITT 16-bit CRC table and calculation function */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <string.h>	/* strlen */
-#include "crc16.h"
-
-uint16_t crc16tbl[] = {
-0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50A5, 0x60C6, 0x70E7,
-0x8108, 0x9129, 0xA14A, 0xB16B, 0xC18C, 0xD1AD, 0xE1CE, 0xF1EF,
-0x1231, 0x0210, 0x3273, 0x2252, 0x52B5, 0x4294, 0x72F7, 0x62D6,
-0x9339, 0x8318, 0xB37B, 0xA35A, 0xD3BD, 0xC39C, 0xF3FF, 0xE3DE,
-0x2462, 0x3443, 0x0420, 0x1401, 0x64E6, 0x74C7, 0x44A4, 0x5485,
-0xA56A, 0xB54B, 0x8528, 0x9509, 0xE5EE, 0xF5CF, 0xC5AC, 0xD58D,
-0x3653, 0x2672, 0x1611, 0x0630, 0x76D7, 0x66F6, 0x5695, 0x46B4,
-0xB75B, 0xA77A, 0x9719, 0x8738, 0xF7DF, 0xE7FE, 0xD79D, 0xC7BC,
-0x48C4, 0x58E5, 0x6886, 0x78A7, 0x0840, 0x1861, 0x2802, 0x3823,
-0xC9CC, 0xD9ED, 0xE98E, 0xF9AF, 0x8948, 0x9969, 0xA90A, 0xB92B,
-0x5AF5, 0x4AD4, 0x7AB7, 0x6A96, 0x1A71, 0x0A50, 0x3A33, 0x2A12,
-0xDBFD, 0xCBDC, 0xFBBF, 0xEB9E, 0x9B79, 0x8B58, 0xBB3B, 0xAB1A,
-0x6CA6, 0x7C87, 0x4CE4, 0x5CC5, 0x2C22, 0x3C03, 0x0C60, 0x1C41,
-0xEDAE, 0xFD8F, 0xCDEC, 0xDDCD, 0xAD2A, 0xBD0B, 0x8D68, 0x9D49,
-0x7E97, 0x6EB6, 0x5ED5, 0x4EF4, 0x3E13, 0x2E32, 0x1E51, 0x0E70,
-0xFF9F, 0xEFBE, 0xDFDD, 0xCFFC, 0xBF1B, 0xAF3A, 0x9F59, 0x8F78,
-0x9188, 0x81A9, 0xB1CA, 0xA1EB, 0xD10C, 0xC12D, 0xF14E, 0xE16F,
-0x1080, 0x00A1, 0x30C2, 0x20E3, 0x5004, 0x4025, 0x7046, 0x6067,
-0x83B9, 0x9398, 0xA3FB, 0xB3DA, 0xC33D, 0xD31C, 0xE37F, 0xF35E,
-0x02B1, 0x1290, 0x22F3, 0x32D2, 0x4235, 0x5214, 0x6277, 0x7256,
-0xB5EA, 0xA5CB, 0x95A8, 0x8589, 0xF56E, 0xE54F, 0xD52C, 0xC50D,
-0x34E2, 0x24C3, 0x14A0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,
-0xA7DB, 0xB7FA, 0x8799, 0x97B8, 0xE75F, 0xF77E, 0xC71D, 0xD73C,
-0x26D3, 0x36F2, 0x0691, 0x16B0, 0x6657, 0x7676, 0x4615, 0x5634,
-0xD94C, 0xC96D, 0xF90E, 0xE92F, 0x99C8, 0x89E9, 0xB98A, 0xA9AB,
-0x5844, 0x4865, 0x7806, 0x6827, 0x18C0, 0x08E1, 0x3882, 0x28A3,
-0xCB7D, 0xDB5C, 0xEB3F, 0xFB1E, 0x8BF9, 0x9BD8, 0xABBB, 0xBB9A,
-0x4A75, 0x5A54, 0x6A37, 0x7A16, 0x0AF1, 0x1AD0, 0x2AB3, 0x3A92,
-0xFD2E, 0xED0F, 0xDD6C, 0xCD4D, 0xBDAA, 0xAD8B, 0x9DE8, 0x8DC9,
-0x7C26, 0x6C07, 0x5C64, 0x4C45, 0x3CA2, 0x2C83, 0x1CE0, 0x0CC1,
-0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 0xBFBA, 0x8FD9, 0x9FF8,
-0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0
-};
-
-uint16_t crc16(const char* data, size_t len)
-{
-	uint16_t crc = 0;
-	size_t l;
-
-	if(len==0 && data!=NULL)
-		len=strlen(data);
-	for(l=0;l<len;l++)
-		crc = ucrc16(data[l],crc);
- 
-    return crc;
-}
-
-uint16_t icrc16(uint16_t crc, const char* data, size_t len)
-{
-	size_t l;
-
-	for(l=0; l<len; l++)
-		crc = ucrc16(data[l], crc);
- 
-    return crc;
-}
diff --git a/hash/crc16.h b/hash/crc16.h
deleted file mode 100644
index bca8a90eb7b6741eac372948ca52fb2003284b2c..0000000000000000000000000000000000000000
--- a/hash/crc16.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* CCITT 16-bit CRC table and calculation macro */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _CRC16_H_
-#define _CRC16_H_
-
-#include "gen_defs.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern uint16_t crc16tbl[];
-
-uint16_t crc16(const char* data, size_t len);
-uint16_t icrc16(uint16_t crc, const char* data, size_t len);
-
-#ifdef __cplusplus
-}
-#endif
-
-#define ucrc16(ch,crc) (crc16tbl[((crc>>8)&0xff)^(unsigned char)ch]^(crc << 8))
-
-#endif	/* Don't add anything after this line */
diff --git a/hash/crc32.c b/hash/crc32.c
deleted file mode 100644
index 2ad0843043a7f15b7913fe2ab85d0976f0f5a5ad..0000000000000000000000000000000000000000
--- a/hash/crc32.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/* IEEE 802.3 32-bit CRC table and convenience functions */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <string.h>	/* strlen */
-#include "crc32.h"
-
-int32_t crc32tbl[]={	/* CRC polynomial 0xedb88320 */
-0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,
-0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,
-0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
-0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,
-0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,
-0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
-0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,
-0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,
-0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
-0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,
-0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,
-0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
-0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,
-0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,
-0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
-0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,
-0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,
-0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
-0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,
-0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,
-0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
-0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,
-0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,
-0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
-0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,
-0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,
-0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
-0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,
-0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,
-0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
-0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,
-0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
-};
-
-/****************************************************************************/
-/* Returns CRC-32 of sequence of bytes (binary or ASCIIZ)					*/
-/* Pass len of 0 to auto-determine ASCIIZ string length						*/
-/* or non-zero for arbitrary binary data									*/
-/****************************************************************************/
-uint32_t crc32i(uint32_t crc, const char *buf, size_t len)
-{
-	size_t l;
-
-	if(len==0 && buf!=NULL) 
-		len=strlen(buf);
-	for(l=0;l<len;l++)
-		crc=ucrc32(buf[l],crc);
-	return ~crc;
-}
-
-uint32_t fcrc32(FILE* fp, size_t len)
-{
-	int	ch;
-	uint32_t crc=0xffffffff;
-	size_t l;
-
-	rewind(fp);
-	for(l=0;(len==0 || l<len) && !feof(fp);l++) {
-		if((ch=fgetc(fp))==EOF)
-			break;
-		crc=ucrc32(ch,crc);
-	}
-	return ~crc;
-}
diff --git a/hash/crc32.h b/hash/crc32.h
deleted file mode 100644
index b7b7ba49f69c8d587264f0fc9a27e3c5739a1f52..0000000000000000000000000000000000000000
--- a/hash/crc32.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* 32-bit CRC table and calculation macro */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _CRC32_H_
-#define _CRC32_H_
-
-#include <stdio.h>	/* FILE */
-#include "gen_defs.h"	/* uint32_t */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int32_t crc32tbl[];
-
-uint32_t crc32i(uint32_t crc, const char* buf, size_t);
-uint32_t fcrc32(FILE* fp, size_t);
-
-#ifdef __cplusplus
-}
-#endif
-
-#define ucrc32(ch,crc) (crc32tbl[(crc^(ch))&0xff]^(crc>>8))
-#define crc32(x,y) crc32i(0xffffffff,x,y)
-
-#endif	/* Don't add anything after this line */
diff --git a/hash/md5.c b/hash/md5.c
deleted file mode 100644
index 107ce8a8496e521df3957c050d259f3eb6c28dc5..0000000000000000000000000000000000000000
--- a/hash/md5.c
+++ /dev/null
@@ -1,304 +0,0 @@
-/* md5.c - RSA Data Security, Inc., MD5 Message-Digest Algorithm */
-
-/* $Id: md5.c,v 1.7 2012/10/23 07:59:36 deuce Exp $ */
-
-/* NOTE: Numerous changes have been made; the following notice is
-included to satisfy legal requirements.
-
-Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
-rights reserved.
-
-License to copy and use this software is granted provided that it
-is identified as the "RSA Data Security, Inc. MD5 Message-Digest
-Algorithm" in all material mentioning or referencing this software
-or this function.
-
-License is also granted to make and use derivative works provided
-that such works are identified as "derived from the RSA Data
-Security, Inc. MD5 Message-Digest Algorithm" in all material
-mentioning or referencing the derived work.
-
-RSA Data Security, Inc. makes no representations concerning either
-the merchantability of this software or the suitability of this
-software for any particular purpose. It is provided "as is"
-without express or implied warranty of any kind.
-
-These notices must be retained in any copies of any part of this
-documentation and/or software.
-*/
-
-#include <memory.h>
-#include "md5.h"
-
-#if !defined(BIG_ENDIAN)
-	#define LITTLE_ENDIAN	/* Little Endian by default */
-#endif
-
-void MD5_open(MD5 *md5)
-{
-  md5->count[0] = md5->count[1] = 0;
-  /* Load magic initialization constants.*/
-  md5->state[0] = 0x67452301;
-  md5->state[1] = 0xefcdab89;
-  md5->state[2] = 0x98badcfe;
-  md5->state[3] = 0x10325476;
-}
-
-/* Constants for MD5Transform routine. */
-
-#define S11 7
-#define S12 12
-#define S13 17
-#define S14 22
-#define S21 5
-#define S22 9
-#define S23 14
-#define S24 20
-#define S31 4
-#define S32 11
-#define S33 16
-#define S34 23
-#define S41 6
-#define S42 10
-#define S43 15
-#define S44 21
-
-/* F, G, H and I are basic MD5 functions. */
-
-#define F(x, y, z) (((x) & (y)) | ((~x) & (z)))
-#define G(x, y, z) (((x) & (z)) | ((y) & (~z)))
-#define H(x, y, z) ((x) ^ (y) ^ (z))
-#define I(x, y, z) ((y) ^ ((x) | (~z)))
-
-/* ROTATE_LEFT rotates x left n bits. */
-
-#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n))))
-
-/* Round1, Round2, Round3, and Round4 transformations for rounds 1, 2, 3, and 4.
-   Rotation is separate from addition to prevent recomputation.
-*/
-
-#define Round1(a, b, c, d, x, s, ac) { \
- (a) += F((b), (c), (d)) + (x) + (uint32_t)(ac); \
- (a) = ROTATE_LEFT((a), (s)); \
- (a) += (b); \
-  }
-#define Round2(a, b, c, d, x, s, ac) { \
- (a) += G((b), (c), (d)) + (x) + (uint32_t)(ac); \
- (a) = ROTATE_LEFT((a), (s)); \
- (a) += (b); \
-  }
-#define Round3(a, b, c, d, x, s, ac) { \
- (a) += H((b), (c), (d)) + (x) + (uint32_t)(ac); \
- (a) = ROTATE_LEFT((a), (s)); \
- (a) += (b); \
-  }
-#define Round4(a, b, c, d, x, s, ac) { \
- (a) += I((b), (c), (d)) + (x) + (uint32_t)(ac); \
- (a) = ROTATE_LEFT((a), (s)); \
- (a) += (b); \
-  }
-
-
-/* MD5 basic transformation. Transforms state based on block. */
-
-static void MD5Transform(uint32_t state[4], const BYTE block[64])
-{
-  uint32_t a = state[0], b = state[1], c = state[2], d = state[3], x[MD5_DIGEST_SIZE];
-  /* Move contents of block to x, putting bytes in little-endian order. */
-  #ifdef LITTLE_ENDIAN
-    memcpy(x, block, 64);
-  #else
-  {
-    unsigned int i, j;
-    for (i = j = 0; i < MD5_DIGEST_SIZE; i++, j+= 4)
-    {
-      x[i] = (uint32_t) block[j] | (uint32_t) block[j+1] << 8 |
-        (uint32_t) block[j+2] << 16 | (uint32_t) block[j+3] << 24;
-    }
-  }
-  #endif
-  /* Round 1 */
-  Round1(a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */
-  Round1(d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */
-  Round1(c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */
-  Round1(b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */
-  Round1(a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */
-  Round1(d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */
-  Round1(c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */
-  Round1(b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */
-  Round1(a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */
-  Round1(d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */
-  Round1(c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */
-  Round1(b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */
-  Round1(a, b, c, d, x[12], S11, 0x6b901122); /* 13 */
-  Round1(d, a, b, c, x[13], S12, 0xfd987193); /* 14 */
-  Round1(c, d, a, b, x[14], S13, 0xa679438e); /* 15 */
-  Round1(b, c, d, a, x[15], S14, 0x49b40821); /* 16 */
-  /* Round 2 */
-  Round2(a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */
-  Round2(d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */
-  Round2(c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */
-  Round2(b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */
-  Round2(a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */
-  Round2(d, a, b, c, x[10], S22,  0x2441453); /* 22 */
-  Round2(c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */
-  Round2(b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */
-  Round2(a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */
-  Round2(d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */
-  Round2(c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */
-  Round2(b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */
-  Round2(a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */
-  Round2(d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */
-  Round2(c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */
-  Round2(b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */
-  /* Round 3 */
-  Round3(a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */
-  Round3(d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */
-  Round3(c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */
-  Round3(b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */
-  Round3(a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */
-  Round3(d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */
-  Round3(c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */
-  Round3(b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */
-  Round3(a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */
-  Round3(d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */
-  Round3(c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */
-  Round3(b, c, d, a, x[ 6], S34,  0x4881d05); /* 44 */
-  Round3(a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */
-  Round3(d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */
-  Round3(c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */
-  Round3(b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */
-  /* Round 4 */
-  Round4(a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */
-  Round4(d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */
-  Round4(c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */
-  Round4(b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */
-  Round4(a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */
-  Round4(d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */
-  Round4(c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */
-  Round4(b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */
-  Round4(a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */
-  Round4(d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */
-  Round4(c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */
-  Round4(b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */
-  Round4(a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */
-  Round4(d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */
-  Round4(c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */
-  Round4(b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */
-  state[0] += a;
-  state[1] += b;
-  state[2] += c;
-  state[3] += d;
-  /* Zeroize sensitive information. */
-  memset(x, 0, sizeof(x));
-}
-
-void MD5_digest(MD5 *md5, const void *input, size_t inputLen)
-{
-  unsigned int i, index, partLen;
-  /* Compute number of bytes mod 64 */
-  index = (unsigned int)((md5->count[0] >> 3) & 0x3F);
-  /* Update number of bits */
-  if ((md5->count[0] += ((uint32_t)inputLen << 3)) < ((uint32_t)inputLen << 3))
-    md5->count[1]++;
-  md5->count[1] += ((uint32_t)inputLen >> 29);
-  partLen = 64 - index;
-  /* Transform as many times as possible.*/
-  if (inputLen >= partLen)
-  {
-    memcpy(&md5->buffer[index], input, partLen);
-    MD5Transform(md5->state, md5->buffer);
-    for (i = partLen; i + 63 < inputLen; i += 64)
-      MD5Transform(md5->state, (BYTE *) input + i);
-    index = 0;
-  }
-  else
-    i = 0;
-  /* Buffer remaining input */
-  memcpy(&md5->buffer[index], (char *) input + i, inputLen-i);
-}
-
-/* ENCODE packs a 32-bit unsigned integer into 4 bytes in little-endian
-   order.
-*/
-
-#ifdef LITTLE_ENDIAN
-#define ENCODE(p,n) *(uint32_t *)(p) = n
-#else
-#define ENCODE(p,n) (p)[0]=n,(p)[1]=n>>8,(p)[2]=n>>16,(p)[3]=n>>24
-#endif
-
-void MD5_close(MD5 *md5, BYTE digest[MD5_DIGEST_SIZE])
-{
-  BYTE bits[8];
-  unsigned int index, padLen;
-  static BYTE PADDING[64] =
-  {
-    0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-  };
-  /* Save number of bits */
-  ENCODE(bits, md5->count[0]);
-  ENCODE(bits+4, md5->count[1]);
-  /* Pad out to 56 mod 64. */
-  index = (unsigned int)((md5->count[0] >> 3) & 0x3f);
-  padLen = (index < 56) ? (56 - index) : (120 - index);
-  MD5_digest(md5, PADDING, padLen);
-  /* Append length (before padding) */
-  MD5_digest(md5, bits, 8);
-  /* Store state in digest */
-  ENCODE(digest, md5->state[0]);
-  ENCODE(digest+4, md5->state[1]);
-  ENCODE(digest+8, md5->state[2]);
-  ENCODE(digest+12, md5->state[3]);
-  /* Zeroize sensitive information. */
-  memset(md5, 0, sizeof(MD5));
-}
-
-BYTE* MD5_calc(BYTE digest[MD5_DIGEST_SIZE], const void* buf, size_t len)
-{
-	MD5 ctx;
-
-	MD5_open(&ctx);
-	MD5_digest(&ctx,buf,len);
-	MD5_close(&ctx,digest);
-
-	return(digest);
-}
-
-/* conversion for 16 character binary md5 to hex */
-
-char* MD5_hex(char* to, const BYTE digest[MD5_DIGEST_SIZE])
-{
-	BYTE const* from = digest;
-	const char *hexdigits = "0123456789abcdef";
-	const BYTE *end = digest + MD5_DIGEST_SIZE;
-	char *d = to;
-
-	while (from < end) {
-		*d++ = hexdigits[(*from >> 4)];
-		*d++ = hexdigits[(*from & 0x0F)];
-		from++;
-	}
-	*d = '\0';
-	return to;
-}
-
-#ifdef MD5_TEST
-
-int main(int argc, char**argv)
-{
-	int		i;
-	char	hexbuf[(MD5_DIGEST_SIZE*2)+1];
-	BYTE	digest[MD5_DIGEST_SIZE];
-
-	for(i=1;i<argc;i++)
-		printf("%s\n"
-			,MD5_hex(hexbuf,MD5_calc(digest,argv[i],strlen(argv[i]))));
-
-	return 0;
-}
-
-#endif
diff --git a/hash/md5.h b/hash/md5.h
deleted file mode 100644
index c23a4a1254b355ff50692d6d9c164c7b2dbc1074..0000000000000000000000000000000000000000
--- a/hash/md5.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/* md5.h - header file for md5.c */
-
-/* $Id: md5.h,v 1.7 2019/03/22 21:29:12 rswindell Exp $ */
-
-/* RSA Data Security, Inc., MD5 Message-Digest Algorithm */
-
-/* NOTE: Numerous changes have been made; the following notice is
-included to satisfy legal requirements.
-
-Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
-rights reserved.
-
-License to copy and use this software is granted provided that it
-is identified as the "RSA Data Security, Inc. MD5 Message-Digest
-Algorithm" in all material mentioning or referencing this software
-or this function.
-
-License is also granted to make and use derivative works provided
-that such works are identified as "derived from the RSA Data
-Security, Inc. MD5 Message-Digest Algorithm" in all material
-mentioning or referencing the derived work.
-
-RSA Data Security, Inc. makes no representations concerning either
-the merchantability of this software or the suitability of this
-software for any particular purpose. It is provided "as is"
-without express or implied warranty of any kind.
-
-These notices must be retained in any copies of any part of this
-documentation and/or software.
-*/
-
-#ifndef H__MD5
-#define H__MD5
-
-#include <stddef.h>		/* size_t */
-#include <gen_defs.h>	/* uint32_t */
-
-#define MD5_DIGEST_SIZE		16
-
-#ifndef BYTE
-	typedef unsigned char BYTE;
-#endif
-
-typedef struct
-{
-  uint32_t	state[4];
-  uint32_t	count[2];
-  BYTE	buffer[64];
-} MD5;
-
-#if defined(_WIN32) && (defined(MD5_IMPORTS) || defined(MD5_EXPORTS))
-	#if defined(MD5_IMPORTS)
-		#define MD5EXPORT	__declspec(dllimport)
-	#else
-		#define MD5EXPORT	__declspec(dllexport)
-	#endif
-#else	/* !_WIN32 */
-	#define MD5EXPORT
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-MD5EXPORT void	MD5_open(MD5* ctx);
-MD5EXPORT void	MD5_digest(MD5* ctx, const void* buf, size_t len);
-MD5EXPORT void	MD5_close(MD5* ctx, BYTE digest[MD5_DIGEST_SIZE]);
-MD5EXPORT BYTE*	MD5_calc(BYTE digest[MD5_DIGEST_SIZE], const void* buf, size_t len);
-MD5EXPORT char*	MD5_hex(char* dest, const BYTE digest[MD5_DIGEST_SIZE]);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/hash/sha1.c b/hash/sha1.c
deleted file mode 100644
index a9dc3a5e4cef6728031987363a974c3d6a5bf852..0000000000000000000000000000000000000000
--- a/hash/sha1.c
+++ /dev/null
@@ -1,311 +0,0 @@
-/*
-SHA-1 in C
-By Steve Reid <steve@edmweb.com>
-100% Public Domain
-
-Test Vectors (from FIPS PUB 180-1)
-"abc"
-  A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D
-"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"
-  84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1
-A million repetitions of "a"
-  34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F
-*/
-
-/* #define LITTLE_ENDIAN * This should be #define'd already, if true. */
-/* #define SHA1HANDSOFF * Copies data before messing with it. */
-
-#define SHA1HANDSOFF
-
-#include <stdio.h>
-#include <string.h>
-
-/* for uint32_t */
-#include <stdint.h>
-
-#include "sha1.h"
-
-
-#define rol(value, bits) (((value) << (bits)) | ((value) >> (32 - (bits))))
-
-/* blk0() and blk() perform the initial expand. */
-/* I got the idea of expanding during the round function from SSLeay */
-#if BYTE_ORDER == LITTLE_ENDIAN
-#define blk0(i) (block->l[i] = (rol(block->l[i],24)&0xFF00FF00) \
-    |(rol(block->l[i],8)&0x00FF00FF))
-#elif BYTE_ORDER == BIG_ENDIAN
-#define blk0(i) block->l[i]
-#else
-#error "Endianness not defined!"
-#endif
-#define blk(i) (block->l[i&15] = rol(block->l[(i+13)&15]^block->l[(i+8)&15] \
-    ^block->l[(i+2)&15]^block->l[i&15],1))
-
-/* (R0+R1), R2, R3, R4 are the different operations used in SHA1 */
-#define R0(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk0(i)+0x5A827999+rol(v,5);w=rol(w,30);
-#define R1(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk(i)+0x5A827999+rol(v,5);w=rol(w,30);
-#define R2(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0x6ED9EBA1+rol(v,5);w=rol(w,30);
-#define R3(v,w,x,y,z,i) z+=(((w|x)&y)|(w&x))+blk(i)+0x8F1BBCDC+rol(v,5);w=rol(w,30);
-#define R4(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0xCA62C1D6+rol(v,5);w=rol(w,30);
-
-
-/* Hash a single 512-bit block. This is the core of the algorithm. */
-
-void SHA1Transform(
-    uint32_t state[5],
-    const uint8_t buffer[64]
-)
-{
-    uint32_t a, b, c, d, e;
-
-    typedef union
-    {
-        uint8_t c[64];
-        uint32_t l[16];
-    } CHAR64LONG16;
-
-#ifdef SHA1HANDSOFF
-    CHAR64LONG16 block[1];      /* use array to appear as a pointer */
-
-    memcpy(block, buffer, 64);
-#else
-    /* The following had better never be used because it causes the
-     * pointer-to-const buffer to be cast into a pointer to non-const.
-     * And the result is written through.  I threw a "const" in, hoping
-     * this will cause a diagnostic.
-     */
-    CHAR64LONG16 *block = (const CHAR64LONG16 *) buffer;
-#endif
-    /* Copy context->state[] to working vars */
-    a = state[0];
-    b = state[1];
-    c = state[2];
-    d = state[3];
-    e = state[4];
-    /* 4 rounds of 20 operations each. Loop unrolled. */
-    R0(a, b, c, d, e, 0);
-    R0(e, a, b, c, d, 1);
-    R0(d, e, a, b, c, 2);
-    R0(c, d, e, a, b, 3);
-    R0(b, c, d, e, a, 4);
-    R0(a, b, c, d, e, 5);
-    R0(e, a, b, c, d, 6);
-    R0(d, e, a, b, c, 7);
-    R0(c, d, e, a, b, 8);
-    R0(b, c, d, e, a, 9);
-    R0(a, b, c, d, e, 10);
-    R0(e, a, b, c, d, 11);
-    R0(d, e, a, b, c, 12);
-    R0(c, d, e, a, b, 13);
-    R0(b, c, d, e, a, 14);
-    R0(a, b, c, d, e, 15);
-    R1(e, a, b, c, d, 16);
-    R1(d, e, a, b, c, 17);
-    R1(c, d, e, a, b, 18);
-    R1(b, c, d, e, a, 19);
-    R2(a, b, c, d, e, 20);
-    R2(e, a, b, c, d, 21);
-    R2(d, e, a, b, c, 22);
-    R2(c, d, e, a, b, 23);
-    R2(b, c, d, e, a, 24);
-    R2(a, b, c, d, e, 25);
-    R2(e, a, b, c, d, 26);
-    R2(d, e, a, b, c, 27);
-    R2(c, d, e, a, b, 28);
-    R2(b, c, d, e, a, 29);
-    R2(a, b, c, d, e, 30);
-    R2(e, a, b, c, d, 31);
-    R2(d, e, a, b, c, 32);
-    R2(c, d, e, a, b, 33);
-    R2(b, c, d, e, a, 34);
-    R2(a, b, c, d, e, 35);
-    R2(e, a, b, c, d, 36);
-    R2(d, e, a, b, c, 37);
-    R2(c, d, e, a, b, 38);
-    R2(b, c, d, e, a, 39);
-    R3(a, b, c, d, e, 40);
-    R3(e, a, b, c, d, 41);
-    R3(d, e, a, b, c, 42);
-    R3(c, d, e, a, b, 43);
-    R3(b, c, d, e, a, 44);
-    R3(a, b, c, d, e, 45);
-    R3(e, a, b, c, d, 46);
-    R3(d, e, a, b, c, 47);
-    R3(c, d, e, a, b, 48);
-    R3(b, c, d, e, a, 49);
-    R3(a, b, c, d, e, 50);
-    R3(e, a, b, c, d, 51);
-    R3(d, e, a, b, c, 52);
-    R3(c, d, e, a, b, 53);
-    R3(b, c, d, e, a, 54);
-    R3(a, b, c, d, e, 55);
-    R3(e, a, b, c, d, 56);
-    R3(d, e, a, b, c, 57);
-    R3(c, d, e, a, b, 58);
-    R3(b, c, d, e, a, 59);
-    R4(a, b, c, d, e, 60);
-    R4(e, a, b, c, d, 61);
-    R4(d, e, a, b, c, 62);
-    R4(c, d, e, a, b, 63);
-    R4(b, c, d, e, a, 64);
-    R4(a, b, c, d, e, 65);
-    R4(e, a, b, c, d, 66);
-    R4(d, e, a, b, c, 67);
-    R4(c, d, e, a, b, 68);
-    R4(b, c, d, e, a, 69);
-    R4(a, b, c, d, e, 70);
-    R4(e, a, b, c, d, 71);
-    R4(d, e, a, b, c, 72);
-    R4(c, d, e, a, b, 73);
-    R4(b, c, d, e, a, 74);
-    R4(a, b, c, d, e, 75);
-    R4(e, a, b, c, d, 76);
-    R4(d, e, a, b, c, 77);
-    R4(c, d, e, a, b, 78);
-    R4(b, c, d, e, a, 79);
-    /* Add the working vars back into context.state[] */
-    state[0] += a;
-    state[1] += b;
-    state[2] += c;
-    state[3] += d;
-    state[4] += e;
-    /* Wipe variables */
-    a = b = c = d = e = 0;
-#ifdef SHA1HANDSOFF
-    memset(block, '\0', sizeof(block));
-#endif
-}
-
-
-/* SHA1Init - Initialize new context */
-
-void SHA1Init(
-    SHA1_CTX * context
-)
-{
-    /* SHA1 initialization constants */
-    context->state[0] = 0x67452301;
-    context->state[1] = 0xEFCDAB89;
-    context->state[2] = 0x98BADCFE;
-    context->state[3] = 0x10325476;
-    context->state[4] = 0xC3D2E1F0;
-    context->count[0] = context->count[1] = 0;
-}
-
-
-/* Run your data through this. */
-
-void SHA1Update(
-    SHA1_CTX * context,
-    const void * buf,
-    size_t len
-)
-{
-    uint32_t i;
-    uint32_t j;
-    uint8_t* data = (uint8_t*)buf;
-
-    j = context->count[0];
-    if ((context->count[0] += len << 3) < j)
-        context->count[1]++;
-    context->count[1] += (len >> 29);
-    j = (j >> 3) & 63;
-    if ((j + len) > 63)
-    {
-        memcpy(&context->buffer[j], data, (i = 64 - j));
-        SHA1Transform(context->state, context->buffer);
-        for (; i + 63 < len; i += 64)
-        {
-            SHA1Transform(context->state, &data[i]);
-        }
-        j = 0;
-    }
-    else
-        i = 0;
-    memcpy(&context->buffer[j], &data[i], len - i);
-}
-
-
-/* Add padding and return the message digest. */
-
-void SHA1Final(
-    SHA1_CTX * context,
-    uint8_t digest[SHA1_DIGEST_SIZE]
-)
-{
-    unsigned i;
-
-    uint8_t finalcount[8];
-
-    uint8_t c;
-
-#if 0    /* untested "improvement" by DHR */
-    /* Convert context->count to a sequence of bytes
-     * in finalcount.  Second element first, but
-     * big-endian order within element.
-     * But we do it all backwards.
-     */
-    uint8_t *fcp = &finalcount[8];
-
-    for (i = 0; i < 2; i++)
-    {
-        uint32_t t = context->count[i];
-
-        int j;
-
-        for (j = 0; j < 4; t >>= 8, j++)
-            *--fcp = (uint8_t) t}
-#else
-    for (i = 0; i < 8; i++)
-    {
-        finalcount[i] = (uint8_t) ((context->count[(i >= 4 ? 0 : 1)] >> ((3 - (i & 3)) * 8)) & 255);      /* Endian independent */
-    }
-#endif
-    c = 0200;
-    SHA1Update(context, &c, 1);
-    while ((context->count[0] & 504) != 448)
-    {
-        c = 0000;
-        SHA1Update(context, &c, 1);
-    }
-    SHA1Update(context, finalcount, 8); /* Should cause a SHA1Transform() */
-    for (i = 0; i < 20; i++)
-    {
-        digest[i] = (uint8_t)
-            ((context->state[i >> 2] >> ((3 - (i & 3)) * 8)) & 255);
-    }
-    /* Wipe variables */
-    memset(context, '\0', sizeof(*context));
-    memset(&finalcount, '\0', sizeof(finalcount));
-}
-
-void SHA1_calc(
-    uint8_t *hash_out,
-    const void *data,
-    size_t len)
-{
-    SHA1_CTX ctx;
-    unsigned int ii;
-
-    SHA1Init(&ctx);
-    for (ii=0; ii<len; ii+=1)
-        SHA1Update(&ctx, (const char*)data + ii, 1);
-    SHA1Final(&ctx, hash_out);
-}
-
-/* conversion for 20 byte binary sha1 to hex */
-char* SHA1_hex(char* to, const uint8_t digest[SHA1_DIGEST_SIZE])
-{
-	uint8_t const* from = digest;
-	const char *hexdigits = "0123456789abcdef";
-	const uint8_t *end = digest + SHA1_DIGEST_SIZE;
-	char *d = to;
-
-	while (from < end) {
-		*d++ = hexdigits[(*from >> 4)];
-		*d++ = hexdigits[(*from & 0x0F)];
-		from++;
-	}
-	*d = '\0';
-	return to;
-}
diff --git a/hash/sha1.h b/hash/sha1.h
deleted file mode 100644
index 852585ca2bd9638f82ec26dfd0db4718c21cd508..0000000000000000000000000000000000000000
--- a/hash/sha1.h
+++ /dev/null
@@ -1,57 +0,0 @@
-#ifndef SHA1_H
-#define SHA1_H
-
-/*
-   SHA-1 in C
-   By Steve Reid <steve@edmweb.com>
-   100% Public Domain
- */
-
-#include <stddef.h>		/* size_t */
-#include <gen_defs.h>	/* uint32_t */
-
-#define SHA1_DIGEST_SIZE 20
-
-typedef struct
-{
-    uint32_t state[5];
-    uint32_t count[2];
-    uint8_t buffer[64];
-} SHA1_CTX;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void SHA1Transform(
-    uint32_t state[5],
-    const uint8_t buffer[64]
-    );
-
-void SHA1Init(
-    SHA1_CTX * context
-    );
-
-void SHA1Update(
-    SHA1_CTX * context,
-    const void * data,
-    size_t len
-    );
-
-void SHA1Final(
-    SHA1_CTX * context,
-    uint8_t digest[SHA1_DIGEST_SIZE]
-    );
-
-void SHA1_calc(
-    uint8_t *hash_out,
-    const void *str,
-    size_t len);
-
-char* SHA1_hex(char* to, const uint8_t digest[SHA1_DIGEST_SIZE]);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* SHA1_H */
diff --git a/uifc/CMakeLists.txt b/uifc/CMakeLists.txt
deleted file mode 100644
index a6ddccd7fd77e701aa3811e1a2162d7f59f445a0..0000000000000000000000000000000000000000
--- a/uifc/CMakeLists.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-project (UIfC C)
-
-cmake_minimum_required(VERSION 3.11)
-
-INCLUDE (FindThreads)
-
-set(SOURCE
-	filepick.c
-	uifc32.c
-	uifcx.c
-)
-
-set(HEADER
-	filepick.h
-	uifc.h
-)
-
-add_library(uifc OBJECT ${SOURCE})
-target_include_directories(uifc PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
-
-target_link_libraries(uifc ciolib xpdev)
diff --git a/uifc/filepick.c b/uifc/filepick.c
deleted file mode 100644
index c960d50d6baa69475261539443964006e59d1ef4..0000000000000000000000000000000000000000
--- a/uifc/filepick.c
+++ /dev/null
@@ -1,721 +0,0 @@
-#include <ctype.h>
-
-#include "dirwrap.h"
-#include "uifc.h"
-#include "ciolib.h"
-
-#include "filepick.h"
-
-enum {
-	 DIR_LIST
-	,FILE_LIST
-	,MASK_FIELD
-	,CURRENT_PATH
-	,FIELD_LIST_TERM
-};
-
-void drawfpwindow(uifcapi_t *api)
-{
-	struct vmem_cell lbuf[512];
-	int i;
-	int j;
-	int listheight=0;
-	int height;
-	int width;
-	struct vmem_cell shade[512];
-
-	width=SCRN_RIGHT-SCRN_LEFT+1;
-
-	height=api->scrn_len-3;
-	/* Make sure it's odd */
-	if(!(width%2))
-		width--;
-
-	listheight=height-7;
-
-        i=0;
-	set_vmem(&lbuf[i++], '\xc9', api->hclr|(api->bclr<<4), 0);
-	for(j=1;j<width-1;j++)
-		set_vmem(&lbuf[i++], '\xcd', api->hclr|(api->bclr<<4), 0);
-	if(api->mode&UIFC_MOUSE && width>6) {
-		set_vmem(&lbuf[1], '[', api->hclr|(api->bclr<<4), 0);
-		set_vmem(&lbuf[2], '\xfe', api->lclr|(api->bclr<<4), 0);
-		set_vmem(&lbuf[3], ']', api->hclr|(api->bclr<<4), 0);
-		set_vmem(&lbuf[4], '[', api->hclr|(api->bclr<<4), 0);
-		set_vmem(&lbuf[5], '?', api->lclr|(api->bclr<<4), 0);
-		set_vmem(&lbuf[6], ']', api->hclr|(api->bclr<<4), 0);
-		api->buttony=SCRN_TOP;
-		api->exitstart=SCRN_LEFT+1;
-		api->exitend=SCRN_LEFT+3;
-		api->helpstart=SCRN_LEFT+4;
-		api->helpend=SCRN_LEFT+6;
-	}
-	set_vmem(&lbuf[i++], '\xbb', api->hclr|(api->bclr<<4), 0);
-	vmem_puttext(SCRN_LEFT,SCRN_TOP,SCRN_LEFT+width-1,SCRN_TOP,lbuf);
-	set_vmem_attr(&lbuf[2], api->hclr|(api->bclr<<4));
-	set_vmem_attr(&lbuf[5], api->hclr|(api->bclr<<4));
-	for(j=1;j<7;j++)
-		lbuf[j].ch='\xcd';
-	lbuf[0].ch='\xc8';
-	lbuf[(width-1)].ch='\xbc';
-	vmem_puttext(SCRN_LEFT,SCRN_TOP+height-1
-		,SCRN_LEFT+width-1,SCRN_TOP+height-1,lbuf);
-	lbuf[0].ch='\xcc';
-	lbuf[(width-1)].ch='\xb9';
-	lbuf[(width-1)/2].ch='\xcb';
-	vmem_puttext(SCRN_LEFT,SCRN_TOP+2,SCRN_LEFT+width-1,SCRN_TOP+2,lbuf);
-	lbuf[(width-1)/2].ch='\xca';
-	vmem_puttext(SCRN_LEFT,SCRN_TOP+3+listheight
-		,SCRN_LEFT+width-1,SCRN_TOP+3+listheight,lbuf);
-	lbuf[0].ch='\xba';
-	lbuf[(width-1)].ch='\xba';
-	for(j=1;j<(width-1);j++)
-		lbuf[j].ch=' ';
-	vmem_puttext(SCRN_LEFT,SCRN_TOP+1,
-		SCRN_LEFT+width-1,SCRN_TOP+1,lbuf);
-	vmem_puttext(SCRN_LEFT,SCRN_TOP+height-2,
-		SCRN_LEFT+width-1,SCRN_TOP+height-2,lbuf);
-	vmem_puttext(SCRN_LEFT,SCRN_TOP+height-3,
-		SCRN_LEFT+width-1,SCRN_TOP+height-3,lbuf);
-	lbuf[(width-1)/2].ch='\xba';
-	for(j=0;j<listheight;j++)
-		vmem_puttext(SCRN_LEFT,SCRN_TOP+3+j
-			,SCRN_LEFT+width-1,SCRN_TOP+3+j,lbuf);
-
-	/* Shadow */
-	if(api->bclr==BLUE) {
-		vmem_gettext(SCRN_LEFT+width,SCRN_TOP+1,SCRN_LEFT+width+1
-			,SCRN_TOP+(height-1),shade);
-		for(j=0;j<512;j++)
-			set_vmem_attr(&shade[j], DARKGRAY);
-		vmem_puttext(SCRN_LEFT+width,SCRN_TOP+1,SCRN_LEFT+width+1
-			,SCRN_TOP+(height-1),shade);
-		vmem_gettext(SCRN_LEFT+2,SCRN_TOP+height,SCRN_LEFT+width+1
-			,SCRN_TOP+height,shade);
-		for(j=0;j<width;j++)
-			set_vmem_attr(&shade[j], DARKGRAY);
-		vmem_puttext(SCRN_LEFT+2,SCRN_TOP+height,SCRN_LEFT+width+1
-			,SCRN_TOP+height,shade);
-	}
-}
-
-void free_opt_list(char ***opts)
-{
-	char **p;
-
-	if(*opts==NULL)
-		return;
-	for(p=*opts; *p && (*p)[0]; p++) {
-		if(*p)
-			FREE_AND_NULL((*p));
-	}
-	FREE_AND_NULL(*opts);
-}
-
-char *insensitive_mask(char *mask)
-{
-#ifdef __unix__
-	char *in;
-	char *out;
-	static char nmask[MAX_PATH*4+1];
-
-	out=nmask;
-	for(in=mask; *in; in++) {
-		if(isalpha(*in)) {
-			*(out++)='[';
-			*(out++)=tolower(*in);
-			*(out++)=toupper(*in);
-			*(out++)=']';
-		}
-		else
-			*(out++)=*in;
-	}
-	*out=0;
-	return(nmask);
-#else
-	return(mask);
-#endif
-}
-
-char **get_file_opt_list(char **fns, int files, int dirsonly, int root)
-{
-	char **opts;
-	int  i;
-	int  j=0;
-
-	opts=(char **)malloc((files+2)*sizeof(char *));
-	if(opts==NULL)
-		return(NULL);
-	memset(opts, 0, (files+2)*sizeof(char *));
-	if(dirsonly) {
-		if(!root)
-			opts[j++]=strdup("..");
-	}
-	for(i=0;i<files;i++) {
-		if(isdir(fns[i])) {
-			if(dirsonly)
-				opts[j++]=strdup(getdirname(fns[i]));
-		}
-		else {
-			if(!dirsonly)
-				opts[j++]=strdup(getfname(fns[i]));
-		}
-	}
-	opts[j]="";
-	return(opts);
-}
-
-void display_current_path(uifcapi_t *api, char *path)
-{
-	char	dpath[MAX_PATH+2];
-	size_t	width;
-	int height;
-#ifdef _WIN32
-	char	*p;
-#endif
-
-	height=api->scrn_len-3;
-	width=SCRN_RIGHT-SCRN_LEFT-3;
-	SAFECOPY(dpath, path);
-	while(strlen(dpath) > width) {
-		/* Just remove paths from the start. */
-		dpath[0]='.';
-		dpath[1]='.';
-		dpath[2]='.';
-		memmove(dpath+3, dpath+(strlen(dpath)-width+4), width-1);
-	}
-	/* For Win32, convert all "confusing" / to \\ */
-#ifdef _WIN32
-	for(p=dpath; *p; p++) {
-		if(*p=='/')
-			*p='\\';
-	}
-	if (strncmp(dpath, "\\\\?\\", 4)==0)
-		memmove(dpath, dpath+4, strlen(dpath+3));
-#endif
-
-	api->printf(SCRN_LEFT+2, SCRN_TOP+height-2, api->lclr|(api->bclr<<4), "%-*s", width, dpath);
-}
-
-int mousetofield(int currfield, int opts, int height, int width, int listheight, int listwidth, int *dcur, int *dbar, int *fcur, int *fbar)
-{
-	int newfield;
-	int bardif;
-	struct mouse_event mevnt;
-
-	newfield=currfield;
-	if(getmouse(&mevnt)==0) {
-		if(mevnt.endx >= SCRN_LEFT + 1
-				&& mevnt.endx <= SCRN_LEFT + listwidth
-				&& mevnt.endy >= SCRN_TOP + 3
-				&& mevnt.endy <= SCRN_TOP + 2 + listheight) {
-			newfield = DIR_LIST;
-			if(mevnt.endx == SCRN_LEFT + 1)
-				ungetmouse(&mevnt);
-			else {
-				bardif = (mevnt.starty - SCRN_TOP - 3) - *dbar;
-				*dbar += bardif;
-				*dcur += bardif;
-			}
-		}
-		if(mevnt.endx >= SCRN_LEFT + 1 + listwidth + 1
-				&& mevnt.endx <= SCRN_LEFT + 1 + listwidth * 2
-				&& mevnt.endy >= SCRN_TOP + 3
-				&& mevnt.endy <= SCRN_TOP + 2 + listheight) {
-			newfield = FILE_LIST;
-			if(mevnt.endx == SCRN_LEFT + 1 + listwidth + 1)
-				ungetmouse(&mevnt);
-			else {
-				bardif = (mevnt.starty - SCRN_TOP - 3) - *fbar;
-				*fbar += bardif;
-				*fcur += bardif;
-			}
-		}
-		if(!(opts & UIFC_FP_MSKNOCHG)
-				&& (mevnt.endx >= SCRN_LEFT + 1
-					&& mevnt.endx <= SCRN_LEFT + width - 2
-					&& mevnt.endy == SCRN_TOP + height - 3)) {
-			newfield = MASK_FIELD;
-			ungetmouse(&mevnt);
-		}
-		if(opts & UIFC_FP_ALLOWENTRY
-				&& mevnt.endx >= SCRN_LEFT + 1
-				&& mevnt.endx <= SCRN_LEFT + width - 2
-				&& mevnt.endy == SCRN_TOP + height - 2) {
-			newfield = CURRENT_PATH;
-			ungetmouse(&mevnt);
-		}
-	}
-	return(newfield);
-}
-
-int filepick(uifcapi_t *api, char *title, struct file_pick *fp, char *dir, char *msk, int opts)
-{
-	char	cfile[MAX_PATH*8+1];		/* Current full path to file */
-	char	cpath[(MAX_PATH<<2)+1];			/* Current path */
-	char	drive[3];
-	char	tdir[MAX_PATH+1];
-	char	fname[MAX_PATH+1];
-	char	ext[MAX_PATH+1];
-	char	cmsk[MAX_PATH*4+1];			/* Current file mask */
-	char	cglob[MAX_PATH*4+1];		/* File glob patter */
-	char	dglob[MAX_PATH*4+2];		/* Directory glob pattern */
-	char	*p;
-	glob_t	fgl;						/* Files */
-	glob_t	dgl;						/* Directories */
-	int		dircur=0;
-	int		dirbar=0;
-	int		filecur=0;
-	int		filebar=0;
-	int		listwidth;
-	char	**dir_list=NULL;
-	char	**file_list=NULL;
-	int		currfield;
-	int		lastfield;
-	int		i;
-	int		root=0;						/* Is this the root of the file system? */
-										/* On *nix, this just means no .. on Win32,
-										 * Something should be done about drive letters. */
-	int		reread=FALSE;
-	int		lbclr;
-	char	*lastpath=NULL;
-	char	*tmplastpath=NULL;
-	char	*tmppath=NULL;
-	int		width;
-	int		height;
-	char	*YesNo[]={"Yes", "No", ""};
-	int		finished=FALSE;
-	int		retval=0;
-	int		fieldmove;
-	int		oldhu=hold_update;
-	int		oldx=wherex();
-	int		oldy=wherey();
-
-	height=api->scrn_len-3;
-	width=SCRN_RIGHT-SCRN_LEFT-3;
-
-	lbclr=api->lbclr;
-
-	/* No struct passed */
-	if(fp==NULL)
-		return(-1);
-
-	/* Illegal options */
-	if((opts & UIFC_FP_MULTI)==UIFC_FP_MULTI && (opts & (UIFC_FP_ALLOWENTRY|UIFC_FP_OVERPROMPT|UIFC_FP_CREATPROMPT)))
-		return(-1);
-
-	if (opts & UIFC_FP_DIRSEL)
-		currfield = lastfield = DIR_LIST;
-	else
-		currfield = lastfield = FILE_LIST;
-
-	fp->files=0;
-	fp->selected=NULL;
-
-	/* No initial path specified */
-	if(dir==NULL || !dir[0])
-		SAFECOPY(cpath,".");
-
-	FULLPATH(cpath,((dir==NULL||dir[0]==0)?".":dir),sizeof(cpath));
-	backslash(cpath);
-
-	if(msk==NULL || msk[0]==0) {
-		SAFECOPY(cmsk,"*");
-	}
-	else {
-		SAFECOPY(cmsk,msk);
-	}
-	sprintf(cfile,"%s%s",cpath,cmsk);
-	listwidth=SCRN_RIGHT-SCRN_LEFT+1;
-	listwidth-=listwidth%2;
-	listwidth-=3;
-	listwidth/=2;
-	/* Draw the file picker itself... */
-	hold_update = TRUE;
-	drawfpwindow(api);
-	/* Display the title centered */
-	i=strlen(title);
-	if(i>width-4)
-		i=width-4;
-	api->printf(SCRN_LEFT+2, SCRN_TOP+1, api->hclr|(api->bclr<<4), "%*s%-*s", (width-i)/2-2, "", i, title);
-	api->printf(SCRN_LEFT+2, SCRN_TOP+height-3, api->hclr|(api->bclr<<4), "Mask: ");
-	while(!finished) {
-		hold_update = TRUE;
-		api->printf(SCRN_LEFT+8, SCRN_TOP+height-3, api->lclr|(api->bclr<<4), "%-*s", width-7, cmsk);
-		tmppath=strdup(cpath);
-		if(tmppath != NULL) {
-#ifdef _WIN32
-			if (tmppath[0] == 0 || (tmppath[5]==0 && tmppath[3]=='.' && tmppath[4]=='.' && tmppath[1]==':' && IS_PATH_DELIM(tmppath[2])))
-				strcpy(cpath, "\\\\?\\");
-			else if(strncmp(tmppath, "\\\\?\\", 4)==0 && tmppath[4])
-				strcpy(cpath, tmppath+4);
-			else
-#endif
-			{
-				FULLPATH(cpath,tmppath,sizeof(cpath));
-			}
-		}
-		FREE_AND_NULL(tmppath);
-
-#ifdef __unix__
-		if(cpath[0]==0) {
-			cpath[0]='/';
-			cpath[1]=0;
-		}
-#endif
-		backslash(cpath);
-		sprintf(cglob,"%s%s",cpath,(opts&UIFC_FP_MSKCASE)?cmsk:insensitive_mask(cmsk));
-		sprintf(dglob,"%s*",cpath);
-		switch(currfield) {
-			case DIR_LIST:
-				if(lastfield==DIR_LIST)
-					sprintf(cfile,"%s%s",cpath,cmsk);
-				break;
-		}
-
-#ifdef __unix__
-		if(cpath[0]==0) {
-			cpath[0]='/';
-			cpath[1]=0;
-		}
-		if(cpath[1]==0)
-			root=TRUE;
-		else
-			root=FALSE;
-#endif
-
-#ifdef _WIN32
-		if (strcmp(cpath, "\\\\?\\")==0)
-			root = TRUE;
-		else
-			root = FALSE;
-#endif
-
-#ifdef _WIN32
-		// Hack together some hawtness
-		if (root) {
-			unsigned long drives = _getdrives();
-			int j;
-			char path[4];
-
-			memset(&dgl, 0, sizeof(dgl));
-			strcpy(path, "A:\\");
-			dgl.gl_pathv=malloc(sizeof(char *)*('Z'-'A'+2));
-			for (j=0; j<='Z'-'A'; j++) {
-				if(drives & (1<<j)) {
-					path[0]='A'+j;
-					dgl.gl_pathv[dgl.gl_pathc++]=strdup(path);
-				}
-			}
-		}
-		else 
-#endif
-		{
-			if(glob(dglob, GLOB_MARK, NULL, &dgl)!=0 && !isdir(cpath)) {
-				if(lastpath==NULL) {
-					fp->files=0;
-					retval=-1;
-					goto cleanup;
-				}
-				hold_update=FALSE;
-				api->msg("Cannot read directory!");
-				if (api->exit_flags & UIFC_XF_QUIT) {
-					retval=fp->files=0;
-					goto cleanup;
-				}
-				SAFECOPY(cpath, lastpath);
-				FREE_AND_NULL(lastpath);
-				currfield=lastfield;
-				continue;
-			}
-		}
-		if(glob(cglob, 0, NULL, &fgl)!=0)
-			fgl.gl_pathc=0;
-		api->list_height=api->scrn_len-3-7;
-		dir_list=get_file_opt_list(dgl.gl_pathv, dgl.gl_pathc, TRUE, root);
-		file_list=get_file_opt_list(fgl.gl_pathv, fgl.gl_pathc, FALSE, root);
-		globfree(&dgl);
-		globfree(&fgl);
-		reread=FALSE;
-		dircur=dirbar=filecur=filebar=0;
-		while(!reread) {
-			hold_update=TRUE;
-			display_current_path(api, cfile);
-			api->lbclr=api->lclr|(api->bclr<<4);
-			api->list(WIN_NOBRDR|WIN_FIXEDHEIGHT|WIN_IMM|WIN_REDRAW,1,3,listwidth,&dircur,&dirbar,NULL,dir_list);
-			api->list(WIN_NOBRDR|WIN_FIXEDHEIGHT|WIN_IMM|WIN_REDRAW,1+listwidth+1,3,listwidth,&filecur,&filebar,NULL,file_list);
-			api->lbclr=lbclr;
-			lastfield=currfield;
-			fieldmove=0;
-			hold_update = FALSE;
-			switch(currfield) {
-				case DIR_LIST:
-					i=api->list(WIN_DYN|WIN_NOBRDR|WIN_FIXEDHEIGHT|WIN_EXTKEYS|WIN_UNGETMOUSE|WIN_REDRAW,1,3,listwidth,&dircur,&dirbar,NULL,dir_list);
-					if(i==-1) {		/* ESC */
-						retval=fp->files=0;
-						goto cleanup;
-					}
-					if(i==-2-'\t' || i==-2-CIO_KEY_RIGHT)	/* TAB */
-						fieldmove=1;
-					if(i==-3842)	/* Backtab */
-						fieldmove=-1;
-					if(i==-2-CIO_KEY_MOUSE)
-						currfield=mousetofield(currfield, opts, height, width, api->list_height, listwidth, &dircur, &dirbar, &filecur, &filebar);
-					if(i>=0) {
-						FREE_AND_NULL(lastpath);
-						lastpath=strdup(cpath);
-						strcat(cpath,dir_list[i]);
-						reread=TRUE;
-						sprintf(cfile,"%s%s",cpath,cmsk);
-					}
-					break;
-				case FILE_LIST:
-					i=api->list(WIN_DYN|WIN_NOBRDR|WIN_FIXEDHEIGHT|WIN_EXTKEYS|WIN_UNGETMOUSE|WIN_REDRAW,1+listwidth+1,3,listwidth,&filecur,&filebar,NULL,file_list);
-					if(i==-1) {
-						retval=fp->files=0;
-						goto cleanup;
-					}
-					if(i>=0) {
-						sprintf(cfile,"%s%s",cpath,file_list[i]);
-						if((opts & UIFC_FP_MULTI)!=UIFC_FP_MULTI) {
-							retval=fp->files=1;
-							fp->selected=(char **)malloc(sizeof(char *));
-							if(fp->selected==NULL) {
-								fp->files=0;
-								retval=-1;
-								goto cleanup;
-							}
-							fp->selected[0]=strdup(cfile);
-							if(fp->selected[0]==NULL) {
-								FREE_AND_NULL(fp->selected);
-								fp->files=0;
-								retval=-1;
-								goto cleanup;
-							}
-							api->list(WIN_NOBRDR|WIN_FIXEDHEIGHT|WIN_IMM|WIN_REDRAW,1+listwidth+1,3,listwidth,&filecur,&filebar,NULL,file_list);
-							finished=reread=TRUE;
-						}
-					}
-					if(i==-2-'\t')
-						fieldmove=1;
-					if(i==-3842 || i==-2-CIO_KEY_LEFT)	/* Backtab */
-						fieldmove=-1;
-					if(i==-2-CIO_KEY_MOUSE)
-						currfield=mousetofield(currfield, opts, height, width, api->list_height, listwidth, &dircur, &dirbar, &filecur, &filebar);
-					break;
-				case CURRENT_PATH:
-					FREE_AND_NULL(tmplastpath);
-					tmplastpath=strdup(cpath);
-#ifdef _WIN32
-					if (strncmp(tmplastpath, "\\\\?\\", 4)==0)
-						memmove(tmplastpath, tmplastpath+4, strlen(tmplastpath+3));
-					if (strncmp(cfile, "\\\\?\\", 4)==0)
-						memmove(cfile, cfile+4, strlen(cfile+3));
-#endif
-					api->getstrxy(SCRN_LEFT+2, SCRN_TOP+height-2, width-1, cfile, sizeof(cfile)-1, K_EDIT|K_TABEXIT|K_MOUSEEXIT, &i);
-					if(i==ESC) {
-						retval=fp->files=0;
-						goto cleanup;
-					}
-					if((opts & (UIFC_FP_FILEEXIST|UIFC_FP_PATHEXIST)) && !fexist(cfile)) {
-#ifdef _WIN32
-						if (cfile[0])	// Allow zero-length path to mean "Drive list"
-#endif
-						{
-							FREE_AND_NULL(tmplastpath);
-							api->msg("No such path/file!");
-							if (api->exit_flags & UIFC_XF_QUIT) {
-								retval=fp->files=0;
-								goto cleanup;
-							}
-							continue;
-						}
-					}
-					if(isdir(cfile) && cfile[0])
-						backslash(cfile);
-					_splitpath(cfile, drive, tdir, fname, ext);
-					sprintf(cpath,"%s%s",drive,tdir);
-					if(!isdir(cpath)) {
-#ifdef _WIN32
-						if (cfile[0] && strcmp(cfile, cmsk))	// Allow zero-length path to mean "Drive list"
-#endif
-						{
-							FREE_AND_NULL(tmplastpath);
-							api->msg("No such path!");
-							if (api->exit_flags & UIFC_XF_QUIT) {
-								retval=fp->files=0;
-								goto cleanup;
-							}
-							continue;
-						}
-					}
-					if(i==CIO_KEY_MOUSE)
-						currfield=mousetofield(currfield, opts, height, width, api->list_height, listwidth, &dircur, &dirbar, &filecur, &filebar);
-					if(i==3840)
-						fieldmove=-1;
-					else {
-						if(currfield == CURRENT_PATH)
-							fieldmove=1;
-					}
-					sprintf(cfile,"%s%s%s%s",drive,tdir,fname,ext);
-					if(strchr(fname,'*') !=NULL || strchr(fname,'?') !=NULL
-						|| strchr(ext,'*') !=NULL || strchr(ext,'?') !=NULL
-						|| ((isdir(cfile) || cfile[0]==0) && !(opts & UIFC_FP_DIRSEL) && (i=='\r' || i=='\n'))
-						|| (!isdir(cfile) && i!='\r' && i!='\n')) {
-						if(opts & UIFC_FP_MSKNOCHG) {
-							sprintf(cfile,"%s%s%s",drive,tdir,cmsk);
-							FREE_AND_NULL(tmplastpath);
-							api->msg("File mask cannot be changed");
-							if (api->exit_flags & UIFC_XF_QUIT) {
-								retval=fp->files=0;
-								goto cleanup;
-							}
-							continue;
-						}
-						else {
-							if((!isdir(cfile)) && cpath[0] != 0)
-								sprintf(cmsk, "%s%s", fname, ext);
-							reread=TRUE;
-						}
-						break;
-					}
-					else {
-						if((opts & UIFC_FP_MULTI)!=UIFC_FP_MULTI && (i=='\r' || i!='\n'))
-						fieldmove=0;
-					}
-					if((currfield != CURRENT_PATH) || fieldmove)
-						break;
-					if(isdir(cfile)) {
-						if((opts & UIFC_FP_MULTI)!=UIFC_FP_MULTI && i!='\t' && i != 3840) {
-							if(opts & UIFC_FP_DIRSEL) {
-								finished=reread=TRUE;
-								retval=fp->files=1;
-								fp->selected=(char **)malloc(sizeof(char *));
-								if(fp->selected==NULL) {
-									fp->files=0;
-									retval=-1;
-									goto cleanup;
-								}
-								fp->selected[0]=strdup(cfile);
-								if(fp->selected[0]==NULL) {
-									free(fp->selected);
-									fp->files=0;
-									retval=-1;
-									goto cleanup;
-								}
-							}
-						}
-						SAFECOPY(cpath, cfile);
-						backslash(cfile);
-						strcat(cfile,cmsk);
-					}
-					if(tmplastpath != NULL) {
-						if(strcmp(tmplastpath, cpath)) {
-							reread=TRUE;
-							FREE_AND_NULL(lastpath);
-							lastpath=tmplastpath;
-							tmplastpath=NULL;
-						}
-					}
-					FREE_AND_NULL(tmplastpath);
-					if((opts & UIFC_FP_MULTI)!=UIFC_FP_MULTI && i!='\t' && i!=3840 && cpath[0]) {
-						retval=fp->files=1;
-						fp->selected=(char **)malloc(sizeof(char *));
-						if(fp->selected==NULL) {
-							fp->files=0;
-							retval=-1;
-							goto cleanup;
-						}
-						fp->selected[0]=strdup(cfile);
-						if(fp->selected[0]==NULL) {
-							FREE_AND_NULL(fp->selected);
-							fp->files=0;
-							retval=-1;
-							goto cleanup;
-						}
-						finished=reread=TRUE;
-					}
-					break;
-				case MASK_FIELD:
-					p=strdup(cmsk);
-					api->getstrxy(SCRN_LEFT+8, SCRN_TOP+height-3, width-7, cmsk, sizeof(cmsk)-1, K_EDIT|K_TABEXIT|K_MOUSEEXIT, &i);
-					if(i==CIO_KEY_MOUSE)
-						currfield=mousetofield(currfield, opts, height, width, api->list_height, listwidth, &dircur, &dirbar, &filecur, &filebar);
-					if(i==ESC || i==CIO_KEY_QUIT || (api->exit_flags & UIFC_XF_QUIT)) {
-						FREE_AND_NULL(p);
-						retval=fp->files=0;
-						goto cleanup;
-					}
-					if(strcmp(cmsk, p)) {
-						sprintf(cfile,"%s%s",cpath,cmsk);
-						reread=TRUE;
-					}
-					FREE_AND_NULL(p);
-					if(i==3840)
-						fieldmove=-1;
-					else
-						fieldmove=1;
-					break;
-			}
-			currfield+=fieldmove;
-			if(currfield<0)
-				currfield=FIELD_LIST_TERM-1;
-			while(1) {
-				if(currfield==MASK_FIELD && (opts & UIFC_FP_MSKNOCHG)) {
-					currfield+=fieldmove;
-					continue;
-				}
-				if(currfield==CURRENT_PATH && !(opts & UIFC_FP_ALLOWENTRY)) {
-					currfield+=fieldmove;
-					continue;
-				}
-				break;
-			}
-			if(currfield==FIELD_LIST_TERM)
-				currfield=DIR_LIST;
-		}
-		free_opt_list(&file_list);
-		free_opt_list(&dir_list);
-		if(finished) {
-			if((opts & UIFC_FP_OVERPROMPT) && fexist(cfile)) {
-				if(api->list(WIN_MID|WIN_SAV, 0,0,0, &i, NULL, "File exists, overwrite?", YesNo)!=0) {
-					if (api->exit_flags & UIFC_XF_QUIT) {
-						retval=fp->files=0;
-						goto cleanup;
-					}
-					finished=FALSE;
-				}
-			}
-			if((opts & UIFC_FP_CREATPROMPT) && !fexist(cfile)) {
-				if(api->list(WIN_MID|WIN_SAV, 0,0,0, &i, NULL, "File does not exist, create?", YesNo)!=0) {
-					if (api->exit_flags & UIFC_XF_QUIT) {
-						retval=fp->files=0;
-						goto cleanup;
-					}
-					finished=FALSE;
-				}
-			}
-		}
-	}
-
-cleanup:		/* Cleans up allocated variables returns from function */
-	hold_update=oldhu;
-	gotoxy(oldx,oldy);
-	FREE_AND_NULL(lastpath);
-	FREE_AND_NULL(tmppath);
-	FREE_AND_NULL(tmplastpath);
-	free_opt_list(&file_list);
-	free_opt_list(&dir_list);
-	return(retval);
-}
-
-int filepick_free(struct file_pick *fp)
-{
-	int i;
-
-	for(i=0; i<fp->files; i++) {
-		FREE_AND_NULL(fp->selected[i]);
-	}
-	FREE_AND_NULL(fp->selected);
-	return(0);
-}
diff --git a/uifc/filepick.h b/uifc/filepick.h
deleted file mode 100644
index 2d1285a06bbbc029f1ccaf8ff40c34f0a7dda606..0000000000000000000000000000000000000000
--- a/uifc/filepick.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef _FILEPICK_H_
-#define _FILEPICK_H_
-
-#include "dirwrap.h"
-#include "uifc.h"
-
-#define UIFC_FP_MSKNOCHG	(1<<0)				/* Don't allow user to change the file mask */
-#define	UIFC_FP_MSKCASE		(1<<1)				/* Make the mask case-sensitive */
-#define UIFC_FP_UNIXSORT	(1<<2)				/* ToDo: Sort upper-case first, then lower-case */
-#define UIFC_FP_DIRSEL		(1<<3)				/* ToDo: Select directory, not file */
-#define UIFC_FP_PATHEXIST	(1<<4)				/* Do not allow selection of non-existant paths */
-#define UIFC_FP_FILEEXIST	(1<<5)				/* File must exist */
-#define UIFC_FP_SHOWHIDDEN	(1<<6)				/* Show hidden files */
-#define UIFC_FP_MULTI		((1<<7)|UIFC_FP_PATHEXIST|UIFC_FP_FILEEXIST)
-												/* ToDo: Allow multiple files to be chosen */
-
-/* The following can NOT be used with multi selects (Returns an error) */
-#define UIFC_FP_ALLOWENTRY	(1<<8)				/* Allow user to type a file/path name */
-#define UIFC_FP_OVERPROMPT	(1<<9)				/* Prompt "Overwrite?" if file exists */
-#define UIFC_FP_CREATPROMPT	(1<<10)				/* Prompt "Create?" if file does not exist */
-
-struct file_pick {
-	int		files;
-	char	**selected;
-};
-
-int filepick(uifcapi_t *api, char *title, struct file_pick *, char *initial_dir, char *default_mask, int opts);
-int filepick_free(struct file_pick *);
-
-#endif
diff --git a/uifc/uifc.h b/uifc/uifc.h
deleted file mode 100644
index 6eeffa3553fc9c9f6aa1787d33bb941c8bff1196..0000000000000000000000000000000000000000
--- a/uifc/uifc.h
+++ /dev/null
@@ -1,535 +0,0 @@
-/* Text-mode User Interface Library (inspired by Novell SYSCON look & feel) */
-
-/* $Id: uifc.h,v 1.97 2020/08/16 20:37:08 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _UIFC_H_
-#define _UIFC_H_
-
-#include <time.h>
-#include <fcntl.h>
-#include <ctype.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdarg.h>
-#include <stdlib.h>
-/* OS Specific */
-#if defined(_WIN32)
-    #include <windows.h>
-#endif
-#if defined(__unix__)
-	#include <sys/param.h>	/* PATH_MAX */
-#endif
-
-#ifdef _WIN32
-        #if defined(UIFC_IMPORTS) || defined(UIFC_EXPORTS)
-                #if defined(UIFC_IMPORTS)
-                        #define UIFCEXPORT __declspec( dllimport )
-                        #define UIFCEXPORTVAR __declspec( dllimport )
-                #else
-                        #define UIFCEXPORT __declspec( dllexport )
-                        #define UIFCEXPORTVAR __declspec( dllexport )
-                #endif
-        #else   /* self-contained executable */
-                #define UIFCEXPORT
-                #define UIFCEXPORTVAR	extern
-        #endif
-#else
-        #define UIFCEXPORT
-        #define UIFCEXPORTVAR	extern
-#endif
-
-#if defined(__unix__) && !defined(stricmp)
-    #define stricmp strcasecmp
-	#define strnicmp strncasecmp
-#endif
-
-#if !defined(FREE_AND_NULL)
-	#define FREE_AND_NULL(x)			if(x!=NULL) { free(x); x=NULL; }
-#endif
-
-#if !defined(MAX_PATH)	/* maximum path length */
-	#if defined MAXPATHLEN
-		#define MAX_PATH MAXPATHLEN	/* clib.h */
-	#elif defined PATH_MAX
-		#define MAX_PATH PATH_MAX
-	#elif defined _MAX_PATH
-		#define MAX_PATH _MAX_PATH
-	#else
-		#define MAX_PATH 260		
-	#endif
-#endif
-
-#define MAX_OPTS			100000
-#define MSK_ON				0xf0000000
-#define MSK_OFF 			0x0fffffff
-#define MSK_INS 			0x10000000
-#define MSK_DEL 			0x20000000
-#define MSK_COPY 			0x30000000
-#define MSK_CUT 			0x40000000
-#define MSK_PASTE			0x50000000	/* Overwrite selected item with previously copied item */
-#define MSK_EDIT			0x60000000
-
-/* Legacy terms (get/put instead of copy/paste) */
-#define MSK_GET		MSK_COPY
-#define MSK_PUT		MSK_PASTE
-
-/* Don't forget, negative return values are used for extended keys (if WIN_EXTKEYS used)! */
-#define MAX_OPLN	75		/* Maximum length of each option per menu call */
-#define MAX_BUFS	7		/* Maximum number of screen buffers to save */
-#define MIN_LINES   14      /* Minimum number of screen lines supported */
-#define MAX_LINES   255     /* Maximum number of screen lines supported (ciolib screenheight is a uchar) */ 
-#define MAX_COLS	255		/* Maximum number of screen columns supported (ciolib screenwidth is a uchar) */ 
-#define MAX_BFLN	(MAX_COLS*MAX_LINES*2)	/* Maximum size of screen buffers, char + attr */
-
-#ifndef uint
-#define uint unsigned int
-#endif
-
-								/**************************/
-						        /* Bits in uifcapi_t.mode */
-								/**************************/
-#define UIFC_INMSG		(1<<0)	/* Currently in Message Routine non-recursive */
-#define UIFC_MOUSE		(1<<1)	/* Mouse installed and available */
-#define UIFC_MONO		(1<<2)	/* Force monochrome mode */
-#define UIFC_COLOR		(1<<3)	/* Force color mode */
-#define UIFC_IBM		(1<<4)	/* Force use of IBM charset	*/
-#define UIFC_NOCTRL		(1<<5)	/* Don't allow usage of CTRL keys for movement 
-								 * etc in menus (Still available in text boxes) */
-#define UIFC_NHM		(1<<6)	/* Don't hide the mouse pointer */
-#define UIFC_NOMOUSE	(1<<7)	/* Don't enable/use the mouse */
-
-							/*******************************/
-                            /* Bits in uifcapi_t.list mode */
-							/*******************************/
-#define WIN_ORG 	(1<<0)	/* Original menu - destroy valid screen area */
-#define WIN_SAV 	(1<<1)	/* Save existing text and replace when finished */
-#define WIN_ACT 	(1<<2)	/* Menu remains active after a selection */
-#define WIN_L2R 	(1<<3)	/* Center the window based on 'width'   */
-#define WIN_T2B 	(1<<4)	/* Center the window based on 'height'  */
-#define WIN_INS 	(1<<5)	/* Allows user to use insert key */
-#define WIN_INSACT	(1<<6)	/* Remains active after insert key */
-#define WIN_DEL 	(1<<7)	/* Allows user to use delete key */
-#define WIN_DELACT	(1<<8)	/* Remains active after delete key */
-#define WIN_ESC 	(1<<9)	/* Screen is active when escape is hit			 */
-#define WIN_RHT 	(1<<10) /* Place window against right side of screen */
-#define WIN_BOT 	(1<<11) /* Place window against bottom of screen */
-#define WIN_COPY 	(1<<12) /* Allows F5 to Get (copy) a menu item */
-#define WIN_PASTE 	(1<<13) /* Allows F6 to Put (paste) a menu item */
-#define WIN_CHE 	(1<<14) /* Stay active after escape if changes */
-#define WIN_XTR 	(1<<15) /* Add extra line at end for inserting at end */
-#define WIN_DYN 	(1<<16) /* Dynamic window - return at least every second */
-#define WIN_CUT		(1<<17)	/* Allow ^X (cut) a menu item */
-#define WIN_HLP 	(1<<17) /* Parse 'Help codes' - showbuf() */
-#define WIN_PACK 	(1<<18) /* Pack text in window (No padding) - showbuf() */
-#define WIN_IMM 	(1<<19) /* Draw window and return immediately */
-#define WIN_FAT		(1<<20)	/* Do not pad outside borders */
-#define WIN_REDRAW	(1<<21) /* Force redraw on dynamic window */
-#define WIN_NODRAW	(1<<22) /* Force not to redraw on dynamic window */
-#define WIN_EXTKEYS	(1<<23) /* Return on any keypress... if it's not handled internally
-							 * Return value is -2 - keyvalue */
-#define WIN_NOBRDR	(1<<24)	/* Do not draw a border around the window */
-#define WIN_FIXEDHEIGHT	(1<<25)	/* Use list_height from uifc struct */
-#define WIN_UNGETMOUSE  (1<<26) /* If the mouse is clicked outside the window, */
-								/* Put the mouse event back into the event queue */
-#define WIN_EDIT		(1<<27)	/* Allow F2 to edit a menu item */
-#define WIN_PASTEXTR	(1<<28)	/* Allow paste into extra (blank) item */
-#define WIN_INACT		(1<<29)	/* Draw window inactive... intended for use with WIN_IMM */
-#define WIN_POP			(1<<30)	/* Exit the list. Act as though ESC was pressed. */
-								/* Intended for use after a WIN_EXTKEYS or WIN_DYN */
-#define WIN_SEL			(1<<31)	/* Exit the list. Act as though ENTER was pressed. */
-								/* Intended for use after a WIN_EXTKEYS or WIN_DYN */
-
-#define WIN_MID WIN_L2R|WIN_T2B  /* Place window in middle of screen */
-#define WIN_GET	WIN_COPY
-#define WIN_PUT WIN_PASTE
-
-#define SCRN_TOP	3
-#define SCRN_LEFT	5
-#define SCRN_RIGHT 	((int)api->scrn_width-4)
-
-								/* Bits in 'mode' for getkey and getstr     */
-#define K_UPPER 	(1L<<0) 	/* Converts all letters to upper case		*/
-#define K_UPRLWR	(1L<<1) 	/* Upper/Lower case automatically			*/
-#define K_NUMBER	(1L<<2) 	/* Allow numbers only						*/
-#define K_WRAP		(1L<<3) 	/* Allows word wrap 						*/
-#define K_MSG		(1L<<4) 	/* Allows ANSI, ^N ^A ^G					*/
-#define K_SPIN		(1L<<5) 	/* Spinning cursor (same as SPIN)			*/
-#define K_LINE		(1L<<6) 	/* Input line (inverse color)				*/
-#define K_EDIT		(1L<<7) 	/* Edit string passed						*/
-#define K_CHAT		(1L<<8) 	/* In chat multi-chat						*/
-#define K_NOCRLF	(1L<<9) 	/* Don't print CRLF after string input      */
-#define K_ALPHA 	(1L<<10)	/* Only allow alphabetic characters 		*/
-#define K_SCANNING	(1L<<11)	/* UPC Scanner is active... return on '%'	*/
-#define K_TABEXIT	(1L<<12)	/* Return on TAB or BACKTAB			    	*/
-#define K_DECIMAL	(1L<<13)	/* Allow floating point numbers only		*/
-#define K_DEUCEEXIT	(1L<<14)	/* Return whenever Deuce wants to exit		*/
-								/* Returns on up/down/F2					*/
-#define K_MOUSEEXIT	(1L<<15)	/* Returns when mouse is clicked outside of */
-								/* Input area (NOT outside of window!)		*/
-								/* And ungets the mouse event.				*/
-#define K_PASSWORD	(1L<<16)	/* Does not display text while editing		*/
-#define K_FIND		(1L<<17)	/* Don't set the "changes" flag				*/
-
-
-						/* Extra exit flags */
-#define UIFC_XF_QUIT	(1<<0)	/* Returned -1 due to CIO_KEY_QUIT */
-
-#define HELPBUF_SIZE 4000
-
-#ifndef _GEN_DEFS_H
-									/* Control characters */
-#define STX 	0x02				/* Start of text			^B	*/
-#define ETX 	0x03				/* End of text				^C	*/
-#define BS		'\b'				/* Back space				^H	*/
-#define TAB 	'\t'				/* Horizontal tabulation	^I	*/
-#define LF		'\n'				/* Line feed				^J	*/
-#define FF		0x0c				/* Form feed				^L	*/
-#define CR		'\r'				/* Carriage return			^M	*/
-#define ESC 	0x1b				/* Escape					^[	*/
-#define DEL     0x7f                /* Delete                   ^BS */
-
-enum {
-	 CTRL_A=1
-	,CTRL_B
-	,CTRL_C
-	,CTRL_D	
-	,CTRL_E
-	,CTRL_F
-	,CTRL_G
-	,CTRL_H
-	,CTRL_I
-	,CTRL_J
-	,CTRL_K
-	,CTRL_L
-	,CTRL_M
-	,CTRL_N
-	,CTRL_O
-	,CTRL_P
-	,CTRL_Q
-	,CTRL_R
-	,CTRL_S
-	,CTRL_T
-	,CTRL_U
-	,CTRL_V
-	,CTRL_W
-	,CTRL_X
-	,CTRL_Y
-	,CTRL_Z
-};
-
-#endif
-
-#ifndef uchar				/* Short-hand for unsigned data types */
-#define uchar unsigned char
-#endif
-#ifndef uint
-#define uint unsigned int
-#endif
-#ifndef ulong
-#define ulong unsigned long
-#endif
-
-#ifndef BOOL
-#define BOOL    int
-#ifndef TRUE
-#define TRUE    1
-#endif
-#ifndef FALSE
-#define FALSE   0
-#endif
-#endif
-
-typedef struct {
-	int		left,top,right,bot;
-	int		*cur,*bar;
-    uchar*	buf;
-} win_t;
-
-typedef struct {
-	char	background;
-	char	help_char;
-	char	close_char;
-	char	up_arrow;
-	char	down_arrow;
-	char	button_left;
-	char	button_right;
-
-	char	list_top_left;
-	char	list_top;
-	char	list_top_right;
-	char	list_separator_left;
-	char	list_separator_right;
-	char	list_horizontal_separator;
-	char	list_left;
-	char	list_right;
-	char	list_bottom_left;
-	char	list_bottom_right;
-	char	list_bottom;
-	char	list_scrollbar_separator;
-
-	char	input_top_left;
-	char	input_top;
-	char	input_top_right;
-	char	input_left;
-	char	input_right;
-	char	input_bottom_left;
-	char	input_bottom_right;
-	char	input_bottom;
-
-	char	popup_top_left;
-	char	popup_top;
-	char	popup_top_right;
-	char	popup_left;
-	char	popup_right;
-	char	popup_bottom_left;
-	char	popup_bottom_right;
-	char	popup_bottom;
-
-	char	help_top_left;
-	char	help_top;
-	char	help_top_right;
-	char	help_left;
-	char	help_right;
-	char	help_bottom_left;
-	char	help_bottom_right;
-	char	help_bottom;
-	char	help_titlebreak_left;
-	char	help_titlebreak_right;
-	char	help_hitanykey_left;
-	char	help_hitanykey_right;
-} uifc_graphics_t;
-
-typedef struct {
-/****************************************************************************/
-/* Size of the structure (for version compatibility verification).			*/
-/****************************************************************************/
-    size_t  size;
-/****************************************************************************/
-/* Controls general UIFC library behavior.									*/
-/****************************************************************************/
-    long    mode;
-/****************************************************************************/
-/* Set to TRUE when changes to data have been made by input function.		*/ 
-/****************************************************************************/
-    BOOL    changes;
-/****************************************************************************/
-/* Set to TRUE to enable insert mode by default (not overwrite)				*/
-/****************************************************************************/
-	BOOL	insert_mode;
-/****************************************************************************/
-/* The overlapped-window save buffer number.								*/
-/****************************************************************************/
-    uint    savnum;
-/****************************************************************************/
-/* The current overlapped-window save buffer depth.							*/
-/****************************************************************************/
-    uint    savdepth;
-/****************************************************************************/
-/* Screen length															*/
-/****************************************************************************/
-    uint    scrn_len;
-/****************************************************************************/
-/* Screen Width 															*/
-/****************************************************************************/
-    uint    scrn_width;
-/****************************************************************************/
-/* ESC key delay for curses													*/
-/****************************************************************************/
-    uint    esc_delay;
-/****************************************************************************/
-/* Alternative method of setting current help text.							*/
-/****************************************************************************/
-    char*   helpbuf;
-/****************************************************************************/
-/* Location of the help data and index files.								*/
-/****************************************************************************/
-    char    helpdatfile[MAX_PATH+1];
-    char    helpixbfile[MAX_PATH+1];
-	BOOL	help_available;
-/****************************************************************************/
-/* Help and exit button locations for current/last window					*/
-/****************************************************************************/
-	int		buttony;
-	int		exitstart;
-	int		exitend;
-	int		helpstart;
-	int		helpend;
-/****************************************************************************/
-/* List height for WIN_FIXEDHEIGHT lists.									*/
-/****************************************************************************/
-	int		list_height;
-
-/****************************************************************************/
-/* Colours for the various bits												*/
-/****************************************************************************/
-	uchar	hclr,lclr,bclr,cclr,lbclr;
-
-/****************************************************************************/
-/* Have we initialized successfully?										*/
-/****************************************************************************/
-	BOOL	initialized;
-
-/****************************************************************************/
-/* UIFC_XF_* bits for extra exit status										*/
-/****************************************************************************/
-	uint	exit_flags;
-
-/****************************************************************************/
-/* Custom drawing characters												*/
-/****************************************************************************/
-	uifc_graphics_t	*chars;
-
-/****************************************************************************/
-/* Allow application override												*/
-/****************************************************************************/
-	char** yesNoOpts;
-
-/****************************************************************************/
-/* Exit/uninitialize function.												*/
-/****************************************************************************/
-    void    (*bail) (void);
-/****************************************************************************/
-/* Fill the screen with the appropriate background attribute.				*/
-/* str is the title for the application banner.								*/
-/* Returns 0 on success, non-zero on failure.								*/
-/****************************************************************************/
-    int     (*scrn) (const char* str);
-/****************************************************************************/
-/* Popup a message, maybe wait for the user to hit a key or click button.	*/
-/****************************************************************************/
-	int		(*msg)  (const char* str);
-	int		(*msgf) (char* fmt, ...);
-	BOOL	(*deny) (char* fmt, ...);
-	BOOL	(*confirm) (char* fmt, ...);
-/****************************************************************************/
-/* Popup/down a status message.												*/
-/* str is the message to display on popup.									*/
-/* if str==NULL, then the the status is to be cleared (popdown).			*/
-/****************************************************************************/
-    void    (*pop)  (const char* str);
-/****************************************************************************/
-/* General menu function.													*/
-/* mode contains WIN_* flags to control display and functionality.			*/
-/* left, top and width specify desired screen locations and window size.	*/
-/* cur is a pointer to the current (default) option.						*/
-/* bar is a pointer to the current location of the lightbar (which used).	*/
-/* title is the caption for the menu.										*/
-/* Menus can centered left to right and top to bottom automatically.		*/
-/* mode bits are set with macros WIN_*.										*/
-/* option is an array of char arrays, first element of last char array		*/
-/* must be NULL.															*/
-/* Returns the 0-based selected option number, -1 for ESC, or the selected	*/
-/* option number OR'd with MSK_INS, MSK_DEL, MSK_GET, MSK_PUT, or MSK_EDIT.	*/
-/****************************************************************************/
-    int     (*list) (int mode, int left, int top, int width, int* dflt
-                        ,int* bar, const char *title, char** option);
-/****************************************************************************/
-/* Windowed string input routine.											*/
-/* mode contains WIN_* flags to control display and functionality.			*/
-/* left and top specify desired screen location.							*/
-/* prompt is displayed before the input is requested.						*/
-/* str is the string to input or edit.										*/
-/* len is the maximum length of the string.									*/
-/* kmode contains flags that control the string input (K_* macros).			*/
-/* This function sets uifcapi_t.changes to TRUE if the string is modified.	*/
-/* Returns the length of the string or -1 on escape/abort.					*/
-/****************************************************************************/
-    int     (*input)(int mode, int left, int top, const char* prompt, char* str
-            	        ,int len, int kmode);
-/****************************************************************************/
-/* Sets the current help index by source code file and line number.			*/
-/****************************************************************************/
-    void    (*sethelp)(int line, char* file);
-
-/****************************************************************************/
-/* Shows the current help text												*/
-/****************************************************************************/
-    void    (*showhelp)(void);
-	
-/****************************************************************************/
-/* Shows a scrollable text buffer - optionally parsing "help markup codes"	*/
-/****************************************************************************/
-	void	(*showbuf)(int mode, int left, int top, int width, int height
-							,const char *title, const char *hbuf, int *curp, int *barp);
-
-/****************************************************************************/
-/* Updates time in upper left corner of screen with current time in ASCII/  */
-/* Unix format																*/
-/****************************************************************************/
-	void	(*timedisplay)(BOOL force);
-
-/****************************************************************************/
-/* Displays the bottom line using the WIN_* mode flags						*/
-/****************************************************************************/
-    void	(*bottomline)(int mode);
-
-/****************************************************************************/
-/* String input/exit box at a specified position							*/
-/****************************************************************************/
-	int		(*getstrxy)(int left, int top, int width, char *outstr, int max
-							,long mode, int *lastkey);
-
-/****************************************************************************/
-/* Formatted print with attribute											*/
-/****************************************************************************/
-	int		(*printf)(int x, int y, unsigned attr, char *fmat, ...);
-
-} uifcapi_t;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Return value from uifc_api.list() when uifcYesNoOpts is used */
-enum {
-	uifcYes=0,
-	uifcNo=1
-};
-
-UIFCEXPORTVAR char* uifcYesNoOpts[];
-
-/****************************************************************************/
-/* Initialization routines for each UIFC implementation.					*/
-/* Returns 0 on success, non-zero on failure.								*/
-/****************************************************************************/
-int uifcini(uifcapi_t*);	/* Original implementation based on conio		*/
-UIFCEXPORT int uifcinix(uifcapi_t*);	/* Standard I/O implementation		*/
-UIFCEXPORT int uifcini32(uifcapi_t*);	/* modern implementation			*/
-/****************************************************************************/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* Don't add anything after this line! */
diff --git a/uifc/uifc32.c b/uifc/uifc32.c
deleted file mode 100644
index bf2d2637ca2b4f63f8815cdffa7488440ecbb385..0000000000000000000000000000000000000000
--- a/uifc/uifc32.c
+++ /dev/null
@@ -1,3077 +0,0 @@
-/* Modern implementation of UIFC (user interface) library based on uifc.c */
-// vi: tabstop=4
-
-/* $Id: uifc32.c,v 1.268 2020/08/16 20:37:08 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifdef __unix__
-	#include <stdio.h>
-	#include <unistd.h>
-	#ifdef __QNX__
-		#include <strings.h>
-	#endif
-    #define mswait(x) delay(x)
-#elif defined(_WIN32)
-	#include <share.h>
-	#include <windows.h>
-	#define mswait(x) Sleep(x)
-#endif
-#include <genwrap.h>	// for alloca()
-#include <datewrap.h>	// localtime_r()
-#include "xpprintf.h"
-
-#include "ciolib.h"
-#include "uifc.h"
-#define MAX_GETSTR	5120
-
-#define BLINK	128
-
-static int   cursor;
-static char* helpfile=0;
-static uint  helpline=0;
-static size_t blk_scrn_len;
-static struct vmem_cell *blk_scrn;
-static struct vmem_cell *tmp_buffer;
-static struct vmem_cell *tmp_buffer2;
-static win_t sav[MAX_BUFS];
-static uifcapi_t* api;
-
-/* Prototypes */
-static int   uprintf(int x, int y, unsigned attr, char *fmt,...);
-static void  bottomline(int line);
-static char  *utimestr(time_t *intime);
-static void  help(void);
-static int   ugetstr(int left, int top, int width, char *outstr, int max, long mode, int *lastkey);
-static void  timedisplay(BOOL force);
-
-/* API routines */
-static void uifcbail(void);
-static int  uscrn(const char *str);
-static int  ulist(int mode, int left, int top, int width, int *dflt, int *bar
-	,const char *title, char **option);
-static int  uinput(int imode, int left, int top, const char *prompt, char *str
-	,int len ,int kmode);
-static int  umsg(const char *str);
-static int  umsgf(char *fmt, ...);
-static BOOL confirm(char *fmt, ...);
-static BOOL deny(char *fmt, ...);
-static void upop(const char *str);
-static void sethelp(int line, char* file);
-static void showbuf(int mode, int left, int top, int width, int height, const char *title
-	, const char *hbuf, int *curp, int *barp);
-
-/* Dynamic menu support */
-static int *last_menu_cur=NULL;
-static int *last_menu_bar=NULL;
-static int save_menu_cur=-1;
-static int save_menu_bar=-1;
-static int save_menu_opts=-1;
-
-char* uifcYesNoOpts[]={"Yes","No",NULL};
-
-static void reset_dynamic(void) {
-	last_menu_cur=NULL;
-	last_menu_bar=NULL;
-	save_menu_cur=-1;
-	save_menu_bar=-1;
-	save_menu_opts=-1;
-}
-
-static uifc_graphics_t cp437_chars = {
-	.background=0xb0,
-	.help_char='?',
-	.close_char=0xfe,
-	.up_arrow=30,
-	.down_arrow=31,
-	.button_left='[',
-	.button_right=']',
-
-	.list_top_left=0xc9,
-	.list_top=0xcd,
-	.list_top_right=0xbb,
-	.list_separator_left=0xcc,
-	.list_separator_right=0xb9,
-	.list_horizontal_separator=0xcd,
-	.list_left=0xba,
-	.list_right=0xba,
-	.list_bottom_left=0xc8,
-	.list_bottom_right=0xbc,
-	.list_bottom=0xcd,
-	.list_scrollbar_separator=0xb3,
-
-	.input_top_left=0xc9,
-	.input_top=0xcd,
-	.input_top_right=0xbb,
-	.input_left=0xba,
-	.input_right=0xba,
-	.input_bottom_left=0xc8,
-	.input_bottom_right=0xbc,
-	.input_bottom=0xcd,
-
-	.popup_top_left=0xda,
-	.popup_top=0xc4,
-	.popup_top_right=0xbf,
-	.popup_left=0xb3,
-	.popup_right=0xb3,
-	.popup_bottom_left=0xc0,
-	.popup_bottom_right=0xd9,
-	.popup_bottom=0xc4,
-
-	.help_top_left=0xda,
-	.help_top=0xc4,
-	.help_top_right=0xbf,
-	.help_left=0xb3,
-	.help_right=0xb3,
-	.help_bottom_left=0xc0,
-	.help_bottom_right=0xd9,
-	.help_bottom=0xc4,
-	.help_titlebreak_left=0xb4,
-	.help_titlebreak_right=0xc3,
-	.help_hitanykey_left=0xb4,
-	.help_hitanykey_right=0xc3,
-};
-
-/****************************************************************************/
-/* Initialization function, see uifc.h for details.							*/
-/* Returns 0 on success.													*/
-/****************************************************************************/
-
-void uifc_mouse_enable(void)
-{
-	ciomouse_setevents(0);
-	ciomouse_addevent(CIOLIB_BUTTON_1_DRAG_START);
-	ciomouse_addevent(CIOLIB_BUTTON_1_DRAG_MOVE);
-	ciomouse_addevent(CIOLIB_BUTTON_1_DRAG_END);
-	ciomouse_addevent(CIOLIB_BUTTON_1_CLICK);
-	ciomouse_addevent(CIOLIB_BUTTON_2_CLICK);
-	ciomouse_addevent(CIOLIB_BUTTON_3_CLICK);
-	ciomouse_addevent(CIOLIB_BUTTON_4_PRESS);
-	ciomouse_addevent(CIOLIB_BUTTON_5_PRESS);
-	mousepointer(CIOLIB_MOUSEPTR_BAR);
-	showmouse();
-}
-
-void uifc_mouse_disable(void)
-{
-	ciomouse_setevents(0);
-	hidemouse();
-}
-
-int kbwait(void) {
-	int timeout=0;
-	while(timeout++<50) {
-		if(kbhit())
-			return(TRUE);
-		mswait(1);
-	}
-	return(FALSE);
-}
-
-int inkey(void)
-{
-	int c;
-
-	c=getch();
-	if(!c || c==0xe0)
-		c|=(getch()<<8);
-	return(c);
-}
-
-int uifcini32(uifcapi_t* uifcapi)
-{
-	unsigned	i;
-	struct	text_info txtinfo;
-
-    if(uifcapi==NULL || uifcapi->size!=sizeof(uifcapi_t))
-        return(-1);
-
-    api=uifcapi;
-    if (api->chars == NULL)
-		api->chars = &cp437_chars;
-
-	if (api->yesNoOpts == NULL)
-		api->yesNoOpts = uifcYesNoOpts;
-
-    /* install function handlers */
-    api->bail=uifcbail;
-    api->scrn=uscrn;
-    api->msg=umsg;
-	api->msgf=umsgf;
-	api->confirm=confirm;
-	api->deny=deny;
-    api->pop=upop;
-    api->list=ulist;
-    api->input=uinput;
-    api->sethelp=sethelp;
-    api->showhelp=help;
-	api->showbuf=showbuf;
-	api->timedisplay=timedisplay;
-	api->bottomline=bottomline;
-	api->getstrxy=ugetstr;
-	api->printf=uprintf;
-
-    if(api->scrn_len!=0) {
-        switch(api->scrn_len) {
-            case 14:
-                textmode(C80X14);
-                break;
-            case 21:
-                textmode(C80X21);
-                break;
-            case 25:
-                textmode(C80);
-                break;
-            case 28:
-                textmode(C80X28);
-                break;
-            case 43:
-                textmode(C80X43);
-                break;
-            case 50:
-                textmode(C80X50);
-                break;
-            case 60:
-                textmode(C80X60);
-                break;
-            default:
-                textmode(C4350);
-                break;
-        }
-    }
-
-#if 0
-    clrscr();
-#endif
-
-    gettextinfo(&txtinfo);
-    /* unsupported mode? */
-    if(txtinfo.screenheight<MIN_LINES
-/*        || txtinfo.screenheight>MAX_LINES */
-        || txtinfo.screenwidth<40) {
-        textmode(C80);  /* set mode to 80x25*/
-        gettextinfo(&txtinfo);
-    }
-	window(1,1,txtinfo.screenwidth,txtinfo.screenheight);
-
-    api->scrn_len=txtinfo.screenheight;
-    if(api->scrn_len<MIN_LINES) {
-		uifcbail();
-		printf("\r\nUIFC: Screen length (%u) must be %d lines or greater\r\n"
-            ,api->scrn_len,MIN_LINES);
-        return(-2);
-    }
-    api->scrn_len--; /* account for status line */
-
-    if(txtinfo.screenwidth<40) {
-		uifcbail();
-        printf("\r\nUIFC: Screen width (%u) must be at least 40 characters\r\n"
-            ,txtinfo.screenwidth);
-        return(-3);
-    }
-	api->scrn_width=txtinfo.screenwidth;
-
-    if(!(api->mode&UIFC_COLOR)
-        && (api->mode&UIFC_MONO
-            || txtinfo.currmode==MONO || txtinfo.currmode==BW40 || txtinfo.currmode==BW80
-            || txtinfo.currmode==MONO14 || txtinfo.currmode==BW40X14 || txtinfo.currmode==BW80X14
-            || txtinfo.currmode==MONO21 || txtinfo.currmode==BW40X21 || txtinfo.currmode==BW80X21
-            || txtinfo.currmode==MONO28 || txtinfo.currmode==BW40X28 || txtinfo.currmode==BW80X28
-            || txtinfo.currmode==MONO43 || txtinfo.currmode==BW40X43 || txtinfo.currmode==BW80X43
-            || txtinfo.currmode==MONO50 || txtinfo.currmode==BW40X50 || txtinfo.currmode==BW80X50
-            || txtinfo.currmode==MONO60 || txtinfo.currmode==BW40X60 || txtinfo.currmode==BW80X60
-			|| txtinfo.currmode==ATARI_40X24 || txtinfo.currmode==ATARI_80X25))
-	{
-        api->bclr=BLACK;
-        api->hclr=WHITE;
-        api->lclr=LIGHTGRAY;
-        api->cclr=LIGHTGRAY;
-			api->lbclr=BLACK|(LIGHTGRAY<<4);	/* lightbar color */
-    } else {
-        api->bclr=BLUE;
-        api->hclr=YELLOW;
-        api->lclr=WHITE;
-        api->cclr=CYAN;
-		api->lbclr=BLUE|(LIGHTGRAY<<4);	/* lightbar color */
-    }
-
-	blk_scrn_len=api->scrn_width*api->scrn_len;
-	if((blk_scrn=(struct vmem_cell *)malloc(blk_scrn_len * sizeof(*blk_scrn)))==NULL)  {
-				cprintf("UIFC line %d: error allocating %u bytes."
-					,__LINE__,blk_scrn_len * sizeof(*blk_scrn));
-				return(-1);
-	}
-	if((tmp_buffer=(struct vmem_cell *)malloc(blk_scrn_len * sizeof(*blk_scrn)))==NULL)  {
-				cprintf("UIFC line %d: error allocating %u bytes."
-					,__LINE__,blk_scrn_len * sizeof(*blk_scrn));
-				return(-1);
-	}
-	if((tmp_buffer2=(struct vmem_cell *)malloc(blk_scrn_len * sizeof(*blk_scrn)))==NULL)  {
-				cprintf("UIFC line %d: error allocating %u bytes."
-					,__LINE__,blk_scrn_len * sizeof(*blk_scrn));
-				return(-1);
-	}
-    for(i=0;i<blk_scrn_len;i++) {
-		blk_scrn[i].legacy_attr = api->cclr|(api->bclr<<4);
-		blk_scrn[i].ch = api->chars->background;
-		blk_scrn[i].font = 0;
-		attr2palette(blk_scrn[i].legacy_attr, &blk_scrn[i].fg, &blk_scrn[i].bg);
-	}
-
-    cursor=_NOCURSOR;
-    _setcursortype(cursor);
-
-	if(cio_api.mouse && !(api->mode&UIFC_NOMOUSE)) {
-		api->mode|=UIFC_MOUSE;
-		uifc_mouse_enable();
-	}
-
-	/* A esc_delay of less than 10 is stupid... silently override */
-	if(api->esc_delay < 10)
-		api->esc_delay=25;
-
-	if(cio_api.escdelay)
-		*(cio_api.escdelay)=api->esc_delay;
-
-	for(i=0; i<MAX_BUFS; i++)
-		sav[i].buf=NULL;
-	api->savnum=0;
-
-	api->initialized=TRUE;
-
-    return(0);
-}
-
-void docopy(void)
-{
-	int	key;
-	struct mouse_event mevent;
-	struct ciolib_screen *screen;
-	struct ciolib_screen *sbuffer;
-	int sbufsize;
-	int x,y,startx,starty,endx,endy,lines;
-	int outpos;
-	char *copybuf;
-	uint32_t bg0;
-	uint32_t bg1;
-	uint32_t bg6;
-	uint32_t fg8;
-
-	attr2palette(0x08, &fg8, &bg0);
-	attr2palette(0x10, NULL, &bg1);
-	attr2palette(0x60, NULL, &bg6);
-	screen=ciolib_savescreen();
-	sbuffer=ciolib_savescreen();
-	freepixels(sbuffer->pixels);
-	sbuffer->pixels = NULL;
-	sbufsize=screen->text_info.screenwidth * screen->text_info.screenheight * sizeof(screen->vmem[0]);
-	while(1) {
-		key=getch();
-		if(key==0 || key==0xe0)
-			key|=getch()<<8;
-		switch(key) {
-			case CIO_KEY_MOUSE:
-				getmouse(&mevent);
-				if(mevent.startx<mevent.endx) {
-					startx=mevent.startx;
-					endx=mevent.endx;
-				}
-				else {
-					startx=mevent.endx;
-					endx=mevent.startx;
-				}
-				if(mevent.starty<mevent.endy) {
-					starty=mevent.starty;
-					endy=mevent.endy;
-				}
-				else {
-					starty=mevent.endy;
-					endy=mevent.starty;
-				}
-				switch(mevent.event) {
-					case CIOLIB_BUTTON_1_DRAG_MOVE:
-						memcpy(sbuffer->vmem,screen->vmem,sbufsize);
-						for(y=starty-1;y<endy;y++) {
-							for(x=startx-1;x<endx;x++) {
-								int pos=y*api->scrn_width+x;
-
-								if (sbuffer->vmem[pos].bg != bg1)
-									sbuffer->vmem[pos].bg = bg1;
-								else
-									sbuffer->vmem[pos].bg = bg6;
-								if (sbuffer->vmem[pos].bg == sbuffer->vmem[pos].fg)
-									attr2palette(sbuffer->vmem[pos].legacy_attr | 0x08, &sbuffer->vmem[pos].fg, &sbuffer->vmem[pos].bg);
-								if ((sbuffer->vmem[pos].legacy_attr & 0x70) != 0x10)
-									sbuffer->vmem[pos].legacy_attr = (sbuffer->vmem[pos].legacy_attr & 0x8f) | 0x10;
-								else
-									sbuffer->vmem[pos].legacy_attr = (sbuffer->vmem[pos].legacy_attr & 0x8f) | 0x60;
-								if (((sbuffer->vmem[pos].legacy_attr & 0x70) >> 4) == (sbuffer->vmem[pos].legacy_attr & 0x08))
-									sbuffer->vmem[pos].legacy_attr |= 0x08;
-							}
-						}
-						restorescreen(sbuffer);
-						break;
-					case CIOLIB_BUTTON_1_DRAG_END:
-						lines=abs(mevent.endy-mevent.starty)+1;
-						copybuf=malloc(((endy-starty+1)*(endx-startx+1)+1+lines*2)*4);
-						outpos=0;
-						for(y=starty-1;y<endy;y++) {
-							for(x=startx-1;x<endx;x++) {
-								size_t outlen;
-								uint8_t *utf8str;
-								char ch;
-
-								ch = screen->vmem[(y*api->scrn_width+x)].ch ? screen->vmem[(y*api->scrn_width+x)].ch : ' ';
-								utf8str = cp_to_utf8(conio_fontdata[screen->vmem[(y*api->scrn_width+x)].font].cp, &ch, 1, &outlen);
-								if (utf8str == NULL)
-									continue;
-								memcpy(copybuf + outpos, utf8str, outlen);
-								outpos += outlen;
-							}
-							#ifdef _WIN32
-								copybuf[outpos++]='\r';
-							#endif
-							copybuf[outpos++]='\n';
-						}
-						copybuf[outpos]=0;
-						copytext(copybuf, strlen(copybuf));
-						free(copybuf);
-						restorescreen(screen);
-						freescreen(screen);
-						freescreen(sbuffer);
-						return;
-				}
-				break;
-			default:
-				restorescreen(screen);
-				freescreen(screen);
-				freescreen(sbuffer);
-				ungetch(key);
-				return;
-		}
-	}
-}
-
-static int uifc_getmouse(struct mouse_event *mevent)
-{
-	mevent->startx=0;
-	mevent->starty=0;
-	mevent->event=0;
-	if(api->mode&UIFC_MOUSE) {
-		getmouse(mevent);
-		if(mevent->event==CIOLIB_BUTTON_3_CLICK)
-			return(ESC);
-		if(mevent->event==CIOLIB_BUTTON_1_DRAG_START) {
-			docopy();
-			return(0);
-		}
-		if(mevent->starty==api->buttony) {
-			if(mevent->startx>=api->exitstart
-					&& mevent->startx<=api->exitend
-					&& mevent->event==CIOLIB_BUTTON_1_CLICK) {
-				return(ESC);
-			}
-			if(mevent->startx>=api->helpstart
-					&& mevent->startx<=api->helpend
-					&& mevent->event==CIOLIB_BUTTON_1_CLICK) {
-				return(CIO_KEY_F(1));
-			}
-		}
-		if (mevent->event == CIOLIB_BUTTON_4_PRESS)
-			return(CIO_KEY_UP);
-		if (mevent->event == CIOLIB_BUTTON_5_PRESS)
-			return(CIO_KEY_DOWN);
-		return(0);
-	}
-	return(-1);
-}
-
-void uifcbail(void)
-{
-	int i;
-
-	_setcursortype(_NORMALCURSOR);
-	textattr(LIGHTGRAY);
-	uifc_mouse_disable();
-	suspendciolib();
-	FREE_AND_NULL(blk_scrn);
-	FREE_AND_NULL(tmp_buffer);
-	FREE_AND_NULL(tmp_buffer2);
-	api->initialized=FALSE;
-	for(i=0; i< MAX_BUFS; i++)
-		FREE_AND_NULL(sav[i].buf);
-}
-
-/****************************************************************************/
-/* Clear screen, fill with background attribute, display application title.	*/
-/* Returns 0 on success.													*/
-/****************************************************************************/
-int uscrn(const char *str)
-{
-    textattr(api->bclr|(api->cclr<<4));
-    gotoxy(1,1);
-    clreol();
-    gotoxy(3,1);
-	cputs(str);
-    if(!vmem_puttext(1,2,api->scrn_width,api->scrn_len,blk_scrn))
-        return(-1);
-    gotoxy(1,api->scrn_len+1);
-    clreol();
-	reset_dynamic();
-	setname(str);
-    return(0);
-}
-
-/****************************************************************************/
-/****************************************************************************/
-static void scroll_text(int x1, int y1, int x2, int y2, int down)
-{
-	vmem_gettext(x1,y1,x2,y2,tmp_buffer2);
-	if(down)
-		vmem_puttext(x1,y1+1,x2,y2,tmp_buffer2);
-	else
-		vmem_puttext(x1,y1,x2,y2-1,tmp_buffer2+(((x2-x1)+1)));
-}
-
-/****************************************************************************/
-/* Updates time in upper left corner of screen with current time in ASCII/  */
-/* Unix format																*/
-/****************************************************************************/
-static void timedisplay(BOOL force)
-{
-	static time_t savetime;
-	static int savemin;
-	time_t now;
-	struct tm gm;
-	int old_hold;
-
-	now=time(NULL);
-	localtime_r(&now, &gm);
-	if(force || savemin != gm.tm_min || difftime(now,savetime)>=60) {
-		old_hold=hold_update;
-		hold_update=FALSE;
-		uprintf(api->scrn_width-25,1,api->bclr|(api->cclr<<4),utimestr(&now));
-		hold_update=old_hold;
-		savetime=now;
-		savemin = gm.tm_min;
-	}
-}
-
-/****************************************************************************/
-/* Truncates white-space chars off end of 'str'								*/
-/****************************************************************************/
-static void truncspctrl(char *str)
-{
-	uint c;
-
-	c=strlen(str);
-	while(c && (uchar)str[c-1]<=' ') c--;
-	if(str[c]!=0)	/* don't write to string constants */
-		str[c]=0;
-}
-
-static void
-inactive_win(struct vmem_cell *buf, int left, int top, int right, int bottom, int y, int hbrdrsize, uchar cclr, uchar lclr, uchar hclr, int btop)
-{
-	int width = right - left + 1;
-	int height = bottom - top + 1;
-	int i, j;
-
-	vmem_gettext(left, top, right, bottom, buf);
-	for (i=0; i < (width * height); i++)
-		set_vmem_attr(&buf[i], lclr | (cclr<<4));
-	j=(((y-btop)*width))+3+((width-hbrdrsize-2));
-	for(i=(((y-btop)*width))+3;i<j;i++)
-		set_vmem_attr(&buf[i], hclr|(cclr<<4));
-
-	vmem_puttext(left, top, right, bottom, buf);
-}
-
-/****************************************************************************/
-/* General menu function, see uifc.h for details.							*/
-/****************************************************************************/
-int ulist(int mode, int left, int top, int width, int *cur, int *bar
-	, const char *initial_title, char **option)
-{
-	struct vmem_cell *ptr, *win, shade[MAX_LINES*2], line[MAX_COLS];
-	static char search[MAX_OPLN] = "";
-	int height,y;
-	int i,j,opts=0,s=0; /* s=search index into options */
-	int	is_redraw=0;
-	int s_top=SCRN_TOP;
-	int s_left=SCRN_LEFT;
-	int s_right=SCRN_RIGHT;
-	int s_bottom=api->scrn_len-3;
-	int hbrdrsize=2;
-	int lbrdrwidth=1;
-	int rbrdrwidth=1;
-	int vbrdrsize=4;
-	int tbrdrwidth=3;
-	int bbrdrwidth=1;
-	int title_len;
-	int tmpcur=0;
-	struct mouse_event mevnt;
-	char	*title=NULL;
-	int	a,b,c,longopt;
-	int	optheight=0;
-	int gotkey;
-	uchar	hclr,lclr,bclr,cclr,lbclr;
-
-	if(cur==NULL) cur=&tmpcur;
-	api->exit_flags = 0;
-	hclr=api->hclr;
-	lclr=api->lclr;
-	bclr=api->bclr;
-	cclr=api->cclr;
-	lbclr=api->lbclr;
-	if(mode & WIN_INACT) {
-		bclr=api->cclr;
-		hclr=api->lclr;
-		lclr=api->lclr;
-		cclr=api->cclr;
-		lbclr=(api->cclr<<4)|api->hclr;
-	}
-	title=strdup(initial_title==NULL?"":initial_title);
-
-	if(!(api->mode&UIFC_NHM))
-		uifc_mouse_disable();
-
-	title_len=strlen(title);
-
-	if(mode&WIN_FAT) {
-		s_top=1;
-		s_left=2;
-		s_right=api->scrn_width-3;  /* Leave space for the shadow */
-		s_bottom=api->scrn_len-1;   /* Leave one for the shadow */
-	}
-	if(mode&WIN_NOBRDR) {
-		hbrdrsize=0;
-		vbrdrsize=0;
-		lbrdrwidth=0;
-		rbrdrwidth=0;
-		tbrdrwidth=0;
-		bbrdrwidth=0;
-	}
-	/* Count the options */
-	while (option != NULL && opts < MAX_OPTS) {
-		if (option[opts] == NULL || option[opts][0] == 0)
-			break;
-		else opts++;
-	}
-	if (mode&WIN_XTR && opts<MAX_OPTS)
-		opts++;
-
-	/* Sanity-check the savnum */
-	if(mode&WIN_SAV && api->savnum>=MAX_BUFS-1)
-		putch(7);
-
-	api->help_available = (api->helpbuf!=NULL || api->helpixbfile[0]!=0);
-
-	/* Create the status bar/bottom-line */
-	int bline = mode;
-	if (api->bottomline != NULL) {
-		if ((mode&(WIN_XTR | WIN_PASTEXTR)) == WIN_XTR && (*cur) == opts - 1)
-			api->bottomline(bline & ~WIN_PASTE);
-		else
-			api->bottomline(bline);
-	}
-	optheight=opts+vbrdrsize;
-	height=optheight;
-	if(mode&WIN_FIXEDHEIGHT) {
-		height=api->list_height;
-	}
-	if(top+height>s_bottom)
-		height=(s_bottom)-top;
-	if(optheight>height)
-		optheight=height;
-	if(!width || width<title_len+hbrdrsize+2) {
-		width=title_len+hbrdrsize+2;
-		for(i=0;i<opts;i++) {
-			if(option[i]!=NULL) {
-				truncspctrl(option[i]);
-				if((j=strlen(option[i])+hbrdrsize+2+1)>width)
-					width=j;
-			}
-		}
-	}
-	/* Determine minimum widths here to accommodate mouse "icons" in border */
-	if(!(mode&WIN_NOBRDR) && api->mode&UIFC_MOUSE) {
-		if(api->help_available && width<8)
-			width=8;
-		else if(width<5)
-			width=5;
-	}
-	if(width>(s_right+1)-s_left) {
-		width=(s_right+1)-s_left;
-		if(title_len>(width-hbrdrsize-2)) {
-			*(title+width-hbrdrsize-2-3)='.';
-			*(title+width-hbrdrsize-2-2)='.';
-			*(title+width-hbrdrsize-2-1)='.';
-			*(title+width-hbrdrsize-2)=0;
-			title_len=strlen(title);
-		}
-	}
-	if(mode&WIN_L2R)
-		left=(s_right-s_left-width+1)/2;
-	else if(mode&WIN_RHT)
-		left=s_right-(width+hbrdrsize+2+left);
-	if(mode&WIN_T2B)
-		top=(api->scrn_len-height+1)/2-2;
-	else if(mode&WIN_BOT)
-		top=s_bottom-height-top;
-	if(left<0)
-		left=0;
-	if(top<0)
-		top=0;
-
-	/* Dynamic Menus */
-	if(mode&WIN_DYN
-			&& cur != NULL
-			&& bar != NULL
-			&& last_menu_cur==cur
-			&& last_menu_bar==bar
-			&& save_menu_cur==*cur
-			&& save_menu_bar==*bar
-			&& save_menu_opts==opts) {
-		is_redraw=1;
-	}
-
-	if(mode&WIN_DYN && mode&WIN_REDRAW)
-		is_redraw=1;
-	if(mode&WIN_DYN && mode&WIN_NODRAW)
-		is_redraw=0;
-
-	if(mode&WIN_ORG && !(mode&WIN_SAV)) {		/* Clear all save buffers on WIN_ORG */
-		for(i=0; i< MAX_BUFS; i++)
-			FREE_AND_NULL(sav[i].buf);
-		api->savnum=0;
-	}
-
-	if(mode&WIN_SAV) {
-		/* Check if this screen (by cur/bar) is already saved */
-		for(i=0; i<MAX_BUFS; i++) {
-			if(sav[i].buf!=NULL) {
-				if(cur==sav[i].cur && bar==sav[i].bar) {
-					/* Yes, it is... */
-					for(j=api->savnum-1; j>i; j--) {
-						/* Restore old screens */
-						vmem_puttext(sav[j].left,sav[j].top,sav[j].right,sav[j].bot
-							,(void *)sav[j].buf);	/* put original window back */
-						FREE_AND_NULL(sav[j].buf);
-					}
-					api->savnum=i;
-				}
-			}
-		}
-		/* savnum not the next one - must be a dynamic window or we popped back up the stack */
-		if(sav[api->savnum].buf != NULL) {
-			/* Is this even the right window? */
-			if(sav[api->savnum].cur==cur
-					&& sav[api->savnum].bar==bar) {
-				if((sav[api->savnum].left!=s_left+left
-					|| sav[api->savnum].top!=s_top+top
-					|| sav[api->savnum].right!=s_left+left+width+1
-					|| sav[api->savnum].bot!=s_top+top+height)) { /* dimensions have changed */
-					vmem_puttext(sav[api->savnum].left,sav[api->savnum].top,sav[api->savnum].right,sav[api->savnum].bot
-						,(void *)sav[api->savnum].buf);	/* put original window back */
-					FREE_AND_NULL(sav[api->savnum].buf);
-					if ((sav[api->savnum].buf = malloc((width + 3) * (height + 2) * sizeof(struct vmem_cell)))==NULL) {
-						cprintf("UIFC line %d: error allocating %u bytes."
-							,__LINE__,(width+3)*(height+2)*sizeof(struct vmem_cell));
-						free(title);
-						if(!(api->mode&UIFC_NHM))
-							uifc_mouse_enable();
-						return(-1);
-					}
-					vmem_gettext(s_left+left,s_top+top,s_left+left+width+1
-						,s_top+top+height,(void *)sav[api->savnum].buf);	  /* save again */
-					sav[api->savnum].left=s_left+left;
-					sav[api->savnum].top=s_top+top;
-					sav[api->savnum].right=s_left+left+width+1;
-					sav[api->savnum].bot=s_top+top+height;
-					sav[api->savnum].cur=cur;
-					sav[api->savnum].bar=bar;
-				}
-			}
-			else {
-				/* Find something available... */
-				while(sav[api->savnum].buf!=NULL)
-					api->savnum++;
-			}
-		}
-		else {
-			if((sav[api->savnum].buf=malloc((width+3)*(height+2)*sizeof(struct vmem_cell)))==NULL) {
-				cprintf("UIFC line %d: error allocating %u bytes."
-					,__LINE__,(width+3)*(height+2)*sizeof(struct vmem_cell));
-				free(title);
-				if(!(api->mode&UIFC_NHM))
-					uifc_mouse_enable();
-				return(-1);
-			}
-			vmem_gettext(s_left+left,s_top+top,s_left+left+width+1
-				,s_top+top+height,(void *)sav[api->savnum].buf);
-			sav[api->savnum].left=s_left+left;
-			sav[api->savnum].top=s_top+top;
-			sav[api->savnum].right=s_left+left+width+1;
-			sav[api->savnum].bot=s_top+top+height;
-			sav[api->savnum].cur=cur;
-			sav[api->savnum].bar=bar;
-		}
-	}
-
-	if(!is_redraw) {
-		if(mode&WIN_ORG) { /* Clear around menu */
-			if(top)
-				vmem_puttext(1,2,api->scrn_width,s_top+top-1,blk_scrn);
-			if((unsigned)(s_top+height+top)<=api->scrn_len)
-				vmem_puttext(1,s_top+height+top,api->scrn_width,api->scrn_len,blk_scrn);
-			if(left)
-				vmem_puttext(1,s_top+top,s_left+left-1,s_top+height+top
-					,blk_scrn);
-			if(s_left+left+width<=s_right)
-				vmem_puttext(s_left+left+width,s_top+top,/* s_right+2 */api->scrn_width
-					,s_top+height+top,blk_scrn);
-		}
-		ptr=tmp_buffer;
-		if(!(mode&WIN_NOBRDR)) {
-			set_vmem(ptr++, api->chars->list_top_left, hclr|(bclr<<4), 0);
-
-			if(api->mode&UIFC_MOUSE) {
-				set_vmem(ptr++, api->chars->button_left, hclr|(bclr<<4), 0);
-				/* *(ptr++)='�'; */
-				set_vmem(ptr++, api->chars->close_char, lclr|(bclr<<4), 0);
-				set_vmem(ptr++, api->chars->button_right, hclr|(bclr<<4), 0);
-				i=3;
-				if(api->help_available) {
-					set_vmem(ptr++, api->chars->button_left, hclr|(bclr<<4), 0);
-					set_vmem(ptr++, api->chars->help_char, lclr|(bclr<<4), 0);
-					set_vmem(ptr++, api->chars->button_right, hclr|(bclr<<4), 0);
-					i+=3;
-				}
-				api->buttony=s_top+top;
-				api->exitstart=s_left+left+1;
-				api->exitend=s_left+left+3;
-				api->helpstart=s_left+left+4;
-				api->helpend=s_left+left+6;
-			}
-			else
-				i=0;
-
-			for(;i<width-2;i++)
-				set_vmem(ptr++, api->chars->list_top, hclr|(bclr<<4), 0);
-			set_vmem(ptr++, api->chars->list_top_right, hclr|(bclr<<4), 0);
-			set_vmem(ptr++, api->chars->list_left, hclr|(bclr<<4), 0);
-			a=title_len;
-			b=(width-a-1)/2;
-			for(i=0;i<b;i++) {
-				set_vmem(ptr++, ' ', hclr|(bclr<<4), 0);
-			}
-			for(i=0;i<a;i++)
-				set_vmem(ptr++, title[i], hclr|(bclr<<4), 0);
-			for(i=0;i<width-(a+b)-2;i++)
-				set_vmem(ptr++, ' ', hclr|(bclr<<4), 0);
-			set_vmem(ptr++, api->chars->list_right, hclr|(bclr<<4), 0);
-			set_vmem(ptr++, api->chars->list_separator_left, hclr|(bclr<<4), 0);
-			for(i=0;i<width-2;i++)
-				set_vmem(ptr++, api->chars->list_horizontal_separator, hclr|(bclr<<4), 0);
-			set_vmem(ptr++, api->chars->list_separator_right, hclr|(bclr<<4), 0);
-		}
-
-		if((*cur)>=opts)
-			(*cur)=opts-1;			/* returned after scrolled */
-
-		if(!bar) {
-			if((*cur)>height-vbrdrsize-1)
-				(*cur)=height-vbrdrsize-1;
-			if((*cur)>opts-1)
-				(*cur)=opts-1;
-			i=0;
-		}
-		else {
-			if((*bar)>=opts)
-				(*bar)=opts-1;
-			if((*bar)>height-vbrdrsize-1)
-				(*bar)=height-vbrdrsize-1;
-			if((*cur)==opts-1)
-				(*bar)=height-vbrdrsize-1;
-			if((*bar)>opts-1)
-				(*bar)=opts-1;
-			if((*bar)<0)
-				(*bar)=0;
-			i=(*cur)-(*bar);
-			if (i < 0) {
-				*bar += i;
-				i = 0;
-			}
-			if(i+(height-vbrdrsize-1)>=opts) {
-				(*bar)=(height-vbrdrsize);
-				if (*bar > *cur)
-					*bar = *cur;
-				i=(*cur)-(*bar)+1;
-			}
-		}
-		if((*cur)<0)
-			(*cur)=0;
-
-		j=0;
-		if(i<0) i=0;
-		longopt=0;
-		while(j<height-vbrdrsize) {
-			if(!(mode&WIN_NOBRDR))
-				set_vmem(ptr++, api->chars->list_left, hclr|(bclr<<4), 0);
-			set_vmem(ptr++, ' ', hclr|(bclr<<4), 0);
-			set_vmem(ptr++, api->chars->list_scrollbar_separator, lclr|(bclr<<4), 0);
-			if(i==(*cur))
-				a=lbclr;
-			else
-				a=lclr|(bclr<<4);
-			if(i<opts && option[i]!=NULL) {
-				b=strlen(option[i]);
-				if(b>longopt)
-					longopt=b;
-				if(b+hbrdrsize+2>width)
-					b=width-hbrdrsize-2;
-				for(c=0;c<b;c++)
-					set_vmem(ptr++, option[i][c], a, 0);
-			}
-			else
-				c=0;
-			while(c<width-hbrdrsize-2) {
-				set_vmem(ptr++, ' ', a, 0);
-				c++;
-			}
-			if(!(mode&WIN_NOBRDR))
-				set_vmem(ptr++, api->chars->list_right, hclr|(bclr<<4), 0);
-			i++;
-			j++;
-		}
-		if(!(mode&WIN_NOBRDR)) {
-			set_vmem(ptr++, api->chars->list_bottom_left, hclr|(bclr<<4), 0);
-			for(i=0;i<width-2;i++)
-				set_vmem(ptr++, api->chars->list_bottom, hclr|(bclr<<4), 0);
-			set_vmem(ptr, api->chars->list_bottom_right, hclr|(bclr<<4), 0);	/* Not incremented to shut up BCC */
-		}
-		vmem_puttext(s_left+left,s_top+top,s_left+left+width-1
-			,s_top+top+height-1,tmp_buffer);
-		if(bar)
-			y=top+tbrdrwidth+(*bar);
-		else
-			y=top+tbrdrwidth+(*cur);
-		if(opts+vbrdrsize>height && ((!bar && (*cur)!=opts-1)
-			|| (bar && ((*cur)-(*bar))+(height-vbrdrsize)<opts))) {
-			gotoxy(s_left+left+lbrdrwidth,s_top+top+height-bbrdrwidth-1);
-			textattr(lclr|(bclr<<4));
-			putch(api->chars->down_arrow);	   /* put down arrow */
-			textattr(hclr|(bclr<<4));
-		}
-
-		if(bar && (*bar)!=(*cur)) {
-			gotoxy(s_left+left+lbrdrwidth,s_top+top+tbrdrwidth);
-			textattr(lclr|(bclr<<4));
-			putch(api->chars->up_arrow);	   /* put the up arrow */
-			textattr(hclr|(bclr<<4));
-		}
-
-		if(!(mode&WIN_NOBRDR)) {
-			/* Shadow */
-			if(api->bclr==BLUE) {
-				vmem_gettext(s_left+left+width,s_top+top+1,s_left+left+width+1
-					,s_top+top+height-1,shade);
-				for(i=0;i<height*2;i++)
-					set_vmem_attr(&shade[i], DARKGRAY);
-				vmem_puttext(s_left+left+width,s_top+top+1,s_left+left+width+1
-					,s_top+top+height-1,shade);
-				vmem_gettext(s_left+left+2,s_top+top+height,s_left+left+width+1
-					,s_top+top+height,shade);
-				for(i=0;i<width;i++)
-					set_vmem_attr(&shade[i], DARKGRAY);
-				vmem_puttext(s_left+left+2,s_top+top+height,s_left+left+width+1
-					,s_top+top+height,shade);
-			}
-		}
-	}
-	else {	/* Is a redraw */
-		if(bar)
-			y=top+tbrdrwidth+(*bar);
-		else
-			y=top+tbrdrwidth+(*cur);
-		i=(*cur)+(top+tbrdrwidth-y);
-		j=tbrdrwidth-1;
-
-		longopt=0;
-		while(j<height-bbrdrwidth-1) {
-			ptr=tmp_buffer;
-			if(i==(*cur))
-				a=lbclr;
-			else
-				a=lclr|(bclr<<4);
-			if(i<opts && option[i]!=NULL) {
-				b=strlen(option[i]);
-				if(b>longopt)
-					longopt=b;
-				if(b+hbrdrsize+2>width)
-					b=width-hbrdrsize-2;
-				for(c=0;c<b;c++)
-					set_vmem(ptr++, option[i][c], a, 0);
-			}
-			else
-				c=0;
-			while(c<width-hbrdrsize-2) {
-				set_vmem(ptr++, ' ', a, 0);
-				c++;
-			}
-			i++;
-			j++;
-			vmem_puttext(s_left+left+lbrdrwidth+2,s_top+top+j,s_left+left+width-rbrdrwidth-1
-				,s_top+top+j,tmp_buffer);
-		}
-	}
-	free(title);
-
-	last_menu_cur=cur;
-	last_menu_bar=bar;
-	if(!(api->mode&UIFC_NHM))
-		uifc_mouse_enable();
-
-	if(mode&WIN_IMM) {
-		return(-2);
-	}
-
-	if(mode&WIN_ORG) {
-		if(api->timedisplay != NULL)
-			api->timedisplay(/* force? */TRUE);
-	}
-
-	while(1) {
-	#if 0					/* debug */
-		struct text_info txtinfo;
-		gettextinfo(&txtinfo);
-		gotoxy(30,1);
-		cprintf("y=%2d h=%2d c=%2d b=%2d s=%2d o=%2d w=%d/%d h=%d/%d"
-			,y,height,*cur,bar ? *bar :0xff,api->savnum,opts,txtinfo.screenwidth, api->scrn_width, txtinfo.screenheight, api->scrn_len);
-	#endif
-		if(api->timedisplay != NULL)
-			api->timedisplay(/* force? */FALSE);
-		gotkey=0;
-		textattr(((api->lbclr)&0x0f)|((api->lbclr >> 4)&0x0f));
-		gotoxy(s_left+lbrdrwidth+2+left, s_top+y);
-		if((api->exit_flags & UIFC_XF_QUIT) || kbwait() || (mode&(WIN_POP|WIN_SEL))) {
-			if(api->exit_flags & UIFC_XF_QUIT)
-				gotkey = CIO_KEY_QUIT;
-			else if(mode&WIN_POP)
-				gotkey=ESC;
-			else if(mode&WIN_SEL)
-				gotkey=CR;
-			else
-				gotkey=inkey();
-			if(gotkey==CIO_KEY_MOUSE) {
-				if((gotkey=uifc_getmouse(&mevnt))==0) {
-					/* Clicked in menu */
-					if(mevnt.startx>=s_left+left+lbrdrwidth+2
-							&& mevnt.startx<=s_left+left+width-rbrdrwidth-1
-							&& mevnt.starty>=s_top+top+tbrdrwidth
-							&& mevnt.starty<=(s_top+top+optheight)-bbrdrwidth-1
-							&& mevnt.event==CIOLIB_BUTTON_1_CLICK) {
-
-						(*cur)=((mevnt.starty)-(s_top+top+tbrdrwidth))+(*cur+(top+tbrdrwidth-y));
-						if(bar)
-							(*bar)=(*cur);
-						y=top+tbrdrwidth+((mevnt.starty)-(s_top+top+tbrdrwidth));
-
-						if(!opts)
-							continue;
-
-						if(mode&WIN_SAV)
-							api->savnum++;
-						if(mode&WIN_ACT) {
-							if(!(api->mode&UIFC_NHM))
-								uifc_mouse_disable();
-							if((win=malloc((width+3)*(height+2)*sizeof(*win)))==NULL) {
-								cprintf("UIFC line %d: error allocating %u bytes."
-									,__LINE__,(width+3)*(height+2)*sizeof(*win));
-								if(!(api->mode&UIFC_NHM))
-									uifc_mouse_enable();
-								return(-1);
-							}
-							inactive_win(win, s_left+left, s_top+top, s_left+left+width-1, s_top+top+height-1, y, hbrdrsize, cclr, lclr, hclr, top);
-							free(win);
-							if(!(api->mode&UIFC_NHM))
-								uifc_mouse_enable();
-						}
-						else if(mode&WIN_SAV) {
-							api->savnum--;
-							if(!(api->mode&UIFC_NHM))
-								uifc_mouse_disable();
-							if(sav[api->savnum].buf != NULL)
-								vmem_puttext(sav[api->savnum].left,sav[api->savnum].top
-									,sav[api->savnum].right,sav[api->savnum].bot
-									,(void *)sav[api->savnum].buf);
-							if(!(api->mode&UIFC_NHM))
-								uifc_mouse_enable();
-							FREE_AND_NULL(sav[api->savnum].buf);
-						}
-						if(mode&WIN_XTR && (*cur)==opts-1)
-							return(MSK_INS|*cur);
-						return(*cur);
-					}
-					/* Clicked Scroll Up */
-					else if(mevnt.startx==s_left+left+lbrdrwidth
-							&& mevnt.starty==s_top+top+tbrdrwidth
-							&& mevnt.event==CIOLIB_BUTTON_1_CLICK) {
-						gotkey=CIO_KEY_PPAGE;
-					}
-					/* Clicked Scroll Down */
-					else if(mevnt.startx==s_left+left+lbrdrwidth
-							&& mevnt.starty==(s_top+top+height)-bbrdrwidth-1
-							&& mevnt.event==CIOLIB_BUTTON_1_CLICK) {
-						gotkey=CIO_KEY_NPAGE;
-					}
-					/* Clicked Outside of Window */
-					else if((mevnt.startx<s_left+left
-							|| mevnt.startx>s_left+left+width-1
-							|| mevnt.starty<s_top+top
-							|| mevnt.starty>s_top+top+height-1)
-							&& (mevnt.event==CIOLIB_BUTTON_1_CLICK
-							|| mevnt.event==CIOLIB_BUTTON_3_CLICK)) {
-						if(mode&WIN_UNGETMOUSE) {
-							ungetmouse(&mevnt);
-							gotkey=CIO_KEY_MOUSE;
-						}
-						else {
-							gotkey=ESC;
-						}
-					}
-				}
-			}
-			/* For compatibility with terminals lacking special keys */
-			switch(gotkey) {
-				case '\b':
-					gotkey=ESC;
-					break;
-				case '+':
-					gotkey=CIO_KEY_IC;	/* insert */
-					break;
-				case '-':
-				case DEL:
-					gotkey=CIO_KEY_DC;	/* delete */
-					break;
-				case CTRL_B:
-					if(!(api->mode&UIFC_NOCTRL))
-						gotkey=CIO_KEY_HOME;
-					break;
-				case CTRL_C:
-					if(!(api->mode&UIFC_NOCTRL))
-						gotkey=CIO_KEY_F(5);	/* copy */
-					break;
-				case CTRL_D:
-					if(!(api->mode&UIFC_NOCTRL))
-						gotkey=CIO_KEY_NPAGE;
-					break;
-				case CTRL_E:
-					if(!(api->mode&UIFC_NOCTRL))
-						gotkey=CIO_KEY_END;
-					break;
-				case CTRL_U:
-					if(!(api->mode&UIFC_NOCTRL))
-						gotkey=CIO_KEY_PPAGE;
-					break;
-				case CTRL_V:
-					if(!(api->mode&UIFC_NOCTRL))
-						gotkey=CIO_KEY_F(6);	/* paste */
-					break;
-				case CTRL_X:
-					if(!(api->mode&UIFC_NOCTRL))
-						gotkey=CIO_KEY_SHIFT_DC;	/* cut */
-					break;
-				case CTRL_Z:
-					if(!(api->mode&UIFC_NOCTRL))
-						gotkey=CIO_KEY_F(1);	/* help */
-					break;
-				case CIO_KEY_ABORTED:
-					gotkey=ESC;
-					break;
-				case CIO_KEY_QUIT:
-					api->exit_flags |= UIFC_XF_QUIT;
-					gotkey=ESC;
-					break;
-			}
-			if(gotkey>255) {
-				s=0;
-				switch(gotkey) {
-					/* ToDo extended keys */
-					case CIO_KEY_HOME:	/* home */
-						if(!opts)
-							break;
-						if(opts+vbrdrsize>optheight) {
-							gotoxy(s_left+left+lbrdrwidth,s_top+top+tbrdrwidth);
-							textattr(lclr|(bclr<<4));
-							putch(' ');    /* Delete the up arrow */
-							gotoxy(s_left+left+lbrdrwidth,s_top+top+height-bbrdrwidth-1);
-							putch(api->chars->down_arrow);	   /* put the down arrow */
-							uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth
-								,lbclr
-								,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2,option[0]);
-							for(i=1;i<optheight-vbrdrsize;i++)    /* re-display options */
-								uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth+i
-									,lclr|(bclr<<4)
-									,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2,option[i]);
-							(*cur)=0;
-							if(bar)
-								(*bar)=0;
-							y=top+tbrdrwidth;
-							break;
-						}
-						vmem_gettext(s_left+left+lbrdrwidth+2,s_top+y
-							,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-						for(i=0;i<width;i++)
-							set_vmem_attr(&line[i], lclr|(bclr<<4));
-						vmem_puttext(s_left+left+lbrdrwidth+2,s_top+y
-							,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-						(*cur)=0;
-						if(bar)
-							(*bar)=0;
-						y=top+tbrdrwidth;
-						vmem_gettext(s_left+lbrdrwidth+2+left,s_top+y
-							,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-						for(i=0;i<width;i++)
-							set_vmem_attr(&line[i], lbclr);
-						vmem_puttext(s_left+lbrdrwidth+2+left,s_top+y
-							,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-						break;
-					case CIO_KEY_UP:	/* up arrow */
-						if(!opts)
-							break;
-						if(!(*cur) && opts+vbrdrsize>optheight) {
-							gotoxy(s_left+left+lbrdrwidth,s_top+top+tbrdrwidth); /* like end */
-							textattr(lclr|(bclr<<4));
-							putch(api->chars->up_arrow);	   /* put the up arrow */
-							gotoxy(s_left+left+lbrdrwidth,s_top+top+height-bbrdrwidth-1);
-							putch(' ');    /* delete the down arrow */
-							for(i=(opts+vbrdrsize)-optheight,j=0;i<opts;i++,j++)
-								uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth+j
-									,i==opts-1 ? lbclr
-										: lclr|(bclr<<4)
-									,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2,option[i]);
-							(*cur)=opts-1;
-							if(bar)
-								(*bar)=optheight-vbrdrsize-1;
-							y=top+optheight-bbrdrwidth-1;
-							break;
-						}
-						vmem_gettext(s_left+lbrdrwidth+2+left,s_top+y
-							,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-						for(i=0;i<width;i++)
-							set_vmem_attr(&line[i], lclr|(bclr<<4));
-						vmem_puttext(s_left+lbrdrwidth+2+left,s_top+y
-							,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-						if(!(*cur)) {
-							y=top+optheight-bbrdrwidth-1;
-							(*cur)=opts-1;
-							if(bar)
-								(*bar)=optheight-vbrdrsize-1;
-						}
-						else {
-							(*cur)--;
-							y--;
-							if(bar && *bar)
-								(*bar)--;
-						}
-						if(y<top+tbrdrwidth) {	/* scroll */
-							if(!(*cur)) {
-								gotoxy(s_left+left+lbrdrwidth,s_top+top+tbrdrwidth);
-								textattr(lclr|(bclr<<4));
-								putch(' '); /* delete the up arrow */
-							}
-							if((*cur)+optheight-vbrdrsize==opts-1) {
-								gotoxy(s_left+left+lbrdrwidth,s_top+top+height-bbrdrwidth-1);
-								textattr(lclr|(bclr<<4));
-								putch(api->chars->down_arrow);	/* put the dn arrow */
-							}
-							y++;
-							scroll_text(s_left+left+lbrdrwidth+1,s_top+top+tbrdrwidth
-								,s_left+left+width-rbrdrwidth-1,s_top+top+height-bbrdrwidth-1,1);
-							uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth
-								,lbclr
-								,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2,option[*cur]);
-						}
-						else {
-							vmem_gettext(s_left+lbrdrwidth+2+left,s_top+y
-								,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-							for(i=0;i<width;i++)
-								set_vmem_attr(&line[i], lbclr);
-							vmem_puttext(s_left+lbrdrwidth+2+left,s_top+y
-								,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-						}
-						break;
-					case CIO_KEY_PPAGE:	/* PgUp */
-						if(!opts)
-							break;
-						*cur -= (optheight-vbrdrsize-1);
-						if(*cur<0)
-							*cur = 0;
-						if(bar)
-							*bar=0;
-						y=top+tbrdrwidth;
-						gotoxy(s_left+left+lbrdrwidth,s_top+top+tbrdrwidth);
-						textattr(lclr|(bclr<<4));
-						if(*cur)  /* Scroll mode */
-							putch(api->chars->up_arrow);	   /* put the up arrow */
-						else
-							putch(' ');    /* delete the up arrow */
-						gotoxy(s_left+left+lbrdrwidth,s_top+top+height-bbrdrwidth-1);
-						if(opts >= height-tbrdrwidth && *cur + height - vbrdrsize < opts)
-							putch(api->chars->down_arrow);	   /* put the down arrow */
-						else
-							putch(' ');    /* delete the down arrow */
-						for(i=*cur,j=0;i<=*cur-vbrdrsize-1+optheight;i++,j++)
-							uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth+j
-								,i==*cur ? lbclr
-									: lclr|(bclr<<4)
-								,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2,option[i]);
-						break;
-					case CIO_KEY_NPAGE:	/* PgDn */
-						if(!opts)
-							break;
-						*cur += (height-vbrdrsize-1);
-						if(*cur>opts-1)
-							*cur = opts-1;
-						if(bar)
-							*bar = optheight-vbrdrsize-1;
-						y=top+optheight-bbrdrwidth-1;
-						gotoxy(s_left+left+lbrdrwidth,s_top+top+tbrdrwidth);
-						textattr(lclr|(bclr<<4));
-						if(*cur>height-vbrdrsize-1)  /* Scroll mode */
-							putch(api->chars->up_arrow);	   /* put the up arrow */
-						else
-							putch(' ');    /* delete the up arrow */
-						gotoxy(s_left+left+lbrdrwidth,s_top+top+height-bbrdrwidth-1);
-						if(*cur < opts-1)
-							putch(api->chars->down_arrow);	   /* put the down arrow */
-						else
-							putch(' ');    /* delete the down arrow */
-						for(i=*cur+vbrdrsize+1-optheight,j=0;i<=*cur;i++,j++)
-							uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth+j
-								,i==*cur ? lbclr
-									: lclr|(bclr<<4)
-								,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2,option[i]);
-						break;
-					case CIO_KEY_END:	/* end */
-						if(!opts)
-							break;
-						if(opts+vbrdrsize>height) {	/* Scroll mode */
-							gotoxy(s_left+left+lbrdrwidth,s_top+top+tbrdrwidth);
-							textattr(lclr|(bclr<<4));
-							putch(api->chars->up_arrow);	   /* put the up arrow */
-							gotoxy(s_left+left+lbrdrwidth,s_top+top+height-bbrdrwidth-1);
-							putch(' ');    /* delete the down arrow */
-							for(i=(opts+vbrdrsize)-height,j=0;i<opts;i++,j++)
-								uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth+j
-									,i==opts-1 ? lbclr
-										: lclr|(bclr<<4)
-									,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2,option[i]);
-							(*cur)=opts-1;
-							y=top+optheight-bbrdrwidth-1;
-							if(bar)
-								(*bar)=optheight-vbrdrsize-1;
-							break;
-						}
-						vmem_gettext(s_left+lbrdrwidth+2+left,s_top+y
-							,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-						for(i=0;i<width;i++)
-							set_vmem_attr(&line[i], lclr|(bclr<<4));
-						vmem_puttext(s_left+lbrdrwidth+2+left,s_top+y
-							,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-						(*cur)=opts-1;
-						y=top+optheight-bbrdrwidth-1;
-						if(bar)
-							(*bar)=optheight-vbrdrsize-1;
-						vmem_gettext(s_left+lbrdrwidth+2+left,s_top+y
-							,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-						for(i=0;i<74;i++)
-							set_vmem_attr(&line[i], lbclr);
-						vmem_puttext(s_left+lbrdrwidth+2+left,s_top+y
-							,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-						break;
-					case CIO_KEY_DOWN:	/* dn arrow */
-						if(!opts)
-							break;
-						if((*cur)==opts-1 && opts+vbrdrsize>height) { /* like home */
-							gotoxy(s_left+left+lbrdrwidth,s_top+top+tbrdrwidth);
-							textattr(lclr|(bclr<<4));
-							putch(' ');    /* Delete the up arrow */
-							gotoxy(s_left+left+lbrdrwidth,s_top+top+height-bbrdrwidth-1);
-							putch(api->chars->down_arrow);	   /* put the down arrow */
-							uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth
-								,lbclr
-								,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2,option[0]);
-							for(i=1;i<height-vbrdrsize;i++)    /* re-display options */
-								uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth+i
-									,lclr|(bclr<<4)
-									,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2,option[i]);
-							(*cur)=0;
-							y=top+tbrdrwidth;
-							if(bar)
-								(*bar)=0;
-							break;
-						}
-						vmem_gettext(s_left+lbrdrwidth+2+left,s_top+y
-							,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-						for(i=0; i < width; i++)
-							set_vmem_attr(&line[i], lclr|(bclr<<4));
-						vmem_puttext(s_left+lbrdrwidth+2+left,s_top+y
-							,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-						if((*cur)==opts-1) {
-							(*cur)=0;
-							y=top+tbrdrwidth;
-							if(bar) {
-								/* gotoxy(1,1); cprintf("bar=%08lX ",bar); */
-								(*bar)=0;
-							}
-						}
-						else {
-							(*cur)++;
-							y++;
-							if(bar && (*bar)<height-vbrdrsize-1) {
-								/* gotoxy(1,1); cprintf("bar=%08lX ",bar); */
-								(*bar)++;
-							}
-						}
-						if(y==top+height-bbrdrwidth) {	/* scroll */
-							if(*cur==opts-1) {
-								gotoxy(s_left+left+lbrdrwidth,s_top+top+height-bbrdrwidth-1);
-								textattr(lclr|(bclr<<4));
-								putch(' ');	/* delete the down arrow */
-							}
-							if((*cur)+vbrdrsize==height) {
-								gotoxy(s_left+left+lbrdrwidth,s_top+top+tbrdrwidth);
-								textattr(lclr|(bclr<<4));
-								putch(api->chars->up_arrow);	/* put the up arrow */
-							}
-							y--;
-							/* gotoxy(1,1); cprintf("\rdebug: %4d ",__LINE__); */
-							scroll_text(s_left+left+lbrdrwidth+1,s_top+top+tbrdrwidth
-								,s_left+left+width-rbrdrwidth-1,s_top+top+height-bbrdrwidth-1,0);
-							/* gotoxy(1,1); cprintf("\rdebug: %4d ",__LINE__); */
-							uprintf(s_left+left+lbrdrwidth+2,s_top+top+height-bbrdrwidth-1
-								,lbclr
-								,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2,option[*cur]);
-						}
-						else {
-							vmem_gettext(s_left+lbrdrwidth+2+left,s_top+y
-								,s_left+left+width-rbrdrwidth-1,s_top+y
-								,line);
-							for(i=0; i < width; i++)
-								set_vmem_attr(&line[i], lbclr);
-							vmem_puttext(s_left+lbrdrwidth+2+left,s_top+y
-								,s_left+left+width-rbrdrwidth-1,s_top+y
-								,line);
-						}
-						break;
-					case CIO_KEY_F(1):	/* F1 - Help */
-					{
-						struct vmem_cell *save = malloc(width*height*sizeof(*save));
-						if(save != NULL) {
-							vmem_gettext(s_left+left,s_top+top,s_left
-								+left+width-1,s_top+top+height-1,save);
-							struct vmem_cell *copy = malloc(width*height*sizeof(*copy));
-							if(copy != NULL) {
-								inactive_win(copy, s_left+left, s_top+top, s_left+left+width-1, s_top+top+height-1, y, hbrdrsize, cclr, lclr, hclr, top);
-								free(copy);
-							}
-						}
-						api->showhelp();
-						if(save != NULL) {
-							vmem_puttext(s_left+left,s_top+top,s_left
-								+left+width-1,s_top+top+height-1,save);
-							free(save);
-						}
-						break;
-					}
-					case CIO_KEY_F(2):	/* F2 - Edit */
-						if(mode&WIN_XTR && (*cur)==opts-1)	/* can't edit */
-							break;							/* extra line */
-						if(mode&WIN_EDIT) {
-							if(mode&WIN_SAV)
-								api->savnum++;
-							if(mode&WIN_ACT)
-								inactive_win(tmp_buffer, s_left+left, s_top+top, s_left+left+width-1, s_top+top+height-1, y, hbrdrsize, cclr, lclr, hclr, top);
-							else if(mode&WIN_SAV) {
-								api->savnum--;
-								if(sav[api->savnum].buf != NULL)
-									vmem_puttext(sav[api->savnum].left,sav[api->savnum].top
-										,sav[api->savnum].right,sav[api->savnum].bot
-										,(void *)sav[api->savnum].buf);
-								FREE_AND_NULL(sav[api->savnum].buf);
-							}
-							return((*cur)|MSK_EDIT);
-						}
-						break;
-					case CIO_KEY_F(5):		/* F5 - Copy */
-					case CIO_KEY_CTRL_IC:	/* Ctrl-Insert */
-						if(mode&WIN_COPY && !(mode&WIN_XTR && (*cur)==opts-1))
-							return((*cur) | MSK_COPY);
-						break;
-					case CIO_KEY_SHIFT_DC:	/* Shift-Del: Cut */
-						if(mode&WIN_CUT && !(mode&WIN_XTR && (*cur) == opts - 1))
-							return((*cur) | MSK_CUT);
-						break;
-					case CIO_KEY_SHIFT_IC:	/* Shift-Insert: Paste */
-					case CIO_KEY_F(6):		/* F6 - Paste */
-						if(mode&WIN_PASTE && (mode&WIN_PASTEXTR || !(mode&WIN_XTR && (*cur)==opts-1)))
-							return((*cur)|MSK_PASTE);
-						break;
-					case CIO_KEY_IC:	/* insert */
-						if(mode&WIN_INS) {
-							if(mode&WIN_SAV)
-								api->savnum++;
-							if(mode&WIN_INSACT)
-								inactive_win(tmp_buffer, s_left+left,s_top+top,s_left+left+width-1,s_top+top+height-1,y, hbrdrsize, cclr, lclr, hclr, top);
-							else if(mode&WIN_SAV) {
-								api->savnum--;
-								if(sav[api->savnum].buf != NULL)
-									vmem_puttext(sav[api->savnum].left,sav[api->savnum].top
-										,sav[api->savnum].right,sav[api->savnum].bot
-										,(void *)sav[api->savnum].buf);
-								FREE_AND_NULL(sav[api->savnum].buf);
-							}
-							if(!opts) {
-								return(MSK_INS);
-							}
-							return((*cur)|MSK_INS);
-						}
-						break;
-					case CIO_KEY_DC:	/* delete */
-						if(mode&WIN_XTR && (*cur)==opts-1)	/* can't delete */
-							break;							/* extra line */
-						if(mode&WIN_DEL) {
-							if(mode&WIN_SAV)
-								api->savnum++;
-							if(mode&WIN_DELACT)
-								inactive_win(tmp_buffer, s_left+left, s_top+top, s_left+left+width-1, s_top+top+height-1, y, hbrdrsize, cclr, lclr, hclr, top);
-							else if(mode&WIN_SAV) {
-								api->savnum--;
-								if (sav[api->savnum].buf != NULL)
-									vmem_puttext(sav[api->savnum].left,sav[api->savnum].top
-										,sav[api->savnum].right,sav[api->savnum].bot
-										,(void *)sav[api->savnum].buf);
-								FREE_AND_NULL(sav[api->savnum].buf);
-							}
-							return((*cur)|MSK_DEL);
-						}
-						break;
-					default:
-						if(mode&WIN_EXTKEYS)
-							return(-2-gotkey);
-						break;
-				}
-			}
-			else {
-				gotkey&=0xff;
-				if(isalnum(gotkey) && opts>1 && option[0][0]) {
-					search[s]=gotkey;
-					search[s+1]=0;
-					for(j=(*cur)+1,a=b=0;a<2;j++) {   /* a = search count */
-						if(j==opts) {					/* j = option count */
-							j=-1;						/* b = letter count */
-							continue;
-						}
-						if(j==(*cur)) {
-							b++;
-							continue;
-						}
-						if(b>=longopt) {
-							b=0;
-							a++;
-						}
-						if(a==1 && !s)
-							break;
-						if(option[j]!=NULL
-							&& strlen(option[j])>(size_t)b
-							&& ((!a && s && !strnicmp(option[j]+b,search,s+1))
-							|| ((a || !s) && toupper(option[j][b])==toupper(gotkey)))) {
-							if(a) s=0;
-							else s++;
-							if(y+(j-(*cur))+2>height+top) {
-								(*cur)=j;
-								gotoxy(s_left+left+lbrdrwidth,s_top+top+tbrdrwidth);
-								textattr(lclr|(bclr<<4));
-								putch(api->chars->up_arrow);	   /* put the up arrow */
-								if((*cur)==opts-1) {
-									gotoxy(s_left+left+lbrdrwidth,s_top+top+height-bbrdrwidth-1);
-									putch(' ');	/* delete the down arrow */
-								}
-								for(i=((*cur)+vbrdrsize+1)-height,j=0;i<(*cur)+1;i++,j++)
-									uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth+j
-										,i==(*cur) ? lbclr
-											: lclr|(bclr<<4)
-										,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2,option[i]);
-								y=top+height-bbrdrwidth-1;
-								if(bar)
-									(*bar)=optheight-vbrdrsize-1;
-								break;
-							}
-							if(y-((*cur)-j)<top+tbrdrwidth) {
-								(*cur)=j;
-								gotoxy(s_left+left+lbrdrwidth,s_top+top+tbrdrwidth);
-								textattr(lclr|(bclr<<4));
-								if(!(*cur))
-									putch(' ');    /* Delete the up arrow */
-								gotoxy(s_left+left+lbrdrwidth,s_top+top+height-bbrdrwidth-1);
-								putch(api->chars->down_arrow);	   /* put the down arrow */
-								uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth
-									,lbclr
-									,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2,option[(*cur)]);
-								for(i=1;i<height-vbrdrsize;i++) 	/* re-display options */
-									uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth+i
-										,lclr|(bclr<<4)
-										,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2
-										,option[(*cur)+i]);
-								y=top+tbrdrwidth;
-								if(bar)
-									(*bar)=0;
-								break;
-							}
-							vmem_gettext(s_left+lbrdrwidth+2+left,s_top+y
-								,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-							for(i=0; i<width; i++)
-								set_vmem_attr(&line[i], lclr|(bclr<<4));
-							vmem_puttext(s_left+lbrdrwidth+2+left,s_top+y
-								,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-							if((*cur)>j)
-								y-=(*cur)-j;
-							else
-								y+=j-(*cur);
-							if(bar) {
-								if((*cur)>j)
-									(*bar)-=(*cur)-j;
-								else
-									(*bar)+=j-(*cur);
-							}
-							(*cur)=j;
-							vmem_gettext(s_left+lbrdrwidth+2+left,s_top+y
-								,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-							for(i=0; i < width; i++)
-								set_vmem_attr(&line[i], lbclr);
-							vmem_puttext(s_left+lbrdrwidth+2+left,s_top+y
-								,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-							break;
-						}
-					}
-					if(a==2)
-						s=0;
-				}
-				else
-					switch(gotkey) {
-						case CR:
-							if(!opts)
-								break;
-							if(mode&WIN_SAV)
-								api->savnum++;
-							if(mode&WIN_ACT)
-								inactive_win(tmp_buffer, s_left+left, s_top+top, s_left+left+width-1, s_top+top+height-1, y, hbrdrsize, cclr, lclr, hclr, top);
-							else if(mode&WIN_SAV) {
-								api->savnum--;
-								if (sav[api->savnum].buf != NULL)
-									vmem_puttext(sav[api->savnum].left,sav[api->savnum].top
-										,sav[api->savnum].right,sav[api->savnum].bot
-										,(void *)sav[api->savnum].buf);
-								FREE_AND_NULL(sav[api->savnum].buf);
-							}
-							if(mode&WIN_XTR && (*cur)==opts-1)
-								return(MSK_INS|*cur);
-							return(*cur);
-						case 3:
-						case ESC:
-							if(mode&WIN_SAV)
-								api->savnum++;
-							if(mode&WIN_ESC || (mode&WIN_CHE && api->changes)) {
-								vmem_gettext(s_left+left,s_top+top,s_left
-									+left+width-1,s_top+top+height-1,tmp_buffer);
-								for(i=0; i < (width * height);i++)
-									set_vmem_attr(&tmp_buffer[i], lclr|(cclr<<4));
-								vmem_puttext(s_left+left,s_top+top,s_left
-									+left+width-1,s_top+top+height-1,tmp_buffer);
-							}
-							else if(mode&WIN_SAV) {
-								api->savnum--;
-								if (sav[api->savnum].buf != NULL)
-									vmem_puttext(sav[api->savnum].left,sav[api->savnum].top
-										,sav[api->savnum].right,sav[api->savnum].bot
-										,(void *)sav[api->savnum].buf);
-								FREE_AND_NULL(sav[api->savnum].buf);
-							}
-							return(-1);
-						case CTRL_F:			/* find */
-						case CTRL_G:
-							if(/*!(api->mode&UIFC_NOCTRL)*/1) { // No no, *this* control key is fine!
-								if (gotkey == CTRL_G || api->input(WIN_MID|WIN_SAV, 0, 0, "Find", search, sizeof(search), K_EDIT|K_FIND) > 0) {
-									for (j = (*cur) + 1; j != *cur; j++, j = (j >= opts) ? 0 : j) {
-										if (option[j] == NULL || j >= opts)
-											continue;
-										if (strcasestr(option[j], search) != NULL) {
-											// Copy/pasted from search above.
-											if(y+(j-(*cur))+2>height+top) {
-												(*cur)=j;
-												gotoxy(s_left+left+lbrdrwidth,s_top+top+tbrdrwidth);
-												textattr(lclr|(bclr<<4));
-												putch(api->chars->up_arrow);	   /* put the up arrow */
-												if((*cur)==opts-1) {
-													gotoxy(s_left+left+lbrdrwidth,s_top+top+height-bbrdrwidth-1);
-													putch(' ');	/* delete the down arrow */
-												}
-												for(i=((*cur)+vbrdrsize+1)-height,j=0;i<(*cur)+1;i++,j++)
-													uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth+j
-														,i==(*cur) ? lbclr
-															: lclr|(bclr<<4)
-														,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2,option[i]);
-												y=top+height-bbrdrwidth-1;
-												if(bar)
-													(*bar)=optheight-vbrdrsize-1;
-												break;
-											}
-											if(y-((*cur)-j)<top+tbrdrwidth) {
-												(*cur)=j;
-												gotoxy(s_left+left+lbrdrwidth,s_top+top+tbrdrwidth);
-												textattr(lclr|(bclr<<4));
-												if(!(*cur))
-													putch(' ');    /* Delete the up arrow */
-												gotoxy(s_left+left+lbrdrwidth,s_top+top+height-bbrdrwidth-1);
-												putch(api->chars->down_arrow);	   /* put the down arrow */
-												uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth
-													,lbclr
-													,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2,option[(*cur)]);
-												for(i=1;i<height-vbrdrsize;i++) 	/* re-display options */
-													uprintf(s_left+left+lbrdrwidth+2,s_top+top+tbrdrwidth+i
-														,lclr|(bclr<<4)
-														,"%-*.*s",width-hbrdrsize-2,width-hbrdrsize-2
-														,option[(*cur)+i]);
-												y=top+tbrdrwidth;
-												if(bar)
-													(*bar)=0;
-												break;
-											}
-											vmem_gettext(s_left+lbrdrwidth+2+left,s_top+y
-												,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-											for(i=0; i<width; i++)
-												set_vmem_attr(&line[i], lclr|(bclr<<4));
-											vmem_puttext(s_left+lbrdrwidth+2+left,s_top+y
-												,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-											if((*cur)>j)
-												y-=(*cur)-j;
-											else
-												y+=j-(*cur);
-											if(bar) {
-												if((*cur)>j)
-													(*bar)-=(*cur)-j;
-												else
-													(*bar)+=j-(*cur);
-											}
-											(*cur)=j;
-											vmem_gettext(s_left+lbrdrwidth+2+left,s_top+y
-												,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-											for(i=0; i < width; i++)
-												set_vmem_attr(&line[i], lbclr);
-											vmem_puttext(s_left+lbrdrwidth+2+left,s_top+y
-												,s_left+left+width-rbrdrwidth-1,s_top+y,line);
-											break;
-										}
-									}
-								}
-							}
-							break;
-						default:
-							if(mode&WIN_EXTKEYS)
-								return(-2-gotkey);
-				}
-			}
-			/* Update the status bar to reflect the Put/Paste option applicability */
-			if (bline&WIN_PASTE && api->bottomline != NULL) {
-				if ((mode&(WIN_XTR | WIN_PASTEXTR)) == WIN_XTR && (*cur) == opts - 1)
-					api->bottomline(bline & ~WIN_PASTE);
-				else
-					api->bottomline(bline);
-			}
-		}
-		else
-			mswait(1);
-		if(mode&WIN_DYN) {
-			save_menu_cur=*cur;
-			save_menu_bar=*bar;
-			save_menu_opts=opts;
-			return(-2-gotkey);
-		}
-	}
-}
-
-
-/*************************************************************************/
-/* This function is a windowed input string input routine.               */
-/*************************************************************************/
-int uinput(int mode, int left, int top, const char *inprompt, char *str,
-	int max, int kmode)
-{
-	struct vmem_cell shade[MAX_COLS], save_buf[MAX_COLS*4], in_win[MAX_COLS*3];
-	int	width;
-	int height=3;
-	int i,plen,slen,j;
-	int	iwidth;
-	int l;
-	char *prompt;
-	int s_top=SCRN_TOP;
-	int s_left=SCRN_LEFT;
-	int s_right=SCRN_RIGHT;
-	int s_bottom=api->scrn_len-3;
-	int hbrdrsize=2;
-	int tbrdrwidth=1;
-
-	reset_dynamic();
-
-	if(mode&WIN_FAT) {
-		s_top=1;
-		s_left=2;
-		s_right=api->scrn_width-3;  /* Leave space for the shadow */
-	}
-	if(mode&WIN_NOBRDR) {
-		hbrdrsize=0;
-		tbrdrwidth=0;
-		height=1;
-	}
-
-	prompt=strdup(inprompt==NULL ? "":inprompt);
-	plen=strlen(prompt);
-	if(!plen)
-		slen=2+hbrdrsize;
-	else
-		slen=4+hbrdrsize;
-
-	width=plen+slen+max;
-	if(width>(s_right-s_left+1))
-		width=(s_right-s_left+1);
-	if(mode&WIN_T2B)
-		top=(api->scrn_len-height+1)/2-2;
-	else if(mode&WIN_BOT)
-		top=s_bottom-height-top;
-	if(mode&WIN_L2R)
-		left=(s_right-s_left-width+1)/2;
-	if(left<=-(s_left))
-		left=-(s_left)+1;
-	if(top<0)
-		top=0;
-	if(mode&WIN_SAV)
-		vmem_gettext(s_left+left,s_top+top,s_left+left+width+1
-			,s_top+top+height,save_buf);
-	if(mode&WIN_ORG) { /* Clear around menu */
-		if(top)
-			vmem_puttext(1,2,api->scrn_width,s_top+top-1,blk_scrn);
-		if((unsigned)(s_top+height+top)<=api->scrn_len)
-			vmem_puttext(1,s_top+height+top,api->scrn_width,api->scrn_len,blk_scrn);
-		if(left)
-			vmem_puttext(1,s_top+top,s_left+left-1,s_top+height+top
-				,blk_scrn);
-		if(s_left+left+width<=s_right)
-			vmem_puttext(s_left+left+width,s_top+top,/* s_right+2 */api->scrn_width
-				,s_top+height+top,blk_scrn);
-	}
-
-	iwidth=width-plen-slen;
-	while(iwidth<1 && plen>4) {
-		plen=strlen(prompt);
-		prompt[plen-1]=0;
-		prompt[plen-2]='.';
-		prompt[plen-3]='.';
-		prompt[plen-4]='.';
-		plen--;
-		iwidth=width-plen-slen;
-	}
-
-	i=0;
-	if(!(mode&WIN_NOBRDR)) {
-		set_vmem(&in_win[i++], api->chars->input_top_left, api->hclr|(api->bclr<<4), 0);
-		for(j=1;j<width-1;j++)
-			set_vmem(&in_win[i++], api->chars->input_top, api->hclr|(api->bclr<<4), 0);
-		if(api->mode&UIFC_MOUSE && width>6) {
-			j=1;
-			set_vmem(&in_win[j++], api->chars->button_left, api->hclr|(api->bclr<<4), 0);
-			/* in_win[4]='�'; */
-			set_vmem(&in_win[j++], api->chars->close_char, api->lclr|(api->bclr<<4), 0);
-			set_vmem(&in_win[j++], api->chars->button_right, api->hclr|(api->bclr<<4), 0);
-			l=3;
-			if(api->helpbuf!=NULL || api->helpixbfile[0]!=0) {
-				set_vmem(&in_win[j++], api->chars->button_left, api->hclr|(api->bclr<<4), 0);
-				set_vmem(&in_win[j++], api->chars->help_char, api->lclr|(api->bclr<<4), 0);
-				set_vmem(&in_win[j++], api->chars->button_right, api->hclr|(api->bclr<<4), 0);
-				l+=3;
-			}
-			api->buttony=s_top+top;
-			api->exitstart=s_left+left+1;
-			api->exitend=s_left+left+3;
-			api->helpstart=s_left+left+4;
-			api->helpend=s_left+left+l;
-		}
-
-		set_vmem(&in_win[i++], api->chars->input_top_right, api->hclr|(api->bclr<<4), 0);
-		set_vmem(&in_win[i++], api->chars->input_right, api->hclr|(api->bclr<<4), 0);
-	}
-
-	if(plen)
-		set_vmem(&in_win[i++], ' ', api->lclr|(api->bclr<<4), 0);
-
-	for(j=0;prompt[j];j++)
-		set_vmem(&in_win[i++], prompt[j], api->lclr|(api->bclr<<4), 0);
-
-	if(plen)
-		set_vmem(&in_win[i++], ':', api->lclr|(api->bclr<<4), 0);
-
-	for(j=0;j<iwidth+2;j++) {
-		set_vmem(&in_win[i++], ' ', api->lclr|(api->bclr<<4), 0);
-	}
-
-	if(!(mode&WIN_NOBRDR)) {
-		set_vmem(&in_win[i++], api->chars->input_right, api->hclr|(api->bclr<<4), 0);
-		set_vmem(&in_win[i++], api->chars->input_bottom_left, api->hclr|(api->bclr<<4), 0);
-		for(j=1;j<width-1;j++)
-			set_vmem(&in_win[i++], api->chars->input_bottom, api->hclr|(api->bclr<<4), 0);
-		set_vmem(&in_win[i], api->chars->input_bottom_right, api->hclr|(api->bclr<<4), 0);	/* I is not incremented to shut up BCC */
-	}
-	vmem_puttext(s_left+left,s_top+top,s_left+left+width-1
-		,s_top+top+height-1,in_win);
-
-	if(!(mode&WIN_NOBRDR)) {
-		/* Shadow */
-		if(api->bclr==BLUE) {
-			vmem_gettext(s_left+left+width,s_top+top+1,s_left+left+width+1
-				,s_top+top+(height-1),shade);
-			for(j=0;j<6;j++)
-				set_vmem_attr(&shade[j], DARKGRAY);
-			vmem_puttext(s_left+left+width,s_top+top+1,s_left+left+width+1
-				,s_top+top+(height-1),shade);
-			vmem_gettext(s_left+left+2,s_top+top+3,s_left+left+width+1
-				,s_top+top+height,shade);
-			for(j=0;j<width;j++)
-				set_vmem_attr(&shade[j], DARKGRAY);
-			vmem_puttext(s_left+left+2,s_top+top+3,s_left+left+width+1
-				,s_top+top+height,shade);
-		}
-	}
-
-	if(api->bottomline != NULL)
-		api->bottomline(WIN_COPY|WIN_CUT|WIN_PASTE);
-	textattr(api->lclr|(api->bclr<<4));
-	if(!plen)
-		i=ugetstr(s_left+left+2,s_top+top+tbrdrwidth,iwidth,str,max,kmode,NULL);
-	else
-		i=ugetstr(s_left+left+plen+4,s_top+top+tbrdrwidth,iwidth,str,max,kmode,NULL);
-	if(mode&WIN_SAV)
-		vmem_puttext(s_left+left,s_top+top,s_left+left+width+1
-			,s_top+top+height,save_buf);
-	free(prompt);
-	return(i);
-}
-
-/****************************************************************************/
-/* Displays the message 'str' and waits for the user to select "OK"         */
-/****************************************************************************/
-int  umsg(const char *str)
-{
-	int i=0;
-	char *ok[2]={"OK",""};
-
-	if(api->mode&UIFC_INMSG)	/* non-cursive */
-		return -1;
-	api->mode|=UIFC_INMSG;
-	i = ulist(WIN_SAV|WIN_MID,0,0,0,&i,0,str,ok);
-	api->mode&=~UIFC_INMSG;
-	return i;
-}
-
-/* Same as above, using printf-style varargs */
-int umsgf(char* fmt, ...)
-{
-	int retval = -1;
-	va_list va;
-	char* buf = NULL;
-
-	va_start(va, fmt);
-    vasprintf(&buf, fmt, va);
-    va_end(va);
-	if(buf != NULL) {
-		retval = umsg(buf);
-		free(buf);
-	}
-	return retval;
-}
-
-static int yesno(int dflt, char* fmt, va_list va)
-{
-	int retval;
-	char* buf = NULL;
-
-    vasprintf(&buf, fmt, va);
-	if(buf == NULL)
-		return dflt;
-	retval = ulist(WIN_SAV|WIN_MID,0,0,0,&dflt,0,buf,api->yesNoOpts);
-	free(buf);
-	return retval;
-}
-
-static BOOL confirm(char* fmt, ...)
-{
-	int retval;
-
-	va_list va;
-	va_start(va, fmt);
-	retval = yesno(0, fmt, va);
-	va_end(va);
-	return retval == 0;
-}
-
-static BOOL deny(char* fmt, ...)
-{
-	int retval;
-
-	va_list va;
-	va_start(va, fmt);
-	retval = yesno(1, fmt, va);
-	va_end(va);
-	return retval != 0;
-}
-
-/***************************************/
-/* Private sub - updates a ugetstr box */
-/***************************************/
-void getstrupd(int left, int top, int width, char *outstr, int cursoffset, int *scrnoffset, int mode)
-{
-	_setcursortype(_NOCURSOR);
-	if(cursoffset<*scrnoffset)
-		*scrnoffset=cursoffset;
-
-	if(*scrnoffset+width < cursoffset)
-		*scrnoffset=cursoffset-width;
-
-	gotoxy(left,top);
-	if(mode&K_PASSWORD)
-		// This typecast is to suppress a clang warning "adding 'unsigned long' to a string does not append to the string [-Wstring-plus-int]"
-		cprintf("%-*.*s",width,width,((char *)"********************************************************************************")+(80-strlen(outstr+*scrnoffset)));
-	else
-		cprintf("%-*.*s",width,width,outstr+*scrnoffset);
-	gotoxy(left+(cursoffset-*scrnoffset),top);
-	_setcursortype(cursor);
-}
-
-/****************************************************************************/
-/* Gets a string of characters from the user. Turns cursor on. Allows 	    */
-/* Different modes - K_* macros. ESC aborts input.                          */
-/****************************************************************************/
-int ugetstr(int left, int top, int width, char *outstr, int max, long mode, int *lastkey)
-{
-	char   *str;
-	int	ch;
-	int     i,j,k,f=0;	/* i=offset, j=length */
-	BOOL	gotdecimal=FALSE;
-	int	soffset=0;
-	struct mouse_event	mevnt;
-	char	*pastebuf=NULL;
-	unsigned char	*pb=NULL;
-
-	api->exit_flags = 0;
-	if((str=alloca(max+1))==NULL) {
-		cprintf("UIFC line %d: error allocating %u bytes\r\n"
-			,__LINE__,(max+1));
-		_setcursortype(cursor);
-		return(-1);
-	}
-	gotoxy(left,top);
-	_setcursortype(cursor = api->insert_mode ? _SOLIDCURSOR : _NORMALCURSOR);
-	str[0]=0;
-	if(mode&K_EDIT && outstr[0]) {
-	/***
-		truncspctrl(outstr);
-	***/
-		outstr[max]=0;
-		i=j=strlen(outstr);
-		textattr(api->lbclr);
-		getstrupd(left, top, width, outstr, i, &soffset, mode);
-		textattr(api->lclr|(api->bclr<<4));
-		if(strlen(outstr)<(size_t)width) {
-			k=wherex();
-			f=wherey();
-			cprintf("%*s",width-strlen(outstr),"");
-			gotoxy(k,f);
-		}
-		strcpy(str,outstr);
-#if 0
-		while(kbwait()==0) {
-			mswait(1);
-		}
-#endif
-		f=inkey();
-		if(f==CIO_KEY_QUIT) {
-			api->exit_flags |= UIFC_XF_QUIT;
-			return -1;
-		}
-
-		if(f==CIO_KEY_MOUSE) {
-			f=uifc_getmouse(&mevnt);
-			if(f==0 || (f==ESC && mevnt.event==CIOLIB_BUTTON_3_CLICK)) {
-				if(mode & K_MOUSEEXIT
-						&& (mevnt.starty != top
-							|| mevnt.startx > left+width
-						    || mevnt.startx < left)
-						&& mevnt.event==CIOLIB_BUTTON_1_CLICK) {
-					if(lastkey)
-						*lastkey=CIO_KEY_MOUSE;
-					ungetmouse(&mevnt);
-					return(j);
-				}
-				if(mevnt.startx>=left
-						&& mevnt.startx<=left+width
-						&& mevnt.event==CIOLIB_BUTTON_1_CLICK) {
-					i=mevnt.startx-left+soffset;
-					if(i>j)
-						i=j;
-				}
-				if(mevnt.starty == top
-						&& mevnt.startx>=left
-						&& mevnt.startx<=left+width
-						&& (mevnt.event==CIOLIB_BUTTON_2_CLICK
-						|| mevnt.event==CIOLIB_BUTTON_3_CLICK)) {
-					i=mevnt.startx-left+soffset;
-					if(i>j)
-						i=j;
-					pb=(uint8_t *)getcliptext();
-					if (pb) {
-						pastebuf = utf8_to_cp(CIOLIB_CP437, pb, '?', strlen((char *)pb), NULL);
-						free(pb);
-						pb=(unsigned char *)pastebuf;
-					}
-					else {
-						free(pastebuf);
-						pastebuf = NULL;
-					}
-					f=0;
-				}
-			}
-		}
-
-		if(f == CR
-				|| (f >= 0xff && f != CIO_KEY_DC)
-				|| (f == 3840 && mode&K_TABEXIT)	// Backtab
-				|| (f == '\t' && mode&K_TABEXIT)
-				|| (f == '%' && mode&K_SCANNING)
-				|| f==CTRL_B
-				|| f==CTRL_E
-				|| f==CTRL_Z
-				|| f==CTRL_X	/* Cut */
-				|| f==CTRL_C	/* Copy */
-				|| f==0)
-		{
-			getstrupd(left, top, width, str, i, &soffset, mode);
-		}
-		else
-		{
-			getstrupd(left, top, width, str, i, &soffset, mode);
-			i=j=0;
-		}
-	}
-	else
-		i=j=0;
-
-	ch=0;
-	while(ch!=CR)
-	{
-		if(i>j) j=i;
-		str[j]=0;
-		getstrupd(left, top, width, str, i, &soffset, mode);
-		if(f || pb!=NULL || (ch=inkey())!=0)
-		{
-			if(f) {
-				ch=f;
-				f=0;
-			}
-			else if(pb!=NULL) {
-				ch=*(pb++);
-				if(!*pb) {
-					free(pastebuf);
-					pastebuf=NULL;
-					pb=NULL;
-				}
-			}
-			if(ch==CIO_KEY_MOUSE) {
-				ch=uifc_getmouse(&mevnt);
-				if(ch==0 || (ch==ESC && mevnt.event==CIOLIB_BUTTON_3_CLICK)) {
-					if(mode & K_MOUSEEXIT
-							&& (mevnt.starty != top
-								|| mevnt.startx > left+width
-						    	|| mevnt.startx < left)
-							&& mevnt.event==CIOLIB_BUTTON_1_CLICK) {
-						if(lastkey)
-							*lastkey=CIO_KEY_MOUSE;
-						ungetmouse(&mevnt);
-						ch=CR;
-						continue;
-					}
-					if(mevnt.starty == top
-							&& mevnt.startx>=left
-							&& mevnt.startx<=left+width
-							&& mevnt.event==CIOLIB_BUTTON_1_CLICK) {
-						i=mevnt.startx-left+soffset;
-						if(i>j)
-							i=j;
-					}
-					if(mevnt.starty == top
-							&& mevnt.startx>=left
-							&& mevnt.startx<=left+width
-							&& (mevnt.event==CIOLIB_BUTTON_2_CLICK
-							|| mevnt.event==CIOLIB_BUTTON_3_CLICK)) {
-						i=mevnt.startx-left+soffset;
-						if(i>j)
-							i=j;
-						pb=(uint8_t *)getcliptext();
-						if (pb) {
-							pastebuf = utf8_to_cp(CIOLIB_CP437, pb, '?', strlen((char *)pb), NULL);
-							free(pb);
-							pb=(unsigned char *)pastebuf;
-						}
-						else {
-							free(pastebuf);
-							pastebuf = NULL;
-						}
-						ch=0;
-					}
-				}
-			}
-			if(lastkey != NULL)
-				*lastkey=ch;
-			switch(ch)
-			{
-				case CTRL_Z:
-				case CIO_KEY_F(1):	/* F1 Help */
-					api->showhelp();
-					if(api->exit_flags & UIFC_XF_QUIT)
-						f = CIO_KEY_QUIT;
-					continue;
-				case CIO_KEY_LEFT:	/* left arrow */
-					if(i)
-					{
-						i--;
-					}
-					continue;
-				case CIO_KEY_RIGHT:	/* right arrow */
-					if(i<j)
-					{
-						i++;
-					}
-					continue;
-				case CTRL_B:
-				case CIO_KEY_HOME:	/* home */
-					if(i)
-					{
-						i=0;
-					}
-					continue;
-				case CTRL_E:
-				case CIO_KEY_END:	/* end */
-					if(i<j)
-					{
-						i=j;
-					}
-					continue;
-				case CTRL_V:
-				case CIO_KEY_SHIFT_IC:	/* Shift-Insert: Paste */
-					pb=(uint8_t *)getcliptext();
-					if (pb) {
-						pastebuf = utf8_to_cp(CIOLIB_CP437, pb, '?', strlen((char *)pb), NULL);
-						free(pb);
-						pb=(unsigned char *)pastebuf;
-					}
-					else {
-						free(pastebuf);
-						pastebuf = NULL;
-					}
-					continue;
-				case CIO_KEY_IC:	/* insert */
-					api->insert_mode = !api->insert_mode;
-					_setcursortype(cursor = api->insert_mode ? _SOLIDCURSOR : _NORMALCURSOR);
-					continue;
-				case BS:
-					if(i)
-					{
-						if(i==j)
-						{
-							j--;
-							i--;
-						}
-						else {
-							i--;
-							j--;
-							if(str[i]=='.')
-								gotdecimal=FALSE;
-							for(k=i;k<=j;k++)
-								str[k]=str[k+1];
-						}
-						if (soffset > 0)
-							soffset--;
-						continue;
-					}
-					break;
-				case CIO_KEY_DC:	/* delete */
-				case DEL:			/* sdl_getch() is returning 127 when keypad "Del" is hit */
-					if(i<j)
-					{
-						if(str[i]=='.')
-							gotdecimal=FALSE;
-						for(k=i;k<j;k++)
-							str[k]=str[k+1];
-						j--;
-					}
-					continue;
-				case CIO_KEY_QUIT:
-					api->exit_flags |= UIFC_XF_QUIT;
-					/* Fall-through */
-				case CIO_KEY_ABORTED:
-				case ESC:
-					{
-						cursor=_NOCURSOR;
-						_setcursortype(cursor);
-						if(pastebuf!=NULL) {
-							free(pastebuf);
-							pastebuf = NULL;
-						}
-						return(-1);
-					}
-				case CR:
-					break;
-				case 3840:	/* Backtab */
-				case '\t':
-					if(mode&K_TABEXIT)
-						ch=CR;
-					break;
-				case '%':	/* '%' indicates that a UPC is coming next */
-					if(mode&K_SCANNING)
-						ch=CR;
-					break;
-				case CIO_KEY_F(2):
-				case CIO_KEY_UP:
-				case CIO_KEY_DOWN:
-					if(mode&K_DEUCEEXIT) {
-						ch=CR;
-						break;
-					}
-					continue;
-				case CTRL_C:
-				case CIO_KEY_CTRL_IC:	/* Ctrl-Insert */
-				{
-					size_t sz;
-					uint8_t *utf8 = cp_to_utf8(CIOLIB_CP437, str, j, &sz);
-					copytext((char *)utf8, sz);
-					free(utf8);
-					continue;
-				}
-				case CTRL_X:
-				case CIO_KEY_SHIFT_DC:
-					if(j)
-					{
-						size_t sz;
-						uint8_t *utf8 = cp_to_utf8(CIOLIB_CP437, str, j, &sz);
-						copytext((char *)utf8, sz);
-						free(utf8);
-						i=j=0;
-					}
-					continue;
-				case CTRL_Y:
-					if(i<j)
-					{
-						j=i;
-					}
-					continue;
-			}
-			if(mode&K_NUMBER && !isdigit(ch))
-				continue;
-			if(mode&K_DECIMAL && !isdigit(ch)) {
-				if(ch!='.')
-					continue;
-				if(gotdecimal)
-					continue;
-				gotdecimal=TRUE;
-			}
-			if(mode&K_ALPHA && !isalpha(ch))
-				continue;
-			if((ch>=' ' || (ch==1 && mode&K_MSG)) && i<max && (!api->insert_mode || j<max) && ch < 256)
-			{
-				if(mode&K_UPPER)
-					ch=toupper(ch);
-				if(api->insert_mode)
-				{
-					for(k=++j;k>i;k--)
-						str[k]=str[k-1];
-				}
-				str[i++]=ch;
-			}
-		}
-	}
-
-
-	str[j]=0;
-	if(mode&K_EDIT)
-	{
-		truncspctrl(str);
-		if(!(mode&K_FIND) && strcmp(outstr,str))
-			api->changes=1;
-	}
-	else
-	{
-		if(!(mode&K_FIND) && j)
-			api->changes=1;
-	}
-	strcpy(outstr,str);
-	cursor=_NOCURSOR;
-	_setcursortype(cursor);
-	if(pastebuf!=NULL)
-		free(pastebuf);
-	return(j);
-}
-
-/****************************************************************************/
-/* Performs printf() through puttext() routine								*/
-/****************************************************************************/
-static int uprintf(int x, int y, unsigned attr, char *fmat, ...)
-{
-	va_list argptr;
-	char str[MAX_COLS+1];
-	struct vmem_cell buf[MAX_COLS];
-	int i;
-
-    va_start(argptr,fmat);
-    vsprintf(str,fmat,argptr);
-    va_end(argptr);
-    for(i = 0; str[i]; i++)
-	set_vmem(&buf[i], str[i], attr, 0);
-    vmem_puttext(x,y,x+(i-1),y,buf);
-    return(i);
-}
-
-
-/****************************************************************************/
-/* Display bottom line of screen in inverse                                 */
-/****************************************************************************/
-void bottomline(int mode)
-{
-	int i=1;
-
-	i += uprintf(i,api->scrn_len+1,api->bclr|(api->cclr<<4),"    ");
-	if(api->help_available) {
-		i += uprintf(i,api->scrn_len+1,api->bclr|(api->cclr<<4),"F1 ");
-		i += uprintf(i,api->scrn_len+1,BLACK|(api->cclr<<4),"Help  ");
-	}
-	if(mode&WIN_EDIT) {
-		i += uprintf(i,api->scrn_len+1,api->bclr|(api->cclr<<4),"F2 ");
-		i += uprintf(i,api->scrn_len+1,BLACK|(api->cclr<<4),"Edit Item  ");
-	}
-	if(mode&WIN_COPY) {
-		if(api->mode&UIFC_NOCTRL) {
-			i += uprintf(i,api->scrn_len+1,api->bclr|(api->cclr<<4),"F5 ");
-			i += uprintf(i,api->scrn_len+1,BLACK|(api->cclr<<4),"Copy  ");
-		} else {
-			i += uprintf(i,api->scrn_len+1,api->bclr|(api->cclr<<4),"^C");
-			i += uprintf(i,api->scrn_len+1,BLACK|(api->cclr<<4),"opy  ");
-		}
-	}
-	if(mode&WIN_CUT) {
-		if(api->mode&UIFC_NOCTRL)
-			i += uprintf(i,api->scrn_len+1,api->bclr|(api->cclr<<4),"Shift-DEL ");
-		else
-			i += uprintf(i,api->scrn_len+1,api->bclr|(api->cclr<<4),"^X ");
-		i += uprintf(i,api->scrn_len+1,BLACK|(api->cclr<<4),"Cut  ");
-	}
-	if(mode&WIN_PASTE) {
-		if(api->mode&UIFC_NOCTRL)
-			i += uprintf(i,api->scrn_len+1,api->bclr|(api->cclr<<4),"F6 ");
-		else
-			i += uprintf(i,api->scrn_len+1,api->bclr|(api->cclr<<4),"^V ");
-		i += uprintf(i,api->scrn_len+1,BLACK|(api->cclr<<4),"Paste  ");
-	}
-	if(mode&WIN_INS) {
-#ifdef __DARWIN__
-		i += uprintf(i,api->scrn_len+1,api->bclr|(api->cclr<<4),"+/");
-#endif
-		i += uprintf(i,api->scrn_len+1,api->bclr|(api->cclr<<4),"INS");
-		i += uprintf(i,api->scrn_len+1,BLACK|(api->cclr<<4),"ert Item  ");
-	}
-	if(mode&WIN_DEL) {
-#ifdef __DARWIN__
-		i += uprintf(i,api->scrn_len+1,api->bclr|(api->cclr<<4),"fn-");
-#endif
-		i += uprintf(i,api->scrn_len+1,api->bclr|(api->cclr<<4),"DEL");
-		i += uprintf(i,api->scrn_len+1,BLACK|(api->cclr<<4),"ete Item  ");
-	}
-	i += uprintf(i,api->scrn_len+1,api->bclr|(api->cclr<<4),"ESC ");	/* Backspace is no good no way to abort editing */
-	i += uprintf(i,api->scrn_len+1,BLACK|(api->cclr<<4),"Exit");
-	gotoxy(i,api->scrn_len+1);
-	if (wherex() == i && wherey() == api->scrn_len+1) {
-		textattr(BLACK|(api->cclr<<4));
-		clreol();
-	}
-}
-
-/*****************************************************************************/
-/* Generates a 24 character ASCII string that represents the time_t pointer  */
-/* Used as a replacement for ctime()                                         */
-/*****************************************************************************/
-char *utimestr(time_t *intime)
-{
-	static char str[25];
-	const char* wday="";
-	const char* mon="";
-	const char* mer= "";
-	int hour;
-	struct tm *gm;
-
-	gm=localtime(intime);
-	switch(gm->tm_wday) {
-		case 0:
-			wday = "Sun";
-			break;
-		case 1:
-			wday = "Mon";
-			break;
-		case 2:
-			wday = "Tue";
-			break;
-		case 3:
-			wday = "Wed";
-			break;
-		case 4:
-			wday = "Thu";
-			break;
-		case 5:
-			wday = "Fri";
-			break;
-		case 6:
-			wday = "Sat";
-			break;
-	}
-	switch(gm->tm_mon) {
-		case 0:
-			mon = "Jan";
-			break;
-		case 1:
-			mon = "Feb";
-			break;
-		case 2:
-			mon = "Mar";
-			break;
-		case 3:
-			mon = "Apr";
-			break;
-		case 4:
-			mon = "May";
-			break;
-		case 5:
-			mon = "Jun";
-			break;
-		case 6:
-			mon = "Jul";
-			break;
-		case 7:
-			mon = "Aug";
-			break;
-		case 8:
-			mon = "Sep";
-			break;
-		case 9:
-			mon = "Oct";
-			break;
-		case 10:
-			mon = "Nov";
-			break;
-		case 11:
-			mon = "Dec";
-			break;
-	}
-	if(gm->tm_hour>=12) {
-		mer = "pm";
-		hour=gm->tm_hour;
-		if (hour > 12)
-			hour-=12;
-	}
-	else {
-		if(!gm->tm_hour)
-			hour=12;
-		else
-			hour=gm->tm_hour;
-		mer = "am";
-	}
-	safe_snprintf(str, sizeof(str), "%s %s %02d %4d %02d:%02d %s",wday,mon,gm->tm_mday,1900+gm->tm_year
-		,hour,gm->tm_min,mer);
-	return(str);
-}
-
-/****************************************************************************/
-/* Status popup/down function, see uifc.h for details.						*/
-/****************************************************************************/
-void upop(const char *str)
-{
-	static struct vmem_cell sav[80*3], buf[80*3];
-	int i,j,k;
-	static int width;
-
-	if(str == NULL) {
-		vmem_puttext((api->scrn_width-width+1)/2+1,(api->scrn_len-3+1)/2+1
-			,(api->scrn_width+width-1)/2+1,(api->scrn_len+3-1)/2+1,sav);
-		return;
-	}
-
-	width = strlen(str);
-	if(!width)
-		return;
-	width += 7;
-	vmem_gettext((api->scrn_width-width+1)/2+1,(api->scrn_len-3+1)/2+1
-			,(api->scrn_width+width-1)/2+1,(api->scrn_len+3-1)/2+1,sav);
-	for(i=0; i < width*3; i++)
-		set_vmem(&buf[i], ' ', api->hclr|(api->bclr<<4), 0);
-	set_vmem(&buf[0], api->chars->popup_top_left, api->hclr|(api->bclr<<4), 0);
-	for(i=1;i<(width-1);i++)
-		set_vmem(&buf[i], api->chars->popup_top, api->hclr|(api->bclr<<4), 0);
-	set_vmem(&buf[i++], api->chars->popup_top_right, api->hclr|(api->bclr<<4), 0);
-	set_vmem(&buf[i++], api->chars->popup_left, api->hclr|(api->bclr<<4), 0);
-	k=strlen(str);
-	i+=((((width-3)-k)/2));
-	for(j=0;j<k;j++,i++)
-		set_vmem(&buf[i], str[j], api->hclr|(api->bclr<<4)|BLINK, 0);
-	i=(((width-1)*2)+1);
-	set_vmem(&buf[i++], api->chars->popup_right, api->hclr|(api->bclr<<4), 0);
-	set_vmem(&buf[i++], api->chars->popup_bottom_left, api->hclr|(api->bclr<<4), 0);
-	for(;i<((width*3)-1);i++)
-		set_vmem(&buf[i], api->chars->popup_bottom, api->hclr|(api->bclr<<4), 0);
-	set_vmem(&buf[i], api->chars->popup_bottom_right, api->hclr|(api->bclr<<4), 0);
-
-	vmem_puttext((api->scrn_width-width+1)/2+1,(api->scrn_len-3+1)/2+1
-			,(api->scrn_width+width-1)/2+1,(api->scrn_len+3-1)/2+1,buf);
-}
-
-/****************************************************************************/
-/* Sets the current help index by source code file and line number.			*/
-/****************************************************************************/
-void sethelp(int line, char* file)
-{
-    helpline=line;
-    helpfile=file;
-}
-
-/****************************************************************************/
-/* Shows a scrollable text buffer - optionally parsing "help markup codes"	*/
-/****************************************************************************/
-void showbuf(int mode, int left, int top, int width, int height, const char *title, const char *hbuf, int *curp, int *barp)
-{
-	char inverse=0,high=0;
-	struct vmem_cell *textbuf;
-	struct vmem_cell *p;
-	const char *pc;
-	struct vmem_cell *oldp=NULL;
-	int i,j,k,len;
-	int	 lines;
-	int pad=1;
-	int	is_redraw=0;
-	uint title_len=0;
-	struct mouse_event	mevnt;
-
-	api->exit_flags = 0;
-	_setcursortype(_NOCURSOR);
-
-	title_len=strlen(title);
-	if(api->mode&UIFC_MOUSE)
-		title_len+=6;
-
-	if((unsigned)(top+height)>=api->scrn_len)
-		height = api->scrn_len - top;
-	if(!width || (unsigned)width<title_len+6)
-		width=title_len+6;
-	if((unsigned)(width + left) > api->scrn_width)
-		width = api->scrn_width - left + 1;
-	if(mode&WIN_L2R)
-		left=(api->scrn_width-width+2)/2;
-	else if(mode&WIN_RHT)
-		left=SCRN_RIGHT-(width+4+left);
-	if(mode&WIN_T2B)
-		top=(api->scrn_len-height+1)/2;
-	else if(mode&WIN_BOT)
-		top=api->scrn_len-height-3-top;
-	if(left<0)
-		left=0;
-	if(top<0)
-		top=0;
-
-	if(mode&WIN_PACK)
-		pad=0;
-
-	/* Dynamic Menus */
-	if(mode&WIN_DYN
-	    && curp != NULL
-	    && barp != NULL
-	    && last_menu_cur==curp
-	    && last_menu_bar==barp
-	    && save_menu_cur==*curp
-	    && save_menu_bar==*barp)
-		is_redraw=1;
-	if(mode&WIN_DYN && mode&WIN_REDRAW)
-		is_redraw=1;
-	if(mode&WIN_DYN && mode&WIN_NODRAW)
-		is_redraw=0;
-
-	vmem_gettext(1,1,api->scrn_width,api->scrn_len,tmp_buffer);
-
-	if(!is_redraw) {
-		for(i=0; i<width*height; i++)
-			set_vmem(&tmp_buffer2[i], ' ', api->hclr|(api->bclr<<4), 0);
-		tmp_buffer2[0].ch=api->chars->help_top_left;
-		j=title_len;
-		if(j>width-6) {
-			j=width-6;
-			title_len = j;
-		}
-		for(i=1;i<(width-j)/2;i++)
-   		      tmp_buffer2[i].ch=api->chars->help_top;
-		if((api->mode&UIFC_MOUSE) && (!(mode&WIN_DYN))) {
-			set_vmem(&tmp_buffer2[1], api->chars->button_left, api->hclr|(api->bclr<<4), 0);
-			/* tmp_buffer2[4]='�'; */
-			set_vmem(&tmp_buffer2[2], api->chars->close_char, api->lclr|(api->bclr<<4), 0);
-			set_vmem(&tmp_buffer2[3], api->chars->button_right, api->hclr|(api->bclr<<4), 0);
-			/* Buttons are ignored - leave it this way to not confuse stuff from help() */
-		}
-		tmp_buffer2[i].ch = api->chars->help_titlebreak_left;
-		i+=2;
-		for(j=0,pc=title;j<title_len&&*pc;j++,pc++) {
-			tmp_buffer2[i].ch=*pc;
-			i++;
-		}
-		i++;
-   		tmp_buffer2[i].ch=api->chars->help_titlebreak_right;
-   		i++;
-		for(;i<((width-1));i++)
-   		    tmp_buffer2[i].ch=api->chars->help_top;
-		tmp_buffer2[i].ch=api->chars->help_top_right;
-		i++;
-		j=i;	/* leave i alone */
-		for(k=0;k<(height-2);k++) { 		/* the sides of the box */
-	        tmp_buffer2[j].ch=api->chars->help_left;
-	        j++;
-			j+=((width-2));
-        	tmp_buffer2[j].ch=api->chars->help_right;
-        	j++;
-		}
-		tmp_buffer2[j].ch = api->chars->help_bottom_left;
-		j++;
-		if(!(mode&WIN_DYN) && (width>31)) {
-			for(k=j;k<j+(((width-4)/2-13));k++)
-				tmp_buffer2[k].ch=api->chars->help_bottom;
-			tmp_buffer2[k].ch = api->chars->help_hitanykey_left; k+=2;
-			tmp_buffer2[k].ch='H'; k++;
-			tmp_buffer2[k].ch='i'; k++;
-			tmp_buffer2[k].ch='t'; k+=2;
-			tmp_buffer2[k].ch='a'; k++;
-			tmp_buffer2[k].ch='n'; k++;
-			tmp_buffer2[k].ch='y'; k+=2;
-			tmp_buffer2[k].ch='k'; k++;
-			tmp_buffer2[k].ch='e'; k++;
-			tmp_buffer2[k].ch='y'; k+=2;
-			tmp_buffer2[k].ch='t'; k++;
-			tmp_buffer2[k].ch='o'; k+=2;
-			tmp_buffer2[k].ch='c'; k++;
-			tmp_buffer2[k].ch='o'; k++;
-			tmp_buffer2[k].ch='n'; k++;
-			tmp_buffer2[k].ch='t'; k++;
-			tmp_buffer2[k].ch='i'; k++;
-			tmp_buffer2[k].ch='n'; k++;
-			tmp_buffer2[k].ch='u'; k++;
-			tmp_buffer2[k].ch='e'; k+=2;
-			tmp_buffer2[k].ch=api->chars->help_hitanykey_right; k++;
-			for(j=k;j<k+(((width-4)/2-12))+(width&1);j++)
-				tmp_buffer2[j].ch=api->chars->help_bottom;
-		}
-		else {
-			for(k=j;k<j+((width-2));k++)
-				tmp_buffer2[k].ch=api->chars->help_bottom;
-			j=k;
-		}
-		tmp_buffer2[j].ch=api->chars->help_bottom_right;
-		if(!(mode&WIN_DYN)) {
-			tmp_buffer2[j-1].ch=api->chars->button_right;
-			tmp_buffer2[j-2].ch=' ';
-			tmp_buffer2[j-3].ch=' ';
-			tmp_buffer2[j-4].ch=api->chars->button_left;
-#define SCROLL_UP_BUTTON_X	left + (width - 4)
-#define SCROLL_UP_BUTTON_Y	top + height
-#define SCROLL_DN_BUTTON_X	left + (width - 3)
-#define SCROLL_DN_BUTTON_Y	top + height
-		}
-		vmem_puttext(left,top+1,left+width-1,top+height,tmp_buffer2);
-	}
-	len=strlen(hbuf);
-
-	lines=0;
-	k=0;
-	for(j=0;j<len;j++) {
-		if(mode&WIN_HLP && (hbuf[j]==2 || hbuf[j]=='~' || hbuf[j]==1 || hbuf[j]=='`'))
-			continue;
-		if(hbuf[j]==CR)
-			continue;
-		k++;
-		if((hbuf[j]==LF) || (k>=width-2-pad-pad && (hbuf[j+1]!='\n' && hbuf[j+1]!='\r'))) {
-			k=0;
-			lines++;
-		}
-	}
-	if(k)
-		lines++;
-	if(lines < height-2-pad-pad)
-		lines=height-2-pad-pad;
-
-	if((textbuf=(struct vmem_cell *)malloc((width-2-pad-pad)*lines*sizeof(*textbuf)))==NULL) {
-		cprintf("UIFC line %d: error allocating %u bytes\r\n"
-			,__LINE__,(width-2-pad-pad)*lines*sizeof(*textbuf));
-		_setcursortype(cursor);
-		return;
-	}
-	for(i=0; i < (width - 2 - pad - pad) * lines;i++)
-		set_vmem(&textbuf[i], ' ', (api->hclr|(api->bclr<<4)), 0);
-	for(j=i=0; j < len; j++, i++) {
-		if(hbuf[j]==LF) {
-			i++;
-			while(i%((width-2-pad-pad)))
-				i++;
-			i--;
-		}
-		else if(mode&WIN_HLP && (hbuf[j]==2 || hbuf[j]=='~')) {		 /* Ctrl-b toggles inverse */
-			inverse=!inverse;
-			i--;
-		}
-		else if(mode&WIN_HLP && (hbuf[j]==1 || hbuf[j]=='`')) {		 /* Ctrl-a toggles high intensity */
-			high=!high;
-			i--;
-		}
-		else if(hbuf[j]!=CR) {
-			set_vmem(&textbuf[i], hbuf[j], inverse ? (api->bclr|(api->cclr<<4)) : high ? (api->hclr|(api->bclr<<4)) : (api->lclr|(api->bclr<<4)), 0);
-			if(((i+1)%((width-2-pad-pad))==0 && (hbuf[j+1]==LF)) || (hbuf[j+1]==CR && hbuf[j+2]==LF))
-				i--;
-		}
-		else
-			i--;
-	}
-	i=0;
-	p=textbuf;
-	struct vmem_cell * textend = textbuf + (lines-(height-2-pad-pad))*(width-2-pad-pad);
-	if(mode&WIN_DYN) {
-		vmem_puttext(left+1+pad,top+2+pad,left+width-2-pad,top+height-1-pad,p);
-	}
-	else {
-		while(i==0) {
-			if(p!=oldp) {
-				if(p > textend)
-					p=textend;
-				if(p<textbuf)
-					p=textbuf;
-				if(p!=oldp) {
-					vmem_puttext(left+1+pad,top+2+pad,left+width-2-pad,top+height-1-pad,p);
-					oldp=p;
-				}
-				gotoxy(SCROLL_UP_BUTTON_X, SCROLL_UP_BUTTON_Y);
-				textattr(api->lclr|(api->bclr<<4));
-				putch(p > textbuf ? api->chars->up_arrow : ' ');
-				putch(p < textend ? api->chars->down_arrow : ' ');
-			}
-			if(kbwait()) {
-				j=inkey();
-				if(j==CIO_KEY_MOUSE) {
-					/* Ignores return value to avoid hitting help/exit hotspots */
-					if(uifc_getmouse(&mevnt)>=0) {
-						/* Clicked Scroll Up */
-						if(mevnt.startx>=left+pad
-								&& mevnt.startx<=left+pad+width-3
-								&& mevnt.starty>=top+pad+1
-								&& mevnt.starty<=top+pad+(height/2)-2
-								&& mevnt.event==CIOLIB_BUTTON_1_CLICK) {
-							p -= ((width-2-pad-pad)*(height-5));
-							continue;
-						}
-						if(mevnt.startx == SCROLL_UP_BUTTON_X && mevnt.starty == SCROLL_UP_BUTTON_Y
-							&& mevnt.event==CIOLIB_BUTTON_1_CLICK) {
-							p -= ((width-2-pad-pad));
-							continue;
-						}
-						/* Clicked Scroll Down */
-						if(mevnt.startx>=left+pad
-								&& mevnt.startx<=left+pad+width
-								&& mevnt.starty<=top+pad+height-2
-								&& mevnt.starty>=top+pad+height-(height/2+1)-2
-								&& mevnt.event==CIOLIB_BUTTON_1_CLICK) {
-							p += (width-2-pad-pad)*(height-5);
-							continue;
-						}
-						if(mevnt.startx == SCROLL_DN_BUTTON_X && mevnt.starty == SCROLL_DN_BUTTON_Y
-							&& mevnt.event==CIOLIB_BUTTON_1_CLICK) {
-							p += ((width-2-pad-pad));
-							continue;
-						}
-						/* Scroll up */
-						if (mevnt.event == CIOLIB_BUTTON_4_PRESS) {
-							p = p-((width-2-pad-pad));
-							continue;
-						}
-						/* Scroll down */
-						if (mevnt.event == CIOLIB_BUTTON_5_PRESS) {
-							p += ((width-2-pad-pad));
-							continue;
-						}
-						/* Non-click events (drag, move, multiclick, etc) */
-						if(mevnt.event!=CIOLIB_BUTTON_CLICK(CIOLIB_BUTTON_NUMBER(mevnt.event)))
-							continue;
-						i=1;
-					}
-					continue;
-				}
-				switch(j) {
-					case CIO_KEY_HOME:	/* home */
-						p = textbuf;
-						break;
-
-					case CIO_KEY_UP:	/* up arrow */
-						p = p-((width-2-pad-pad));
-						break;
-
-					case CIO_KEY_PPAGE:	/* PgUp */
-						p = p-((width-2-pad-pad)*(height-5));
-						break;
-
-					case CIO_KEY_NPAGE:	/* PgDn */
-						p += (width-2-pad-pad)*(height-5);
-						break;
-
-					case CIO_KEY_END:	/* end */
-						p = textend;
-						break;
-
-					case CIO_KEY_DOWN:	/* dn arrow */
-						p += ((width-2-pad-pad));
-						break;
-
-					case CIO_KEY_QUIT:
-						api->exit_flags |= UIFC_XF_QUIT;
-						// Fall-through
-					default:
-						i=1;
-				}
-			}
-			mswait(1);
-		}
-
-		vmem_puttext(1,1,api->scrn_width,api->scrn_len,tmp_buffer);
-	}
-	free(textbuf);
-	if(is_redraw)			/* Force redraw of menu also. */
-		reset_dynamic();
-	_setcursortype(cursor);
-}
-
-/************************************************************/
-/* Help (F1) key function. Uses helpbuf as the help input.	*/
-/************************************************************/
-static void help(void)
-{
-	char hbuf[HELPBUF_SIZE],str[256];
-    char *p;
-	unsigned short line;	/* This must be 16-bits */
-	long l;
-	FILE *fp;
-
-	api->exit_flags = 0;
-	if(api->helpbuf==NULL && api->helpixbfile[0]==0)
-		return;
-
-	_setcursortype(_NOCURSOR);
-
-    if(!api->helpbuf) {
-        if((fp=fopen(api->helpixbfile,"rb"))==NULL)
-            SAFEPRINTF(hbuf,"ERROR: Cannot open help index: %s"
-                ,api->helpixbfile);
-        else {
-            p=strrchr(helpfile,'/');
-            if(p==NULL)
-                p=strrchr(helpfile,'\\');
-            if(p==NULL)
-                p=helpfile;
-            else
-                p++;
-            l=-1L;
-            while(!feof(fp)) {
-                if(fread(str,12,1,fp)!=1)
-                    break;
-                str[12]=0;
-                if(fread(&line,2,1,fp)!=1)
-					break;
-                if(stricmp(str,p) || line!=helpline) {
-                    if(fseek(fp,4,SEEK_CUR)==0)
-						break;
-                    continue;
-                }
-                if(fread(&l,4,1,fp)!=1)
-					l=-1L;
-                break;
-            }
-            fclose(fp);
-            if(l==-1L)
-                SAFEPRINTF3(hbuf,"ERROR: Cannot locate help key (%s:%u) in: %s"
-                    ,p,helpline,api->helpixbfile);
-            else {
-                if((fp=fopen(api->helpdatfile,"rb"))==NULL)
-                    SAFEPRINTF(hbuf,"ERROR: Cannot open help file: %s"
-                        ,api->helpdatfile);
-                else {
-                    if(fseek(fp,l,SEEK_SET)!=0) {
-						SAFEPRINTF4(hbuf,"ERROR: Cannot seek to help key (%s:%u) at %ld in: %s"
-							,p,helpline,l,api->helpixbfile);
-					}
-					else {
-						if(fread(hbuf,1,HELPBUF_SIZE,fp)<1) {
-							SAFEPRINTF4(hbuf,"ERROR: Cannot read help key (%s:%u) at %ld in: %s"
-								,p,helpline,l,api->helpixbfile);
-						}
-					}
-					fclose(fp);
-				}
-			}
-		}
-		showbuf(WIN_MID|WIN_HLP, 0, 0, 76, api->scrn_len, "Online Help", hbuf, NULL, NULL);
-	}
-    else {
-		showbuf(WIN_MID|WIN_HLP, 0, 0, 76, api->scrn_len, "Online Help", api->helpbuf, NULL, NULL);
-	}
-}
diff --git a/uifc/uifctest.c b/uifc/uifctest.c
deleted file mode 100644
index 490ad39a784ba1951bb0765d57100d299f4a2953..0000000000000000000000000000000000000000
--- a/uifc/uifctest.c
+++ /dev/null
@@ -1,187 +0,0 @@
-/* uedit.c */
-
-/* Synchronet for *nix user editor */
-
-/* $Id: uifctest.c,v 1.9 2020/08/16 20:37:08 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This program 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; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU General Public License for more details: gpl.txt or			*
- * http://www.fsf.org/copyleft/gpl.html										*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <signal.h>
-#include <stdio.h>
-/* #include "curs_fix.h" */
-#include "filepick.h"
-#include "uifc.h"
-
-/********************/
-/* Global Variables */
-/********************/
-uifcapi_t uifc; /* User Interface (UIFC) Library API */
-char YesStr[]="Yes";
-char NoStr[]="No";
-char *ok[2]={"OK",""};
-
-int main(int argc, char** argv)  {
-	char**	opt;
-	char**	mopt;
-	int		main_dflt=0;
-	int		main_bar=0;
-	char	revision[16];
-	char	str[256],ctrl_dir[41],*p;
-	char	title[256];
-	int		i,j;
-	int		done;
-	int		last;
-	int		edtuser=0;
-	char	longtitle[1024];
-	struct file_pick fper;
-	/******************/
-	/* Ini file stuff */
-	/******************/
-	char	ini_file[MAX_PATH+1];
-	FILE*				fp;
-
-	sscanf("$Revision: 1.9 $", "%*s %s", revision);
-
-    printf("\nSynchronet UIFC Test Suite Copyright "
-        "Rob Swindell\n");
-
-    memset(&uifc,0,sizeof(uifc));
-
-	uifc.esc_delay=500;
-
-	for(i=1;i<argc;i++) {
-        if(argv[i][0]=='-')
-            switch(toupper(argv[i][1])) {
-                case 'C':
-        			uifc.mode|=UIFC_COLOR;
-                    break;
-                case 'L':
-                    uifc.scrn_len=atoi(argv[i]+2);
-                    break;
-                case 'E':
-                    uifc.esc_delay=atoi(argv[i]+2);
-                    break;
-				case 'I':
-					/* Set up ex-ascii codes */
-					uifc.mode|=UIFC_IBM;
-					break;
-                default:
-                    printf("\nusage: %s [ctrl_dir] [options]"
-                        "\n\noptions:\n\n"
-                        "-c  =  force color mode\n"
-                        "-e# =  set escape delay to #msec\n"
-						"-i  =  force IBM charset\n"
-                        "-l# =  set screen lines to #\n"
-						,argv[0]
-                        );
-        			exit(0);
-		}
-		if(atoi(argv[i]))
-			edtuser=atoi(argv[i]);
-    }
-
-#ifdef __unix__
-	signal(SIGPIPE, SIG_IGN);
-#endif
-
-	uifc.size=sizeof(uifc);
-#ifdef USE_CURSES
-	i=uifcinic(&uifc);  /* curses */
-#else
-	i=uifcini32(&uifc);  /* curses */
-#endif
-	if(i!=0) {
-		printf("uifc library init returned error %d\n",i);
-		exit(1);
-	}
-
-	opt=(char **)malloc(sizeof(char *)*(MAX_OPTS+1));
-	for(i=0;i<(MAX_OPTS+1);i++)
-		opt[i]=(char *)malloc(MAX_OPLN);
-
-	mopt=(char **)malloc(sizeof(char *)*MAX_OPTS);
-	for(i=0;i<MAX_OPTS;i++)
-		mopt[i]=(char *)malloc(MAX_OPLN);
-
-	sprintf(title,"Synchronet Test Suite");
-	if(uifc.scrn(title)) {
-		printf(" USCRN (len=%d) failed!\n",uifc.scrn_len+1);
-		return(1);
-	}
-
-	strcpy(mopt[0],"Long Title");
-	strcpy(mopt[1],"String Input");
-	strcpy(mopt[2],"File picker");
-	mopt[3][0]=0;
-
-	uifc.helpbuf=	"`Test Suite:`\n"
-					"\nToDo: Add Help";
-
-	while(1) {
-		j=uifc.list(WIN_L2R|WIN_ESC|WIN_ACT|WIN_DYN|WIN_ORG,0,5,70,&main_dflt,&main_bar
-			,title,mopt);
-
-		if(j <= -2)
-			continue;
-
-		if(j==-1) {
-			uifc.bail();
-			return(0);
-		}
-
-		if(j==0) {
-			/* Long Title */
-			strcpy(longtitle,"This is a long title...");
-			for(p=strchr(longtitle,0);p<longtitle+sizeof(longtitle)-1;p++)
-				*p='.';
-			*p=0;
-			done=0;
-			uifc.list(WIN_ORG|WIN_MID|WIN_ACT,0,0,0,&i,0,longtitle,ok);
-		}
-		if(j==1) {
-			/* String input */
-			strcpy(longtitle,"This is a test if string input... enter/edit this field");
-			uifc.input(WIN_MID|WIN_NOBRDR,0,0,"Input",longtitle,sizeof(longtitle),K_EDIT);
-			uifc.showbuf(WIN_MID, 0, 0, uifc.scrn_width-4, uifc.scrn_len-4, "Result:", longtitle, NULL, NULL);
-		}
-		if(j==2) {
-			/* File picker */
-			if(filepick(&uifc, "Bob", &fper, NULL, NULL, UIFC_FP_ALLOWENTRY)!=-1) {
-				if(fper.files==1) {
-					sprintf(str,"File selected: %-.200s",fper.selected[0]);
-					uifc.msg(str);
-				}
-				filepick_free(&fper);
-			}
-		}
-	}
-}
diff --git a/uifc/uifcx.c b/uifc/uifcx.c
deleted file mode 100644
index 766f67527ea7393ca640a913e25a1dbf1c1cb559..0000000000000000000000000000000000000000
--- a/uifc/uifcx.c
+++ /dev/null
@@ -1,524 +0,0 @@
-/* Standard I/O Implementation of UIFC (user interface) library */
-
-/* $Id: uifcx.c,v 1.41 2020/08/16 20:37:08 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include "genwrap.h"
-#include "gen_defs.h"
-#include "xpprintf.h"
-#include "uifc.h"
-
-#include <sys/types.h>
-
-#ifdef __unix__
-/*	#include <sys/time.h> why? */
-	#include <unistd.h>
-#endif
-
-static char *helpfile=0;
-static uint helpline=0;
-static uifcapi_t* api;
-
-/* Prototypes */
-static void help(void);
-
-/* API routines */
-static void uifcbail(void);
-static int uscrn(const char *str);
-static int ulist(int mode, int left, int top, int width, int *dflt, int *bar
-	,const char *title, char **option);
-static int uinput(int imode, int left, int top, const char *prompt, char *str
-	,int len ,int kmode);
-static int umsg(const char *str);
-static int umsgf(char *str, ...);
-static BOOL confirm(char *str, ...);
-static BOOL deny(char *str, ...);
-static void upop(const char *str);
-static void sethelp(int line, char* file);
-
-/****************************************************************************/
-/****************************************************************************/
-static int uprintf(int x, int y, unsigned attr, char *fmat, ...)
-{
-	va_list argptr;
-	char str[MAX_COLS + 1];
-	int i;
-
-	va_start(argptr, fmat);
-	vsprintf(str, fmat, argptr);
-	va_end(argptr);
-	i = printf("%s", str);
-	return(i);
-}
-
-
-/****************************************************************************/
-/* Initialization function, see uifc.h for details.							*/
-/* Returns 0 on success.													*/
-/****************************************************************************/
-int uifcinix(uifcapi_t* uifcapi)
-{
-	static char* yesNoOpts[] = {"Yes", "No", NULL};
-
-    if(uifcapi==NULL || uifcapi->size!=sizeof(uifcapi_t))
-        return(-1);
-
-    api=uifcapi;
-
-	if (api->yesNoOpts == NULL)
-		api->yesNoOpts = yesNoOpts; // Not currently used in this interface instance
-
-    /* install function handlers */
-    api->bail=uifcbail;
-    api->scrn=uscrn;
-    api->msg=umsg;
-	api->msgf=umsgf;
-	api->confirm=confirm;
-	api->deny=deny;
-    api->pop=upop;
-    api->list=ulist;
-    api->input=uinput;
-    api->sethelp=sethelp;
-    api->showhelp=help;
-	api->showbuf=NULL;
-	api->timedisplay=NULL;
-	api->printf = uprintf;
-
-    setvbuf(stdin,NULL,_IONBF,0);
-    setvbuf(stdout,NULL,_IONBF,0);
-    api->scrn_len=24;
-	api->initialized=TRUE;
-
-    return(0);
-}
-
-/****************************************************************************/
-/* Exit/uninitialize UIFC implementation.									*/
-/****************************************************************************/
-void uifcbail(void)
-{
-	api->initialized=FALSE;
-}
-
-/****************************************************************************/
-/* Clear screen, fill with background attribute, display application title.	*/
-/* Returns 0 on success.													*/
-/****************************************************************************/
-int uscrn(const char *str)
-{
-    return(0);
-}
-
-static int getstr(char* str, int maxlen)
-{
-	char 	ch;
-    int		len=0;
-#ifdef __unix__
-	int		istty;
-
-	istty=isatty(fileno(stdin));
-#endif
-    while(1) {
-		if(fread(&ch,1,1,stdin)!=1)
-			break;
-#ifdef __unix__
-		if(!istty)  {
-			printf("%c",ch);
-			fflush(stdout);
-		}
-#endif
-        if(ch=='\r' || ch=='\n')	/* enter */
-        	break;
-        if(ch=='\b' || ch==DEL) {	/* backspace */
-        	if(len) len--;
-            continue;
-    	}
-        if(len<maxlen)
-			str[len++]=ch;
-	}
-    str[len]=0;	/* we need The Terminator */
-
-	return(len);
-}
-
-/****************************************************************************/
-/* Local utility function.													*/
-/****************************************************************************/
-static int which(char* prompt, int max)
-{
-    char    str[41];
-    int     i;
-
-    while(1) {
-        printf("%s which (1-%d): ",prompt,max);
-        str[0]=0;
-		getstr(str,sizeof(str)-1);
-        i=atoi(str);
-        if(i>0 && i<=max)
-            return(i-1);
-    }
-}
-
-/****************************************************************************/
-/* General menu function, see uifc.h for details.							*/
-/****************************************************************************/
-int ulist(int mode, int left, int top, int width, int *cur, int *bar
-	, const char *title, char **option)
-{
-    char str[128];
-	int i,opts;
-    int optnumlen;
-    int yesno=0;
-    int lines;
-
-    for(opts=0;opts<MAX_OPTS;opts++)
-    	if(option[opts]==NULL || option[opts][0]==0)
-    		break;
-
-    if((*cur)>=opts)
-        (*cur)=opts-1;			/* returned after scrolled */
-
-    if((*cur)<0)
-        (*cur)=0;
-
-    if(opts>999)
-        optnumlen=4;
-    else if(opts>99)
-        optnumlen=3;
-    else if(opts>9)
-        optnumlen=2;
-    else
-        optnumlen=1;
-    while(1) {
-        if(opts==2 && !stricmp(option[0],"Yes") && !stricmp(option[1],"No")) {
-            yesno=1;
-            printf("%s? ",title);
-        } else {
-            printf("\n[%s]\n",title);
-            lines=2;
-            for(i=0;i<opts;i++) {
-                printf("%*d: %s\n",optnumlen,i+1,option[i]);
-                lines++;
-                if(!(lines%api->scrn_len)) {
-                    printf("More? ");
-                    str[0]=0;
-                    getstr(str,sizeof(str)-1);
-                    if(toupper(*str)=='N')
-                        break;
-                }
-            }
-            str[0]=0;
-            if(mode&WIN_COPY)
-                strcat(str,", Copy");
-			if(mode&WIN_CUT)
-				strcat(str,", X-Cut");
-            if(mode&WIN_PASTE)
-                strcat(str,", Paste");
-            if(mode&WIN_INS)
-                strcat(str,", Add");
-            if(mode&WIN_DEL)
-                strcat(str,", Delete");
-            printf("\nWhich (Help%s or Quit): ",str);
-        }
-        str[0]=0;
-        getstr(str,sizeof(str)-1);
-
-        truncsp(str);
-        i=atoi(str);
-        if(i>0 && i<=opts) {
-            *cur=--i;
-            return(*cur);
-        }
-        i=atoi(str+1);
-        switch(toupper(*str)) {
-            case 0:
-            case ESC:
-            case 'Q':
-                printf("Quit\n");
-                return(-1);
-            case 'Y':
-                if(!yesno)
-                    break;
-                printf("Yes\n");
-                return(0);
-            case 'N':
-                if(!yesno)
-                    break;
-                printf("No\n");
-                return(1);
-            case 'H':
-            case '?':
-                printf("Help\n");
-                help();
-                break;
-            case 'A':   /* Add/Insert */
-				if(!(mode&WIN_INS))
-					break;
-				if(!opts)
-    				return(MSK_INS);
-                if(i>0 && i<=opts+1)
-        			return((i-1)|MSK_INS);
-                return(which("Add before",opts+1)|MSK_INS);
-            case 'D':   /* Delete */
-				if(!(mode&WIN_DEL))
-					break;
-				if(!opts)
-    				break;
-                if(i>0 && i<=opts)
-        			return((i-1)|MSK_DEL);
-                if(opts==1)
-                    return(MSK_DEL);
-                return(which("Delete",opts)|MSK_DEL);
-            case 'C':   /* Copy */
-				if(!(mode&WIN_COPY))
-					break;
-				if(!opts)
-    				break;
-                if(i>0 && i<=opts)
-        			return((i-1)|MSK_COPY);
-                if(opts==1)
-                    return(MSK_COPY);
-                return(which("Copy",opts)|MSK_COPY);
-            case 'X':   /* Cut */
-				if(!(mode&WIN_CUT))
-					break;
-				if(!opts)
-    				break;
-                if(i>0 && i<=opts)
-        			return((i-1)|MSK_CUT);
-                if(opts==1)
-                    return(MSK_CUT);
-                return(which("Cut",opts)|MSK_CUT);
-            case 'P':   /* Paste */
-				if(!(mode&WIN_PASTE))
-					break;
-				if(!opts)
-    				break;
-                if(i>0 && i<=opts+1)
-        			return((i-1)|MSK_PASTE);
-                if(opts==1)
-                    return(MSK_PASTE);
-                return(which("Insert pasted item before",opts+1)|MSK_PASTE);
-        }
-    }
-}
-
-/*************************************************************************/
-/* This function is a windowed input string input routine.               */
-/*************************************************************************/
-int uinput(int mode, int left, int top, const char *prompt, char *outstr,
-	int max, int kmode)
-{
-    char str[256];
-
-    while(1) {
-        printf("%s (maxlen=%u): ",prompt,max);
-
-        getstr(str,max);
-        truncsp(str);
-        if(strcmp(str,"?"))
-            break;
-        help();
-    }
-	if(strcmp(outstr,str))
-		api->changes=1;
-    if(kmode&K_UPPER)	/* convert to uppercase? */
-    	strupr(str);
-    strcpy(outstr,str);
-    return(strlen(outstr));
-}
-
-/****************************************************************************/
-/* Displays the message 'str' and waits for the user to hit ENTER           */
-/****************************************************************************/
-int umsg(const char *str)
-{
-	int ch;
-	printf("%s\nHit enter to continue:",str);
-	ch = getchar();
-	return ch == '\r' || ch == '\n';
-}
-
-/* Same as above, using printf-style varargs */
-int umsgf(char* fmt, ...)
-{
-	int retval = -1;
-	va_list va;
-	char* buf = NULL;
-
-	va_start(va, fmt);
-	vasprintf(&buf, fmt, va);
-	va_end(va);
-	if(buf != NULL) {
-		retval = umsg(buf);
-		free(buf);
-	}
-	return retval;
-}
-
-BOOL confirm(char* fmt, ...)
-{
-	int ch;
-	va_list va;
-
-	va_start(va, fmt);
-	vprintf(fmt, va);
-	va_end(va);
-	printf(" (Y/n)? ");
-	ch = getchar();
-	return tolower(ch) != 'n' && ch != EOF;
-}
-
-BOOL deny(char* fmt, ...)
-{
-	int ch;
-	va_list va;
-
-	va_start(va, fmt);
-	vprintf(fmt, va);
-	va_end(va);
-	printf(" (N/y)? ");
-	ch = getchar();
-	return tolower(ch) != 'y';
-}
-
-/****************************************************************************/
-/* Status popup/down function, see uifc.h for details.						*/
-/****************************************************************************/
-void upop(const char *str)
-{
-	static int len;
-
-    if(str==NULL)
-        printf("\r%*s\r", len, "");
-    else
-        len = printf("\r%s\r", str) - 2;
-}
-
-/****************************************************************************/
-/* Sets the current help index by source code file and line number.			*/
-/****************************************************************************/
-void sethelp(int line, char* file)
-{
-    helpline=line;
-    helpfile=file;
-}
-
-static void uputs(char* ptr)
-{
-	while(*ptr) {
-		if(*ptr>2)
-			putchar(*ptr);
-		ptr++;
-	}
-	putchar('\n');
-}
-
-/****************************************************************************/
-/* Help function.															*/
-/****************************************************************************/
-void help()
-{
-	char hbuf[HELPBUF_SIZE],str[256];
-    char *p;
-	unsigned short line;
-	long l;
-	FILE *fp;
-
-    printf("\n");
-    if(!api->helpbuf) {
-        if((fp=fopen(api->helpixbfile,"rb"))==NULL)
-            SAFEPRINTF(hbuf,"ERROR: Cannot open help index: %.128s"
-                ,api->helpixbfile);
-        else {
-            p=strrchr(helpfile,'/');
-            if(p==NULL)
-                p=strrchr(helpfile,'\\');
-            if(p==NULL)
-                p=helpfile;
-            else
-                p++;
-            l=-1L;
-            while(!feof(fp)) {
-                if(fread(str,12,1,fp)!=1)
-                    break;
-                str[12]=0;
-                if(fread(&line,2,1,fp)!=1)
-					break;
-                if(stricmp(str,p) || line!=helpline) {
-                    if(fseek(fp,4,SEEK_CUR)==0)
-						break;
-                    continue;
-                }
-                if(fread(&l,4,1,fp)!=1)
-					l=-1L;
-                break;
-            }
-            fclose(fp);
-            if(l==-1L)
-                SAFEPRINTF3(hbuf,"ERROR: Cannot locate help key (%s:%u) in: %.128s"
-                    ,p,helpline,api->helpixbfile);
-            else {
-                if((fp=fopen(api->helpdatfile,"rb"))==NULL)
-                    SAFEPRINTF(hbuf,"ERROR: Cannot open help file: %.128s"
-                        ,api->helpdatfile);
-                else {
-                    if(fseek(fp,l,SEEK_SET)!=0) {
-						SAFEPRINTF4(hbuf,"ERROR: Cannot seek to help key (%s:%u) at %ld in: %.128s"
-							,p,helpline,l,api->helpixbfile);
-					}
-					else {
-						if(fread(hbuf,1,HELPBUF_SIZE,fp)<1) {
-							SAFEPRINTF4(hbuf,"ERROR: Cannot read help key (%s:%u) at %ld in: %.128s"
-								,p,helpline,l,api->helpixbfile);
-						}
-						hbuf[HELPBUF_SIZE-1] = 0;
-					}
-					fclose(fp);
-				}
-			}
-		}
-		uputs(hbuf);
-		if(strlen(hbuf)>200) {
-			printf("Hit enter");
-			getstr(str,sizeof(str)-1);
-		}
-	}
-    else {
-		uputs(api->helpbuf);
-		if(strlen(api->helpbuf)>200) {
-			printf("Hit enter");
-			getstr(str,sizeof(str)-1);
-		}
-	}
-}
diff --git a/xpdev/CMakeLists.txt b/xpdev/CMakeLists.txt
deleted file mode 100644
index cb753fd6786b203c976dc0ef1b1475c33961e8d1..0000000000000000000000000000000000000000
--- a/xpdev/CMakeLists.txt
+++ /dev/null
@@ -1,189 +0,0 @@
-project (XPDev C)
-
-cmake_minimum_required(VERSION 3.11)
-
-INCLUDE (CheckIncludeFiles)
-INCLUDE (CheckFunctionExists)
-find_package(Threads)
-find_package(X11)
-if(NOT WIN32)
-	find_package(PkgConfig)
-	pkg_check_modules(SDL2 sdl2)
-endif()
-
-set(SOURCE
-    conwrap.c
-    dat_file.c
-    datewrap.c
-    dirwrap.c
-    filewrap.c
-    genwrap.c
-    ini_file.c
-    link_list.c
-    msg_queue.c
-    multisock.c
-    netwrap.c
-    semfile.c
-    semwrap.c
-    sockwrap.c
-    str_list.c
-    strwrap.c
-    threadwrap.c
-    unicode.c
-    xp_dl.c
-    xpbeep.c
-    xpdatetime.c
-    xpmap.c
-    xpprintf.c
-    xptime.c
-)
-
-set(HEADER
-	conwrap.h
-	cp437defs.h
-	dat_file.h
-	datewrap.h
-	dirwrap.h
-	eventwrap.h
-	filewrap.h
-	gen_defs.h
-	genwrap.h
-	haproxy.h
-	ini_file.h
-	link_list.h
-	msg_queue.h
-	multisock.h
-	netwrap.h
-	petdefs.h
-	semfile.h
-	semwrap.h
-	sockwrap.h
-	str_list.h
-	strwrap.h
-	threadwrap.h
-	unicode_defs.h
-	unicode.h
-	wrapdll.h
-	xp_dl.h
-	xp_syslog.h
-	xpbeep.h
-	xpdatetime.h
-	xpendian.h
-	xpevent.h
-	xpmap.h
-	xpprintf.h
-	xpsem.h
-)
-
-if(NOT WIN32)
-	list(APPEND SOURCE xpevent.c)
-    list(APPEND SOURCE xpsem.c)
-endif()
-
-if(SDL2_INCLUDE_DIRS)
-	list(APPEND SOURCE sdlfuncs.c)
-	if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
-		list(APPEND SOURCE SDLMain.m)
-	endif()
-	if(WIN32)
-		list(APPEND SOURCE SDL_win32_main.c)
-	endif()
-endif()
-
-add_library(xpdev OBJECT ${SOURCE})
-target_include_directories(xpdev PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
-target_include_directories(xpdev PUBLIC ${XPDevPlus_BINARY_DIR})
-target_link_libraries(xpdev ${CMAKE_DL_LIBS})
-
-CHECK_INCLUDE_FILES(inttypes.h HAS_INTTYPES_H)
-CHECK_INCLUDE_FILES(stdint.h HAS_STDINT_H)
-set(LINK_LIST_THREADSAFE TRUE PARENT_SCOPE)
-
-CHECK_INCLUDE_FILES(sys/soundcard.h HAS_SYS_SOUNDCARD_H) 
-CHECK_INCLUDE_FILES(soundcard.h HAS_SOUNDCARD_H) 
-CHECK_INCLUDE_FILES(linux/inttypes.h HAS_LINUX_SOUNDCARD_H) 
-if(HAS_SYS_SOUNDCARD_H)
-    target_compile_definitions(xpdev PRIVATE SOUNDCARD_H_IN=1)
-elseif(HAS_SOUNDCARD_H)
-    target_compile_definitions(xpdev PRIVATE SOUNDCARD_H_IN=2)
-elseif(HAS_LINUX_SOUNDCARD_H)
-    target_compile_definitions(xpdev PRIVATE SOUNDCARD_H_IN=3)
-endif()
-
-CHECK_INCLUDE_FILES(dev/speaker/speaker.h HAS_DEV_SPEAKER_SPEAKER_H)
-if(HAS_DEV_SPEAKER_SPEAKER_H)
-	target_compile_definitions(xpdev PRIVATE HAS_DEV_SPEAKER_SPEAKER_H)
-endif()
-CHECK_INCLUDE_FILES(dev/machine/speaker.h HAS_DEV_MACHINE_SPEAKER_H)
-if(HAS_DEV_MACHINE_SPEAKER_H)
-	target_compile_definitions(xpdev PRIVATE HAS_DEV_MACHINE_SPEAKER_H)
-endif()
-CHECK_INCLUDE_FILES(dev/speaker/spkr.h HAS_DEV_MACHINE_SPKR_H)
-if(HAS_DEV_MACHINE_SPKR_H)
-	target_compile_definitions(xpdev PRIVATE HAS_DEV_MACHINE_SPKR_H)
-endif()
-
-if(WIN32)
-	target_compile_definitions(xpdev PUBLIC _WIN32 _WIN32_WINNT=0x0501 WINVER=0x0501 MSVCRT_VERSION=0x0501 _WIN32_IE=0x0500)
-	target_link_libraries(xpdev iphlpapi ws2_32 winmm netapi32)
-elseif(CMAKE_SYSTEM_NAME STREQUAL "Haiku")
-	target_link_libraries(xpdev network m)
-elseif(CMAKE_SYSTEM_NAME STREQUAL "NetBSD")
-	target_link_libraries(xpdev ossaudio m)
-elseif(CMAKE_SYSTEM_NAME STREQUAL "OpenBSD")
-	target_link_libraries(xpdev ossaudio m)
-elseif(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
-	target_link_libraries(xpdev socket m)
-else()
-	target_link_libraries(xpdev m)
-endif()
-target_link_libraries(xpdev ${CMAKE_THREAD_LIBS_INIT})
-
-if(EXISTS /dev/urandom)
-	target_compile_definitions(xpdev PRIVATE HAS_DEV_URANDOM URANDOM_DEV="/dev/urandom")
-endif()
-if(EXISTS /dev/random)
-	target_compile_definitions(xpdev PRIVATE HAS_DEV_RANDOM RANDOM_DEV="/dev/random")
-endif()
-
-CHECK_FUNCTION_EXISTS(random HAS_RANDOM_FUNC) 
-if(HAS_RANDOM_FUNC)
-	target_compile_definitions(xpdev PRIVATE HAS_RANDOM_FUNC)
-endif()
-
-CHECK_FUNCTION_EXISTS(srandomdev HAS_SRANDOMDEV_FUNC)
-if(HAS_SRANDOMDEV_FUNC)
-	target_compile_definitions(xpdev PRIVATE HAS_SRANDOMDEV_FUNC)
-endif()
-
-if(SDL2_INCLUDE_DIRS)
-	target_include_directories(xpdev PUBLIC ${SDL2_INCLUDE_DIRS})
-	set(WITH_SDL_AUDIO TRUE PARENT_SCOPE)
-endif()
-
-if(X11_FOUND)
-	target_include_directories(xpdev PRIVATE ${X11_INCLUDE_DIR})
-endif()
-
-if (PKG_CONFIG_FOUND)
-	pkg_check_modules(PORTAUDIO2 portaudio-2.0)
-	if(PORTAUDIO2_FOUND)
-		set(PORTAUDIO_FOUND TRUE)
-		set(PORTAUDIO_LIBS PORTAUDIO2_LIBS)
-		set(PORTAUDIO_CFLAGS PORTAUDIO2_CFLAGS)
-	else()
-		find_path(PORTAUDIO_INCLUDEDIR portaudio.h)
-		if(PORTAUDIO_INCLUDEDIR)
-			set(PORTAUDIO_FOUND TRUE)
-		endif()
-	endif()
-endif()
-
-if(PORTAUDIO_FOUND)
-	target_include_directories(xpdev PRIVATE ${PORTAUDIO_INCLUDEDIR})
-endif()
-
-CHECK_INCLUDE_FILES(alsa/asoundlib.h USE_ALSA_SOUND)
-if(USE_ALSA_SOUND)
-    target_compile_definitions(xpdev PRIVATE USE_ALSA_SOUND)
-endif()
diff --git a/xpdev/Makefile b/xpdev/Makefile
deleted file mode 100644
index d6aafc602aec1c2c09951f54fbb3d576dfed0c2a..0000000000000000000000000000000000000000
--- a/xpdev/Makefile
+++ /dev/null
@@ -1,53 +0,0 @@
-# To build the .dll files, use "make [OPTIONS] DLLIBS=1 dl"
-
-SRC_ROOT	=	..
-!include $(SRC_ROOT)/build/Common.bmake
-
-CFLAGS	=	$(CFLAGS) $(XPDEV_CFLAGS)
-MT_CFLAGS	=	$(MT_CFLAGS) $(XPDEV-MT_CFLAGS)
-
-#The following is necessary only when DLL-exporting wrapper functions
-!ifdef DLLIBS
-CFLAGS	=	$(CFLAGS) -DWRAPPER_EXPORTS=1
-!endif
-
-MT_CFLAGS = $(MT_CFLAGS) -DLINK_LIST_THREADSAFE
-
-!ifdef USE_SDL_AUDIO
-MTOBJS		= $(MTOBJS) $(MTOBJODIR)$(DIRSEP)SDL_win32_main$(OFILE)
-MTOBJS		= $(MTOBJS) $(MTOBJODIR)$(DIRSEP)sdlfuncs$(OFILE)
-OBJS		= $(OBJS) $(OBJODIR)$(DIRSEP)SDL_win32_main$(OFILE)
-OBJS		= $(OBJS) $(OBJODIR)$(DIRSEP)sdlfuncs$(OFILE)
-!endif
-
-$(WRAPTEST): $(XPDEV-MT_LIB_BUILD) $(TESTOBJS) $(EXEODIR)
-	@echo Linking $<
-	$(QUIET)$(CC) $(LDFLAGS) $(MT_LDFLAGS) $(XPDEV-MT_CFLAGS) $(XPDEV-MT_LDFLAGS) -e$@ $(TESTOBJS) $(XPDEV-MT_LIBS)
-
-$(XPTIME): $(XPDEV_LIB_BUILD) $(OBJODIR)$(DIRSEP)xptime$(OFILE)
-	@echo Linking $<
-	$(QUIET)$(CC) $(LDFLAGS) $(XPDEV-CFLAGS) $(XPDEV-LDFLAGS) -e$@ $** $(XPDEV-LIBS)
-
-$(XPDEV_LIB_BUILD): $(OBJS)
-	@echo Creating $< ...
-	-$(QUIET)$(DELETE) $@
-	&$(QUIET)tlib $@ +$**
-
-$(XPDEV_SHLIB_BUILD): $(OBJS)
-	@echo Linking $@
-	$(QUIET)$(MKSHLIB) $(MT_LDFLAGS) -lGi -e$@ $(LDFLAGS) $(SHLIBOPTS) @&&|
-	$**
-	cw32.lib
-|
-
-$(XPDEV-MT_LIB_BUILD): $(MTOBJS)
-	@echo Creating $< ...
-	-$(QUIET)$(DELETE) $@
-	&$(QUIET)tlib $@ +$**
-
-$(XPDEV-MT_SHLIB_BUILD): $(MTOBJS)
-	@echo Linking $@
-	$(QUIET)$(MKSHLIB) $(MT_LDFLAGS) -lGi -e$@ $(LDFLAGS) $(SHLIBOPTS) @&&|
-	$**
-	cw32mt.lib
-|
diff --git a/xpdev/SDLMain.h b/xpdev/SDLMain.h
deleted file mode 100644
index 4683df57a5e61fc41b189e67245f4a0a32d7552d..0000000000000000000000000000000000000000
--- a/xpdev/SDLMain.h
+++ /dev/null
@@ -1,11 +0,0 @@
-/*   SDLMain.m - main entry point for our Cocoa-ized SDL app
-       Initial Version: Darrell Walisser <dwaliss1@purdue.edu>
-       Non-NIB-Code & other changes: Max Horn <max@quendi.de>
-
-    Feel free to customize this file to suit your needs
-*/
-
-#import <Cocoa/Cocoa.h>
-
-@interface SDLMain : NSObject
-@end
diff --git a/xpdev/SDLMain.m b/xpdev/SDLMain.m
deleted file mode 100644
index f9c6394b012da9a7758380695bca74321ce92d06..0000000000000000000000000000000000000000
--- a/xpdev/SDLMain.m
+++ /dev/null
@@ -1,387 +0,0 @@
-/*   SDLMain.m - main entry point for our Cocoa-ized SDL app
-       Initial Version: Darrell Walisser <dwaliss1@purdue.edu>
-       Non-NIB-Code & other changes: Max Horn <max@quendi.de>
-
-    Feel free to customize this file to suit your needs
-*/
-
-#include "SDL.h"
-#include "SDLMain.h"
-#include <sys/param.h> /* for MAXPATHLEN */
-#include <unistd.h>
-
-/* For some reaon, Apple removed setAppleMenu from the headers in 10.4,
- but the method still is there and works. To avoid warnings, we declare
- it ourselves here. */
-@interface NSApplication(SDL_Missing_Methods)
-- (void)setAppleMenu:(NSMenu *)menu;
-@end
-
-/* Use this flag to determine whether we use SDLMain.nib or not */
-#define		SDL_USE_NIB_FILE	0
-
-/* Use this flag to determine whether we use CPS (docking) or not */
-#define		SDL_USE_CPS		1
-#ifdef SDL_USE_CPS
-/* Portions of CPS.h */
-typedef struct CPSProcessSerNum
-{
-	UInt32		lo;
-	UInt32		hi;
-} CPSProcessSerNum;
-
-extern OSErr	CPSGetCurrentProcess( CPSProcessSerNum *psn);
-extern OSErr 	CPSEnableForegroundOperation( CPSProcessSerNum *psn, UInt32 _arg2, UInt32 _arg3, UInt32 _arg4, UInt32 _arg5);
-extern OSErr	CPSSetFrontProcess( CPSProcessSerNum *psn);
-
-#endif /* SDL_USE_CPS */
-
-static int    gArgc;
-static char  **gArgv;
-static BOOL   gFinderLaunch;
-static BOOL   gCalledAppMainline = FALSE;
-
-static NSString *getApplicationName(void)
-{
-    const NSDictionary *dict;
-    NSString *appName = 0;
-
-    /* Determine the application name */
-    dict = (const NSDictionary *)CFBundleGetInfoDictionary(CFBundleGetMainBundle());
-    if (dict)
-        appName = [dict objectForKey: @"CFBundleName"];
-    
-    if (![appName length])
-        appName = [[NSProcessInfo processInfo] processName];
-
-    return appName;
-}
-
-#if SDL_USE_NIB_FILE
-/* A helper category for NSString */
-@interface NSString (ReplaceSubString)
-- (NSString *)stringByReplacingRange:(NSRange)aRange with:(NSString *)aString;
-@end
-#endif
-
-@interface NSApplication (SDLApplication)
-@end
-
-@implementation NSApplication (SDLApplication)
-/* Invoked from the Quit menu item */
-- (void)terminate:(id)sender
-{
-    /* Post a SDL_QUIT event */
-    SDL_Event event;
-    event.type = SDL_QUIT;
-    SDL_PushEvent(&event);
-}
-@end
-
-/* The main class of the application, the application's delegate */
-@implementation SDLMain
-
-/* Set the working directory to the .app's parent directory */
-- (void) setupWorkingDirectory:(BOOL)shouldChdir
-{
-    if (shouldChdir)
-    {
-        char parentdir[MAXPATHLEN];
-        CFURLRef url = CFBundleCopyBundleURL(CFBundleGetMainBundle());
-        CFURLRef url2 = CFURLCreateCopyDeletingLastPathComponent(0, url);
-        if (CFURLGetFileSystemRepresentation(url2, 1, (UInt8 *)parentdir, MAXPATHLEN)) {
-            chdir(parentdir);   /* chdir to the binary app's parent */
-        }
-        CFRelease(url);
-        CFRelease(url2);
-    }
-}
-
-#if SDL_USE_NIB_FILE
-
-/* Fix menu to contain the real app name instead of "SDL App" */
-- (void)fixMenu:(NSMenu *)aMenu withAppName:(NSString *)appName
-{
-    NSRange aRange;
-    NSEnumerator *enumerator;
-    NSMenuItem *menuItem;
-
-    aRange = [[aMenu title] rangeOfString:@"SDL App"];
-    if (aRange.length != 0)
-        [aMenu setTitle: [[aMenu title] stringByReplacingRange:aRange with:appName]];
-
-    enumerator = [[aMenu itemArray] objectEnumerator];
-    while ((menuItem = [enumerator nextObject]))
-    {
-        aRange = [[menuItem title] rangeOfString:@"SDL App"];
-        if (aRange.length != 0)
-            [menuItem setTitle: [[menuItem title] stringByReplacingRange:aRange with:appName]];
-        if ([menuItem hasSubmenu])
-            [self fixMenu:[menuItem submenu] withAppName:appName];
-    }
-}
-
-#else
-
-static void setApplicationMenu(void)
-{
-    /* warning: this code is very odd */
-    NSMenu *appleMenu;
-    NSMenuItem *menuItem;
-    NSString *title;
-    NSString *appName;
-    
-    appName = getApplicationName();
-    appleMenu = [[NSMenu alloc] initWithTitle:@""];
-    
-    /* Add menu items */
-    title = [@"About " stringByAppendingString:appName];
-    [appleMenu addItemWithTitle:title action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""];
-
-    [appleMenu addItem:[NSMenuItem separatorItem]];
-
-    title = [@"Hide " stringByAppendingString:appName];
-    [appleMenu addItemWithTitle:title action:@selector(hide:) keyEquivalent:@""];
-
-    menuItem = (NSMenuItem *)[appleMenu addItemWithTitle:@"Hide Others" action:@selector(hideOtherApplications:) keyEquivalent:@""];
-    [menuItem setKeyEquivalentModifierMask:(NSAlternateKeyMask|NSCommandKeyMask)];
-
-    [appleMenu addItemWithTitle:@"Show All" action:@selector(unhideAllApplications:) keyEquivalent:@""];
-
-    [appleMenu addItem:[NSMenuItem separatorItem]];
-
-    title = [@"Quit " stringByAppendingString:appName];
-    [appleMenu addItemWithTitle:title action:@selector(terminate:) keyEquivalent:@""];
-
-    
-    /* Put menu into the menubar */
-    menuItem = [[NSMenuItem alloc] initWithTitle:@"" action:nil keyEquivalent:@""];
-    [menuItem setSubmenu:appleMenu];
-    [[NSApp mainMenu] addItem:menuItem];
-
-    /* Tell the application object that this is now the application menu */
-    [NSApp setAppleMenu:appleMenu];
-
-    /* Finally give up our references to the objects */
-    [appleMenu release];
-    [menuItem release];
-}
-
-/* Create a window menu */
-static void setupWindowMenu(void)
-{
-    NSMenu      *windowMenu;
-    NSMenuItem  *windowMenuItem;
-    NSMenuItem  *menuItem;
-
-    windowMenu = [[NSMenu alloc] initWithTitle:@"Window"];
-    
-    /* "Minimize" item */
-    menuItem = [[NSMenuItem alloc] initWithTitle:@"Minimize" action:@selector(performMiniaturize:) keyEquivalent:@""];
-    [windowMenu addItem:menuItem];
-    [menuItem release];
-    
-    /* Put menu into the menubar */
-    windowMenuItem = [[NSMenuItem alloc] initWithTitle:@"Window" action:nil keyEquivalent:@""];
-    [windowMenuItem setSubmenu:windowMenu];
-    [[NSApp mainMenu] addItem:windowMenuItem];
-    
-    /* Tell the application object that this is now the window menu */
-    [NSApp setWindowsMenu:windowMenu];
-
-    /* Finally give up our references to the objects */
-    [windowMenu release];
-    [windowMenuItem release];
-}
-
-/* Replacement for NSApplicationMain */
-static void CustomApplicationMain (int argc, char **argv)
-{
-    NSAutoreleasePool	*pool = [[NSAutoreleasePool alloc] init];
-    SDLMain				*sdlMain;
-
-    /* If there's no Window Server (ie: remote headless), go in dry. */
-    if (_CGSDefaultConnection() == NULL) {
-        XPDEV_main(argc, argv, environ);
-        return;
-    }
-
-    /* Ensure the application object is initialised */
-    [NSApplication sharedApplication];
-    
-#ifdef SDL_USE_CPS
-    {
-        CPSProcessSerNum PSN;
-        /* Tell the dock about us */
-        if (!CPSGetCurrentProcess(&PSN))
-            if (!CPSEnableForegroundOperation(&PSN,0x03,0x3C,0x2C,0x1103))
-                if (!CPSSetFrontProcess(&PSN))
-                    [NSApplication sharedApplication];
-    }
-#endif /* SDL_USE_CPS */
-
-    /* Set up the menubar */
-    [NSApp setMainMenu:[[NSMenu alloc] init]];
-    setApplicationMenu();
-    setupWindowMenu();
-
-    /* Create SDLMain and make it the app delegate */
-    sdlMain = [[SDLMain alloc] init];
-    [NSApp setDelegate:sdlMain];
-    
-    /* Start the main event loop */
-    [NSApp run];
-    
-    [sdlMain release];
-    [pool release];
-}
-
-#endif
-
-
-/*
- * Catch document open requests...this lets us notice files when the app
- *  was launched by double-clicking a document, or when a document was
- *  dragged/dropped on the app's icon. You need to have a
- *  CFBundleDocumentsType section in your Info.plist to get this message,
- *  apparently.
- *
- * Files are added to gArgv, so to the app, they'll look like command line
- *  arguments. Previously, apps launched from the finder had nothing but
- *  an argv[0].
- *
- * This message may be received multiple times to open several docs on launch.
- *
- * This message is ignored once the app's mainline has been called.
- */
-- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename
-{
-    const char *temparg;
-    size_t arglen;
-    char *arg;
-    char **newargv;
-
-    if (!gFinderLaunch)  /* MacOS is passing command line args. */
-        return FALSE;
-
-    if (gCalledAppMainline)  /* app has started, ignore this document. */
-        return FALSE;
-
-    temparg = [filename UTF8String];
-    arglen = SDL_strlen(temparg) + 1;
-    arg = (char *) SDL_malloc(arglen);
-    if (arg == NULL)
-        return FALSE;
-
-    newargv = (char **) realloc(gArgv, sizeof (char *) * (gArgc + 2));
-    if (newargv == NULL)
-    {
-        SDL_free(arg);
-        return FALSE;
-    }
-    gArgv = newargv;
-
-    SDL_strlcpy(arg, temparg, arglen);
-    gArgv[gArgc++] = arg;
-    gArgv[gArgc] = NULL;
-    return TRUE;
-}
-
-extern char **environ;
-/* Called when the internal event loop has just started running */
-- (void) applicationDidFinishLaunching: (NSNotification *) note
-{
-    int status;
-
-    /* Set the working directory to the .app's parent directory */
-    [self setupWorkingDirectory:gFinderLaunch];
-
-#if SDL_USE_NIB_FILE
-    /* Set the main menu to contain the real app name instead of "SDL App" */
-    [self fixMenu:[NSApp mainMenu] withAppName:getApplicationName()];
-#endif
-
-    /* Hand off to main application code */
-    gCalledAppMainline = TRUE;
-    status = SDL_main_env (gArgc, gArgv, environ);
-
-    /* We're done, thank you for playing */
-    exit(status);
-}
-@end
-
-
-@implementation NSString (ReplaceSubString)
-
-- (NSString *)stringByReplacingRange:(NSRange)aRange with:(NSString *)aString
-{
-    unsigned int bufferSize;
-    unsigned int selfLen = [self length];
-    unsigned int aStringLen = [aString length];
-    unichar *buffer;
-    NSRange localRange;
-    NSString *result;
-
-    bufferSize = selfLen + aStringLen - aRange.length;
-    buffer = (unichar *)NSAllocateMemoryPages(bufferSize*sizeof(unichar));
-    
-    /* Get first part into buffer */
-    localRange.location = 0;
-    localRange.length = aRange.location;
-    [self getCharacters:buffer range:localRange];
-    
-    /* Get middle part into buffer */
-    localRange.location = 0;
-    localRange.length = aStringLen;
-    [aString getCharacters:(buffer+aRange.location) range:localRange];
-     
-    /* Get last part into buffer */
-    localRange.location = aRange.location + aRange.length;
-    localRange.length = selfLen - localRange.location;
-    [self getCharacters:(buffer+aRange.location+aStringLen) range:localRange];
-    
-    /* Build output string */
-    result = [NSString stringWithCharacters:buffer length:bufferSize];
-    
-    NSDeallocateMemoryPages(buffer, bufferSize);
-    
-    return result;
-}
-
-@end
-
-
-
-#ifdef main
-#  undef main
-#endif
-
-
-/* Main entry point to executable - should *not* be SDL_main! */
-int main (int argc, char **argv)
-{
-    /* Copy the arguments into a global variable */
-    /* This is passed if we are launched by double-clicking */
-    if ( argc >= 2 && strncmp (argv[1], "-psn", 4) == 0 ) {
-        gArgv = (char **) SDL_malloc(sizeof (char *) * 2);
-        gArgv[0] = argv[0];
-        gArgv[1] = NULL;
-        gArgc = 1;
-        gFinderLaunch = YES;
-    } else {
-        int i;
-        gArgc = argc;
-        gArgv = (char **) SDL_malloc(sizeof (char *) * (argc+1));
-        for (i = 0; i <= argc; i++)
-            gArgv[i] = argv[i];
-        gFinderLaunch = NO;
-    }
-
-#if SDL_USE_NIB_FILE
-    NSApplicationMain (argc, argv);
-#else
-    CustomApplicationMain (argc, argv);
-#endif
-    return 0;
-}
-
diff --git a/xpdev/SDL_win32_main.c b/xpdev/SDL_win32_main.c
deleted file mode 100644
index ef9b3608707e5db3f554fc59293c59a77aa2c606..0000000000000000000000000000000000000000
--- a/xpdev/SDL_win32_main.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
-    SDL_main.c, placed in the public domain by Sam Lantinga  4/13/98
-
-    The WinMain function -- calls your program's main() function
-*/
-
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
-#include <stdlib.h>
-
-#include <windows.h>
-#include <malloc.h>			/* For _alloca() */
-
-#define DIR_SEPERATOR TEXT("/")
-#include <direct.h>
-
-/* Parse a command line buffer into arguments */
-static int ParseCommandLine(char *cmdline, char **argv)
-{
-	char *bufp;
-	int argc;
-
-	argc = 0;
-	for ( bufp = cmdline; *bufp; ) {
-		/* Skip leading whitespace */
-		while ( isspace(*bufp) ) {
-			++bufp;
-		}
-		/* Skip over argument */
-		if ( *bufp == '"' ) {
-			++bufp;
-			if ( *bufp ) {
-				if ( argv ) {
-					argv[argc] = bufp;
-				}
-				++argc;
-			}
-			/* Skip over word */
-			while ( *bufp && (*bufp != '"') ) {
-				++bufp;
-			}
-		} else {
-			if ( *bufp ) {
-				if ( argv ) {
-					argv[argc] = bufp;
-				}
-				++argc;
-			}
-			/* Skip over word */
-			while ( *bufp && ! isspace(*bufp) ) {
-				++bufp;
-			}
-		}
-		if ( *bufp ) {
-			if ( argv ) {
-				*bufp = '\0';
-			}
-			++bufp;
-		}
-	}
-	if ( argv ) {
-		argv[argc] = NULL;
-	}
-	return(argc);
-}
-
-extern int main(int argc, char **argv);
-
-/* This is where execution begins [console apps] */
-static int console_main(int argc, char *argv[], char **env)
-{
-	int n;
-	char *bufp, *appname;
-
-	/* Get the class name from argv[0] */
-	appname = argv[0];
-	if ( (bufp=strrchr(argv[0], '\\')) != NULL ) {
-		appname = bufp+1;
-	} else
-	if ( (bufp=strrchr(argv[0], '/')) != NULL ) {
-		appname = bufp+1;
-	}
-
-	if ( (bufp=strrchr(appname, '.')) == NULL )
-		n = strlen(appname);
-	else
-		n = (bufp-appname);
-
-	bufp = (char *)alloca(n+1);
-	if ( bufp == NULL ) {
-		return 1;
-	}
-	strncpy(bufp, appname, n);
-	bufp[n] = '\0';
-	appname = bufp;
-
-	/* Run the application main() code */
-	n=main(argc, argv);
-
-	/* Exit cleanly, calling atexit() functions */
-	exit(n);
-
-	/* Hush little compiler, don't you cry... */
-	return(n);
-}
-
-/* This is where execution begins [windowed apps] */
-int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int sw)
-{
-	HINSTANCE handle;
-	char **argv;
-	int argc;
-	char *cmdline;
-	char *bufp;
-
-	/* Start up DDHELP.EXE before opening any files, so DDHELP doesn't
-	   keep them open.  This is a hack.. hopefully it will be fixed 
-	   someday.  DDHELP.EXE starts up the first time DDRAW.DLL is loaded.
-	 */
-	handle = LoadLibrary(TEXT("DDRAW.DLL"));
-	if ( handle != NULL ) {
-		FreeLibrary(handle);
-	}
-
-	/* Grab the command line (use alloca() on Windows) */
-	bufp = GetCommandLine();
-	cmdline = (char *)alloca(strlen(bufp)+1);
-	if ( cmdline == NULL ) {
-		return 1;
-	}
-	strcpy(cmdline, bufp);
-
-	/* Parse it into argv and argc */
-	argc = ParseCommandLine(cmdline, NULL);
-	argv = (char **)alloca((argc+1)*(sizeof *argv));
-	if ( argv == NULL ) {
-		return 1;
-	}
-	ParseCommandLine(cmdline, argv);
-
-	/* Run the main program (after a little SDL initialization) */
-	return(console_main(argc, argv, _environ));
-}
diff --git a/xpdev/conwrap.c b/xpdev/conwrap.c
deleted file mode 100644
index 01d85f94a64061787dc02ffb0f30bc2ca92772c9..0000000000000000000000000000000000000000
--- a/xpdev/conwrap.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/* conwrap.c */
-
-/* DOS's kbhit and getch functions for Unix - Casey Martin 2000 */
-
-/* $Id: conwrap.c,v 1.15 2018/07/24 01:13:09 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html		*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#if defined(__unix__)
-
-#include <stdlib.h>
-#include <string.h>	/* memcpy */
-#include <unistd.h>
-#include <termios.h>
-
-#include <sys/time.h>
-#include <sys/types.h>
-#include <signal.h>
-
-#include "conwrap.h"				/* Verify prototypes */
-
-static struct termios current;		/* our current term settings			*/
-static struct termios original;     /* old termios settings					*/
-static int beensetup = 0;           /* has _termios_setup() been called?	*/
-static int istty = 0;				/* is stdin a tty?						*/		
-
-/* Resets the termios to its previous state */
-void _termios_reset(void)
-{
-	tcsetattr(STDIN_FILENO, TCSANOW, &original);
-}
-
-/************************************************
-  This pair of functions handles Ctrl-Z presses
-************************************************/
-#if defined(__BORLANDC__)
-        #pragma argsused
-#endif
-void _sighandler_stop(int sig)
-{
-    /* clean up the terminal */
-    _termios_reset();
-
-    /* ... and stop */
-	kill(getpid(), SIGSTOP);
-}
-#if defined(__BORLANDC__)
-        #pragma argsused
-#endif
-void _sighandler_cont(int sig)
-{
-    /* restore terminal */
-	tcsetattr(STDIN_FILENO, TCSANOW, &current);
-}
-
-
-/* Prepares termios for non-blocking action */
-void _termios_setup(void)
-{
-	beensetup = 1;
-    
-	tcgetattr(STDIN_FILENO, &original);
-  
-	memcpy(&current, &original, sizeof(struct termios));
-	current.c_cc[VMIN] = 1;           /* read() will return with one char */
-	current.c_cc[VTIME] = 0;          /* read() blocks forever */
-	current.c_lflag &= ~ICANON;       /* character mode */
-    current.c_lflag &= ~ECHO;         /* turn off echoing */
-	tcsetattr(STDIN_FILENO, TCSANOW, &current);
-
-    /* Let's install an exit function, also.  This way, we can reset
-     * the termios silently
-	 */
-    atexit(_termios_reset);
-
-    /* install the Ctrl-Z handler */
-    signal(SIGTSTP, _sighandler_stop);
-    signal(SIGCONT, _sighandler_cont);
-}
-
-void _echo_on(void)
-{
-	tcgetattr(STDIN_FILENO, &current);
-    current.c_lflag |= ECHO;         /* turn on echoing */
-	tcsetattr(STDIN_FILENO, TCSANOW, &current);
-}
-
-void _echo_off(void)
-{
-	tcgetattr(STDIN_FILENO, &current);
-    current.c_lflag &= ~ECHO;         /* turn off echoing */
-	tcsetattr(STDIN_FILENO, TCSANOW, &current);
-}
-
-int kbhit(void)
-{
-	fd_set inp;
-	struct timeval timeout = {0, 0};
-
-	if(!istty) {
-		istty = isatty(STDIN_FILENO);
-		if(!istty)
-			return 0;
-	}
-
-    if(!beensetup)
-    	_termios_setup();
-
-	/* set up select() args */
-	FD_ZERO(&inp);
-	FD_SET(STDIN_FILENO, &inp);
-
-	if(select(STDIN_FILENO+1, &inp, NULL, NULL, &timeout)<1)
-		return 0;
-	return 1;
-}
-
-int getch(void)
-{
-	char c;
-
-    if(!beensetup)
-    	_termios_setup();
-
-    /* get a char out of stdin */
-    if(read(STDIN_FILENO, &c, 1)==-1)
-		return 0;
-
-    return c;
-}
-
-#endif /* __unix__ */
diff --git a/xpdev/conwrap.h b/xpdev/conwrap.h
deleted file mode 100644
index e79c18f5d46a7fa87bae53c6439a532806dabe2b..0000000000000000000000000000000000000000
--- a/xpdev/conwrap.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* conwrap.h */
-
-/* Cross-platform local console I/O wrapppers */
-
-/* $Id: conwrap.h,v 1.6 2018/07/24 01:13:09 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _CONWRAP_H
-#define _CONWRAP_H
-
-#if defined(__unix__)
-
-    void _termios_reset(void);
-    void _echo_on(void);
-    void _echo_off(void);
-    int kbhit(void);
-    int getch(void);
-
-#else	/* DOS-Based */
-
-	#include <conio.h>
-
-#endif
-
-#endif	/* _CONWRAP_H */
diff --git a/xpdev/cp437defs.h b/xpdev/cp437defs.h
deleted file mode 100644
index 6524710a2862c0b2c9f93f4149137c4820da7093..0000000000000000000000000000000000000000
--- a/xpdev/cp437defs.h
+++ /dev/null
@@ -1,178 +0,0 @@
-/* Synchronet IBM Code Page 437 (CP437) definitions */
-
-/* $Id: cp437defs.h,v 1.5 2019/08/30 10:47:41 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef CP437DEFS_H_
-#define CP437DEFS_H_
-
-enum cp437_char {
-	CP437_WHITE_SMILING_FACE = '\x01',
-	CP437_BLACK_SMILING_FACE = '\x02',
-	CP437_BLACK_HEART_SUIT = '\x03',
-	CP437_BLACK_DIAMOND_SUIT = '\x04',
-	CP437_BLACK_CLUB_SUIT = '\x05',
-	CP437_BLACK_SPADE_SUIT = '\x06',
-	CP437_BULLET = '\x07',
-	CP437_INVERSE_BULLET = '\x08',
-	CP437_WHITE_CIRCLE = '\x09',
-	CP437_INVERSE_WHITE_CIRCLE = '\x0A',
-	CP437_MALE_SIGN = '\x0B',
-	CP437_FEMALE_SIGN = '\x0C',
-	CP437_EIGHTH_NOTE = '\x0D',
-	CP437_BEAMED_EIGHTH_NOTES = '\x0E',
-	CP437_WHITE_SUN_WITH_RAYS = '\x0F',
-	CP437_BLACK_RIGHT_POINTING_POINTER = '\x10',
-	CP437_BLACK_LEFT_POINTING_POINTER = '\x11',
-	CP437_UP_DOWN_ARROW = '\x12',
-	CP437_DOUBLE_EXCLAMATION_MARK = '\x13',
-	CP437_PILCROW_SIGN = '\x14',	// Paragraph mark
-	CP437_SECTION_SIGN = '\x15',
-	CP437_BLACK_RECTANGLE = '\x16',
-	CP437_UP_DOWN_ARROW_WITH_BASE = '\x17',
-	CP437_UPWARDS_ARROW = '\x18',
-	CP437_DOWNWARDS_ARROW = '\x19',
-	CP437_RIGHTWARDS_ARROW = '\x1A',
-	CP437_LEFTWARDS_ARROW = '\x1B',
-	CP437_RIGHT_ANGLE = '\x1C',
-	CP437_LEFT_RIGHT_ARROW = '\x1D',
-	CP437_BLACK_UP_POINTING_TRIANGLE = '\x1E',
-	CP437_BLACK_DOWN_POINTING_TRIANGLE = '\x1F',
-
-	// 0x20 - 0x7E are ASCII characters
-
-	CP437_HOUSE = '\x7F',
-	CP437_LATIN_CAPTIAL_LETTER_C_WITH_CEDILLA = '\x80',
-	CP437_LATIN_SMALL_LETTER_U_WITH_DIAERESIS = '\x81',
-	CP437_LATIN_SMALL_LETTER_E_WITH_ACUTE = '\x82',
-	CP437_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX = '\x83',
-	CP437_LATIN_SMALL_LETTER_A_WITH_DIAERESIS = '\x84',
-	CP437_LATIN_SMALL_LETTER_A_WITH_GRAVE = '\x85',
-	CP437_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE = '\x86',
-	CP437_LATIN_SMALL_LETTER_C_WITH_CEDILLA = '\x87',
-	CP437_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX = '\x88',
-	CP437_LATIN_SMALL_LETTER_E_WITH_DIAERESIS = '\x89',
-	CP437_LATIN_SMALL_LETTER_E_WITH_GRAVE = '\x8a',
-	CP437_LATIN_SMALL_LETTER_I_WITH_DIAERESIS = '\x8b',
-	CP437_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX = '\x8c',
-	CP437_LATIN_SMALL_LETTER_I_WITH_GRAVE = '\x8d',
-	CP437_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS = '\x8e',
-	CP437_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE = '\x8f',
-	CP437_LATIN_CAPITAL_LETTER_E_WITH_ACUTE = '\x90',
-	CP437_LATIN_SMALL_LETTER_AE = '\x91',
-	CP437_LATIN_CAPITAL_LETTER_AE = '\x92',
-	CP437_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX = '\x93',
-	CP437_LATIN_SMALL_LETTER_O_WITH_DIAERESIS = '\x94',
-	CP437_LATIN_SMALL_LETTER_O_WITH_GRAVE = '\x95',
-	CP437_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX = '\x96',
-	CP437_LATIN_SMALL_LETTER_U_WITH_GRAVE = '\x97',
-	CP437_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS = '\x98',
-	CP437_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS = '\x99',
-	CP437_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS = '\x9A',
-	CP437_CENT_SIGN = '\x9B',
-	CP437_POUND_SIGN = '\x9C',
-	CP437_YEN_SIGN = '\x9E',
-	CP437_PESETA_SIGN = '\x9E',
-	CP437_LATIN_SMALL_LETTER_F_WITH_HOOK = '\x9F',
-	CP437_LATIN_SMALL_LETTER_A_WITH_ACUTE = '\xA0',
-	CP437_LATIN_SMALL_LETTER_I_WITH_ACUTE = '\xA1',
-	CP437_LATIN_SMALL_LETTER_O_WITH_ACUTE = '\xA2',
-	CP437_LATIN_SMALL_LETTER_U_WITH_ACUTE = '\xA3',
-	CP437_LATIN_SMALL_LETTER_N_WITH_TILDE = '\xA4',
-	CP437_LATIN_CAPITAL_LETTER_N_WITH_TILDE = '\xA5',
-	CP437_FEMININE_ORDINAL_INDICATOR = '\xA6',
-	CP437_MASCULINE_ORDINAL_INDICATOR = '\xA7',
-	CP437_INVERTED_QUESTION_MARK = '\xA8',
-	CP437_REVERSED_NOT_SIGN = '\xA9',
-	CP437_NOT_SIGN = '\xAA',
-	CP437_VULGAR_FRACTION_ONE_HALF = '\xAB',
-	CP437_VULGAR_FRACTION_ONE_QUARTER = '\xAC',
-	CP437_INVERTED_EXCLAMATION_MARK = '\xAD',
-	CP437_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK = '\xAE',
-	CP437_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK = '\xAF',
-	CP437_LIGHT_SHADE = '\xB0',
-	CP437_MEDIUM_SHADE = '\xB1',
-	CP437_DARK_SHADE = '\xB2',
-	CP437_BOX_DRAWINGS_LIGHT_VERTICAL = '\xB3',
-	CP437_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT = '\xB4',
-	CP437_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE = '\xB5',
-	CP437_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE = '\xB6',
-	CP437_BOX_DRAWINGS_DOUBLE_VERTICAL = '\xBA',
-	CP437_BOX_DRAWINGS_VERTICAL_AND_HORIZONTAL = '\xC5',
-	// TODO...
-	CP437_FULL_BLOCK = '\xDB',
-	CP437_LOWER_HALF_BLOCK = '\xDC',
-	CP437_LEFT_HALF_BLOCK = '\xDD',
-	CP437_RIGHT_HALF_BLOCK = '\xDE',
-	CP437_UPPER_HALF_BLOCK = '\xDF',
-	// TODO...
-	CP437_GREEK_SMALL_LETTER_ALPHA = '\xE0',
-	CP437_GREEK_SMALL_LETTER_BETA = '\xE1',
-	CP437_LATIN_SMALL_LETTER_SHARP_S = '\xE1',		// Duplicate
-	CP437_GREEK_CAPITAL_LETTER_GAMMA = '\xE2',
-	CP437_GREEK_SMALL_LETTER_PI = '\xE3',
-	CP437_GREEK_CAPITAL_LETTER_SIGMA = '\xE4',
-	CP437_GREEK_SMALL_LETTER_SIGMA = '\xE5',
-	CP437_GREEK_SMALL_LETTER_MU = '\xE6',
-	CP437_MICRO_SIGN = '\xE6',	// Duplicate
-	CP437_GREEK_SMALL_LETTER_TAU = '\xE7',
-	CP437_GREEK_CAPITAL_LETTER_PHI = '\xE8',
-	CP437_GREEK_SMALL_LETTER_THETA = '\xE9',
-	CP437_GREEK_CAPITAL_LETTER_OMEGA = '\xEA',
-	CP437_GREEK_SMALL_LETTER_DELTA = '\xEB',
-	CP437_INFINITY = '\xEC',
-	CP437_GREEK_SMALL_LETTER_PHI = '\xED',
-	CP437_GREEK_SMALL_LETTER_EPSILION = '\xEE',
-	CP437_INTERSECTION = '\xEF',
-	CP437_IDENTICAL_TO = '\xF0',
-	CP437_TRIPLE_BAR = '\xF0',	// Duplicate
-	CP437_PLUS_MINUS_SIGN = '\xF1',
-	CP437_GREATER_THAN_OR_EQUAL_TO = '\xF2',
-	CP437_LESS_THAN_OR_EQUAL_TO = '\xF3',
-	CP437_TOP_HALF_INTEGRAL = '\xF4',
-	CP437_BOTTOM_HALF_INTEGRAL = '\xF5',
-	CP437_DIVISION_SIGN = '\xF6',
-	CP437_ALMOST_EQUAL_TO = '\xF7',
-	CP437_DEGREE_SIGN = '\xF8',
-	CP437_BULLET_OPERATOR = '\xF9',
-	CP437_MIDDLE_DOT = '\xFA',
-	CP437_SQUARE_ROOT = '\xFB',
-	CP437_CHECK_MARK = '\xFB',	// Duplicate
-	CP437_SUPERSCRIPT_LATIN_SMALL_LETTER_N = '\xFC',
-	CP437_SUPERSCRIPT_TWO = '\xFD',
-	CP437_BLACK_SQUARE = '\xFE',
-	CP437_HALFWIDTH_BLACK_SQUARE = '\xFE',	// Duplicate
-	CP437_NO_BREAK_SPACE = '\xFF'
-};
-
-#endif // Don't add anything after this line
diff --git a/xpdev/dat_file.c b/xpdev/dat_file.c
deleted file mode 100644
index 7b8e5b6cd080131090417b836a8e384cd2e50b0a..0000000000000000000000000000000000000000
--- a/xpdev/dat_file.c
+++ /dev/null
@@ -1,290 +0,0 @@
-/* dat_file.c */
-
-/* Functions to deal with comma (CSV) and tab-delimited files and lists */
-
-/* $Id: dat_file.c,v 1.8 2018/07/24 01:13:09 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include "dat_file.h"
-#include "genwrap.h"	/* lastchar */
-#include "filewrap.h"	/* chsize */
-#include <stdlib.h>		/* malloc */
-#include <string.h>		/* strdup */
-
-/***********************************/
-/* CSV (Comma Separated Value) API */
-/***********************************/
-
-static char* csvEncode(char* field)
-{
-	char* dst;
-	char* src;
-	char* buf;
-	char* comma;
-	char* quote;
-	char  first;
-	char  last;
-	char* nl;
-	BOOL  enclose;
-
-	if((buf=malloc(strlen(field)*2))==NULL)
-		return(NULL);
-
-	nl=strchr(field,'\n');
-	comma=strchr(field,',');
-	quote=strchr(field,'"');
-	first=field[0];
-	last=*lastchar(field);
-
-	enclose = (quote || comma || nl || first==' ' || last==' ');
-
-	dst=buf;
-	if(enclose)
-		*(dst++)='"';
-	src=field;
-	while(*src) {
-		if(*src=='"')
-			*(dst++)='"';	/* escape quotes */
-		*(dst++)=*src++;
-	}
-	if(enclose)
-		*(dst++)='"';
-
-	*dst=0;
-
-	return(buf);
-}
-
-char* csvLineCreator(const str_list_t columns)
-{
-	char*	str=NULL;
-	char*	p;
-	char*	val;
-	size_t	i,len;
-
-	if(columns==NULL)
-		return(NULL);
-
-	for(i=0;columns[i]!=NULL;i++) {
-		len=strlen(columns[i])*2;
-		if(str)
-			len+=strlen(str);
-		if((p=realloc(str,len))==NULL)
-			break;
-		str=p;
-		if(i) strcat(str,",");
-		else  *str=0;
-		if((val=csvEncode(columns[i]))==NULL)
-			break;
-		strcat(str,val);
-		free(val);
-	}
-
-	return(str);
-}
-
-str_list_t csvLineParser(const char* line)
-{
-	char*		p;
-	char*		buf;
-	char*		tmp;
-	size_t		count=0;
-	str_list_t	list;
-
-	if((list=strListInit())==NULL)
-		return(NULL);
-
-	if((buf=strdup(line))==NULL) {
-		strListFree(&list);
-		return(NULL);
-	}
-
-	truncsp(buf);
-
-	for(p=strtok_r(buf,",",&tmp);p;p=strtok_r(NULL,",",&tmp))
-		strListAppend(&list,p,count++);
-
-	free(buf);
-
-	return(list);
-}
-
-/*********************/
-/* Tab-Delimited API */
-/*********************/
-
-char* tabLineCreator(const str_list_t columns)
-{
-	char*	str=NULL;
-	char*	p;
-	size_t	i,len;
-
-	if(columns==NULL)
-		return(NULL);
-
-	for(i=0;columns[i]!=NULL;i++) {
-		len=strlen(columns[i])*2;
-		if(str)
-			len+=strlen(str);
-		if((p=realloc(str,len))==NULL)
-			break;
-		str=p;
-		if(i) strcat(str,"\t");
-		else  *str=0;
-		strcat(str,columns[i]);
-	}
-
-	return(str);
-}
-
-str_list_t tabLineParser(const char* line)
-{
-	char*		p;
-	char*		buf;
-	char*		tmp;
-	size_t		count=0;
-	str_list_t	list;
-
-	if((list=strListInit())==NULL)
-		return(NULL);
-
-	if((buf=strdup(line))==NULL) {
-		strListFree(&list);
-		return(NULL);
-	}
-
-	for(p=strtok_r(buf,"\t",&tmp);p;p=strtok_r(NULL,"\t",&tmp))
-		strListAppend(&list,p,count++);
-
-	free(buf);
-
-	return(list);
-}
-
-/* Generic API */
-
-str_list_t dataCreateList(const str_list_t records[], const str_list_t columns, dataLineCreator_t lineCreator)
-{
-	char*		p;
-	str_list_t	list;
-	size_t		i;
-	size_t		li=0;
-
-	if((list=strListInit())==NULL)
-		return(NULL);
-
-	if(columns!=NULL) {
-		p=lineCreator(columns);
-		strListAppend(&list,p,li++);
-		free(p);
-	}
-		
-	if(records!=NULL)
-		for(i=0;records[i]!=NULL;i++) {
-			p=lineCreator(records[i]);
-			strListAppend(&list,p,li++);
-			free(p);
-		}
-
-	return(list);
-}
-
-BOOL dataWriteFile(FILE* fp, const str_list_t records[], const str_list_t columns, const char* separator
-				   ,dataLineCreator_t lineCreator)
-{
-	size_t		count,total;
-	str_list_t	list;
-
-	rewind(fp);
-
-	if(chsize(fileno(fp),0)!=0)	/* truncate */
-		return(FALSE);
-
-	if((list=dataCreateList(records,columns,lineCreator))==NULL)
-		return(FALSE);
-
-	total = strListCount(list);
-	count = strListWriteFile(fp,list,separator);
-	strListFree(&list);
-
-	return(count == total);
-}
-
-str_list_t* dataParseList(const str_list_t records, str_list_t* columns, dataLineParser_t lineParser)
-{
-	size_t		ri=0;
-	size_t		li=0;
-	str_list_t* list;
-
-	if(records==NULL)
-		return(NULL);
-
-	if((list=(str_list_t*)malloc(sizeof(str_list_t)*(strListCount(records)+1)))==NULL)
-		return(NULL);
-
-	if(columns!=NULL) {
-		if((*columns=lineParser(records[ri++]))==NULL) {
-			free(list);
-			return(NULL);
-		}
-	}
-
-	while(records[ri]!=NULL)
-		list[li++]=lineParser(records[ri++]);
-
-	list[li]=NULL; /* terminate */
-
-	return(list);
-}
-
-str_list_t*	dataReadFile(FILE* fp, str_list_t* columns, dataLineParser_t lineParser)
-{
-	str_list_t*	records;
-	str_list_t	lines;
-	size_t		i;
-
-	rewind(fp);
-
-	if((lines=strListReadFile(fp, NULL, 0))==NULL)
-		return(NULL);
-
-	/* truncate line-feed chars off end of strings */
-	for(i=0; lines[i]!=NULL; i++)
-		truncnl(lines[i]);
-
-	records=dataParseList(lines,columns,lineParser);
-
-	strListFree(&lines);
-
-	return(records);
-}
diff --git a/xpdev/dat_file.h b/xpdev/dat_file.h
deleted file mode 100644
index 4c45d8a97cffe2512ea2c11d3d0a619c13d256c3..0000000000000000000000000000000000000000
--- a/xpdev/dat_file.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* dat_file.h */
-
-/* Functions to deal with comma (CSV) and tab-delimited files and lists */
-
-/* $Id: dat_file.h,v 1.4 2018/07/24 01:13:09 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _DAT_FILE_H
-#define _DAT_FILE_H
-
-#include "str_list.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/***************/
-/* Generic API */
-/***************/
-
-typedef str_list_t	(*dataLineParser_t)(const char*);
-typedef char*		(*dataLineCreator_t)(const str_list_t);
-
-/* columns arguments are optional (may be NULL) */
-str_list_t*	dataParseList(const str_list_t records, str_list_t* columns, dataLineParser_t);
-str_list_t*	dataReadFile(FILE* fp, str_list_t* columns, dataLineParser_t);
-
-str_list_t	dataCreateList(const str_list_t records[], const str_list_t columns, dataLineCreator_t);
-BOOL		dataWriteFile(FILE* fp, const str_list_t records[], const str_list_t columns
-						  ,const char* separator, dataLineCreator_t);
-
-/* CSV (comma separated value) API */
-char*		csvLineCreator(const str_list_t);
-str_list_t	csvLineParser(const char* line);
-#define		csvParseList(list,col)			dataParseList(list,col,csvLineParser)
-#define		csvCreateList(rec,col)			dataCreateList(rec,col,csvLineCreator)
-#define		csvReadFile(fp,col)				dataReadFile(fp,col,csvLineParser)
-#define		csvWriteFile(fp,rec,sep,col)	dataWriteFile(fp,rec,col,sep,csvLineCreator)
-
-/* Tab-delimited API */
-char*		tabLineCreator(const str_list_t);
-str_list_t	tabLineParser(const char* line);
-#define		tabParseList(list,col)			dataParseList(list,col,tabLineParser)
-#define		tabCreateList(rec,col)			dataCreateList(rec,col,tabLineCreator)
-#define		tabReadFile(fp,col)				dataReadFile(fp,col,tabLineParser)
-#define		tabWriteFile(fp,rec,sep,col)	dataWriteFile(fp,rec,col,sep,tabLineCreator)
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/datewrap.c b/xpdev/datewrap.c
deleted file mode 100644
index 5f3759e676c353a193e3e1f97b90a82884a4c06b..0000000000000000000000000000000000000000
--- a/xpdev/datewrap.c
+++ /dev/null
@@ -1,213 +0,0 @@
-/* datewrap.c */
-
-/* Wrappers for non-standard date and time functions */
-
-/* $Id: datewrap.c,v 1.34 2015/08/29 10:40:15 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include "string.h"	/* memset */
-#include "genwrap.h"
-#include "datewrap.h"
-
-/* Return difference (in seconds) in time() result from standard */
-time_t checktime(void)
-{
-	time_t		t=0x2D24BD00L;	/* Correct time_t value on Jan-1-1994 */
-	struct tm	gmt;
-	struct tm	tm;
-
-	memset(&tm,0,sizeof(tm));
-	tm.tm_year=94;
-	tm.tm_mday=1;
-	return mktime(&tm) - mktime(gmtime_r(&t,&gmt));
-}
-
-/* Compensates for struct tm "weirdness" */
-time_t sane_mktime(struct tm* tm)
-{
-	if(tm->tm_year>=1900)
-		tm->tm_year-=1900;
-	if(tm->tm_mon)		/* Month is zero-based */
-		tm->tm_mon--;
-	tm->tm_isdst=-1;	/* Auto-adjust for DST */
-
-	return mktime(tm);
-}
-
-/* Compensates for struct tm "weirdness" */
-time_t sane_timegm(struct tm* tm)
-{
-	if(tm->tm_year>=1900)
-		tm->tm_year-=1900;
-	if(tm->tm_mon)		/* Month is zero-based */
-		tm->tm_mon--;
-	tm->tm_isdst=0;		/* Don't adjust for DST */
-
-	return timegm(tm);
-}
-
-time32_t time32(time32_t* tp)
-{
-	time_t t;
-
-	t=time(NULL);
-
-	if(tp!=NULL)
-		*tp=(time32_t)t;
-
-	return (time32_t)t;
-}
-
-time32_t mktime32(struct tm* tm)
-{
-	return (time32_t)mktime(tm);	/* don't use sane_mktime since tm->tm_mon is assumed to be already zero-based */
-}
-
-struct tm* localtime32(const time32_t* t32, struct tm* tm)
-{
-	time_t	t=*t32;
-	struct tm* tmp;
-
-	if((tmp=localtime(&t))==NULL)
-		return(NULL);
-
-	*tm = *tmp;
-	return(tm);
-}
-
-
-#if !defined(__BORLANDC__)
-
-/***********************************/
-/* Borland DOS date/time functions */
-/***********************************/
-
-#if defined(_WIN32)
-	#include <windows.h>	/* SYSTEMTIME and GetLocalTime() */
-	#include <time.h>	/* _mkgmtime */
-#else
-	#include <sys/time.h>	/* stuct timeval, gettimeofday() */
-#endif
-
-void xp_getdate(struct date* nyd)
-{
-	time_t tim;
-	struct tm dte;
-
-	tim=time(NULL);
-	localtime_r(&tim,&dte);
-	nyd->da_year=dte.tm_year+1900;
-	nyd->da_day=dte.tm_mday;
-	nyd->da_mon=dte.tm_mon+1;
-}
-
-void gettime(struct time* nyt)
-{
-#if defined(_WIN32)
-	SYSTEMTIME systime;
-
-	GetLocalTime(&systime);
-	nyt->ti_hour=(unsigned char)systime.wHour;
-	nyt->ti_min=(unsigned char)systime.wMinute;
-	nyt->ti_sec=(unsigned char)systime.wSecond;
-	nyt->ti_hund=systime.wMilliseconds/10;
-#else	/* !Win32 (e.g. Unix) */
-	struct tm dte;
-	time_t t;
-	struct timeval tim;
-
-	gettimeofday(&tim, NULL);
-	t=tim.tv_sec;
-	localtime_r(&t,&dte);
-	nyt->ti_min=dte.tm_min;
-	nyt->ti_hour=dte.tm_hour;
-	nyt->ti_sec=dte.tm_sec;
-	nyt->ti_hund=tim.tv_usec/10000;
-#endif
-}
-
-#endif	/* !Borland */
-
-#if !defined(__unix__)
-
-/****************************************************************************/
-/* Win32 implementations of the recursive (thread-safe) versions of std C	*/
-/* time functions (gmtime, localtime, ctime, and asctime) used in Unix.		*/
-/* The native Win32 versions of these functions are already thread-safe.	*/
-/****************************************************************************/
-
-struct tm* gmtime_r(const time_t* t, struct tm* tm)
-{
-	struct tm* tmp = gmtime(t);
-
-	if(tmp==NULL)
-		return(NULL);
-
-	*tm = *tmp;
-	return(tm);
-}
-
-struct tm* localtime_r(const time_t* t, struct tm* tm)
-{
-	struct tm* tmp = localtime(t);
-
-	if(tmp==NULL)
-		return(NULL);
-
-	*tm = *tmp;
-	return(tm);
-}
-
-char* ctime_r(const time_t *t, char *buf)
-{
-	char* p = ctime(t);
-
-	if(p==NULL)
-		return(NULL);
-
-	strcpy(buf,p);
-	return(buf);
-}
-
-char* asctime_r(const struct tm *tm, char *buf)
-{
-	char* p = asctime(tm);
-
-	if(p==NULL)
-		return(NULL);
-
-	strcpy(buf,p);
-	return(buf);
-}
-
-#endif	/* !defined(__unix__) */
diff --git a/xpdev/datewrap.h b/xpdev/datewrap.h
deleted file mode 100644
index c57cd9447f357a5cb0ff3cae2f564b353970bebd..0000000000000000000000000000000000000000
--- a/xpdev/datewrap.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/* Wrappers for non-standard date and time functions */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _DATEWRAP_H_
-#define _DATEWRAP_H_
-
-#include "genwrap.h"	/* time_t */
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/* Return difference (in seconds) in time() result from standard (0 on success) */
-DLLEXPORT time_t		checktime(void);
-
-/* Implementation of mktime()/timegm() that handles common tm element conversions for you */
-DLLEXPORT time_t		sane_mktime(struct tm*);
-DLLEXPORT time_t		sane_timegm(struct tm*);
-
-/* Legacy (32-bit time_t) versions of time() and mktime() */
-DLLEXPORT time32_t		time32(time32_t* tp);
-DLLEXPORT time32_t		mktime32(struct tm*);
-DLLEXPORT struct tm*	localtime32(const time32_t* t, struct tm* tm);
-
-/*********************************************************************************/
-/* Win32 implementations of recursive (thread-safe) std C time functions on Unix */
-/*********************************************************************************/
-
-#if !defined(__unix__)	
-
-	#include <time.h>		/* time_t, etc. */
-
-	DLLEXPORT struct tm*    gmtime_r(const time_t* t, struct tm* tm);
-	DLLEXPORT struct tm*    localtime_r(const time_t* t, struct tm* tm);
-	DLLEXPORT char*	        ctime_r(const time_t *t, char *buf);
-	DLLEXPORT char*	        asctime_r(const struct tm *tm, char *buf);
-
-#endif
-
-/* Microsoft's equivalent of GLIBC/BSD timegm() */
-#if defined(_MSC_VER) || defined(__MINGW32__)
-	#define timegm _mkgmtime
-#endif
-
-/***********************************/
-/* Borland DOS date/time functions */
-/***********************************/
-
-#if defined(__BORLANDC__)
-
-/* Borland C++ doesn't come with a timegm() or mkgmtime() equivalent */
-#define timegm	mktime
-
-#include <dos.h>
-
-#else 
-
-struct date {
-	short da_year;
-	char  da_day;
-	char  da_mon;
-};
-
-struct time {
-	unsigned char ti_min;
-	unsigned char ti_hour;
-	unsigned char ti_hund;
-	unsigned char ti_sec;
-};
-
-#define getdate(x)	xp_getdate(x)
-DLLEXPORT void	xp_getdate(struct date*);
-DLLEXPORT void	gettime(struct time*);
-
-#endif	/* !Borland */
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/dirwrap.c b/xpdev/dirwrap.c
deleted file mode 100644
index 1727adff95241596b4819ff2b1ed3053386e0654..0000000000000000000000000000000000000000
--- a/xpdev/dirwrap.c
+++ /dev/null
@@ -1,1231 +0,0 @@
-/* Directory-related system-call wrappers */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <string.h>	/* strrchr */
-
-#if defined(_WIN32)
-
-	#include <windows.h>	/* WINAPI, etc */
-	#include <io.h>			/* _findfirst */
-
-#elif defined __unix__
-
-	#include <unistd.h>		/* usleep */
-	#include <fcntl.h>		/* O_NOCCTY */
-	#include <ctype.h>		/* toupper */
-	#include <sys/param.h>
-
-	#if defined(BSD)
-		#include <sys/mount.h>
-	#endif
-	#if defined(__FreeBSD__)
-		#include <sys/kbio.h>
-	#endif
-	#if defined(__NetBSD_Version__) && (__NetBSD_Version__ >= 300000000 /* NetBSD 3.0 */)
-		#include <sys/statvfs.h>
-	#endif
-
-	#include <sys/ioctl.h>	/* ioctl */
-
-	#if defined(__GLIBC__)		/* actually, BSD, but will work for now */
-		#include <sys/vfs.h>    /* statfs() */
-	#endif
-
-	#if defined(__solaris__)
-		#include <sys/statvfs.h>
-	#endif
-
-#endif /* __unix__ */
-
-#if defined(__WATCOMC__)
-	#include <dos.h>
-#endif
-
-#include <sys/types.h>	/* _dev_t */
-
-#include <stdio.h>		/* sprintf */
-#include <stdlib.h>		/* rand */
-#include <errno.h>		/* ENOENT definitions */
-
-#include "genwrap.h"	/* strupr/strlwr */
-#include "dirwrap.h"
-#include "filewrap.h"	/* stat */
-
-#if !defined(S_ISDIR)
-	#define S_ISDIR(x)	((x)&S_IFDIR)
-#endif
-
-/****************************************************************************/
-/* Return the filename portion of a full pathname							*/
-/****************************************************************************/
-char* getfname(const char* path)
-{
-	const char* fname;
-	const char* bslash;
-
-	fname=strrchr(path,'/');
-	bslash=strrchr(path,'\\');
-	if(bslash>fname)
-		fname=bslash;
-	if(fname!=NULL)
-		fname++;
-	else
-		fname=(char*)path;
-	return((char*)fname);
-}
-
-/****************************************************************************/
-/* Return the filename or last directory portion of a full pathname			*/
-/* A directory pathname is expected to end in a '/'							*/
-/****************************************************************************/
-char* getdirname(const char* path)
-{
-	char* last = lastchar(path);
-	if(*last == '/') {
-		if(last == path)
-			return last;
-		for(last--; last >= path; last--) {
-			if(IS_PATH_DELIM(*last))
-				return last + 1;
-		}
-		return (char*)path;
-	}
-	return getfname(path);
-}
-
-/****************************************************************************/
-/* Return a pointer to a file's extension/suffix (beginning with '.')		*/
-/****************************************************************************/
-char* getfext(const char* path)
-{
-	char *fname;
-	char *fext;
-
-	fname=getfname(path);
-	fext=strrchr(fname,'.');
-	if(fext==NULL || fext==fname)
-		return(NULL);
-	return(fext);
-}
-
-/****************************************************************************/
-/* Break a path name into components.										*/
-/****************************************************************************/
-#if defined(__unix__)
-void _splitpath(const char *path, char *drive, char *dir, char *fname, char *ext)
-{
-	char*	p;
-
-	ext[0]=0;
-	drive[0]=0;			/* no drive letters on Unix */
-
-	snprintf(dir, MAX_PATH+1, "%s", path);	/* Optional directory path, including trailing slash. */
-	p=getfname(dir);
-	snprintf(fname, MAX_PATH+1, "%s", p);	/* Base filename (no extension) */
-	if(p==dir)
-		dir[0]=0;		/* no directory specified in path */
-	else
-		*p=0;			/* truncate dir at filename */
-	p=getfext(fname);
-	if(p!=NULL) {
-		snprintf(ext, MAX_PATH+1, "%s", p);	/* Optional filename extension, including leading period (.) */
-		*p=0;
-	}
-}
-#endif
-
-/****************************************************************************/
-/* Win32 (minimal) implementation of POSIX.2 glob() function				*/
-/* This code _may_ work on other DOS-based platforms (e.g. OS/2)			*/
-/****************************************************************************/
-#if !defined(__unix__)
-static int __cdecl glob_compare( const void *arg1, const void *arg2 )
-{
-   /* Compare all of both strings: */
-   return strcmp( * ( char** ) arg1, * ( char** ) arg2 );
-}
-
-#if defined(__BORLANDC__)
-	#pragma argsused
-#endif
-
-#if defined(__WATCOMC__)
-
-int	glob(const char *pattern, int flags, void* unused, glob_t* glob)
-{
-    struct	find_t ff;
-	size_t	found=0;
-	char	path[MAX_PATH+1];
-	char*	p;
-	char**	new_pathv;
-
-	if(!(flags&GLOB_APPEND)) {
-		glob->gl_pathc=0;
-		glob->gl_pathv=NULL;
-	}
-
-	if(_dos_findfirst((char*)pattern,(flags&GLOB_PERIOD) ? _A_HIDDEN : _A_NORMAL,&ff)!=0)
-		return(GLOB_NOMATCH);
-
-	do {
-		if((flags&GLOB_PERIOD || ff.name[0]!='.') &&
-			(!(flags&GLOB_ONLYDIR) || ff.attrib&_A_SUBDIR)) {
-			if((new_pathv=realloc(glob->gl_pathv
-				,(glob->gl_pathc+1)*sizeof(char*)))==NULL) {
-				globfree(glob);
-				return(GLOB_NOSPACE);
-			}
-			glob->gl_pathv=new_pathv;
-
-			/* build the full pathname */
-			SAFECOPY(path,pattern);
-			p=getfname(path);
-			*p=0;
-			strcat(path,ff.name);
-
-			if((glob->gl_pathv[glob->gl_pathc]=malloc(strlen(path)+2))==NULL) {
-				globfree(glob);
-				return(GLOB_NOSPACE);
-			}
-			strcpy(glob->gl_pathv[glob->gl_pathc],path);
-			if(flags&GLOB_MARK && ff.attrib&_A_SUBDIR)
-				strcat(glob->gl_pathv[glob->gl_pathc],"/");
-
-			glob->gl_pathc++;
-			found++;
-		}
-	} while(_dos_findnext(&ff)==0);
-	_dos_findclose(&ff);
-
-	if(found==0)
-		return(GLOB_NOMATCH);
-
-	if(!(flags&GLOB_NOSORT)) {
-		qsort(glob->gl_pathv,found,sizeof(char*),glob_compare);
-	}
-
-	return(0);	/* success */
-}
-
-#else
-
-int	glob(const char *pattern, int flags, void* unused, glob_t* glob)
-{
-    struct	_finddata_t ff;
-	long	ff_handle;
-	size_t	found=0;
-	char	path[MAX_PATH+1];
-	char*	p;
-	char**	new_pathv;
-
-	if(!(flags&GLOB_APPEND)) {
-		glob->gl_pathc=0;
-		glob->gl_pathv=NULL;
-	}
-
-	ff_handle=_findfirst((char*)pattern,&ff);
-	while(ff_handle!=-1) {
-		if((flags&GLOB_PERIOD || (ff.name[0]!='.' && !(ff.attrib&_A_HIDDEN))) &&
-			(!(flags&GLOB_ONLYDIR) || ff.attrib&_A_SUBDIR)) {
-			if((new_pathv=(char**)realloc(glob->gl_pathv
-				,(glob->gl_pathc+1)*sizeof(char*)))==NULL) {
-				globfree(glob);
-				return(GLOB_NOSPACE);
-			}
-			glob->gl_pathv=new_pathv;
-
-			/* build the full pathname */
-			SAFECOPY(path,pattern);
-			p=getfname(path);
-			*p=0;
-			SAFECAT(path,ff.name);
-
-			if((glob->gl_pathv[glob->gl_pathc]=(char*)malloc(strlen(path)+2))==NULL) {
-				globfree(glob);
-				return(GLOB_NOSPACE);
-			}
-			strcpy(glob->gl_pathv[glob->gl_pathc],path);
-			if(flags&GLOB_MARK && ff.attrib&_A_SUBDIR)
-				strcat(glob->gl_pathv[glob->gl_pathc],"/");
-
-			glob->gl_pathc++;
-			found++;
-		}
-		if(_findnext(ff_handle, &ff)!=0) {
-			_findclose(ff_handle);
-			ff_handle=-1;
-		}
-	}
-
-	if(found==0)
-		return(GLOB_NOMATCH);
-
-	if(!(flags&GLOB_NOSORT)) {
-		qsort(glob->gl_pathv,found,sizeof(char*),glob_compare);
-	}
-
-	return(0);	/* success */
-}
-
-#endif
-
-void globfree(glob_t* glob)
-{
-	size_t i;
-
-	if(glob==NULL)
-		return;
-
-	if(glob->gl_pathv!=NULL) {
-		for(i=0;i<glob->gl_pathc;i++)
-			if(glob->gl_pathv[i]!=NULL)
-				free(glob->gl_pathv[i]);
-
-		free(glob->gl_pathv);
-		glob->gl_pathv=NULL;
-	}
-	glob->gl_pathc=0;
-}
-
-#endif /* !defined(__unix__) */
-
-/****************************************************************************/
-/* Returns number of files and/or sub-directories in directory (path)		*/
-/* Similar, but not identical, to getfilecount()							*/
-/****************************************************************************/
-long getdirsize(const char* path, BOOL include_subdirs, BOOL subdir_only)
-{
-	char		match[MAX_PATH+1];
-	glob_t		g;
-	unsigned	gi;
-	long		count=0;
-
-	if(!isdir(path))
-		return -1;
-
-	SAFECOPY(match,path);
-	backslash(match);
-	SAFECAT(match,ALLFILES);
-	if (glob(match,GLOB_MARK,NULL,&g) != 0)
-		return 0;
-	if(include_subdirs && !subdir_only)
-		count=g.gl_pathc;
-	else
-		for(gi=0;gi<g.gl_pathc;gi++) {
-			if(*lastchar(g.gl_pathv[gi])=='/') {
-				if(!include_subdirs)
-					continue;
-			} else
-				if(subdir_only)
-					continue;
-			count++;
-		}
-	globfree(&g);
-	return(count);
-}
-
-/****************************************************************************/
-/* POSIX directory operations using Microsoft _findfirst/next API.			*/
-/****************************************************************************/
-#if defined(_MSC_VER) || defined(__DMC__)
-DIR* opendir(const char* dirname)
-{
-	DIR*	dir;
-
-	if((dir=(DIR*)calloc(1,sizeof(DIR)))==NULL) {
-		errno=ENOMEM;
-		return(NULL);
-	}
-	sprintf(dir->filespec,"%.*s",sizeof(dir->filespec)-5,dirname);
-	if(*dir->filespec && dir->filespec[strlen(dir->filespec)-1]!='\\')
-		strcat(dir->filespec,"\\");
-	strcat(dir->filespec,"*.*");
-	dir->handle=_findfirst(dir->filespec,&dir->finddata);
-	if(dir->handle==-1) {
-		errno=ENOENT;
-		free(dir);
-		return(NULL);
-	}
-	return(dir);
-}
-struct dirent* readdir(DIR* dir)
-{
-	if(dir==NULL)
-		return(NULL);
-	if(dir->end==TRUE)
-		return(NULL);
-	if(dir->handle==-1)
-		return(NULL);
-	sprintf(dir->dirent.d_name,"%.*s",sizeof(struct dirent)-1,dir->finddata.name);
-	if(_findnext(dir->handle,&dir->finddata)!=0)
-		dir->end=TRUE;
-	return(&dir->dirent);
-}
-int closedir (DIR* dir)
-{
-	if(dir==NULL)
-		return(-1);
-	_findclose(dir->handle);
-	free(dir);
-	return(0);
-}
-void rewinddir(DIR* dir)
-{
-	if(dir==NULL)
-		return;
-	_findclose(dir->handle);
-	dir->end=FALSE;
-	dir->handle=_findfirst(dir->filespec,&dir->finddata);
-}
-#endif /* defined(_MSC_VER) */
-
-/****************************************************************************/
-/* Returns the creation time of the file 'filename' in time_t format		*/
-/****************************************************************************/
-time_t fcdate(const char* filename)
-{
-	struct stat st;
-
-	if(stat(filename, &st) != 0)
-		return -1;
-
-	return st.st_ctime;
-}
-
-/****************************************************************************/
-/* Returns the time/date of the file in 'filename' in time_t (unix) format  */
-/****************************************************************************/
-time_t fdate(const char* filename)
-{
-	struct stat st;
-
-	if(stat(filename, &st)!=0)
-		return(-1);
-
-	return(st.st_mtime);
-}
-
-/****************************************************************************/
-/* Change the access and modification times for specified filename			*/
-/****************************************************************************/
-int setfdate(const char* filename, time_t t)
-{
-	struct utimbuf ut;
-
-	memset(&ut,0,sizeof(ut));
-
-	ut.actime=t;
-	ut.modtime=t;
-
-	return(utime(filename,&ut));
-}
-
-/****************************************************************************/
-/* Returns the length of the file in 'filename'                             */
-/* or -1 if the file doesn't exist											*/
-/****************************************************************************/
-off_t flength(const char *filename)
-{
-#if defined(__BORLANDC__) && !defined(__unix__)	/* stat() doesn't work right */
-
-	long	handle;
-	struct _finddata_t f;
-
-	if((handle=_findfirst((char*)filename,&f))==-1)
-		return(-1);
-
- 	_findclose(handle);
-
-	return(f.size);
-
-#else
-
-	struct stat st;
-
-	if(stat(filename, &st)!=0)
-		return(-1);
-
-	return(st.st_size);
-
-#endif
-}
-
-
-/****************************************************************************/
-/* Checks the file system for the existence of a file.						*/
-/* Returns TRUE if it exists, FALSE if it doesn't.                          */
-/* 'filename' may *NOT* contain wildcards!									*/
-/****************************************************************************/
-static BOOL fnameexist(const char *filename)
-{
-	struct stat st;
-
-	if(stat(filename, &st) != 0)
-		return FALSE;
-
-	if(S_ISDIR(st.st_mode))
-		return FALSE;
-
-	return TRUE;
-}
-
-/****************************************************************************/
-/* Checks the file system for the existence of one or more files.			*/
-/* Returns TRUE if it exists, FALSE if it doesn't.                          */
-/* 'filespec' may contain wildcards!										*/
-/****************************************************************************/
-BOOL fexist(const char *filespec)
-{
-#if defined(_WIN32)
-
-	long	handle;
-	struct _finddata_t f;
-	BOOL	found;
-
-	if(!strchr(filespec,'*') && !strchr(filespec,'?'))
-		return(fnameexist(filespec));
-
-	if((handle=_findfirst((char*)filespec,&f))==-1)
-		return(FALSE);
-	found=TRUE;
-	while(f.attrib&_A_SUBDIR)
-		if(_findnext(handle,&f)!=0) {
-			found=FALSE;
-			break;
-		}
-
- 	_findclose(handle);
-
-	return(found);
-
-#else /* Unix or OS/2 */
-
-	/* portion by cmartin */
-
-	glob_t g;
-    int c;
-
-	if(!strchr(filespec,'*') && !strchr(filespec,'?'))
-		return(fnameexist(filespec));
-
-    /* start the search */
-    glob(filespec, GLOB_MARK | GLOB_NOSORT, NULL, &g);
-
-    if (!g.gl_pathc) {
-	    /* no results */
-    	globfree(&g);
-    	return FALSE;
-    }
-
-    /* make sure it's not a directory */
-	c = g.gl_pathc;
-    while (c--) {
-    	if (*lastchar(g.gl_pathv[c]) != '/') {
-        	globfree(&g);
-            return TRUE;
-        }
-    }
-
-    globfree(&g);
-    return FALSE;
-
-#endif
-}
-
-/****************************************************************************/
-/* Fixes upper/lowercase filename for Unix file systems						*/
-/****************************************************************************/
-BOOL fexistcase(char *path)
-{
-#if defined(_WIN32)
-
-	char*	fname;
-	long	handle;
-	struct _finddata_t f;
-
-	if(access(path, F_OK)==-1 && !strchr(path,'*') && !strchr(path,'?'))
-		return(FALSE);
-
-	if((handle=_findfirst((char*)path,&f))==-1)
-		return(FALSE);
-
- 	_findclose(handle);
-
- 	if(f.attrib&_A_SUBDIR)
-		return(FALSE);
-
-	fname=getfname(path);	/* Find filename in path */
-	strcpy(fname,f.name);	/* Correct filename */
-
-	return(TRUE);
-
-#else /* Unix or OS/2 */
-
-	char globme[MAX_PATH*4+1];
-	char fname[MAX_PATH+1];
-	char tmp[5];
-	char *p;
-	int  i;
-	glob_t	glb;
-
-	if(path[0]==0)		/* work around glibc bug 574274 */
-		return FALSE;
-
-	if(!strchr(path,'*') && !strchr(path,'?') && fnameexist(path))
-		return(TRUE);
-
-	SAFECOPY(globme,path);
-	p=getfname(globme);
-	SAFECOPY(fname,p);
-	*p=0;
-	for(i=0;fname[i];i++)  {
-		if(IS_ALPHA(fname[i]))
-			sprintf(tmp,"[%c%c]",toupper(fname[i]),tolower(fname[i]));
-		else
-			sprintf(tmp,"%c",fname[i]);
-		strncat(globme,tmp,MAX_PATH*4);
-	}
-#if 0
-	if(strcspn(path,"?*")!=strlen(path))  {
-		sprintf(path,"%.*s",MAX_PATH,globme);
-		return(fexist(path));
-	}
-#endif
-
-	if(glob(globme,GLOB_MARK,NULL,&glb) != 0)
-		return(FALSE);
-
-	if(glb.gl_pathc>0)  {
-		for(i=0;i<glb.gl_pathc;i++)  {
-			if(*lastchar(glb.gl_pathv[i]) != '/')
-				break;
-		}
-		if(i<glb.gl_pathc)  {
-			sprintf(path,"%.*s",MAX_PATH,glb.gl_pathv[i]);
-			globfree(&glb);
-			return TRUE;
-		}
-	}
-
-	globfree(&glb);
-	return FALSE;
-
-#endif
-}
-
-/****************************************************************************/
-/* Returns TRUE if the filename specified is a directory					*/
-/****************************************************************************/
-BOOL isdir(const char *filename)
-{
-	char	path[MAX_PATH+1];
-	char*	p;
-	struct stat st;
-
-	SAFECOPY(path,filename);
-
-	p=lastchar(path);
-	if(p!=path && IS_PATH_DELIM(*p)) {	/* chop off trailing slash */
-#if !defined(__unix__)
-		if(*(p-1)!=':')		/* Don't change C:\ to C: */
-#endif
-			*p=0;
-	}
-
-#if defined(__BORLANDC__) && !defined(__unix__)	/* stat() doesn't work right */
-	if(stat(path, &st)!=0 || strchr(path,'*')!=NULL || strchr(path,'?')!=NULL)
-#else
-	if(stat(path, &st)!=0)
-#endif
-		return(FALSE);
-
-	return(S_ISDIR(st.st_mode) ? TRUE : FALSE);
-}
-
-/****************************************************************************/
-/* Returns the attributes (mode) for specified 'filename' or -1 on failure.	*/
-/* The return value on Windows is *not* compatible with chmod().			*/
-/****************************************************************************/
-int getfattr(const char* filename)
-{
-#if defined(_WIN32)
-	long handle;
-	struct _finddata_t	finddata;
-
-	if((handle=_findfirst((char*)filename,&finddata))==-1) {
-		errno=ENOENT;
-		return(-1);
-	}
-	_findclose(handle);
-	return(finddata.attrib);
-#else
-	struct stat st;
-
-	if(stat(filename, &st)!=0) {
-		errno=ENOENT;
-		return(-1L);
-	}
-
-	return(st.st_mode);
-#endif
-}
-
-/****************************************************************************/
-/* Returns the mode / type flags for specified 'filename'					*/
-/* The return value *is* compatible with chmod(), or -1 upon failure.		*/
-/****************************************************************************/
-int getfmode(const char* filename)
-{
-	struct stat st;
-
-	if(stat(filename, &st) != 0)
-		return -1;
-
-	return st.st_mode;
-}
-
-
-#ifdef __unix__
-int removecase(const char *path)
-{
-	char inpath[MAX_PATH+1];
-	char fname[MAX_PATH*4+1];
-	char tmp[5];
-	char *p;
-	int  i;
-
-	if(strchr(path,'?') || strchr(path,'*'))
-		return(-1);
-	SAFECOPY(inpath,path);
-	p=getfname(inpath);
-	fname[0]=0;
-	for(i=0;p[i];i++)  {
-		if(IS_ALPHA(p[i]))
-			sprintf(tmp,"[%c%c]",toupper(p[i]),tolower(p[i]));
-		else
-			sprintf(tmp,"%c",p[i]);
-		strncat(fname,tmp,MAX_PATH*4);
-	}
-	*p=0;
-
-	return(delfiles(inpath,fname,0) >=1 ? 0 : -1);
-}
-#endif
-
-/****************************************************************************/
-/* Deletes all files in dir 'path' that match file spec 'spec'              */
-/* Optionally, keep the last so many files (sorted by name)                 */
-/* Returns number of files deleted or negative on error						*/
-/****************************************************************************/
-long delfiles(const char *inpath, const char *spec, size_t keep)
-{
-	char	*path;
-	char	lastch;
-	size_t	i;
-    ulong	files = 0;
-	long	errors = 0;
-	glob_t	g;
-	size_t	inpath_len=strlen(inpath);
-
-	if(inpath_len==0)
-		lastch=0;
-	else
-		lastch=inpath[inpath_len-1];
-	path=(char *)malloc(inpath_len+1/*Delim*/+strlen(spec)+1/*Terminator*/);
-	if(path==NULL)
-		return -1;
-	if(!IS_PATH_DELIM(lastch) && lastch)
-		sprintf(path,"%s%c",inpath,PATH_DELIM);
-	else
-		strcpy(path,inpath);
-	strcat(path,spec);
-	glob(path,0,NULL,&g);
-	free(path);
-	if(keep >= g.gl_pathc)
-		return 0;
-	for(i = 0; i < g.gl_pathc && files < g.gl_pathc - keep; i++) {
-		if(isdir(g.gl_pathv[i]))
-			continue;
-		(void)CHMOD(g.gl_pathv[i],S_IWRITE);	/* In case it's been marked RDONLY */
-		if(remove(g.gl_pathv[i])==0)
-			files++;
-		else
-			errors++;
-	}
-	globfree(&g);
-	if(errors)
-		return -errors;
-	return files;
-}
-
-/****************************************************************************/
-/* Returns number of files matching 'inpath'								*/
-/* Similar, but not identical, to getdirsize(), e.g. subdirs never counted	*/
-/****************************************************************************/
-ulong getfilecount(const char *inpath)
-{
-	char path[MAX_PATH+1];
-	glob_t	g;
-	uint	gi;
-	ulong	count = 0;
-
-	SAFECOPY(path, inpath);
-	if(isdir(path))
-		backslash(path);
-	if(IS_PATH_DELIM(*lastchar(path)))
-		SAFECAT(path, ALLFILES);
-	if(glob(path, GLOB_MARK, NULL, &g))
-		return 0;
-	for(gi = 0; gi < g.gl_pathc; ++gi) {
-		if(*lastchar(g.gl_pathv[gi]) == '/')
-			continue;
-		count++;
-	}
-	globfree(&g);
-	return count;
-}
-
-/****************************************************************************/
-/* Returns number of bytes used by file(s) matching 'inpath'				*/
-/****************************************************************************/
-uint64_t getfilesizetotal(const char *inpath)
-{
-	char path[MAX_PATH+1];
-	glob_t	g;
-	uint	gi;
-	off_t	size;
-	uint64_t total = 0;
-
-	SAFECOPY(path, inpath);
-	if(isdir(path))
-		backslash(path);
-	if(IS_PATH_DELIM(*lastchar(path)))
-		SAFECAT(path, ALLFILES);
-	if(glob(path, GLOB_MARK, NULL, &g))
-		return 0;
-	for(gi = 0; gi < g.gl_pathc; ++gi) {
-		if(*lastchar(g.gl_pathv[gi]) == '/')
-			continue;
-		size = flength(g.gl_pathv[gi]);
-		if(size >= 1)
-			total += size;
-	}
-	globfree(&g);
-	return total;
-}
-
-/****************************************************************************/
-/* Return free disk space in bytes (up to a maximum of 4GB)					*/
-/****************************************************************************/
-#if defined(_WIN32)
-typedef BOOL(WINAPI * GetDiskFreeSpaceEx_t)
-	(LPCTSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER);
-
-static int bit_num(ulong val)
-{
-	int i;
-
-	for(i=31;i>=0;i--)
-		if(val&(1<<i))
-			return(i);
-
-	return(-1);
-}
-#endif
-
-/* Unit should be a power-of-2 (e.g. 1024 to report kilobytes) or 1 (to report bytes) */
-static ulong getdiskspace(const char* path, ulong unit, BOOL freespace)
-{
-#if defined(_WIN32)
-	char			root[16];
-	DWORD			TotalNumberOfClusters;
-	DWORD			NumberOfFreeClusters;
-	DWORD			BytesPerSector;
-	DWORD			SectorsPerCluster;
-	ULARGE_INTEGER	avail;
-	ULARGE_INTEGER	size;
-	static HINSTANCE hK32;
-	GetDiskFreeSpaceEx_t GetDiskFreeSpaceEx;
-
-	if(hK32 == NULL)
-		hK32 = LoadLibrary("KERNEL32");
-	GetDiskFreeSpaceEx
-		= (GetDiskFreeSpaceEx_t)GetProcAddress(hK32,"GetDiskFreeSpaceExA");
-
-	if (GetDiskFreeSpaceEx!=NULL) {	/* Windows 95-OSR2 or later */
-		if(!GetDiskFreeSpaceEx(
-			path,		/* pointer to the directory name */
-			&avail,		/* receives the number of bytes on disk avail to the caller */
-			&size,		/* receives the number of bytes on disk */
-			NULL))		/* receives the free bytes on disk */
-			return(0);
-
-		if(freespace)
-			size=avail;
-
-		if(unit>1)
-			size.QuadPart=Int64ShrlMod32(size.QuadPart,bit_num(unit));
-
-#if defined(_ANONYMOUS_STRUCT)
-		if(size.HighPart)
-#else
-		if(size.u.HighPart)
-#endif
-			return(0xffffffff);	/* 4GB max */
-
-#if defined(_ANONYMOUS_STRUCT)
-		return(size.LowPart);
-#else
-		return(size.u.LowPart);
-#endif
-	}
-
-	/* Windows 95 (old way), limited to 2GB */
-	sprintf(root,"%.3s",path);
-	if(!GetDiskFreeSpace(
-		root,					/* pointer to root path */
-		(PDWORD)&SectorsPerCluster,		/* pointer to sectors per cluster */
-		(PDWORD)&BytesPerSector,		/* pointer to bytes per sector */
-		(PDWORD)&NumberOfFreeClusters,	/* pointer to number of free clusters */
-		(PDWORD)&TotalNumberOfClusters  /* pointer to total number of clusters */
-		))
-		return(0);
-
-	if(freespace)
-		TotalNumberOfClusters = NumberOfFreeClusters;
-	if(unit>1)
-		TotalNumberOfClusters/=unit;
-	return(TotalNumberOfClusters*SectorsPerCluster*BytesPerSector);
-
-
-#elif defined(__solaris__) || (defined(__NetBSD_Version__) && (__NetBSD_Version__ >= 300000000 /* NetBSD 3.0 */))
-
-	struct statvfs fs;
-	unsigned long blocks;
-
-    if (statvfs(path, &fs) < 0)
-    	return 0;
-
-	if(freespace)
-		blocks=fs.f_bavail;
-	else
-		blocks=fs.f_blocks;
-
-	if(unit>1)
-		blocks/=unit;
-    return fs.f_bsize * blocks;
-
-/* statfs is also used under FreeBSD (Though it *supports* statvfs() now too) */
-#elif defined(__GLIBC__) || defined(BSD)
-
-	struct statfs fs;
-	unsigned long blocks;
-
-	if(statfs(path, &fs) < 0)
-    	return 0;
-
-	if(freespace)
-		blocks=fs.f_bavail;
-	else
-		blocks=fs.f_blocks;
-
-	if(unit>1)
-		blocks/=unit;
-    return fs.f_bsize * blocks;
-
-#else
-
-	fprintf(stderr,"\n*** !Missing getfreediskspace implementation ***\n");
-	return(0);
-
-#endif
-}
-
-ulong getfreediskspace(const char* path, ulong unit)
-{
-	return getdiskspace(path, unit, /* freespace? */TRUE);
-}
-
-ulong getdisksize(const char* path, ulong unit)
-{
-	return getdiskspace(path, unit, /* freespace? */FALSE);
-}
-
-/****************************************************************************/
-/* Resolves //, /./, and /../ in a path. Should work identically to Windows */
-/****************************************************************************/
-#if defined(__unix__)
-char * _fullpath(char *target, const char *path, size_t size)  {
-	char	*out;
-	char	*p;
-	BOOL	target_alloced=FALSE;
-
-	if(target==NULL)  {
-		if((target=malloc(MAX_PATH+1))==NULL) {
-			return(NULL);
-		}
-		target_alloced=TRUE;
-	}
-	out=target;
-	*out=0;
-
-	if(*path != '/')  {
-		if(*path == '~') {
-			p=getenv("HOME");
-			if(p==NULL || strlen(p)+strlen(path)>=size) {
-				if(target_alloced)
-					free(target);
-				return(NULL);
-			}
-			strcpy(target,p);
-			out=strrchr(target,'\0');
-			path++;
-		}
-		else {
-			p=getcwd(NULL,size);
-			if(p==NULL || strlen(p)+strlen(path)>=size) {
-				if(target_alloced)
-					free(target);
-				return(NULL);
-			}
-			strcpy(target,p);
-			free(p);
-			out=strrchr(target,'\0');
-			*(out++)='/';
-			*out=0;
-			out--;
-		}
-	}
-	strncat(target,path,size-1);
-
-/*	if(stat(target,&sb))
-		return(NULL);
-	if(sb.st_mode&S_IFDIR)
-		strcat(target,"/"); */
-
-	for(;*out;out++) {
-		while(*out=='/') {
-			if(*(out+1)=='/')
-				memmove(out,out+1,strlen(out));
-			else if(*(out+1)=='.' && (*(out+2)=='/' || *(out+2)==0))
-				memmove(out,out+2,strlen(out)-1);
-			else if(*(out+1)=='.' && *(out+2)=='.' && (*(out+3)=='/' || *(out+3)==0))  {
-				*out=0;
-				p=strrchr(target,'/');
-				if(p==NULL)
-					p=target;
-				memmove(p,out+3,strlen(out+3)+1);
-				out=p;
-			}
-			else  {
-				out++;
-			}
-		}
-		if (!*out)
-			break;
-	}
-	return(target);
-}
-#endif
-
-/****************************************************************************/
-/* Adds a trailing slash/backslash (path delimiter) on path strings 		*/
-/****************************************************************************/
-char* backslash(char* path)
-{
-	char* p;
-
-	p=lastchar(path);
-
-	if(*p && !IS_PATH_DELIM(*p)) {
-#if defined(__unix__)
-		/* Convert trailing backslash to forwardslash on *nix */
-		if(*p!='\\')
-#endif
-			p++;
-		*p=PATH_DELIM;
-		*(++p)=0;
-	}
-	return(path);
-}
-
-/****************************************************************************/
-/* Returns true if the specified filename an absolute pathname				*/
-/****************************************************************************/
-BOOL isabspath(const char *filename)
-{
-	char path[MAX_PATH+1];
-
-	return(stricmp(filename,FULLPATH(path,filename,sizeof(path)))==0);
-}
-
-/****************************************************************************/
-/* Returns true if the specified filename is a full ("rooted") path			*/
-/****************************************************************************/
-BOOL isfullpath(const char* filename)
-{
-	return(filename[0]=='/'
-#ifdef WIN32
-		|| filename[0]=='\\' || (IS_ALPHA(filename[0]) && filename[1]==':')
-#endif
-		);
-}
-
-/****************************************************************************/
-/* Matches file name against filespec										*/
-/* Optionally not allowing * to match PATH_DELIM (for paths)				*/
-/****************************************************************************/
-
-BOOL wildmatch(const char *fname, const char *spec, BOOL path, BOOL case_sensitive)
-{
-	char *specp;
-	char *fnamep;
-	char *wildend;
-
-	specp=(char *)spec;
-	fnamep=(char *)fname;
-	for(;;specp++, fnamep++) {
-		switch(*specp) {
-			case '?':
-				if(!(*fnamep))
-					return(FALSE);
-				break;
-			case 0:
-				if(!*fnamep)
-					return(TRUE);
-				break;
-			case '*':
-				while(*specp=='*')
-					specp++;
-				if(path) {
-					for(wildend=fnamep; *wildend; wildend++) {
-						if(IS_PATH_DELIM(*wildend)) {
-							wildend--;
-							break;
-						}
-					}
-				}
-				else
-					wildend=strchr(fnamep, 0);
-				for(;wildend >= fnamep;wildend--) {
-					if(wildmatch(wildend, specp, path, case_sensitive))
-						return(TRUE);
-				}
-				return(FALSE);
-			default:
-				if(case_sensitive && *specp != *fnamep)
-					return(FALSE);
-				if((!case_sensitive) && toupper(*specp) != toupper(*fnamep))
-					return(FALSE);
-		}
-		if(!(*specp && *fnamep))
-			break;
-	}
-	while(*specp=='*')
-		specp++;
-	if(*specp==*fnamep)
-		return(TRUE);
-	if((!case_sensitive) && toupper(*specp) == toupper(*fnamep))
-		return(TRUE);
-	return(FALSE);
-}
-
-/****************************************************************************/
-/* Matches file name against filespec, ignoring case						*/
-/****************************************************************************/
-BOOL wildmatchi(const char *fname, const char *spec, BOOL path)
-{
-	return wildmatch(fname, spec, path, /* case_sensitive: */FALSE);
-}
-
-/****************************************************************************/
-/* Creates all the necessary directories in the specified path				*/
-/****************************************************************************/
-int mkpath(const char* path)
-{
-	const char*	p=path;
-	const char*	tp;
-	const char*	sep=
-#ifdef _WIN32
-		"\\"
-#endif
-		"/";
-	char	dir[MAX_PATH+1];
-	int		result=0;
-
-#ifdef _WIN32
-	if(p[1]==':')	/* Skip drive letter, if specified */
-		p+=2;
-#endif
-
-	while(*p) {
-		SKIP_CHARSET(p,sep);
-		if(*p==0)
-			break;
-		tp=p;
-		FIND_CHARSET(tp,sep);
-		safe_snprintf(dir,sizeof(dir),"%.*s", (int)(tp-path), path);
-		if(!isdir(dir)) {
-			if((result=MKDIR(dir))!=0)
-				break;
-		}
-		p=tp;
-	}
-
-	return(result);
-}
-
-#if !defined _WIN32
-BOOL CopyFile(const char* src, const char* dest, BOOL failIfExists)
-{
-	uint8_t	buf[256 * 1024];
-	FILE*	in;
-	FILE*	out;
-	BOOL	success=TRUE;
-
-	if(failIfExists && fexist(dest))
-		return FALSE;
-	if((in=fopen(src,"rb"))==NULL)
-		return FALSE;
-	if((out=fopen(dest,"wb"))==NULL) {
-		fclose(in);
-		return FALSE;
-	}
-
-	time_t	ftime = filetime(fileno(in));
-	while(!feof(in)) {
-		size_t rd = fread(buf, sizeof(uint8_t), sizeof(buf), in);
-		if(rd < 1)
-			break;
-		if(fwrite(buf, sizeof(uint8_t), rd, out) != rd) {
-			success = FALSE;
-			break;
-		}
-		MAYBE_YIELD();
-	}
-
-	fclose(in);
-	fclose(out);
-	setfdate(dest,ftime);
-
-	return success;
-}
-#endif
diff --git a/xpdev/dirwrap.h b/xpdev/dirwrap.h
deleted file mode 100644
index dce4345f214cc4cdf312769c1b503a33932aa2b1..0000000000000000000000000000000000000000
--- a/xpdev/dirwrap.h
+++ /dev/null
@@ -1,246 +0,0 @@
-/* Directory system-call wrappers */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _DIRWRAP_H
-#define _DIRWRAP_H
-
-#include <stdlib.h>		/* _fullpath() on Win32 */
-
-#if defined(__unix__)
-	#include <sys/param.h>	/* PATH_MAX */
-#endif
-
-#if defined(INCLUDE_PATHS_H)
-	#include <paths.h>		/* _PATHS_* macros */
-#endif
-
-#include "gen_defs.h"	/* ulong */
-#include "wrapdll.h"	/* DLLEXPORT */
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#define ALLFILES "*"	/* matches all files in a directory */
-
-/****************/
-/* RTL-specific */
-/****************/
-
-#if defined(__unix__)
-
-	#include <sys/types.h>
-	#include <sys/stat.h>
-	#include <glob.h>		/* POSIX.2 directory pattern matching function */
-	#define MKDIR(dir)		mkdir(dir,0777)
-
-	#if defined(__CYGWIN__)
-		#define DLLEXPORT	/* CygWin's glob.h #undef's DLLEXPORT */
-	#endif
-
-#else
-
-	/* Values for the second argument to access.
-	   These may be OR'd together.  */
-	#define R_OK    4               /* Test for read permission.  */
-	#define W_OK    2               /* Test for write permission.  */
-	#define X_OK    1               /* Test for execute permission.  */
-	#define F_OK    0               /* Test for existence.  */
-
-	#include <direct.h>		/* mkdir() */
-
-	#ifdef __WATCOMC__
-		#define MKDIR(dir)		mkdir(dir)
-	#else
-		#define MKDIR(dir)		_mkdir(dir)
-	#endif
-
-	/* glob-compatible findfirst/findnext wrapper */
-
-	typedef struct 
-	{
-			size_t gl_pathc;			/* Count of paths matched so far */
-			char **gl_pathv;			/* List of matched pathnames. */
-			size_t gl_offs;				/* Slots to reserve in 'gl_pathv'. */
-	} glob_t;
-
-	/* Bits set in the FLAGS argument to `glob'.  */
-	#define GLOB_ERR        (1 << 0)	/* Return on read errors.  */
-	#define GLOB_MARK       (1 << 1)	/* Append a slash to each name.  */
-	#define GLOB_NOSORT     (1 << 2)	/* Don't sort the names.  */
-	#define GLOB_DOOFFS     (1 << 3)	/* Insert PGLOB->gl_offs NULLs.  */
-	#define GLOB_NOCHECK    (1 << 4)	/* If nothing matches, return the pattern.  */
-	#define GLOB_APPEND     (1 << 5)	/* Append to results of a previous call.  */
-	#define GLOB_NOESCAPE   (1 << 6)	/* Backslashes don't quote metacharacters.  */
-	#define GLOB_PERIOD     (1 << 7)	/* Leading `.' can be matched by metachars.  */
-	#define GLOB_MAGCHAR    (1 << 8)	/* Set in gl_flags if any metachars seen.  */
-	#define GLOB_ALTDIRFUNC (1 << 9)	/* Use gl_opendir et al functions.  */
-	#define GLOB_BRACE      (1 << 10)	/* Expand "{a,b}" to "a" "b".  */
-	#define GLOB_NOMAGIC    (1 << 11)	/* If no magic chars, return the pattern.  */
-	#define GLOB_TILDE      (1 << 12)	/* Expand ~user and ~ to home directories. */
-	#define GLOB_ONLYDIR    (1 << 13)	/* Match only directories.  */
-	#define GLOB_TILDE_CHECK (1 << 14)	/* Like GLOB_TILDE but return an error
-										  if the user name is not available.  */
-	/* Error returns from `glob'.  */
-	#define GLOB_NOSPACE    1       /* Ran out of memory.  */
-	#define GLOB_ABORTED    2       /* Read error.  */
-	#define GLOB_NOMATCH    3       /* No matches found.  */
-	#define GLOB_NOSYS      4       /* Not implemented.  */
-
-	DLLEXPORT int	glob(const char *pattern, int flags, void* unused, glob_t*);
-	DLLEXPORT void	globfree(glob_t*);
-
-#endif
-
-#define FULLPATH(a,r,l)		_fullpath(a,r,l)
-
-/*****************************/
-/* POSIX Directory Functions */
-/*****************************/
-#if defined(_MSC_VER) || defined(__DMC__)
-	#include <io.h>		/* _finddata_t */
-
-	/* dirent structure returned by readdir().
-	 */
-	struct dirent
-	{	
-		char        d_name[260];	/* filename */
-	};
-
-	/* DIR type returned by opendir().  The members of this structure
-	 * must not be accessed by application programs.
-	 */
-	typedef struct
-	{
-		char				filespec[260];
-		struct dirent		dirent;
-		long				handle;
-		struct _finddata_t	finddata;
-		BOOL				end;		/* End of directory flag */
-	} DIR;
-
-
-	/* Prototypes.
-	 */
-	DLLEXPORT DIR* opendir  (const char *__dirname);
-	DLLEXPORT struct dirent* readdir  (DIR *__dir);
-	DLLEXPORT int closedir (DIR *__dir);
-	DLLEXPORT void rewinddir(DIR *__dir);
-#elif !defined(__WATCOMC__)
-	#include <dirent.h>	/* POSIX directory functions */
-#endif
-
-
-/**********/
-/* Macros */
-/**********/
-
-/* POSIX readdir convenience macro */
-#ifndef DIRENT
-#define DIRENT struct dirent	
-#endif
-
-#if defined(__unix__)
-	#define PATH_DELIM			'/'
-	#define IS_PATH_DELIM(x)	(x=='/')
-
-	/* These may be pre-defined in paths.h (BSD) */
-	#ifndef _PATH_TMP
-	#define _PATH_TMP			"/tmp/"
-	#endif
-	#ifndef _PATH_DEVNULL
-	#define _PATH_DEVNULL		"/dev/null"
-	#endif
-
-#else /* MS-DOS based OS */
-
-	#define PATH_DELIM			'\\'
-	#define IS_PATH_DELIM(x)	((x)=='/' || (x)=='\\')
-	#define _PATH_TMP			getenv("TEMP")
-	#define _PATH_DEVNULL		"NUL"
-
-#endif
-
-#if !defined(MAX_PATH)	/* maximum path length */
-	#if defined MAXPATHLEN
-		#define MAX_PATH MAXPATHLEN	/* clib.h */
-	#elif defined PATH_MAX
-		#define MAX_PATH PATH_MAX
-	#elif defined _MAX_PATH
-		#define MAX_PATH _MAX_PATH
-	#else
-		#define MAX_PATH 260		
-	#endif
-#endif
-
-#if defined(_MSC_VER) || defined(__MINGW32__)
-	#define CHMOD(s,m)		_chmod(s,m)
-#elif defined(__BORLANDC__) && !defined(__unix__)
-	#define CHMOD(p,a)		_rtl_chmod(p,1,a) 	/* _chmod obsolete in 4.x */
-#else	
-	#define CHMOD(s,m)		chmod(s,m)
-#endif
-
-/* General file system wrappers for all platforms and compilers */
-DLLEXPORT BOOL		fexist(const char *filespec);
-DLLEXPORT BOOL		fexistcase(char *filespec);	/* fixes upr/lwr case fname */
-DLLEXPORT off_t		flength(const char *filename);
-DLLEXPORT time_t	fdate(const char *filename);
-DLLEXPORT time_t	fcdate(const char* filename);
-DLLEXPORT int		setfdate(const char* filename, time_t t);
-DLLEXPORT BOOL		isdir(const char *filename);
-DLLEXPORT BOOL		isabspath(const char *filename);
-DLLEXPORT BOOL		isfullpath(const char* filename);
-DLLEXPORT char*		getfname(const char* path);
-DLLEXPORT char*		getfext(const char* path);
-DLLEXPORT int		getfattr(const char* filename);
-DLLEXPORT int		getfmode(const char* filename);
-DLLEXPORT ulong		getfilecount(const char *path);
-DLLEXPORT char*		getdirname(const char* path);
-DLLEXPORT long		getdirsize(const char* path, BOOL include_subdirs, BOOL subdir_only);
-DLLEXPORT ulong		getdisksize(const char* path, ulong unit);
-DLLEXPORT ulong		getfreediskspace(const char* path, ulong unit);
-DLLEXPORT uint64_t	getfilesizetotal(const char *path);
-DLLEXPORT long		delfiles(const char *inpath, const char *spec, size_t keep);
-DLLEXPORT char*		backslash(char* path);
-DLLEXPORT BOOL 		wildmatch(const char *fname, const char *spec, BOOL path, BOOL case_sensitive);
-DLLEXPORT BOOL 		wildmatchi(const char *fname, const char *spec, BOOL path);
-DLLEXPORT int		mkpath(const char* path);
-
-
-#if defined(__unix__)
-DLLEXPORT void _splitpath(const char *path, char *drive, char *dir, 
-								  char *fname, char *ext);
-DLLEXPORT char * _fullpath(char *target, const char *path, size_t size);
-DLLEXPORT int removecase(const char *path);
-#else
-	#define	removecase(x)	remove(x)
-#endif
-
-#if !defined _WIN32
-DLLEXPORT BOOL		CopyFile(const char* src, const char* dest, BOOL failIfExists);
-#endif
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/eventwrap.h b/xpdev/eventwrap.h
deleted file mode 100644
index e98b666d190b872cfb7e5aafe6bcc87b993e2534..0000000000000000000000000000000000000000
--- a/xpdev/eventwrap.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Event-related cross-platform development wrappers (Win32 API emulation) */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _EVENTWRAP_H
-#define _EVENTWRAP_H
-
-#include "gen_defs.h"
-
-#if defined(__unix__)
-
-	#include "xpevent.h"
-
-#elif defined(_WIN32)	
-
-	typedef HANDLE xpevent_t;
-	#define WaitForEvent(event,ms)		WaitForSingleObject(event,ms)
-	#define CloseEvent(event)			CloseHandle(event)
-
-#else
-
-	#error "Need event wrappers."
-
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/filewrap.c b/xpdev/filewrap.c
deleted file mode 100644
index 62c1670a59dd0ae032765205d7bcba50826845ba..0000000000000000000000000000000000000000
--- a/xpdev/filewrap.c
+++ /dev/null
@@ -1,427 +0,0 @@
-/* File-related system-call wrappers */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-/* OS-specific */
-#if defined(__unix__)
-
-#include <stdarg.h>		/* va_list */
-#include <string.h>     /* strlen() */
-#include <unistd.h>     /* getpid() */
-#include <fcntl.h>      /* fcntl() file/record locking */
-#include <sys/file.h>	/* L_SET for Solaris */
-#include <errno.h>
-#include <sys/param.h>	/* BSD */
-
-#endif
-
-/* ANSI */
-#include <sys/types.h>	/* _dev_t */
-#include <sys/stat.h>	/* struct stat */
-#include <limits.h>	/* struct stat */
-#include <stdlib.h>		/* realloc() */
-
-#include "filewrap.h"	/* Verify prototypes */
-
-/****************************************************************************/
-/* Returns the modification time of the file in 'fd'						*/
-/* or -1 if file doesn't exist.												*/
-/****************************************************************************/
-time_t filetime(int fd)
-{
-	struct stat st;
-
-	if(fstat(fd, &st)!=0)
-		return(-1);
-
-	return(st.st_mtime);
-}
-
-#if defined(__unix__) && !defined(__BORLANDC__)
-
-/****************************************************************************/
-/* Returns the length of the file in 'fd'									*/
-/* or -1 if file doesn't exist.												*/
-/****************************************************************************/
-off_t filelength(int fd)
-{
-	struct stat st;
-
-	if(fstat(fd, &st)!=0)
-		return(-1L);
-
-	return(st.st_size);
-}
-
-// See https://patchwork.kernel.org/patch/9289177/
-#if defined(F_OFD_SETLK) && _FILE_OFFSET_BITS != 64
-	#undef F_OFD_SETLK
-#endif
-
-/* Sets a lock on a portion of a file */
-int lock(int fd, off_t pos, off_t len)
-{
-	#if defined(F_SANERDLCKNO) || !defined(BSD)
- 		struct flock alock = {0};
-		int cmd = F_SETLK;
-	#ifdef F_OFD_SETLK
-		cmd = F_OFD_SETLK;
-	#endif
-
-	#ifndef F_SANEWRLCKNO
-		int	flags;
-		if((flags=fcntl(fd,F_GETFL))==-1)
-			return -1;
-		if((flags & (O_RDONLY|O_RDWR|O_WRONLY))==O_RDONLY)
-			alock.l_type = F_RDLCK; /* set read lock to prevent writes */
-		else
-			alock.l_type = F_WRLCK; /* set write lock to prevent all access */
-	#else
-		alock.l_type = F_SANEWRLCKNO;
-	#endif
-		alock.l_whence = L_SET;		/* SEEK_SET */
-		alock.l_start = pos;
-		alock.l_len = (int)len;
-
-		int result = fcntl(fd, cmd, &alock);
-		if(result == -1 && errno != EINVAL)
-			return -1;
-	#ifdef F_OFD_SETLK
-		if(result == 0)
-			return 0;
-	#endif
-	#endif
-
-	#if !defined(F_SANEWRLCKNO) && !defined(__QNX__) && !defined(__solaris__)
-		/* use flock (doesn't work over NFS) */
-		if(flock(fd,LOCK_EX|LOCK_NB)!=0 && errno != EOPNOTSUPP)
-			return(-1);
-	#endif
-
-		return(0);
-}
-
-/* Removes a lock from a file record */
-int unlock(int fd, off_t pos, off_t len)
-{
-
-#if defined(F_SANEUNLCK) || !defined(BSD)
-	struct flock alock = {0};
-	int cmd = F_SETLK;
-#ifdef F_OFD_SETLK
-	cmd = F_OFD_SETLK;
-#endif
-#ifdef F_SANEUNLCK
-	alock.l_type = F_SANEUNLCK;   /* remove the lock */
-#else
-	alock.l_type = F_UNLCK;   /* remove the lock */
-#endif
-	alock.l_whence = L_SET;
-	alock.l_start = pos;
-	alock.l_len = (int)len;
-	int result = fcntl(fd, cmd, &alock);
-	if(result == -1 && errno != EINVAL)
-		return -1;
-#ifdef F_OFD_SETLK
-	if(result == 0)
-		return 0;
-#endif
-#endif
-
-#if !defined(F_SANEUNLCK) && !defined(__QNX__) && !defined(__solaris__)
-	/* use flock (doesn't work over NFS) */
-	if(flock(fd,LOCK_UN|LOCK_NB)!=0 && errno != EOPNOTSUPP)
-		return(-1);
-#endif
-
-	return(0);
-}
-
-/* Opens a file in specified sharing (file-locking) mode */
-/*
- * This is how it *SHOULD* work:
- * Values of DOS 2-6.22 file sharing behavior: 
- *          | Second and subsequent Opens 
- * First    |Compat Deny   Deny   Deny   Deny 
- * Open     |       All    Write  Read   None 
- *          |R W RW R W RW R W RW R W RW R W RW
- * - - - - -| - - - - - - - - - - - - - - - - -
- * Compat R |Y Y Y  N N N  1 N N  N N N  1 N N
- *        W |Y Y Y  N N N  N N N  N N N  N N N
- *        RW|Y Y Y  N N N  N N N  N N N  N N N
- * - - - - -|
- * Deny   R |C C C  N N N  N N N  N N N  N N N
- * All    W |C C C  N N N  N N N  N N N  N N N
- *        RW|C C C  N N N  N N N  N N N  N N N
- * - - - - -|
- * Deny   R |2 C C  N N N  Y N N  N N N  Y N N
- * Write  W |C C C  N N N  N N N  Y N N  Y N N
- *        RW|C C C  N N N  N N N  N N N  Y N N
- * - - - - -| 
- * Deny   R |C C C  N N N  N Y N  N N N  N Y N
- * Read   W |C C C  N N N  N N N  N Y N  N Y N
- *        RW|C C C  N N N  N N N  N N N  N Y N
- * - - - - -| 
- * Deny   R |2 C C  N N N  Y Y Y  N N N  Y Y Y
- * None   W |C C C  N N N  N N N  Y Y Y  Y Y Y
- *        RW|C C C  N N N  N N N  N N N  Y Y Y
- * 
- * Legend:
- * Y = open succeeds, 
- * N = open fails with error code 05h. 
- * C = open fails, INT 24 generated. 
- * 1 = open succeeds if file read-only, else fails with error code. 
- * 2 = open succeeds if file read-only, else fails with INT 24 
- */
-#if !defined(__QNX__)
-int sopen(const char *fn, int sh_access, int share, ...)
-{
-	int fd;
-	int pmode=S_IREAD;
-#ifndef F_SANEWRLCKNO
-	int	flock_op=LOCK_NB;	/* non-blocking */
-#endif
-#if defined(F_SANEWRLCKNO) || !defined(BSD)
-	struct flock alock = {0};
-#endif
-    va_list ap;
-
-    if(sh_access&O_CREAT) {
-        va_start(ap,share);
-        pmode = va_arg(ap,unsigned int);
-        va_end(ap);
-    }
-
-	if ((fd = open(fn, sh_access, pmode)) < 0)
-		return -1;
-
-	if (share == SH_DENYNO || share == SH_COMPAT) /* no lock needed */
-		return fd;
-#if defined(F_SANEWRLCKNO) || !defined(BSD)
-	int cmd = F_SETLK;
-#ifdef F_OFD_SETLK
-	cmd = F_OFD_SETLK;
-#endif
-	/* use fcntl (doesn't work correctly with threads) */
-	alock.l_type = share;
-	alock.l_whence = L_SET;
-	alock.l_start = 0;
-	alock.l_len = 0;       /* lock to EOF */
-
-	if(fcntl(fd, cmd, &alock)==-1 && errno != EINVAL) {	/* EINVAL means the file does not support locking */
-		close(fd);
-		return -1;
-	}
-#endif
-
-#if !defined(F_SANEWRLCKNO) && !defined(__QNX__) && !defined(__solaris__)
-	/* use flock (doesn't work over NFS) */
-	if(share==SH_DENYRW)
-		flock_op|=LOCK_EX;
-	else   /* SH_DENYWR */
-		flock_op|=LOCK_SH;
-	if(flock(fd,flock_op)!=0 && errno != EOPNOTSUPP) { /* That object doesn't do locks */
-		if(errno==EWOULDBLOCK) 
-			errno=EAGAIN;
-		close(fd);
-		return(-1);
-	}
-#endif
-
-	return fd;
-}
-#endif /* !QNX */
-
-#elif defined(_MSC_VER) || defined(__MINGW32__) || defined(__DMC__)
-
-#include <io.h>				/* tell */
-#include <stdio.h>			/* SEEK_SET */
-#include <sys/locking.h>	/* _locking */
-
-/* Fix MinGW locking.h typo */
-#if defined LK_UNLOCK && !defined LK_UNLCK
-	#define LK_UNLCK LK_UNLOCK
-#endif
-
-int lock(int file, off_t offset, off_t size) 
-{
-	int	i;
-	off_t pos;
-   
-	pos=tell(file);
-	if(offset!=pos)
-		(void)lseek(file, offset, SEEK_SET);
-	i=_locking(file,LK_NBLCK,(long)size);
-	if(offset!=pos)
-		(void)lseek(file, pos, SEEK_SET);
-	return(i);
-}
-
-int unlock(int file, off_t offset, off_t size)
-{
-	int	i;
-	off_t	pos;
-   
-	pos=tell(file);
-	if(offset!=pos)
-		(void)lseek(file, offset, SEEK_SET);
-	i=_locking(file,LK_UNLCK,(long)size);
-	if(offset!=pos)
-		(void)lseek(file, pos, SEEK_SET);
-	return(i);
-}
-
-#endif	/* !Unix && (MSVC || MinGW) */
-
-#if defined(_WIN32 )
-static size_t
-p2roundup(size_t n)
-{
-	if(n & (n-1)) {	// If n isn't a power of two already...
-		n--;
-		n |= n >> 1;
-		n |= n >> 2;
-		n |= n >> 4;
-		n |= n >> 8;
-		n |= n >> 16;
-#if SIZE_T_MAX > 0xffffffffU
-		n |= n >> 32;
-#endif
-		n++;
-	}
-	return (n);
-}
-
-static int expandtofit(char **linep, size_t len, size_t *linecapp)
-{
-	char	*newline;
-	size_t	newcap;
-
-	if(len+1 >= LONG_MAX)
-		return -1;
-	if(len > *linecapp) {
-		if(len == LONG_MAX)
-			newcap = LONG_MAX;
-		else
-			newcap = p2roundup(len);
-		newline = (char *)realloc(*linep, newcap);
-		if(newline == NULL)
-			return -1;
-		*linecapp = newcap;
-		*linep = newline;
-	}
-	return 0;
-}
-
-long getdelim(char **linep, size_t *linecapp, int delimiter, FILE *stream)
-{
-	size_t	linelen;
-	int		ch;
-
-	if(linep == NULL || linecapp == NULL)
-		return -1;
-	if(*linep == NULL)
-		*linecapp = 0;
-	if(feof(stream)) {
-		if(expandtofit(linep, 1, linecapp))
-			return -1;
-		(*linep)[0]=0;
-		return -1;
-	}
-
-	linelen = 0;
-	for(;;) {
-		ch = fgetc(stream);
-		if(ch == EOF)
-			break;
-		if(expandtofit(linep, linelen+2, linecapp))
-			return -1;
-		(*linep)[linelen++]=ch;
-		if(ch == delimiter)
-			break;
-	}
-	(*linep)[linelen]=0;
-	if(linelen==0)
-		return -1;
-	return linelen;
-}
-#endif
-
-#ifdef __unix__
-FILE *_fsopen(const char *pszFilename, const char *pszMode, int shmode)
-{
-	int file;
-	int Mode=0;
-	const char *p;
-	
-	for(p=pszMode;*p;p++)  {
-		switch (*p)  {
-			case 'r':
-				Mode |= 1;
-				break;
-			case 'w':
-				Mode |= 2;
-				break;
-			case 'a':
-				Mode |= 4;
-				break;
-			case '+':
-				Mode |= 8;
-				break;
-			case 'b':
-			case 't':
-				break;
-			default:
-				errno=EINVAL;
-			return(NULL);
-		}
-	}
-	switch(Mode)  {
-		case 1:
-			Mode =O_RDONLY;
-			break;
-		case 2:
-			Mode=O_WRONLY|O_CREAT|O_TRUNC;
-			break;
-		case 4:
-			Mode=O_APPEND|O_WRONLY|O_CREAT;
-			break;
-		case 9:
-			Mode=O_RDWR|O_CREAT;
-			break;
-		case 10:
-			Mode=O_RDWR|O_CREAT|O_TRUNC;
-			break;
-		case 12:
-			Mode=O_RDWR|O_APPEND|O_CREAT;
-			break;
-		default:
-			errno=EINVAL;
-			return(NULL);
-	}
-	if(Mode&O_CREAT)
-		file=sopen(pszFilename,Mode,shmode,S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH);
-	else
-		file=sopen(pszFilename,Mode,shmode);
-	if(file==-1)
-		return(NULL);
-	return(fdopen(file,pszMode));
-}
-#endif
diff --git a/xpdev/filewrap.h b/xpdev/filewrap.h
deleted file mode 100644
index 706993d9ee0c6e1face3805c5f171f9e283c7c7a..0000000000000000000000000000000000000000
--- a/xpdev/filewrap.h
+++ /dev/null
@@ -1,181 +0,0 @@
-/* File system-call wrappers */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _FILEWRAP_H
-#define _FILEWRAP_H
-
-#include "wrapdll.h"	/* DLLEXPORT */
-#include "gen_defs.h"	/* int32_t, int64_t */
-
-#include <sys/stat.h>	/* S_IREAD and S_IWRITE (for use with sopen) */
-#include <stdio.h>
-
-#if defined(__unix__)
-	#include <unistd.h>	/* read, write, close, ftruncate, lseek, etc. */
-#endif
-
-#if defined(_WIN32) || defined(__BORLANDC__)
-	#include <io.h>
-#endif
-
-#include <fcntl.h>		/* O_RDONLY, O_CREAT, etc. */
-
-/**********/
-/* Macros */
-/**********/
-
-#if defined(_WIN32)
-
-	
-	#include <windows.h>		/* OF_SHARE_ */
-	#include <share.h>			/* SH_DENY */
-
-	#ifndef SH_DENYNO
-	#define SH_DENYNO			OF_SHARE_DENY_NONE
-	#define SH_DENYWR			OF_SHARE_DENY_WRITE
-	#define SH_DENYRW			OF_SHARE_EXCLUSIVE
-	#endif
-
-	#ifndef SH_COMPAT
-	#define SH_COMPAT			0
-	#endif
-
-	#if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS==64)
-		#define	lseek			_lseeki64
-		#define	tell			_telli64
-		#define filelength		_filelengthi64
-		#define	stat			_stati64
-		#define	fstat			_fstati64
-		#define fseeko			_fseeki64
-		#define ftello			_ftelli64
-	#else
-		#define fseeko			fseek
-		#define ftello			ftell
-	#endif
-
-	#define mkstemp(t)	_open(_mktemp(t), O_RDWR | O_CREAT | O_EXCL)
-
-#elif defined(__unix__)
-
-	#ifdef __solaris__
-		#define LOCK_NB	1
-		#define LOCK_SH 2
-		#define LOCK_EX 4
-	#endif
-
-	#ifdef __QNX__
-		#include <share.h>
-		#define L_SET	SEEK_SET
-	#else
-		#ifndef O_TEXT
-		#define O_TEXT		0		/* all files in binary mode on Unix */
-		#define O_BINARY	0		/* all files in binary mode on Unix */
-		#endif
-		#undef	O_DENYNONE
-		#define O_DENYNONE  (1<<31)	/* req'd for Baja/nopen compatibility */
-
-		#define SH_DENYNO	2          /* no locks */
-		#ifdef F_SANEWRLCKNO
-			#define SH_DENYRW	F_SANEWRLCKNO	   /* exclusive lock */
-		#else
-			#define SH_DENYRW	F_WRLCK	   /* exclusive lock */
-		#endif
-	
-		#ifdef F_SANERDLCKNO
-			#define SH_DENYWR   F_SANERDLCKNO    /* shareable lock */
-		#else
-			#define SH_DENYWR   F_RDLCK    /* shareable lock */
-		#endif
-
-		#ifndef SH_COMPAT
-			#define SH_COMPAT			0
-		#endif
-	#endif
-
-	#ifndef DEFFILEMODE
-	#define DELFILEMODE			(S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)
-	#endif
-
-	#define chsize(fd,size)		ftruncate(fd,size)
-	#define tell(fd)			lseek(fd,0,SEEK_CUR)
-	#define eof(fd)				(tell(fd)==filelength(fd))
-
-#elif defined(__OS2__)
-
-	#include <share.h>			/* SH_DENY */
-
-#endif
-
-#ifndef DEFFILEMODE
-#define DEFFILEMODE			(S_IREAD|S_IWRITE)
-#endif
-
-/* Standard file descriptors.  */
-#ifndef STDIN_FILENO
-#define STDIN_FILENO    0       /* Standard input */
-#define STDOUT_FILENO   1       /* Standard output */
-#define STDERR_FILENO   2       /* Standard error output */
-#endif
-
-#ifndef O_DENYNONE
-#define O_DENYNONE		SH_DENYNO
-#endif
-
-#define CLOSE_OPEN_FILE(x)	while((x) >= 0) { close(x); (x)=-1; break; }
-
-/**************/
-/* Prototypes */
-/**************/
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#if !defined(__BORLANDC__) && !defined(__WATCOMC__)
-	DLLEXPORT int	lock(int fd, off_t pos, off_t len);
-	DLLEXPORT int	unlock(int fd, off_t pos, off_t len);
-#endif
-
-#if defined(_WIN32 )
-	DLLEXPORT long	getdelim(char **linep, size_t *linecapp, int delimiter, FILE *stream);
-#endif
-
-#if !defined(__BORLANDC__) && defined(__unix__)
-	DLLEXPORT int		sopen(const char* fn, int sh_access, int share, ...);
-	DLLEXPORT off_t		filelength(int fd);
-#endif
-
-#if defined(__unix__)
-	DLLEXPORT FILE * _fsopen(const char *pszFilename, const char *pszMode, int shmode);
-#endif
-
-#if defined(_MSC_VER) && (_MSC_VER < 1300)	/* missing prototypes */
-	DLLEXPORT int		_fseeki64(FILE*, int64_t, int origin);
-	DLLEXPORT int64_t	_ftelli64(FILE*);
-#endif
-
-DLLEXPORT time_t	filetime(int fd);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/gen_defs.h b/xpdev/gen_defs.h
deleted file mode 100644
index 405504c9440b0952c6c50dd02329219a342f70c7..0000000000000000000000000000000000000000
--- a/xpdev/gen_defs.h
+++ /dev/null
@@ -1,574 +0,0 @@
-/* General(ly useful) constant, macro, and type definitions */
-
-/* $Id: gen_defs.h,v 1.85 2020/08/15 19:57:51 rswindell Exp $ */
-// vi: tabstop=4
-																			
-/****************************************************************************
- * @format.tab-size 4           (Plain Text/Source Code File Header)        *
- * @format.use-tabs true        (see http://www.synchro.net/ptsc_hdr.html)  *
- *                                                                          *
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *                                                                          *
- * This library is free software; you can redistribute it and/or            *
- * modify it under the terms of the GNU Lesser General Public License       *
- * as published by the Free Software Foundation; either version 2           *
- * of the License, or (at your option) any later version.                   *
- * See the GNU Lesser General Public License for more details: lgpl.txt or  *
- * http://www.fsf.org/copyleft/lesser.html                                  *
- *                                                                          *
- * Anonymous FTP access to the most recent released source is available at  *
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net  *
- *                                                                          *
- * Anonymous CVS access to the development source and modification history  *
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:                  *
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login            *
- *     (just hit return, no password is necessary)                          *
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src     *
- *                                                                          *
- * For Synchronet coding style and modification guidelines, see             *
- * http://www.synchro.net/source.html                                       *
- *                                                                          *
- * You are encouraged to submit any modifications (preferably in Unix diff  *
- * format) via e-mail to mods@synchro.net                                   *
- *                                                                          *
- * Note: If this box doesn't appear square, then you need to fix your tabs. *
- ****************************************************************************/
-
-#ifndef _GEN_DEFS_H
-#define _GEN_DEFS_H
-
-#include <xpdevplus.h>
-#include "cp437defs.h"
-#include <errno.h>
-
-/* Resolve multi-named errno constants */
-#if defined(EDEADLK) && !defined(EDEADLOCK)
-        #define EDEADLOCK EDEADLK
-#endif
-
-#if defined(_WIN32)
-        #define WIN32_LEAN_AND_MEAN     /* Don't bring in excess baggage */
-        #include <windows.h>
-#elif defined(__OS2__)
-        #define INCL_BASE       /* need this for DosSleep prototype */
-        #include <os2.h>
-#else
-        #if (defined(__APPLE__) && defined(__MACH__) && defined(__POWERPC__)) || defined (__NetBSD__)
-                #ifndef __unix__
-                        #define __unix__
-                #endif
-        #endif
-#endif
-
-#include <ctype.h>
-#include <sys/types.h>
-#ifdef HAS_INTTYPES_H
-#if defined __cplusplus
-#define __STDC_FORMAT_MACROS
-#endif
-#include <inttypes.h>
-#else
-#ifdef HAS_STDINT_H
-#include <stdint.h>
-#endif
-#endif
-
-                                               /* Control characters */
-#ifndef STX
-#define STX     0x02                           /* Start of text                 ^B      */
-#endif
-#ifndef ETX
-#define ETX     0x03                           /* End of text                   ^C      */
-#endif
-#ifndef BEL
-#define BEL     0x07                            /* Bell/beep                    ^G      */
-#endif
-#ifndef FF
-#define FF      0x0c                            /* Form feed                    ^L      */
-#endif
-#ifndef ESC
-#define ESC     0x1b                            /* Escape                       ^[      */
-#endif
-#ifndef DEL
-#define DEL     0x7f                            /* Delete                       ^BS     */
-#endif
-#ifndef BS
-#define BS      '\b'                            /* Back space                   ^H      */
-#endif
-#ifndef TAB
-#define TAB     '\t'                            /* Horizontal tabulation        ^I      */
-#endif
-#ifndef LF
-#define LF      '\n'                            /* Line feed                    ^J      */
-#endif
-#ifndef CR
-#define CR      '\r'                            /* Carriage return              ^M      */
-#endif
-
-#ifndef CTRL_A
-enum {
-	 CTRL_AT						// NUL
-	,CTRL_A							// SOH
-	,CTRL_B							// STX
-	,CTRL_C							// ETX
-	,CTRL_D							// EOT
-	,CTRL_E							// ENQ
-	,CTRL_F							// ACK
-	,CTRL_G							// BEL
-	,CTRL_H							// BS
-	,CTRL_I							// HT
-	,CTRL_J							// LF
-	,CTRL_K							// VT
-	,CTRL_L							// FF
-	,CTRL_M							// CR
-	,CTRL_N							// SO
-	,CTRL_O							// SI
-	,CTRL_P							// DLE
-	,CTRL_Q							// DC1
-	,CTRL_R							// DC2
-	,CTRL_S							// DC3
-	,CTRL_T							// DC4
-	,CTRL_U							// NAK
-	,CTRL_V							// SYN
-	,CTRL_W							// ETB
-	,CTRL_X							// CAN
-	,CTRL_Y							// EM
-	,CTRL_Z							// SUB
-	,CTRL_OPEN_BRACKET				// ESC
-	,CTRL_BACKSLASH					// FS
-	,CTRL_CLOSE_BRACKET				// GS
-	,CTRL_CARET						// RS
-	,CTRL_UNDERSCORE				// US
-	,CTRL_QUESTION_MARK	= 0x7f		// DEL
-};
-#endif
-
-/* Unsigned type short-hands    */
-#ifndef uchar
-    #define uchar   unsigned char
-#endif
-#ifndef ushort
-	#define ushort  unsigned short
-	typedef unsigned int uint;			/* Incompatible with Spidermonkey header files when #define'd */
-	#define ulong   unsigned long
-#endif
-
-/* Printf format specifiers... */
-#if defined(_MSC_VER) || defined(__WATCOMC__) || defined(__BORLANDC__)
-#define XP_PRIsize_t					"I"
-#else
-#define XP_PRIsize_t					"z"
-#endif
-
-#if !defined(HAS_INTTYPES_H) && !defined(XPDEV_DONT_DEFINE_INTTYPES)
-
-#if !defined(HAS_STDINT_H)
-
-typedef char    int8_t;
-#ifndef INT8_MAX
-#define INT8_MAX 0x7f
-#endif
-#ifndef INT16_MAX
-#define INT16_MAX (-0x7f-1)
-#endif
-typedef short   int16_t;
-#ifndef INT16_MAX
-#define INT16_MAX 0x7fff
-#endif
-#ifndef INT16_MIN
-#define INT16_MIN (-0x7fff-1)
-#endif
-typedef long    int32_t;
-#ifndef INT32_MAX
-#define INT32_MAX 0x7fffffff
-#endif
-#ifndef INT32_MIN
-#define INT32_MIN (-0x7fffffff-1)
-#endif
-typedef uchar   uint8_t;
-#ifndef UINT8_MAX
-#define UINT8_MAX 0xff
-#endif
-typedef ushort  uint16_t;
-#ifndef UINT16_MAX
-#define UINT16_MAX 0xffff
-#endif
-typedef ulong   uint32_t;
-#ifndef UINT32_MAX
-#define UINT32_MAX 0xffffffff
-#endif
-
-#endif
-
-#if !defined(__MSDOS__)
-#if defined(_MSC_VER) || defined(__WATCOMC__) || defined(__BORLANDC__)
-typedef SSIZE_T ssize_t;
-typedef signed __int64 int64_t;
-typedef unsigned __int64 uint64_t;
-#define INTTYPES_H_64BIT_PREFIX         "I64"
-#else
-typedef signed long long int int64_t;
-typedef unsigned long long int uint64_t;
-#define INTTYPES_H_64BIT_PREFIX         "ll"
-#endif
-
-typedef uint64_t	uintmax_t;
-#define _UINTMAX_T_DECLARED
-typedef int64_t		intmax_t;
-#define _INTMAX_T_DECLARED
-
-#if !defined(HAS_STDINT_H) && !defined(_UINTPTR_T_DEFINED)
-typedef uintmax_t	uintptr_t;
-typedef intmax_t	intptr_t;
-#endif
-#endif // !MSDOS
-
-/* printf integer formatters: */
-
-#define PRId32	"d"
-#define PRIu32	"u"
-#define PRIi32	"i"
-#define PRIx32	"x"
-#define PRIX32	"X"
-#define PRIo32	"o"
-
-#define PRIi64  INTTYPES_H_64BIT_PREFIX"i"
-#define PRIu64  INTTYPES_H_64BIT_PREFIX"u"
-#define PRId64  INTTYPES_H_64BIT_PREFIX"d"
-#define PRIx64  INTTYPES_H_64BIT_PREFIX"x"
-#define PRIX64  INTTYPES_H_64BIT_PREFIX"X"
-#define PRIo64  INTTYPES_H_64BIT_PREFIX"o"
-
-#define PRIdMAX	PRId64
-#define PRIiMAX	PRIi64
-#define PRIuMAX	PRIu64
-#define PRIxMAX	PRIx64
-#define PRIXMAX	PRIX64
-#define PRIoMAX	PRIo64
-
-/* scanf integer formatters: */
-
-#define SCNd32 	PRId32
-#define SCNi32 	PRIi32
-#define SCNu32 	PRIu32
-#define SCNx32 	PRIx32
-#define SCNX32 	PRIX32
-#define SCNo32 	PRIo32
-
-#define SCNd64 	PRId64
-#define SCNi64 	PRIi64
-#define SCNu64 	PRIu64
-#define SCNx64 	PRIx64
-#define SCNX64 	PRIX64
-#define SCNo64 	PRIo64
-
-#define SCNdMAX	PRId64
-#define SCNiMAX	PRIi64
-#define SCNuMAX	PRIu64
-#define SCNxMAX	PRIx64
-#define SCNXMAX	PRIX64
-#define SCNoMAX	PRIo64
-
-#endif
-
-/* Legacy 32-bit time_t */
-typedef int32_t         time32_t;
-
-#if defined(_WIN32)
-#  if defined _MSC_VER && !defined _FILE_OFFSET_BITS
-#    define _FILE_OFFSET_BITS 64
-#  endif
-#  if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS==64)
-#    define off_t       int64_t
-#    define PRIdOFF     PRId64
-#    define PRIuOFF     PRIu64
-#  else
-#    define PRIdOFF     "ld"
-#    define PRIuOFF     "lu"
-#  endif
-#elif defined(__linux__) || defined(__sun__)
-#  if (defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS==64)) || defined(__LP64__)
-#    define PRIdOFF     PRId64
-#    define PRIuOFF     PRIu64
-#  else
-#    define PRIdOFF     "ld"
-#    define PRIuOFF     "lu"
-#  endif
-#else
-#  define PRIdOFF       PRId64
-#  define PRIuOFF       PRIu64
-#endif
-
-/* Windows Types */
-
-#ifndef _WIN32
-#ifndef BYTE
-#define BYTE    uint8_t
-#endif
-#ifndef WORD
-#define WORD    uint16_t
-#endif
-#ifndef DWORD
-#define DWORD   uint32_t
-#endif
-#ifndef BOOL
-#define BOOL    int
-#endif
-
-#ifndef TRUE
-#define TRUE    1
-#define FALSE   0
-#endif
-#ifndef HANDLE
-#define HANDLE  void*
-#endif
-#endif
-
-#ifndef INT_TO_BOOL
-#define INT_TO_BOOL(x)  ((x)?TRUE:FALSE)
-#endif
-
-/* Custom Types */
-typedef struct {
-        char*   name;
-        char*   value;
-} named_string_t;
-
-typedef struct {
-        char*   name;
-        int     value;
-} named_int_t;
-
-typedef struct {
-        char*   name;
-        uint    value;
-} named_uint_t;
-
-typedef struct {
-        char*   name;
-        long    value;
-} named_long_t;
-
-typedef struct {
-        char*   name;
-        ulong   value;
-} named_ulong_t;
-
-typedef struct {
-        char*   name;
-        short   value;
-} named_short_t;
-
-typedef struct {
-        char*   name;
-        ushort  value;
-} named_ushort_t;
-
-typedef struct {
-        char*   name;
-        float   value;
-} named_float_t;
-
-typedef struct {
-        char*   name;
-        double  value;
-} named_double_t;
-
-typedef struct {
-        char*   name;
-        BOOL    value;
-} named_bool_t;
-
-typedef struct {
-        int     key;
-        char*   value;
-} keyed_string_t;
-
-typedef struct {
-        int     key;
-        int     value;
-} keyed_int_t;
-
-
-/************************/
-/* Handy Integer Macros */
-/************************/
-
-/* Data Block Length Alignment Macro (returns required padding length for proper alignment) */
-#define PAD_LENGTH_FOR_ALIGNMENT(len,blk)       (((len)%(blk))==0 ? 0 : (blk)-((len)%(blk)))
-
-#define HEX_DIGITS(n)   ( n > 0xfffffff  ? 8 \
-                        : n > 0x0ffffff  ? 7 \
-                        : n > 0x00fffff  ? 6 \
-                        : n > 0x000ffff  ? 5 \
-                        : n > 0x0000fff  ? 4 \
-                        : n > 0x00000ff  ? 3 \
-                        : n > 0x000000f  ? 2 : 1 )
-#define DEC_DIGITS(n)   ( n < 10         ? 1 \
-                        : n < 100        ? 2 \
-                        : n < 1000       ? 3 \
-                        : n < 10000      ? 4 \
-                        : n < 100000     ? 5 \
-                        : n < 1000000    ? 6 \
-                        : n < 10000000   ? 7 \
-                        : n < 100000000  ? 8 \
-                        : n < 1000000000 ? 9 : 10 )
-
-/***********************/
-/* Handy String Macros */
-/***********************/
-
-/* Null-Terminate an ASCIIZ char array */
-#define TERMINATE(str)                      str[sizeof(str)-1]=0
-
-/* This is a bound-safe version of strcpy basically - only works with fixed-length arrays */
-#ifdef SAFECOPY_USES_SPRINTF
-#define SAFECOPY(dst,src)                   sprintf(dst,"%.*s",(int)sizeof(dst)-1,src)
-#else   /* strncpy is faster */
-#define SAFECOPY(dst,src)                   (strncpy(dst,src,sizeof(dst)), TERMINATE(dst))
-#endif
-
-#define SAFECAT(dst, src) do { \
-	if(strlen((char*)(dst)) + strlen((char*)(src)) < sizeof(dst)) { \
-		strcat((char*)(dst), (char*)(src)); \
-	} \
-} while(0)
-
-/* Bound-safe version of sprintf() - only works with fixed-length arrays */
-#if (defined __FreeBSD__) || (defined __NetBSD__) || (defined __OpenBSD__) || (defined(__APPLE__) && defined(__MACH__) && defined(__POWERPC__))
-/* *BSD *nprintf() is already safe */
-#define SAFEPRINTF(dst,fmt,arg)             snprintf(dst,sizeof(dst),fmt,arg)
-#define SAFEPRINTF2(dst,fmt,a1,a2)          snprintf(dst,sizeof(dst),fmt,a1,a2)
-#define SAFEPRINTF3(dst,fmt,a1,a2,a3)		snprintf(dst,sizeof(dst),fmt,a1,a2,a3)
-#define SAFEPRINTF4(dst,fmt,a1,a2,a3,a4)	snprintf(dst,sizeof(dst),fmt,a1,a2,a3,a4)
-#else										
-#define SAFEPRINTF(dst,fmt,arg)				snprintf(dst,sizeof(dst),fmt,arg), TERMINATE(dst)
-#define SAFEPRINTF2(dst,fmt,a1,a2)			snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
-#define SAFEPRINTF3(dst,fmt,a1,a2,a3)		snprintf(dst,sizeof(dst),fmt,a1,a2,a3), TERMINATE(dst)
-#define SAFEPRINTF4(dst,fmt,a1,a2,a3,a4)	snprintf(dst,sizeof(dst),fmt,a1,a2,a3,a4), TERMINATE(dst)
-#endif
-
-/* Replace every occurrence of c1 in str with c2, using p as a temporary char pointer */
-#define REPLACE_CHARS(str,c1,c2,p)      for((p)=(str);*(p);(p)++) if(*(p)==(c1)) *(p)=(c2);
-
-/* ASCIIZ char* parsing helper macros */
-/* These (unsigned char) typecasts defeat MSVC debug assertion when passed a negative value */
-#define IS_WHITESPACE(c)				(isspace((unsigned char)(c)) || c == CP437_NO_BREAK_SPACE)
-#define IS_CONTROL(c)					iscntrl((unsigned char)(c))
-#define IS_ALPHA(c)						isalpha((unsigned char)(c))
-#define IS_ALPHANUMERIC(c)				isalnum((unsigned char)(c))
-#define IS_UPPERCASE(c)					isupper((unsigned char)(c))
-#define IS_LOWERCASE(c)					islower((unsigned char)(c))
-#define IS_PUNCTUATION(c)				ispunct((unsigned char)(c))
-#define IS_PRINTABLE(c)					isprint((unsigned char)(c))
-#define IS_DIGIT(c)						isdigit((unsigned char)(c))
-#define IS_HEXDIGIT(c)					isxdigit((unsigned char)(c))
-#define IS_OCTDIGIT(c)					((c) >= '0' && (c) <= '7')
-#define SKIP_WHITESPACE(p)              while((p) && *(p) && IS_WHITESPACE(*(p)))        (p)++;
-#define FIND_WHITESPACE(p)              while((p) && *(p) && !IS_WHITESPACE(*(p)))       (p)++;
-#define SKIP_CHAR(p,c)                  while((p) && *(p)==c)                            (p)++;
-#define FIND_CHAR(p,c)                  while((p) && *(p) && *(p)!=c)                    (p)++;
-#define SKIP_CHARSET(p,s)               while((p) && *(p) && strchr(s,*(p))!=NULL)       (p)++;
-#define FIND_CHARSET(p,s)               while((p) && *(p) && strchr(s,*(p))==NULL)       (p)++;
-#define SKIP_CRLF(p)					SKIP_CHARSET(p, "\r\n")
-#define FIND_CRLF(p)					FIND_CHARSET(p, "\r\n")
-#define SKIP_ALPHA(p)                   while((p) && *(p) && IS_ALPHA(*(p)))             (p)++;
-#define FIND_ALPHA(p)                   while((p) && *(p) && !IS_ALPHA(*(p)))            (p)++;
-#define SKIP_ALPHANUMERIC(p)            while((p) && *(p) && IS_ALPHANUMERIC(*(p)))      (p)++;
-#define FIND_ALPHANUMERIC(p)            while((p) && *(p) && !IS_ALPHANUMERIC(*(p)))     (p)++;
-#define SKIP_DIGIT(p)                   while((p) && *(p) && IS_DIGIT(*(p)))             (p)++;
-#define FIND_DIGIT(p)                   while((p) && *(p) && !IS_DIGIT(*(p)))            (p)++;
-#define SKIP_HEXDIGIT(p)                while((p) && *(p) && IS_HEXDIGIT(*(p)))          (p)++;
-#define FIND_HEXDIGIT(p)                while((p) && *(p) && !IS_HEXDIGIT(*(p)))         (p)++;
-
-#define HEX_CHAR_TO_INT(ch) 			(((ch)&0xf)+(((ch)>>6)&1)*9)
-#define DEC_CHAR_TO_INT(ch)				((ch)&0xf)
-#define OCT_CHAR_TO_INT(ch)				((ch)&0x7)
-
-/* Variable/buffer initialization (with zeros) */
-#define ZERO_VAR(var)                           memset(&(var),0,sizeof(var))
-#define ZERO_ARRAY(array)                       memset(array,0,sizeof(array))
-
-/****************************************************************************/
-/* MALLOC/FREE Macros for various compilers and environments                */
-/* MALLOC is used for allocations of 64k or less                            */
-/* FREE is used to free buffers allocated with MALLOC                       */
-/* LMALLOC is used for allocations of possibly larger than 64k              */
-/* LFREE is used to free buffers allocated with LMALLOC                     */
-/* REALLOC is used to re-size a previously MALLOCed or LMALLOCed buffer     */
-/* FAR16 is used to create a far (32-bit) pointer in 16-bit compilers       */
-/* HUGE16 is used to create a huge (32-bit) pointer in 16-bit compilers     */
-/****************************************************************************/
-#if defined(__COMPACT__) || defined(__LARGE__) || defined(__HUGE__)
-        #define HUGE16 huge
-        #define FAR16 far
-        #if defined(__TURBOC__)
-                #define REALLOC(x,y) farrealloc(x,y)
-                #define LMALLOC(x) farmalloc(x)
-                #define MALLOC(x) farmalloc(x)
-                #define LFREE(x) farfree(x)
-                #define FREE(x) farfree(x)
-        #elif defined(__WATCOMC__)
-                #define REALLOC realloc
-                #define LMALLOC(x) halloc(x,1)  /* far heap, but slow */
-                #define MALLOC malloc           /* far heap, but 64k max */
-                #define LFREE hfree
-                #define FREE free
-        #else   /* Other 16-bit Compiler */
-                #define REALLOC realloc
-                #define LMALLOC malloc
-                #define MALLOC malloc
-                #define LFREE free
-                #define FREE free
-        #endif
-#else           /* 32-bit Compiler or Small Memory Model */
-        #define HUGE16
-        #define FAR16
-        #define REALLOC realloc
-        #define LMALLOC malloc
-        #define MALLOC malloc
-        #define LFREE free
-        #define FREE free
-#endif
-
-/********************************/
-/* Handy Pointer-freeing Macros */
-/********************************/
-#define FREE_AND_NULL(x)	do {                  \
-								if((x)!=NULL) {   \
-									FREE(x);      \
-									(x)=NULL;     \
-								}		          \
-							} while(0)
-#define FREE_LIST_ITEMS(list,i)         if(list!=NULL) {                                \
-											for(i=0;list[i]!=NULL;i++)      \
-												FREE_AND_NULL(list[i]); \
-                                        }
-#define FREE_LIST(list,i)               FREE_LIST_ITEMS(list,i) FREE_AND_NULL(list)
-
-/********************************/
-/* Other Pointer-List Macros    */
-/********************************/
-#define COUNT_LIST_ITEMS(list,i)        { i=0; if(list!=NULL) while(list[i]!=NULL) i++; }
-
-#if defined(__unix__)
-        #include <syslog.h>
-#else
-        /*
-         * log priorities (copied from BSD syslog.h)
-         */
-        #define LOG_EMERG       0       /* system is unusable */
-        #define LOG_ALERT       1       /* action must be taken immediately */
-        #define LOG_CRIT        2       /* critical conditions */
-        #define LOG_ERR         3       /* error conditions */
-        #define LOG_WARNING     4       /* warning conditions */
-        #define LOG_NOTICE      5       /* normal but significant condition */
-        #define LOG_INFO        6       /* informational */
-        #define LOG_DEBUG       7       /* debug-level messages */
-#endif
-
-#ifdef WITH_SDL_AUDIO
-        #include <SDL.h>
-#endif
-
-#endif /* Don't add anything after this #endif statement */
diff --git a/xpdev/genpack.pl b/xpdev/genpack.pl
deleted file mode 100755
index 90d26f91117ca2f90e32de0a373342e721604740..0000000000000000000000000000000000000000
--- a/xpdev/genpack.pl
+++ /dev/null
@@ -1,254 +0,0 @@
-#!/usr/bin/perl
-
-if($#ARGV != 2) {
-	print <<ENDOFUSAGE;
-Usage: $0 infile.h outhead.h outprog.c
-
-ENDOFUSAGE
-	exit(1);
-}
-
-my ($infile, $outhead, $outc) = @ARGV;
-open IN,'<',$infile;
-
-while (<IN>) {
-	$header .= $_;
-}
-close IN;
-
-my $defs='';
-my $protos='';
-my $functions='';
-
-my $count = 0;
-my @structs = ();
-while($header =~ m/struct\s+([^\s\r\n]*)[\s\r\n]+{([^}]*)}/gs) {
-	my($name, $def) = ($1,$2);
-	my ($packcode, $unpackcode, $size, @ints) = parse_defs($name, $def);
-	if(defined $size) {
-		$count++;
-		push @structs,"+ $name";
-		$defs .= $size;
-		$protos .= "int pack_$name\_struct(char *buf, struct $name *data);\n";
-		$protos .= "int unpack_$name\_struct(struct $name *data, char *buf);\n";
-		$functions .= "int pack_$name\_struct(char *buf, struct $name *data)\n";
-		$functions .= "{\n";
-		$functions .= "\tchar\t*p;\n";
-		if($#ints >= 0) {
-			$functions .= "\tint\t\t".join(', ',@ints).";\n";
-		}
-		$functions .="\n\tp = buf;\n";
-		$functions .= $packcode;
-		$functions .="\n\treturn((int)(p-buf));\n}\n\n";
-		$functions .= "int unpack_$name\_struct(struct $name *data, char *buf)\n";
-		$functions .= "{\n";
-		$functions .= "\tchar\t*p;\n";
-		if($#ints >= 0) {
-			$functions .= "\tint\t\t".join(', ',@ints).";\n";
-		}
-		$functions .="\n\tp = buf;\n";
-		$functions .= $unpackcode;
-		$functions .="\n\treturn((int)(p-buf));\n}\n\n";
-	}
-	else {
-		push @structs,"! $name";
-	}
-}
-
-if($count) {
-	open HEAD,'>',$outhead;
-	open C,'>',$outc;
-
-	print HEAD "/* Generated by genpack.pl from $infile on ".(scalar localtime(time))." */\n\n";
-	my $macro = uc($outhead);
-	$macro=~s/[^A-Z0-9]/_/g;
-	print HEAD '#ifndef _INCLUDED_',$macro,"\n";
-	print HEAD '#define _INCLUDED_',$macro,"\n\n";
-	print HEAD "#include \"$infile\"\n#include \"xpendian.h\"\n\n";
-	print HEAD "/* *_SIZE macros are the packed buffer size requred */\n";
-	print HEAD $defs;
-	print HEAD "\n/* Function prototypes */\n";
-	print HEAD "#if defined(__cplusplus)\nextern \"C\" {\n#endif\n";
-	print HEAD $protos;
-	print HEAD "#if defined(__cplusplus)\n}\n#endif";
-	print HEAD "\n\n";
-	print HEAD "#endif /* Do not add anything after this line! */\n";
-	close HEAD;
-
-	open C,'>',$outc;
-	print HEAD "/* Generated by genpack.pl from $infile on ".(scalar localtime(time))." */\n\n";
-	print C "#include \"$outhead\"\n\n";
-	print C $functions;
-	print C "\n";
-	close C;
-
-	print "$count structures read successfully\n+ indicates functions were created\n! indicates a failure\n\n";
-	print join("\n", @structs),"\n";
-}
-else {
-	print "No structures imported... files not created.\n";
-}
-
-sub parse_defs
-{
-	my ($sname, $defs)=@_;
-
-	my $packcode='';
-	my $unpackcode='';
-	my %vars=();
-	my %sizes=();
-
-	# Remove comments
-	$defs=~s|/\*.*?\*/||gs;
-	my @lines=split(/[\r\n]+/, $defs);
-	foreach my $line (@lines) {
-		my ($p, $u);
-		my @newvars;
-		my $this_size=0;
-		chomp $line;
-		next if($line =~ /^\s*$/);
-		if($line =~ m/^\s*((?:char)|(?:BYTE)|(?:INT16)|(?:WORD)|(?:INT32)|(?:DWORD)|(?:float))\s+([^\s]+)\s*;\s*$/) {
-			my ($type, $name) = ($1, $2);
-			($p, $u, @newvars) = parse_line(\%sizes, $type, $name, 0);
-		}
-		elsif($line =~ m/^\s*struct\s+([^\s]+)\s+([^\s]+)\s*;\s*$/) {
-			my ($struct, $name) = ($1, $2);
-			($p, $u, @newvars) = parse_line(\%sizes, $struct, $name, 1);
-		}
-		else {
-			print "Cannot parse: $line\n";
-			return();
-		}
-		if(!defined $u) {
-			return();
-		}
-		@vars{@newvars}=@newvars;
-		$packcode .= $p;
-		$unpackcode .= $u;
-	}
-	my $sizedef = '#define '.uc($sname)."_SIZE\t(";
-	foreach my $key (keys %sizes) {
-		if(defined $sizes{$key}{count} && !defined $sizes{$key}{multiplier}) {
-			if($sizes{$key}{count} == 1) {
-				$sizedef .= "$key + ";
-			}
-			else {
-				$sizedef .= "($key * $sizes{$key}{count}) + ";
-			}
-		}
-		elsif(!defined $sizes{$key}{count} && defined $sizes{$key}{multiplier}) {
-			$sizes{$key}{multiplier} = substr($sizes{$key}{multiplier}, 0, -3);
-			$sizedef .= "($key * ($sizes{$key}{multiplier})) + ";
-		}
-		elsif(defined $sizes{$key}{count} && defined $sizes{$key}{multiplier}) {
-			$sizes{$key}{multiplier} = substr($sizes{$key}{multiplier}, 0, -3);
-			$sizedef .= "($key * ($sizes{$key}{count} + $sizes{$key}{multiplier})) + ";
-		}
-	}
-	$sizedef = substr($sizedef, 0, -3) . ")\n";
-	return($packcode, $unpackcode, $sizedef, sort keys %vars);
-}
-
-sub parse_line
-{
-	my ($sizes, $type, $name, $struct) = @_;
-	my $tabs = "\t";
-	my $end = '';
-	my %vars=();
-	my $nextint='i';
-	my ($packcode, $unpackcode);
-	my $sizekey;
-
-	if($struct) {
-		$sizekey = uc($type).'_SIZE';
-	}
-	else {
-		$sizekey = "sizeof($type)";
-	}
-	if($name =~ /\[/) {		# Handle arrays!
-		while($name =~ s/\[([^\]]+)\]/;$nextint;/) {
-			my $size = $1;
-			$packcode .= $tabs."for($nextint = 0; $nextint < $size; $nextint++) {\n";
-			$unpackcode .= $tabs."for($nextint = 0; $nextint < $size; $nextint++) {\n";
-			$sizes->{$sizekey}{multiplier} .= "$size * ";
-			$end = "$tabs}\n$end";
-			$tabs .= "\t";
-			$vars{$nextint}=1;
-			$nextint=chr(ord($nextint)+1);
-		}
-		$sizes->{$sizekey}{multiplier} = substr($sizes->{$sizekey}{multiplier}, 0, -3);
-		$sizes->{$sizekey}{multiplier} .= ' + ';
-		$name =~ s/;(.);/[$1]/g;
-	}
-	else {
-		$sizes->{$sizekey}{count}++;
-	}
-	$name = "data->$name";
-	my ($p, $u) = pack_line($type, $name, $struct, $tabs);
-	$p = "$packcode$p$end";
-	$u = "$unpackcode$u$end";
-	return($p, $u, sort keys %vars);
-}
-
-sub pack_line
-{
-	my ($type, $name, $struct, $tabs)=@_;
-	my $packcode = '';
-	my $unpackcode = '';
-
-	# ie: *(INT32)p = LE_LONG($name);
-	if(!$struct) {
-		if($type eq 'char') {
-			$packcode .= $tabs."*p = $name;\n";
-			$packcode .= $tabs."p++;\n";
-			$unpackcode .= $tabs."$name = *p;\n";
-			$unpackcode .= $tabs."p++;\n";
-		}
-		elsif($type eq 'BYTE') {
-			$packcode .= $tabs."*(BYTE *)p = $name;\n";
-			$packcode .= $tabs."p++;\n";
-			$unpackcode .= $tabs."$name = *(BYTE *)p;\n";
-			$unpackcode .= $tabs."p++;\n";
-		}
-		elsif($type eq 'INT16') {
-			$packcode .= $tabs."*(INT16 *)p = LE_SHORT($name);\n";
-			$packcode .= $tabs."p += sizeof(INT16);\n";
-			$unpackcode .= $tabs."$name = LE_SHORT(*(INT16 *)p);\n";
-			$unpackcode .= $tabs."p += sizeof(INT16);\n";
-		}
-		elsif($type eq 'WORD') {
-			$packcode .= $tabs."*(WORD *)p = LE_SHORT($name);\n";
-			$packcode .= $tabs."p += sizeof(WORD);\n";
-			$unpackcode .= $tabs."$name = LE_SHORT(*(WORD *)p);\n";
-			$unpackcode .= $tabs."p += sizeof(WORD);\n";
-		}
-		elsif($type eq 'INT32') {
-			$packcode .= $tabs."*(INT32 *)p = LE_LONG($name);\n";
-			$packcode .= $tabs."p += sizeof(INT32);\n";
-			$unpackcode .= $tabs."$name = LE_LONG(*(INT32 *)p);\n";
-			$unpackcode .= $tabs."p += sizeof(INT32);\n";
-		}
-		elsif($type eq 'DWORD') {
-			$packcode .= $tabs."*(DWORD *)p = LE_LONG($name);\n";
-			$packcode .= $tabs."p += sizeof(DWORD);\n";
-			$unpackcode .= $tabs."$name = LE_LONG(*(DWORD *)p);\n";
-			$unpackcode .= $tabs."p += sizeof(DWORD);\n";
-		}
-		elsif($type eq 'float') {
-			$packcode .= $tabs."*(DWORD *)p = LE_LONG(*((DWORD *)&($name)));\n";
-			$packcode .= $tabs."p += sizeof(float);\n";
-			$unpackcode .= $tabs."*(((DWORD *)&($name))) = LE_LONG(*(DWORD *)p);\n";
-			$unpackcode .= $tabs."p += sizeof(DWORD);\n";
-		}
-		else {
-			print "Unhandled type: $type\n";
-			return(undef, undef);
-		}
-	}
-	else {
-		$packcode .= $tabs."p += pack_$type\_struct(p, &($name));\n";
-		$unpackcode .= $tabs."p += unpack_$type\_struct(&($name), p);\n";
-	}
-
-	return($packcode, $unpackcode);
-}
diff --git a/xpdev/genwrap.c b/xpdev/genwrap.c
deleted file mode 100644
index 04e9e06e6184b465e0413060f8a9602343452125..0000000000000000000000000000000000000000
--- a/xpdev/genwrap.c
+++ /dev/null
@@ -1,886 +0,0 @@
-/* General cross-platform development wrappers */
-
-/* $Id: genwrap.c,v 1.118 2020/08/10 04:11:44 rswindell Exp $ */
-// vi: tabstop=4
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <string.h>     /* strlen() */
-#include <stdarg.h>	/* vsnprintf() */
-#include <stdlib.h>		/* RAND_MAX */
-#include <fcntl.h>		/* O_NOCTTY */
-#include <time.h>		/* clock() */
-#include <errno.h>		/* errno */
-#include <ctype.h>		/* toupper/tolower */
-#include <limits.h>		/* CHAR_BIT */
-#include <math.h>		/* fmod */
-
-#if defined(__unix__)
-	#include <sys/ioctl.h>		/* ioctl() */
-	#include <sys/utsname.h>	/* uname() */
-	#include <signal.h>
-#elif defined(_WIN32)
-	#include <windows.h>
-	#include <lm.h>		/* NetWkstaGetInfo() */
-#endif
-
-#include "genwrap.h"	/* Verify prototypes */
-#include "xpendian.h"	/* BYTE_SWAP */
-
-/****************************************************************************/
-/* Used to replace snprintf()  guarantees to terminate.			  			*/
-/****************************************************************************/
-int safe_snprintf(char *dst, size_t size, const char *fmt, ...)
-{
-	va_list argptr;
-	int     numchars;
-
-	va_start(argptr,fmt);
-	numchars= vsnprintf(dst,size,fmt,argptr);
-	va_end(argptr);
-	if (size > 0)
-		dst[size-1]=0;
-#ifdef _MSC_VER
-	if(numchars==-1)
-		numchars=strlen(dst);
-#endif
-	if(numchars>=(int)size && numchars>0)
-		numchars=size-1;
-	return(numchars);
-}
-
-#ifdef NEEDS_STRLCPY
-size_t strlcpy(char *dst, const char *src, size_t size)
-{
-	size_t i;
-
-	if(size < 1)
-		return 0;
-
-	for(i = 0; src[i] != '\0'; i++) {
-		if(i < (size - 1))
-			*(dst++) = src[i];
-	}
-	*dst = 0;
-	return i;
-}
-#endif
-
-#ifdef _WIN32
-/****************************************************************************/
-/* Case insensitive version of strstr()	- currently heavy-handed			*/
-/****************************************************************************/
-char* strcasestr(const char* haystack, const char* needle)
-{
-	const char* p;
-	size_t len = strlen(needle);
-
-	for(p = haystack; *p != '\0'; p++) {
-		if(strnicmp(p, needle, len) == 0)
-			return (char*)p;
-	}
-	return NULL;
-}
-#endif
-
-/****************************************************************************/
-/* Return last character of string											*/
-/****************************************************************************/
-char* lastchar(const char* str)
-{
-	size_t	len;
-
-	len = strlen(str);
-
-	if(len)
-		return((char*)&str[len-1]);
-
-	return((char*)str);
-}
-
-/****************************************************************************/
-/* Return character value of C-escaped (\) character						*/
-/****************************************************************************/
-char c_unescape_char(const char ch)
-{
-	switch(ch) {
-		case 'e':	return(ESC);	/* non-standard */
-		case 'a':	return('\a');
-		case 'b':	return('\b');
-		case 'f':	return('\f');
-		case 'n':	return('\n');
-		case 'r':	return('\r');
-		case 't':	return('\t');
-		case 'v':	return('\v');
-	}
-	return(ch);
-}
-
-/****************************************************************************/
-/* Return character value of C-escaped (\) character literal sequence		*/
-/* supports \x## (hex) and \### sequences (for octal or decimal)			*/
-/****************************************************************************/
-char c_unescape_char_ptr(const char* str, char** endptr)
-{
-	char	ch;
-
-	if(*str == 'x') {
-		int digits = 0;		// \x## for hexadecimal character literals (only 2 digits supported)
-		++str;
-		ch = 0;
-		while(digits < 2 && IS_HEXDIGIT(*str)) {
-			ch *= 0x10;	
-			ch += HEX_CHAR_TO_INT(*str);
-			str++;
-			digits++;
-		}
-#ifdef C_UNESCAPE_OCTAL_SUPPORT
-	} else if(IS_OCTDIGIT(*str)) {
-		int digits = 0;		// \### for octal character literals (only 3 digits supported)
-		ch = 0;
-		while(digits < 3 && IS_OCTDIGIT(*str)) {
-			ch *= 8;
-			ch += OCT_CHAR_TO_INT(*str);
-			str++;
-			digits++;
-		}
-#else
-	} else if(IS_DIGIT(*str)) {
-		int digits = 0;		// \### for decimal character literals (only 3 digits supported)
-		ch = 0;
-		while(digits < 3 && IS_DIGIT(*str)) {
-			ch *= 10;
-			ch += DEC_CHAR_TO_INT(*str);
-			str++;
-			digits++;
-		}
-#endif
-	 } else
-		ch=c_unescape_char(*(str++));
-
-	if(endptr!=NULL)
-		*endptr=(char*)str;
-
-	return ch;
-}
-
-/****************************************************************************/
-/* Unescape a C string, in place											*/
-/****************************************************************************/
-char* c_unescape_str(char* str)
-{
-	char	ch;
-	char*	buf;
-	char*	src;
-	char*	dst;
-
-	if(str==NULL || (buf=strdup(str))==NULL)
-		return(NULL);
-
-	src=buf;
-	dst=str;
-	while((ch=*(src++))!=0) {
-		if(ch=='\\')	/* escape */
-			ch=c_unescape_char_ptr(src,&src);
-		*(dst++)=ch;
-	}
-	*dst=0;
-	free(buf);
-	return(str);
-}
-
-char* c_escape_char(char ch)
-{
-	switch(ch) {
-		case 0:		return("\\x00");
-		case 1:		return("\\x01");
-		case ESC:	return("\\e");		/* non-standard */
-		case '\a':	return("\\a");
-		case '\b':	return("\\b");
-		case '\f':	return("\\f");
-		case '\n':	return("\\n");
-		case '\r':	return("\\r");
-		case '\t':	return("\\t");
-		case '\v':	return("\\v");
-		case '\\':	return("\\\\");
-		case '\"':	return("\\\"");
-		case '\'':	return("\\'");
-	}
-	return(NULL);
-}
-
-char* c_escape_str(const char* src, char* dst, size_t maxlen, BOOL ctrl_only)
-{
-	const char*	s;
-	char*		d;
-	const char*	e;
-
-	for(s=src,d=dst;*s && (size_t)(d-dst)<maxlen;s++) {
-		if((!ctrl_only || (uchar)*s < ' ') && (e=c_escape_char(*s))!=NULL) {
-			strncpy(d,e,maxlen-(d-dst));
-			d+=strlen(d);
-		} else if((uchar)*s < ' ') {
-			d += safe_snprintf(d, maxlen-(d-dst), "\\x%02X", *s);
-		} else *d++=*s;
-	}
-	*d=0;
-
-	return(dst);
-}
-
-/* Returns a byte count parsed from the 'str' argument, supporting power-of-2
- * short-hands (e.g. 'K' for kibibytes).
- * If 'unit' is specified (greater than 1), result is divided by this amount.
- * 
- * Moved from ini_file.c/parseBytes()
- */
-int64_t parse_byte_count(const char* str, ulong unit)
-{
-	char*	p=NULL;
-	double	bytes;
-
-	bytes=strtod(str,&p);
-	if(p!=NULL) {
-		SKIP_WHITESPACE(p);
-		switch(toupper(*p)) {
-			case 'E':
-				bytes*=1024;
-				/* fall-through */
-			case 'P':
-				bytes*=1024;
-				/* fall-through */
-			case 'T':
-				bytes*=1024;
-				/* fall-through */
-			case 'G':
-				bytes*=1024;
-				/* fall-through */
-			case 'M':
-				bytes*=1024;
-				/* fall-through */
-			case 'K':
-				bytes*=1024;
-				break;
-		}
-	}
-	return((int64_t)(unit>1 ? (bytes/unit):bytes));
-}
-
-static const double one_tebibyte = 1024.0*1024.0*1024.0*1024.0;
-static const double one_gibibyte = 1024.0*1024.0*1024.0;
-static const double one_mebibyte = 1024.0*1024.0;
-static const double one_kibibyte = 1024.0;
-
-/* Convert an exact byte count to a string with a floating point value
-   and a single letter multiplier/suffix.
-   For values evenly divisible by 1024, no suffix otherwise.
-*/
-char* byte_count_to_str(int64_t bytes, char* str, size_t size)
-{
-	if(bytes && fmod((double)bytes,one_tebibyte)==0)
-		safe_snprintf(str, size, "%gT",bytes/one_tebibyte);
-	else if(bytes && fmod((double)bytes,one_gibibyte)==0)
-		safe_snprintf(str, size, "%gG",bytes/one_gibibyte);
-	else if(bytes && fmod((double)bytes,one_mebibyte)==0)
-		safe_snprintf(str, size, "%gM",bytes/one_mebibyte);
-	else if(bytes && fmod((double)bytes,one_kibibyte)==0)
-		safe_snprintf(str, size, "%gK",bytes/one_kibibyte);
-	else
-		safe_snprintf(str, size, "%"PRIi64, bytes);
-
-	return str;
-}
-
-/* Convert a rounded byte count to a string with a floating point value
-   with a single decimal place and a single letter multiplier/suffix.
-   This function also appends 'B' for exact byte counts (< 1024).
-   'unit' is the smallest divisor used.
-*/
-char* byte_estimate_to_str(int64_t bytes, char* str, size_t size, ulong unit, int precision)
-{
-	if(bytes >= one_tebibyte)
-		safe_snprintf(str, size, "%1.*fT", precision, bytes/one_tebibyte);
-	else if(bytes >= one_gibibyte || unit == one_gibibyte)
-		safe_snprintf(str, size, "%1.*fG", precision, bytes/one_gibibyte);
-	else if(bytes >= one_mebibyte || unit == one_mebibyte)
-		safe_snprintf(str, size, "%1.*fM", precision, bytes/one_mebibyte);
-	else if(bytes >= one_kibibyte || unit == one_kibibyte)
-		safe_snprintf(str, size, "%1.*fK", precision, bytes/one_kibibyte);
-	else
-		safe_snprintf(str, size, "%"PRIi64"B", bytes);
-
-	return str;
-}
-
-
-/* Parse a duration string, default unit is in seconds */
-/* (Y)ears, (W)eeks, (D)ays, (H)ours, and (M)inutes */
-/* suffixes/multipliers are supported. */
-/* Return value is in seconds */
-double parse_duration(const char* str)
-{
-	char*	p=NULL;
-	double	t;
-
-	t=strtod(str,&p);
-	if(p!=NULL) {
-		SKIP_WHITESPACE(p);
-		switch(toupper(*p)) {
-			case 'Y':	t*=365.0*24.0*60.0*60.0; break;
-			case 'W':	t*=  7.0*24.0*60.0*60.0; break;
-			case 'D':	t*=		 24.0*60.0*60.0; break;
-			case 'H':	t*=			  60.0*60.0; break;
-			case 'M':	t*=				   60.0; break;
-		}
-	}
-	return t;
-}
-
-/* Convert a duration (in seconds) to a string
- * with a single letter multiplier/suffix: 
- * (Y)ears, (W)eeks, (D)ays, (H)ours, (M)inutes, or (S)econds
- */
-char* duration_to_str(double value, char* str, size_t size)
-{
-	if(value && fmod(value,365.0*24.0*60.0*60.0)==0)
-		safe_snprintf(str, size, "%gY",value/(365.0*24.0*60.0*60.0));
-	else if(value && fmod(value,7.0*24.0*60.0*60.0)==0)
-		safe_snprintf(str, size, "%gW",value/(7.0*24.0*60.0*60.0));
-	else if(value && fmod(value,24.0*60.0*60.0)==0)
-		safe_snprintf(str, size, "%gD",value/(24.0*60.0*60.0));
-	else if(value && fmod(value,60.0*60.0)==0)
-		safe_snprintf(str, size, "%gH",value/(60.0*60.0));
-	else if(value && fmod(value,60.0)==0)
-		safe_snprintf(str, size, "%gM",value/60.0);
-	else
-		safe_snprintf(str, size, "%gS",value);
-
-	return str;
-}
-
-/* Convert a duration (in seconds) to a verbose string
- * with a word clarifier / modifier: 
- * year[s], week[s], day[s], hour[s], minute[s] or second[s]
- */
-char* duration_to_vstr(double value, char* str, size_t size)
-{
-	if(value && fmod(value,365.0*24.0*60.0*60.0)==0) {
-		value /= (365.0*24.0*60.0*60.0);
-		safe_snprintf(str, size, "%g year%s", value, value == 1 ? "":"s");
-	}
-	else if(value && fmod(value,7.0*24.0*60.0*60.0)==0) {
-		value /= (7.0*24.0*60.0*60.0);
-		safe_snprintf(str, size, "%g week%s", value, value == 1 ? "":"s");
-	}
-	else if(value && fmod(value,24.0*60.0*60.0)==0) {
-		value /= (24.0*60.0*60.0);
-		safe_snprintf(str, size, "%g day%s", value, value == 1 ? "":"s");
-	}
-	else if(value && fmod(value,60.0*60.0)==0) {
-		value /= (60.0*60.0);
-		safe_snprintf(str, size, "%g hour%s", value, value == 1 ? "":"s");
-	}
-	else if(value && fmod(value,60.0)==0) {
-		value /= 60.0;
-		safe_snprintf(str, size, "%g minute%s", value, value == 1 ? "":"s");
-	}
-	else
-		safe_snprintf(str, size, "%g second%s", value, value == 1 ? "":"s");
-
-	return str;
-}
-
-
-/****************************************************************************/
-/* Convert ASCIIZ string to upper case										*/
-/****************************************************************************/
-#if defined(__unix__)
-char* strupr(char* str)
-{
-	char*	p=str;
-
-	while(*p) {
-		*p=toupper(*p);
-		p++;
-	}
-	return(str);
-}
-/****************************************************************************/
-/* Convert ASCIIZ string to lower case										*/
-/****************************************************************************/
-char* strlwr(char* str)
-{
-	char*	p=str;
-
-	while(*p) {
-		*p=tolower(*p);
-		p++;
-	}
-	return(str);
-}
-/****************************************************************************/
-/* Reverse characters of a string (provided by amcleod)						*/
-/****************************************************************************/
-char* strrev(char* str)
-{
-    char t, *i=str, *j=str+strlen(str);
-
-    while (i<j) {
-        t=*i; *(i++)=*(--j); *j=t;
-    }
-    return str;
-}
-#endif
-
-#if !defined(__unix__)
-
-/****************************************************************************/
-/* Implementations of the recursive (thread-safe) version of strtok			*/
-/* Thanks to Apache Portable Runtime (APR)									*/
-/****************************************************************************/
-char* strtok_r(char *str, const char *delim, char **last)
-{
-    char* token;
-
-    if (str==NULL)      /* subsequent call */
-        str = *last;    /* start where we left off */
-
-    /* skip characters in delimiter (will terminate at '\0') */
-    while(*str && strchr(delim, *str))
-        ++str;
-
-    if(!*str) {         /* no more tokens */
-		*last = str;
-        return NULL;
-	}
-
-    token = str;
-
-    /* skip valid token characters to terminate token and
-     * prepare for the next call (will terminate at '\0)
-     */
-    *last = token + 1;
-    while(**last && !strchr(delim, **last))
-        ++*last;
-
-    if (**last) {
-        **last = '\0';
-        ++*last;
-    }
-
-    return token;
-}
-
-#endif
-
-/****************************************************************************/
-/* Initialize (seed) the random number generator							*/
-/****************************************************************************/
-void xp_randomize(void)
-{
-#if !(defined(HAS_SRANDOMDEV_FUNC) && defined(HAS_RANDOM_FUNC))
-	unsigned seed=~0;
-#if defined(HAS_DEV_URANDOM) && defined(URANDOM_DEV)
-	int		rf;
-#endif
-#endif
-
-#if defined(HAS_SRANDOMDEV_FUNC) && defined(HAS_RANDOM_FUNC)
-	srandomdev();
-	return;
-#else
-
-#if defined(HAS_DEV_URANDOM) && defined(URANDOM_DEV)
-	if((rf=open(URANDOM_DEV, O_RDONLY))!=-1) {
-		read(rf, &seed, sizeof(seed));
-		close(rf);
-	}
-	else {
-#endif
-		unsigned curtime	= (unsigned)time(NULL);
-		unsigned process_id = (unsigned)GetCurrentProcessId();
-
-		seed = curtime ^ BYTE_SWAP_INT(process_id);
-
-		#if defined(_WIN32) || defined(GetCurrentThreadId)
-			seed ^= (unsigned)GetCurrentThreadId();
-		#endif
-
-#if defined(HAS_DEV_URANDOM) && defined(URANDOM_DEV)
-	}
-#endif
-
-#ifdef HAS_RANDOM_FUNC
- 	srandom(seed);
-#else
- 	srand(seed);
-#endif
-#endif
-}
-
-/****************************************************************************/
-/* Return random number between 0 and n-1									*/
-/****************************************************************************/
-long xp_random(int n)
-{
-#ifdef HAS_RANDOM_FUNC
-	long			curr;
-	unsigned long	limit;
-
-	if(n<2)
-		return(0);
-
-	limit = ((1UL<<((sizeof(long)*CHAR_BIT)-1)) / n) * n - 1;
-
-	while(1) {
-		curr=random();
-		if(curr <= limit)
-			return(curr % n);
-	}
-#else
-	double f=0;
-	int ret;
-
-	if(n<2)
-		return(0);
-	do {
-		f=(double)rand()/(double)(RAND_MAX+1);
-		ret=(int)(n*f);
-	} while(ret==n);
-
-	return(ret);
-#endif
-}
-
-/****************************************************************************/
-/* Return ASCII string representation of ulong								*/
-/* There may be a native GNU C Library function to this...					*/
-/****************************************************************************/
-#if !defined(_MSC_VER) && !defined(__BORLANDC__) && !defined(__WATCOMC__)
-char* ultoa(ulong val, char* str, int radix)
-{
-	switch(radix) {
-		case 8:
-			sprintf(str,"%lo",val);
-			break;
-		case 10:
-			sprintf(str,"%lu",val);
-			break;
-		case 16:
-			sprintf(str,"%lx",val);
-			break;
-		default:
-			sprintf(str,"bad radix: %d",radix);
-			break;
-	}
-	return(str);
-}
-#endif
-
-/****************************************************************************/
-/* Write the version details of the current operating system into str		*/
-/****************************************************************************/
-char* os_version(char *str)
-{
-#if defined(__OS2__) && defined(__BORLANDC__)
-
-	sprintf(str,"OS/2 %u.%u (%u.%u)",_osmajor/10,_osminor/10,_osmajor,_osminor);
-
-#elif defined(_WIN32)
-
-	/* Windows Version */
-	char*			winflavor="";
-	OSVERSIONINFO	winver;
-
-	winver.dwOSVersionInfoSize=sizeof(winver);
-	GetVersionEx(&winver);
-
-	switch(winver.dwPlatformId) {
-		case VER_PLATFORM_WIN32_NT:
-			winflavor="NT ";
-			break;
-		case VER_PLATFORM_WIN32s:
-			winflavor="Win32s ";
-			break;
-		case VER_PLATFORM_WIN32_WINDOWS:
-			winver.dwBuildNumber&=0xffff;
-			break;
-	}
-
-	/* Work-around Microsoft Windows 8.1 stupidity where GetVersionEx() lies about the current OS version */
-	if(winver.dwMajorVersion == 6 && winver.dwMinorVersion == 2) {
-		WKSTA_INFO_100* wksta_info;
-		if(NetWkstaGetInfo(NULL, 100, (LPBYTE*)&wksta_info) == NERR_Success) {
-			winver.dwMajorVersion = wksta_info->wki100_ver_major;
-			winver.dwMinorVersion = wksta_info->wki100_ver_minor;
-			winver.dwBuildNumber = 0;
-		}
-	}
-
-	sprintf(str,"Windows %sVersion %lu.%lu"
-			,winflavor
-			,winver.dwMajorVersion, winver.dwMinorVersion);
-	if(winver.dwBuildNumber)
-		sprintf(str+strlen(str), " (Build %lu)", winver.dwBuildNumber);
-	if(winver.szCSDVersion[0])
-		sprintf(str+strlen(str), " %s", winver.szCSDVersion);
-
-#elif defined(__unix__)
-
-	struct utsname unixver;
-
-	if(uname(&unixver)<0)
-		sprintf(str,"Unix (uname errno: %d)",errno);
-	else
-		sprintf(str,"%s %s %s"
-			,unixver.sysname	/* e.g. "Linux" */
-			,unixver.release	/* e.g. "2.2.14-5.0" */
-			,unixver.machine	/* e.g. "i586" */
-			);
-
-#else	/* DOS */
-
-	sprintf(str,"DOS %u.%02u",_osmajor,_osminor);
-
-#endif
-
-	return(str);
-}
-
-char* os_cmdshell(void)
-{
-	char*	shell=getenv(OS_CMD_SHELL_ENV_VAR);
-
-#if defined(__unix__)
-	if(shell==NULL)
-#ifdef _PATH_BSHELL
-		shell=_PATH_BSHELL;
-#else
-		shell="/bin/sh";
-#endif
-#endif
-
-	return(shell);
-}
-
-/****************************************************************/
-/* Microsoft (DOS/Win32) real-time system clock implementation.	*/
-/****************************************************************/
-#ifdef __unix__
-clock_t msclock(void)
-{
-	return (clock_t)(llroundl(xp_timer() * 1000.0));
-}
-#endif
-
-/****************************************************************************/
-/* Skips all white-space chars at beginning of 'str'						*/
-/****************************************************************************/
-char* skipsp(char* str)
-{
-	SKIP_WHITESPACE(str);
-	return(str);
-}
-
-/****************************************************************************/
-/* Truncates all white-space chars off end of 'str'	(needed by STRERRROR)	*/
-/****************************************************************************/
-char* truncsp(char* str)
-{
-	size_t i,len;
-
-	if(str!=NULL) {
-		i=len=strlen(str);
-		while(i && IS_WHITESPACE(str[i-1]))
-			i--;
-		if(i!=len)
-			str[i]=0;	/* truncate */
-	}
-	return(str);
-}
-
-/****************************************************************************/
-/* Truncates common white-space chars off end of \n-terminated lines in		*/
-/* 'dst' and retains original line break format	(e.g. \r\n or \n)			*/
-/****************************************************************************/
-char* truncsp_lines(char* dst)
-{
-	char* sp;
-	char* dp;
-	char* src;
-
-	if((src=strdup(dst))==NULL)
-		return(dst);
-
-	for(sp=src, dp=dst; *sp!=0; sp++) {
-		if(*sp=='\n') {
-			while(dp!=dst
-				&& (*(dp-1)==' ' || *(dp-1)=='\t' || *(dp-1)=='\r'))
-					dp--;
-			if(sp!=src && *(sp-1)=='\r')
-				*(dp++)='\r';
-		}
-		*(dp++)=*sp;
-	}
-	*dp=0;
-
-	free(src);
-	return(dst);
-}
-
-/****************************************************************************/
-/* Truncates carriage-return and line-feed chars off end of 'str'			*/
-/****************************************************************************/
-char* truncnl(char* str)
-{
-	size_t i,len;
-
-	if(str!=NULL) {
-		i=len=strlen(str);
-		while(i && (str[i-1]=='\r' || str[i-1]=='\n'))
-			i--;
-		if(i!=len)
-			str[i]=0;	/* truncate */
-	}
-	return(str);
-}
-
-/****************************************************************************/
-/* Return errno from the proper C Library implementation					*/
-/* (single/multi-threaded)													*/
-/****************************************************************************/
-int get_errno(void)
-{
-	return(errno);
-}
-
-/****************************************************************************/
-/* Returns the current value of the systems best timer (in SECONDS)			*/
-/* Any value < 0 indicates an error											*/
-/****************************************************************************/
-long double	xp_timer(void)
-{
-	long double ret;
-#if defined(__unix__)
-	struct timespec ts;
-
-	if (clock_gettime(CLOCK_MONOTONIC, &ts) == 0) {
-		ret = ts.tv_sec;
-		ret += ((long double)ts.tv_nsec) / 1000000000;
-	}
-	else
-		ret = -1;
-#elif defined(_WIN32)
-	LARGE_INTEGER	freq;
-	LARGE_INTEGER	tick;
-	if(QueryPerformanceFrequency(&freq) && QueryPerformanceCounter(&tick)) {
-#if 0
-		ret=((long double)tick.HighPart*4294967296)+((long double)tick.LowPart);
-		ret /= ((long double)freq.HighPart*4294967296)+((long double)freq.LowPart);
-#else
-		/* In MSVC, a long double does NOT have 19 decimals of precision */
-		ret=(((long double)(tick.QuadPart%freq.QuadPart))/freq.QuadPart);
-		ret+=tick.QuadPart/freq.QuadPart;
-#endif
-	}
-	else {
-		ret=GetTickCount();
-		ret /= 1000;
-	}
-#else
-#error no high-resolution time for this platform
-#endif
-	return(ret);
-}
-
-/* Returns TRUE if specified process is running */
-BOOL check_pid(pid_t pid)
-{
-#if defined(__unix__)
-	return(kill(pid,0)==0);
-#elif defined(_WIN32)
-	HANDLE	h;
-	BOOL	result=FALSE;
-
-	if((h=OpenProcess(PROCESS_QUERY_INFORMATION,/* inheritable: */FALSE, pid)) != NULL) {
-		DWORD	code;
-		if(GetExitCodeProcess(h,(PDWORD)&code)==TRUE && code==STILL_ACTIVE)
-			result=TRUE;
-		CloseHandle(h);
-	}
-	return result;
-#else
-	return FALSE;	/* Need check_pid() definition! */
-#endif
-}
-
-/* Terminate (unconditionally) the specified process */
-BOOL terminate_pid(pid_t pid)
-{
-#if defined(__unix__)
-	return(kill(pid,SIGKILL)==0);
-#elif defined(_WIN32)
-	HANDLE	h;
-	BOOL	result=FALSE;
-
-	if((h=OpenProcess(PROCESS_TERMINATE,/* inheritable: */FALSE, pid)) != NULL) {
-		if(TerminateProcess(h,255))
-			result=TRUE;
-		CloseHandle(h);
-	}
-	return result;
-#else
-	return FALSE;	/* Need check_pid() definition! */
-#endif
-}
-
-/****************************************************************************/
-/* Re-entrant (thread-safe) version of strerror()							*/
-/* GNU (not POSIX) inspired API											*/
-/****************************************************************************/
-char* safe_strerror(int errnum, char *buf, size_t buflen)
-{
-	strncpy(buf, "Unknown error", buflen);
-	buf[buflen - 1] = 0;
-
-#if defined(_MSC_VER)
-	strerror_s(buf, buflen, errnum);
-#elif defined(_WIN32)
-	strncpy(buf, strerror(errnum), buflen);
-	buf[buflen - 1] = 0;
-#elif defined(_GNU_SOURCE)
-	buf = strerror_r(errnum, buf, buflen);
-#else
-	strerror_r(errnum, buf, buflen);
-#endif
-	return buf;
-}
diff --git a/xpdev/genwrap.h b/xpdev/genwrap.h
deleted file mode 100644
index e888aa02fa693c6de1820d0709c4f63b27f6401b..0000000000000000000000000000000000000000
--- a/xpdev/genwrap.h
+++ /dev/null
@@ -1,399 +0,0 @@
-/* General cross-platform development wrappers */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _GENWRAP_H
-#define _GENWRAP_H
-
-#include <stdio.h>		/* sprintf */
-#include <string.h>		/* strerror() */
-#include <time.h>		/* clock_t */
-#include "gen_defs.h"	/* ulong */
-#include "wrapdll.h"	/* DLLEXPORT and */
-
-#if defined(__unix__)
-	#include <sched.h>		/* sched_yield */
-	#include <time.h>	/* clock_t */
-	#include <sys/time.h>	/* struct timeval */
-	#include <strings.h>	/* strcasecmp() */
-	#include <unistd.h>		/* usleep */
-
-	#ifdef XPDEV_THREAD_SAFE
-		#include <pthread.h>/* Check for GNU PTH libs */
-		#ifdef _PTH_PTHREAD_H_
-			#include <pth.h>
-		#endif
-		#define GetCurrentThreadId()	pthread_self()
-	#endif
-#elif defined(_WIN32)
-	#include <process.h>	/* getpid() */
-	#ifndef __MINGW32__
-        typedef DWORD pid_t;
-	#endif
-#endif
-
-#if !defined(_WIN32)
-	/* Simple Win32 function equivalents */
-	#define GetCurrentProcessId()		getpid()
-#endif
-
-/* utime() support */
-#if defined(_MSC_VER) || defined(__WATCOMC__)
-	#include <sys/utime.h>
-#else
-	#include <utime.h>
-#endif
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/*
- * The alloca() function can't be implemented in C, and on some
- * platforms it can't be implemented at all as a callable function.
- * The GNU C compiler provides a built-in alloca() which we can use;
- * On platforms where alloca() is not in libc, programs which use
- * it will fail to link when compiled with non-GNU compilers.
- */
-#if __GNUC__ >= 2 || defined(__INTEL_COMPILER)
-#undef  alloca  /* some GNU bits try to get cute and define this on their own */
-#define alloca(sz) __builtin_alloca(sz)
-#elif defined(_WIN32)
-#include <malloc.h>
-#endif
-
-/*********************/
-/* Compiler-specific */
-/*********************/
-
-/* Compiler Description */
-#if defined(__BORLANDC__)
-
-	#define DESCRIBE_COMPILER(str) SAFEPRINTF2(str,"BCC %X.%02X" \
-		,__BORLANDC__>>8,__BORLANDC__&0xff);
-
-#elif defined(_MSC_VER)
-
-	#define DESCRIBE_COMPILER(str) SAFEPRINTF(str,"MSC %u", _MSC_VER);
-
-#elif defined(__clang__) && defined(__clang_patchlevel__)
-
-	#define DESCRIBE_COMPILER(str) SAFEPRINTF3(str,"Clang %u.%u.%u" \
-		,__clang_major__,__clang_minor__,__clang_patchlevel__);
-
-#elif defined(__clang__) && defined(__clang_minor__)
-
-	#define DESCRIBE_COMPILER(str) SAFEPRINTF2(str,"Clang %u.%u" \
-		,__clang_major__,__clang_minor__);
-
-#elif defined(__GNUC__) && defined(__GNUC_PATCHLEVEL__)
-
-	#define DESCRIBE_COMPILER(str) SAFEPRINTF3(str,"GCC %u.%u.%u" \
-		,__GNUC__,__GNUC_MINOR__,__GNUC_PATCHLEVEL__);
-
-#elif defined(__GNUC__) && defined(__GNUC_MINOR__)
-
-	#define DESCRIBE_COMPILER(str) SAFEPRINTF2(str,"GCC %u.%u" \
-		,__GNUC__,__GNUC_MINOR__);
-
-#elif defined(__WATCOMC__)
-
-	#define DESCRIBE_COMPILER(str) SAFEPRINTF(str,"WATC %d" \
-		,__WATCOMC__);
-
-#elif defined(__DMC__)	/* Digital Mars C/C++ */
-
-	#define DESCRIBE_COMPILER(str) SAFEPRINTF(str,"DMC %X.%02X" \
-		,__DMC__>>8,__DMC__&0xff);
-
-#else /* Unknown compiler */
-
-	#define DESCRIBE_COMPILER(str) SAFECOPY(str,"UNKNOWN COMPILER");
-
-#endif
-
-/**********/
-/* Macros */
-/**********/
-
-/* Target Platform Description */
-#if defined(_WIN64)
-	#define PLATFORM_DESC	"Win64"
-#elif defined(_WIN32)
-	#define PLATFORM_DESC	"Win32"
-#elif defined(__OS2__)
-	#define PLATFORM_DESC	"OS/2"
-#elif defined(__MSDOS__)
-	#define PLATFORM_DESC	"DOS"
-#elif defined(__linux__)
-	#define PLATFORM_DESC	"Linux"
-#elif defined(__FreeBSD__)
-	#define PLATFORM_DESC	"FreeBSD"
-#elif defined(__OpenBSD__)
-	#define PLATFORM_DESC	"OpenBSD"
-#elif defined(__NetBSD__)
-	#define PLATFORM_DESC	"NetBSD"
-#elif defined(__APPLE__) && defined(__MACH__) && defined(__POWERPC__)
-	#define PLATFORM_DESC	"MacOSX"
-#elif defined(BSD)
-	#define PLATFORM_DESC	"BSD"
-#elif defined(__solaris__)
-	#define PLATFORM_DESC	"Solaris"
-#elif defined(__sun__)
-	#define PLATFORM_DESC	"SunOS"
-#elif defined(__gnu__)
-	#define PLATFORM_DESC	"GNU/Hurd"
-#elif defined(__QNX__)
-	#define PLATFORM_DESC	"QNX"
-#elif defined(__unix__)
-	#define PLATFORM_DESC	"Unix"
-#elif defined(__HAIKU__)
-	#define PLATFORM_DESC	"Haiku"
-#else
-	#error "Need to describe target platform"
-#endif
-
-#if defined(_M_X64) || defined(_M_AMD64) || defined(__x86_64__) || defined(__amd64__)
-	#define ARCHITECTURE_DESC "x64"
-#elif defined(__i386__) || _M_IX86 == 300
-	#define ARCHITECTURE_DESC "i386"
-#elif defined(__i486__) || _M_IX86 == 400
-	#define ARCHITECTURE_DESC "i486"
-#elif defined(__i586__) || _M_IX86 == 500
-	#define ARCHITECTURE_DESC "i586"
-#elif defined(__i686__) || _M_IX86 == 600
-	#define ARCHITECTURE_DESC "i686"
-#elif defined(__i786__) || _M_IX86 == 700
-	#define ARCHITECTURE_DESC "i786"
-#elif defined(_X86_) || defined(__x86__) || defined(_M_IX86)
-	#define ARCHITECTURE_DESC "x86"
-#elif defined(__mips__)
-	#define ARCHITECTURE_DESC "mips"
-#elif __ARM_ARCH == 5 || _M_ARM == 5
-	#define ARCHITECTURE_DESC "armv5"
-#elif __ARM_ARCH == 6 || _M_ARM == 6
-	#define ARCHITECTURE_DESC "armv6"
-#elif __ARM_ARCH == 7 || _M_ARM == 7
-	#define ARCHITECTURE_DESC "armv7"
-#elif __ARM_ARCH == 8 || _M_ARM == 8 
-	#define ARCHITECTURE_DESC "armv8"
-#elif defined(__aarch64__)
-	#define ARCHITECTURE_DESC "arm64"
-#elif defined(__arm__)
-	#define ARCHITECTURE_DESC "arm"
-#elif defined(_M_PPC) || defined(__ppc__)
-	#define ARCHITECTURE_DESC "ppc"
-#elif defined(_M_IA64) || defined(__ia64__)
-	#define ARCHITECTURE_DESC "ia64"
-#else
-	#error "Need to describe target architecture"
-#endif
-
-/*********************/
-/* String Functionss */
-/*********************/
-
-#ifndef USE_SNPRINTF
-	#define snprintf		safe_snprintf
-#endif
-
-#if defined(_MSC_VER) || defined(__MINGW32__) || defined(__DMC__)
-#if !defined(snprintf)
-	#define snprintf		_snprintf
-#endif
-	#define vsnprintf		_vsnprintf
-	#define NEEDS_STRLCPY
-#endif
-
-#if defined(__WATCOMC__)
-	#define vsnprintf(s,l,f,a)	vsprintf(s,f,a)
-#endif
-
-#if !defined(_MSC_VER) && !defined(__BORLANDC__) && !defined(__WATCOMC__)
-	DLLEXPORT char* ultoa(ulong, char*, int radix);
-#endif
-
-#if defined(__unix__)
-	DLLEXPORT char*	strupr(char* str);
-	DLLEXPORT char*	strlwr(char* str);
-	DLLEXPORT char* strrev(char* str);
-	#if !defined(stricmp)
-		#define stricmp			strcasecmp
-		#define strnicmp		strncasecmp
-	#endif
-#endif
-
-#if defined(NEEDS_STRLCPY)
-	size_t strlcpy(char *dst, const char *src, size_t size);
-#endif
-
-#if defined(_WIN32)
-	DLLEXPORT char* strcasestr(const char* haystack, const char* needle);
-#endif
-
-/* Skip white-space chars at beginning of string */
-DLLEXPORT char*		skipsp(char* str);
-/* Truncate white-space chars off end of string */
-DLLEXPORT char*		truncsp(char* str);
-/* Truncate white-space chars off end of every \n-terminated line in string */
-DLLEXPORT char*		truncsp_lines(char* str);
-/* Truncate new-line chars off end of string */
-DLLEXPORT char*		truncnl(char* str);
-
-#define STRERROR(x)		strerror(x)
-
-/* Re-entrant version of strerror() */
-DLLEXPORT char*		safe_strerror(int errnum, char* buf, size_t buflen);
-
-/*********************/
-/* Utility Functions */
-/*********************/
-/* Thunking for multi-threaded specific implementations of "errno" */
-DLLEXPORT int get_errno(void);
-
-/**********************************/
-/* Common Utility Macro Functions */
-/**********************************/
-
-#if defined(_WIN32)
-
-	#define YIELD()			Sleep(1) /* Must sleep at least 1ms to avoid 100% CPU utilization */
-	#define	MAYBE_YIELD()	Sleep(0)
-	#define SLEEP(x)		Sleep(x)
-	#define	popen			_popen
-	#define pclose			_pclose
-	#define tzname			_tzname
-
-#elif defined(__OS2__)
-
-	#define YIELD()			DosSleep(1)	/* Must sleep at least 1ms to avoid 100% CPU utilization */
-	#define	MAYBE_YIELD()	DosSleep(0)
-	#define SLEEP(x)		DosSleep(x)
-
-#elif defined(__unix__) || defined(__APPLE__) || defined(__HAIKU__)
-
-	#if defined(_PTH_PTHREAD_H_)
-		#define SLEEP(x)		({ int sleep_msecs=x; struct timeval tv; \
-								tv.tv_sec=(sleep_msecs/1000); tv.tv_usec=((sleep_msecs%1000)*1000); \
-								pth_nap(tv); })
-	#else
-		#define SLEEP(x)		({	int sleep_msecs=x; struct timespec ts={0}; \
-								ts.tv_sec=(sleep_msecs/1000); ts.tv_nsec=((sleep_msecs%1000)*1000000); \
-								while(nanosleep(&ts, &ts) != 0 && errno==EINTR && x > 1); })
-	#endif
-
-	#define YIELD()			SLEEP(1)
-
-	#if defined(XPDEV_THREAD_SAFE)
-		#if defined(__FreeBSD__)
-			#define MAYBE_YIELD()			pthread_yield()
-		#elif defined(_PTH_PTHREAD_H_)
-			#define MAYBE_YIELD()			pth_yield(NULL)
-		#elif defined(_POSIX_PRIORITY_SCHEDULING)
-			#define MAYBE_YIELD()			sched_yield()
-		#else
-			#define MAYBE_YIELD()			YIELD()
-		#endif
-	#else
-		#if defined(_POSIX_PRIORITY_SCHEDULING)
-			#define	MAYBE_YIELD()			sched_yield()
-		#else
-			#define MAYBE_YIELD()			YIELD()
-		#endif
-	#endif
-
-	/*
-	 * QNX doesn't support fork() in threaded apps (yet) using vfork() instead
-	 * works, but relies on undefined behaviours not being nasty.  On most OSs
-	 * vfork() will share the stack between the parent and child...
-	 */
-	#if defined(__QNX__)
-		#define FORK()	vfork()
-	#else
-		#define FORK()	fork()
-	#endif
-
-
-#else	/* Unsupported OS */
-
-	#error "Unsupported Target: Need some macros and/or function prototypes here."
-
-#endif
-
-/* Command processor/shell environment variable name */
-#ifdef __unix__
-	#define OS_CMD_SHELL_ENV_VAR	"SHELL"
-#else	/* DOS/Windows/OS2 */
-	#define OS_CMD_SHELL_ENV_VAR	"COMSPEC"
-#endif
-
-/* Win32 implementations of recursive (thread-safe) std C time functions on Unix */
-#if !defined(__unix__)
-
-	DLLEXPORT char*	strtok_r(char *str, const char *delim, char **last);
-#endif
-
-/* Mimic the Borland randomize() and random() CRTL functions */
-DLLEXPORT void		xp_randomize(void);
-DLLEXPORT long		xp_random(int);
-
-DLLEXPORT long double xp_timer(void);
-DLLEXPORT char*		os_version(char *str);
-DLLEXPORT char*		os_cmdshell(void);
-DLLEXPORT char*		lastchar(const char* str);
-DLLEXPORT int		safe_snprintf(char *dst, size_t size, const char *fmt, ...)
-#if defined(__GNUC__)   // Catch printf-format errors
-    __attribute__ ((format (printf, 3 , 4)));            // 1 is 'this'
-#endif
-;
-
-/* C string/char escape-sequence processing */
-DLLEXPORT char*		c_escape_str(const char* src, char* dst, size_t maxlen, BOOL ctrl_only);
-DLLEXPORT char*		c_escape_char(char ch);
-DLLEXPORT char*		c_unescape_str(char* str);
-DLLEXPORT char		c_unescape_char_ptr(const char* str, char** endptr);
-DLLEXPORT char		c_unescape_char(char ch);
-
-/* Power-of-2 byte count string parser (e.g. "100K" returns 102400 if unit is 1) */
-DLLEXPORT int64_t	parse_byte_count(const char*, ulong unit);
-DLLEXPORT double	parse_duration(const char*);
-DLLEXPORT char*		duration_to_str(double value, char* str, size_t size);
-DLLEXPORT char*		duration_to_vstr(double value, char* str, size_t size);
-DLLEXPORT char*		byte_count_to_str(int64_t bytes, char* str, size_t size);
-DLLEXPORT char*		byte_estimate_to_str(int64_t bytes, char* str, size_t size, ulong unit, int precision);
-
-/* Microsoft (e.g. DOS/Win32) real-time system clock API (ticks since process started) */
-typedef		clock_t				msclock_t;
-#if defined(_WIN32) || defined(__OS2__)
-	#define		MSCLOCKS_PER_SEC	CLOCKS_PER_SEC	/* e.g. 18.2 on DOS, 1000.0 on Win32 */
-	#define		msclock()			clock()
-#else
-	#define		MSCLOCKS_PER_SEC	1000
-	msclock_t	msclock(void);
-#endif
-
-DLLEXPORT BOOL		check_pid(pid_t);
-DLLEXPORT BOOL		terminate_pid(pid_t);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/haproxy.h b/xpdev/haproxy.h
deleted file mode 100644
index b80d382b22ef101f0733e229d5b0185033f82d65..0000000000000000000000000000000000000000
--- a/xpdev/haproxy.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* haproxy.h */
-
-/* HAPROXY PROTOCOL constant definitions */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * This program 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; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU General Public License for more details: gpl.txt or			*
- * http://www.fsf.org/copyleft/gpl.html										*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-/* HAPROXY PROTO BINARY DEFINITIONS */
-#define HAPROXY_AFINET			0x1		/* IPv4 Connection */
-#define HAPROXY_AFINET6			0x2		/* IPv6 Connection */
-
-/* HAPROXY COMMANDS */
-#define HAPROXY_LOCAL			0x0		/* Connections instigated by the proxy, eg: health-check */
-#define HAPROXY_PROXY			0x1		/* Relay connections */
diff --git a/xpdev/ini_file.c b/xpdev/ini_file.c
deleted file mode 100644
index 5b09d38b2e36ed1ac1357b08463f3f12295cddd8..0000000000000000000000000000000000000000
--- a/xpdev/ini_file.c
+++ /dev/null
@@ -1,2476 +0,0 @@
-/* Functions to create and parse .ini files */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include "ini_file.h"
-#include <stdlib.h>		/* strtol */
-#include <string.h>		/* strlen */
-#include <math.h>		/* fmod */
-#include "xpdatetime.h"	/* isoDateTime_t */
-#include "datewrap.h"	/* ctime_r */
-#include "dirwrap.h"	/* fexist */
-#include "filewrap.h"	/* chsize */
-
-/* Maximum length of entire line, includes '\0' */
-#define INI_MAX_LINE_LEN		(INI_MAX_VALUE_LEN*2)
-#define INI_COMMENT_CHAR		';'
-#define INI_OPEN_SECTION_CHAR	'['
-#define INI_CLOSE_SECTION_CHAR	']'
-#define INI_SECTION_NAME_SEP	"|"
-#define INI_BIT_SEP				'|'
-#define INI_NEW_SECTION			((char*)~0)
-#define INI_EOF_DIRECTIVE		"!eof"
-#define INI_INCLUDE_DIRECTIVE	"!include "
-#define INI_INCLUDE_MAX			10000
-
-static ini_style_t default_style;
-
-void iniSetDefaultStyle(ini_style_t style)
-{
-	default_style = style;
-}
-
-/* These correlate with the LOG_* definitions in syslog.h/gen_defs.h */
-static char* logLevelStringList[]
-	= {"Emergency", "Alert", "Critical", "Error", "Warning", "Notice", "Informational", "Debugging", NULL};
-
-str_list_t iniLogLevelStringList(void)
-{
-	return(logLevelStringList);
-}
-
-static BOOL is_eof(char* str)
-{
-	return(*str=='!' && stricmp(truncsp(str),INI_EOF_DIRECTIVE)==0);
-}
-
-static char* section_name(char* p)
-{
-	char*	tp;
-
-	SKIP_WHITESPACE(p);
-	if(*p!=INI_OPEN_SECTION_CHAR)
-		return(NULL);
-	p++;
-	SKIP_WHITESPACE(p);
-	tp=strrchr(p,INI_CLOSE_SECTION_CHAR);
-	if(tp==NULL)
-		return(NULL);
-	*tp=0;
-	truncsp(p);
-
-	return(p);
-}
-
-static BOOL section_match(const char* name, const char* compare, BOOL case_sensitive)
-{
-	BOOL found=FALSE;
-	str_list_t names=strListSplitCopy(NULL,name,INI_SECTION_NAME_SEP);
-	str_list_t comps=strListSplitCopy(NULL,compare,INI_SECTION_NAME_SEP);
-	size_t	i,j;
-	char*	n;
-	char*	c;
-
-	/* Ignore trailing whitespace */
-	for(i=0; names[i]!=NULL; i++)
-		truncsp(names[i]);
-	for(i=0; comps[i]!=NULL; i++)
-		truncsp(comps[i]);
-
-	/* Search for matches */
-	for(i=0; names[i]!=NULL && !found; i++)
-		for(j=0; comps[j]!=NULL && !found; j++) {
-			n=names[i];
-			SKIP_WHITESPACE(n);
-			c=comps[j];
-			SKIP_WHITESPACE(c);
-			if (case_sensitive)
-				found = strcmp(n, c) == 0;
-			else
-				found = stricmp(n, c) == 0;
-		}
-
-	strListFree(&names);
-	strListFree(&comps);
-
-	return(found);
-}
-
-static BOOL seek_section(FILE* fp, const char* section)
-{
-	char*	p;
-	char	str[INI_MAX_LINE_LEN];
-
-	rewind(fp);
-
-	if(section==ROOT_SECTION)
-		return(TRUE);
-
-	/* Perform case-sensitive search first */
-	while(!feof(fp)) {
-		if(fgets(str,sizeof(str),fp)==NULL)
-			break;
-		if(is_eof(str))
-			break;
-		if((p=section_name(str))==NULL)
-			continue;
-		if(section_match(p, section, /* case-sensitive */TRUE))
-			return(TRUE);
-	}
-
-	/* Then perform case-insensitive search */
-	rewind(fp);
-	while (!feof(fp)) {
-		if (fgets(str, sizeof(str), fp) == NULL)
-			break;
-		if (is_eof(str))
-			break;
-		if ((p = section_name(str)) == NULL)
-			continue;
-		if (section_match(p, section, /* case-sensitive */FALSE))
-			return(TRUE);
-	}
-
-	return(FALSE);
-}
-
-static size_t find_section_index(str_list_t list, const char* section)
-{
-	char*	p;
-	char	str[INI_MAX_VALUE_LEN];
-	size_t	i;
-
-	/* Perform case-sensitive search first */
-	for (i = 0; list[i] != NULL; i++) {
-		SAFECOPY(str, list[i]);
-		if(is_eof(str))
-			return(strListCount(list));
-		if((p=section_name(str))!=NULL && section_match(p, section, /* case-sensitive */TRUE))
-			return(i);
-	}
-
-	/* Then perform case-insensitive search */
-	for (i = 0; list[i] != NULL; i++) {
-		SAFECOPY(str, list[i]);
-		if (is_eof(str))
-			return(strListCount(list));
-		if ((p = section_name(str)) != NULL && section_match(p, section, /* case-sensitive */FALSE))
-			return(i);
-	}
-
-	return(i);
-}
-
-static size_t section_start(str_list_t list, size_t index)
-{
-	char* p = list[index];
-	if(p != NULL) {
-		SKIP_WHITESPACE(p);
-		if(*p == INI_OPEN_SECTION_CHAR) // A new section starts immediately?
-			return strListCount(list);
-	}
-	return index;
-}
-
-static size_t find_section(str_list_t list, const char* section)
-{
-	size_t	i;
-
-	if(section==ROOT_SECTION)
-		return section_start(list, 0);
-
-	i=find_section_index(list,section);
-	if(list[i]!=NULL)
-		i++;
-	return section_start(list, i);
-}
-
-static char* key_name(char* p, char** vp, BOOL literals_supported)
-{
-	char* equal;
-	char* colon;
-	char* tp;
-
-    *vp=NULL;
-
-	if(p==NULL)
-		return(NULL);
-
-	/* Parse value name */
-	SKIP_WHITESPACE(p);
-	if(*p==INI_COMMENT_CHAR)
-		return(NULL);
-	if(*p==INI_OPEN_SECTION_CHAR)
-		return(INI_NEW_SECTION);
-	equal=strchr(p,'=');
-	colon=strchr(p,':');
-	if(colon==NULL || (equal!=NULL && equal<colon)) {
-		*vp=equal;
-		colon=NULL;
-	} else
-		*vp=colon;
-
-	if(*vp==NULL)
-		return(NULL);
-
-	*(*vp)=0;
-	truncsp(p);
-
-	/* Parse value */
-	(*vp)++;
-	SKIP_WHITESPACE(*vp);
-	if(literals_supported && colon!=NULL) {		/* string literal value */
-		truncnl(*vp);		/* "key : value" - truncate new-line chars only */
-		if(*(*vp) == '"') {	/* handled quoted-strings here */
-			(*vp)++;
-			tp = strrchr(*vp, '"');
-			if(tp != NULL) {
-				*tp = 0;
-			}
-		}
-		c_unescape_str(*vp);
-	} else
-		truncsp(*vp);		/* "key = value" - truncate all white-space chars */
-
-	return(p);
-}
-
-static char* read_value(FILE* fp, const char* section, const char* key, char* value, BOOL literals_supported)
-{
-	char*	p;
-	char*	vp=NULL;
-	char	str[INI_MAX_LINE_LEN];
-
-	if(fp==NULL)
-		return(NULL);
-
-	if(!seek_section(fp,section))
-		return(NULL);
-
-	while(!feof(fp)) {
-		if(fgets(str,sizeof(str),fp)==NULL)
-			break;
-		if(is_eof(str))
-			break;
-		if((p=key_name(str, &vp, literals_supported))==NULL)
-			continue;
-		if(p==INI_NEW_SECTION)
-			break;
-		if(stricmp(p,key)!=0)
-			continue;
-		if(vp==NULL)
-			break;
-		/* key found */
-		sprintf(value,"%.*s",INI_MAX_VALUE_LEN-1,vp);
-		return(value);
-	}
-
-	return(NULL);
-}
-
-static size_t get_value(str_list_t list, const char* section, const char* key, char* value, char** vpp, BOOL literals_supported)
-{
-	char    str[INI_MAX_LINE_LEN];
-	char*	p;
-	char*	vp;
-	size_t	i;
-
-	if(value!=NULL)
-		value[0]=0;
-	if(vpp!=NULL)
-		*vpp=NULL;
-	if(list==NULL)
-		return 0;
-
-	for(i=find_section(list, section); list[i]!=NULL; i++) {
-		SAFECOPY(str,list[i]);
-		if(is_eof(str))
-			break;
-		if((p=key_name(str, &vp, literals_supported))==NULL)
-			continue;
-		if(p==INI_NEW_SECTION)
-			break;
-		if(stricmp(p,key)!=0)
-			continue;
-		if(value!=NULL)
-			sprintf(value,"%.*s",INI_MAX_VALUE_LEN-1,vp);
-		if(vpp!=NULL)
-			*vpp=list[i] + (vp - str);
-		return(i);
-	}
-
-	return(i);
-}
-
-BOOL iniSectionExists(str_list_t list, const char* section)
-{
-	size_t	i;
-
-	if(list==NULL)
-		return(FALSE);
-
-	if(section==ROOT_SECTION)
-		return(TRUE);
-
-	i=find_section_index(list,section);
-	return(list[i]!=NULL);
-}
-
-str_list_t iniGetSection(str_list_t list, const char *section)
-{
-	size_t		i;
-	str_list_t	retval;
-	char		*p;
-
-	if(list==NULL)
-		return(NULL);
-
-	if((retval=strListInit())==NULL)
-		return(NULL);
-
-	i=find_section(list,section);
-	if(list[i]!=NULL) {
-		strListPush(&retval, list[i]);
-		for(i++;list[i]!=NULL;i++) {
-			p=list[i];
-			SKIP_WHITESPACE(p);
-			if(*p==INI_OPEN_SECTION_CHAR)
-				break;
-			if(*p)
-				strListPush(&retval, list[i]);
-		}
-	}
-	return(retval);
-}
-
-BOOL iniKeyExists(str_list_t list, const char* section, const char* key)
-{
-	size_t	i;
-
-	if(list==NULL)
-		return(FALSE);
-
-	i=get_value(list, section, key, NULL, NULL, /* literals_supported: */FALSE);
-
-	if(list[i]==NULL || *(list[i])==INI_OPEN_SECTION_CHAR)
-		return(FALSE);
-
-	return(TRUE);
-}
-
-BOOL iniValueExists(str_list_t list, const char* section, const char* key)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	return(vp!=NULL && *vp!=0);
-}
-
-BOOL iniRemoveKey(str_list_t* list, const char* section, const char* key)
-{
-	size_t	i;
-	char*	vp=NULL;
-
-	i=get_value(*list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL)
-		return(FALSE);
-
-	return(strListDelete(list,i));
-}
-
-BOOL iniRemoveValue(str_list_t* list, const char* section, const char* key)
-{
-	char*	vp=NULL;
-
-	get_value(*list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL)
-		return(FALSE);
-
-	*vp=0;
-	return(TRUE);
-}
-
-BOOL iniRemoveSection(str_list_t* list, const char* section)
-{
-	size_t	i;
-
-	i=find_section_index(*list,section);
-	if((*list)[i]==NULL)	/* not found */
-		return(FALSE);
-	do {
-		strListDelete(list,i);
-	} while((*list)[i]!=NULL && *(*list)[i]!=INI_OPEN_SECTION_CHAR);
-
-	return(TRUE);
-}
-
-BOOL iniRemoveSections(str_list_t* list, const char* prefix)
-{
-	str_list_t sections;
-	const char* section;
-
-	if (list == NULL)
-		return FALSE;
-	sections = iniGetSectionList(*list, prefix);
-	while((section = strListPop(&sections)) != NULL)
-		if(!iniRemoveSection(list, section))
-			return(FALSE);
-
-	strListFree(&sections);
-
-	return(TRUE);
-}
-
-// This sorts comments too, so should not be used on human created/edited files
-BOOL iniSortSections(str_list_t* list, BOOL sort_keys)
-{
-	size_t i;
-	str_list_t root_keys;
-	str_list_t new_list;
-	str_list_t keys;
-	str_list_t section_list = iniGetSectionList(*list, /* prefix */NULL);
-
-	root_keys = iniGetSection(*list, ROOT_SECTION);
-	if(section_list == NULL && root_keys == NULL)
-		return TRUE;
-
-	if(sort_keys)
-		strListSortAlphaCase(root_keys);
-
-	if(section_list != NULL)
-		strListSortAlphaCase(section_list);
-	new_list = strListInit();
-	if(new_list == NULL) {
-		strListFree(&section_list);
-		strListFree(&root_keys);
-		return FALSE;
-	}
-	strListAppendList(&new_list, root_keys);
-	strListFree(&root_keys);
-	for(i = 0; section_list != NULL && section_list[i] != NULL; i++) {
-		keys = iniGetSection(*list, section_list[i]);
-		if(sort_keys)
-			strListSortAlphaCase(keys);
-		iniAppendSectionWithKeys(&new_list, section_list[i], keys, /* ini_style_t */NULL);
-		strListFree(&keys);
-	}
-	strListFree(&section_list);
-	strListFree(list);
-	*list = new_list;
-	return TRUE;
-}
-
-BOOL iniRenameSection(str_list_t* list, const char* section, const char* newname)
-{
-	char	str[INI_MAX_LINE_LEN];
-	size_t	i;
-
-	if(section==ROOT_SECTION)
-		return(FALSE);
-
-	if(stricmp(section, newname)!=0) {
-		i=find_section_index(*list,newname);
-		if((*list)[i]!=NULL)	/* duplicate */
-			return(FALSE);
-	}
-
-	i=find_section_index(*list,section);
-	if((*list)[i]==NULL)	/* not found */
-		return(FALSE);
-
-	SAFEPRINTF(str,"[%s]",newname);
-	return(strListReplace(*list, i, str)!=NULL);
-}
-
-static size_t ini_add_section(str_list_t* list, const char* section
-					,ini_style_t* style, size_t index)
-{
-	char	str[INI_MAX_LINE_LEN];
-
-	if(section==ROOT_SECTION)
-		return(0);
-
-	if((*list)[index]!=NULL)
-		return(index);
-
-	if(style==NULL)
-		style=&default_style;
-	if(index > 0 && style->section_separator!=NULL)
-		strListAppend(list, style->section_separator, index++);
-	SAFEPRINTF(str,"[%s]",section);
-	strListAppend(list, str, index);
-
-	return(index);
-}
-
-size_t iniAddSection(str_list_t* list, const char* section, ini_style_t* style)
-{
-	if(section==ROOT_SECTION)
-		return(0);
-
-	return ini_add_section(list,section,style,find_section_index(*list, section));
-}
-
-size_t iniAppendSection(str_list_t* list, const char* section, ini_style_t* style)
-{
-	if(section==ROOT_SECTION)
-		return(0);
-
-	return ini_add_section(list,section,style,strListCount(*list));
-}
-
-size_t iniAppendSectionWithKeys(str_list_t* list, const char* section, const str_list_t keys
-	, ini_style_t* style)
-{
-	if(section==ROOT_SECTION)
-		return(0);
-
-	ini_add_section(list,section,style,strListCount(*list));
-
-	return strListAppendList(list, keys);
-}
-
-static BOOL str_contains_ctrl_char(const char* str)
-{
-	while(*str) {
-		if(*(unsigned char*)str < ' ')
-			return TRUE;
-		str++;
-	}
-	return FALSE;
-}
-
-static char* ini_set_string(str_list_t* list, const char* section, const char* key, const char* value, BOOL literal
-				 ,ini_style_t* style)
-{
-	char	str[INI_MAX_LINE_LEN];
-	char	litstr[INI_MAX_VALUE_LEN];
-	char	curval[INI_MAX_VALUE_LEN];
-	const char* key_prefix = "";
-	const char* value_separator = "=";
-	const char* literal_separator = ":";
-	size_t	i;
-
-	if(style==NULL)
-		style=&default_style;
-
-	iniAddSection(list, section, style);
-
-	if(key==NULL)
-		return(NULL);
-	if(style->key_prefix != NULL)
-		key_prefix = style->key_prefix;
-	if(style->value_separator != NULL)
-		value_separator = style->value_separator;
-	if(style->literal_separator != NULL)
-		literal_separator = style->literal_separator;
-	if(value==NULL)
-		value="";
-	if(literal) {
-		char cstr[INI_MAX_VALUE_LEN];
-		SAFEPRINTF(litstr, "\"%s\"", c_escape_str(value, cstr, sizeof(cstr)-1, /* ctrl_only: */FALSE));
-		value = litstr;
-		value_separator = literal_separator;
-	}
-	safe_snprintf(str, sizeof(str), "%s%-*s%s%s"
-		,key_prefix, style->key_len, key, value_separator, value);
-	i=get_value(*list, section, key, curval, NULL, /* literals_supported: */literal);
-	if((*list)[i]==NULL || *(*list)[i]==INI_OPEN_SECTION_CHAR) {
-        while(i && *(*list)[i-1]==0) i--;   /* Insert before blank lines, not after */
-		return strListInsert(list, str, i);
-    }
-
-	if(strcmp(curval,value)==0)
-		return((*list)[i]);	/* no change */
-
-	return strListReplace(*list, i, str);
-}
-char* iniSetString(str_list_t* list, const char* section, const char* key, const char* value
-				 ,ini_style_t* style)
-{
-	BOOL literal = value != NULL && (str_contains_ctrl_char(value) || *value==' ' || *lastchar(value)==' ');
-
-	return ini_set_string(list, section, key, value, literal, style);
-}
-
-char* iniSetStringLiteral(str_list_t* list, const char* section, const char* key, const char* value
-				 ,ini_style_t* style)
-{
-	return ini_set_string(list, section, key, value, /* literal: */TRUE, style);
-}
-
-char* iniSetValue(str_list_t* list, const char* section, const char* key, const char* value
-				 ,ini_style_t* style)
-{
-	return ini_set_string(list, section, key, value, /* literal: */FALSE, style);
-}
-
-char* iniSetInteger(str_list_t* list, const char* section, const char* key, long value
-					,ini_style_t* style)
-{
-	char	str[INI_MAX_VALUE_LEN];
-
-	SAFEPRINTF(str,"%ld",value);
-	return iniSetString(list, section, key, str, style);
-}
-
-char* iniSetShortInt(str_list_t* list, const char* section, const char* key, ushort value
-					,ini_style_t* style)
-{
-	char	str[INI_MAX_VALUE_LEN];
-
-	SAFEPRINTF(str,"%hu",value);
-	return iniSetString(list, section, key, str, style);
-}
-
-char* iniSetLongInt(str_list_t* list, const char* section, const char* key, ulong value
-					,ini_style_t* style)
-{
-	char	str[INI_MAX_VALUE_LEN];
-
-	SAFEPRINTF(str,"%lu",value);
-	return iniSetString(list, section, key, str, style);
-}
-
-char* iniSetHexInt(str_list_t* list, const char* section, const char* key, ulong value
-					,ini_style_t* style)
-{
-	char	str[INI_MAX_VALUE_LEN];
-
-	SAFEPRINTF(str,"0x%lx",value);
-	return iniSetString(list, section, key, str, style);
-}
-
-char* iniSetFloat(str_list_t* list, const char* section, const char* key, double value
-					,ini_style_t* style)
-{
-	char	str[INI_MAX_VALUE_LEN];
-
-	SAFEPRINTF(str,"%g",value);
-	return iniSetString(list, section, key, str, style);
-}
-
-char* iniSetBytes(str_list_t* list, const char* section, const char* key, ulong unit
-					,int64_t value, ini_style_t* style)
-{
-	char	str[INI_MAX_VALUE_LEN];
-
-	if(value==0)
-		SAFECOPY(str,"0");
-	else
-		switch(unit) {
-			case 1024*1024*1024:
-				SAFEPRINTF(str,"%"PRIi64"G",value);
-				break;
-			case 1024*1024:
-				SAFEPRINTF(str,"%"PRIi64"M",value);
-				break;
-			case 1024:
-				SAFEPRINTF(str,"%"PRIi64"K",value);
-				break;
-			default:
-				if(unit<1)
-					unit=1;
-				byte_count_to_str(value*unit, str, sizeof(str));
-		}
-
-	return iniSetString(list, section, key, str, style);
-}
-
-char* iniSetDuration(str_list_t* list, const char* section, const char* key
-					,double value, ini_style_t* style)
-{
-	char	str[INI_MAX_VALUE_LEN];
-
-	return iniSetString(list, section, key, duration_to_str(value, str, sizeof(str)), style);
-}
-
-
-#if !defined(NO_SOCKET_SUPPORT)
-char* iniSetIpAddress(str_list_t* list, const char* section, const char* key, ulong value
-					,ini_style_t* style)
-{
-	struct in_addr in_addr;
-	in_addr.s_addr=htonl(value);
-	return iniSetString(list, section, key, inet_ntoa(in_addr), style);
-}
-
-char* iniSetIp6Address(str_list_t* list, const char* section, const char* key, struct in6_addr value
-					,ini_style_t* style)
-{
-	char				addrstr[INET6_ADDRSTRLEN];
-	union xp_sockaddr	addr = {{0}};
-
-	addr.in6.sin6_addr = value;
-	addr.in6.sin6_family = AF_INET6;
-	inet_addrtop(&addr, addrstr, sizeof(addrstr));
-	return iniSetString(list, section, key, addrstr, style);
-}
-#endif
-
-char* iniSetBool(str_list_t* list, const char* section, const char* key, BOOL value
-					,ini_style_t* style)
-{
-	return iniSetString(list, section, key, value ? "true":"false", style);
-}
-
-char* iniSetDateTime(str_list_t* list, const char* section, const char* key
-					 ,BOOL include_time, time_t value, ini_style_t* style)
-{
-	char	str[INI_MAX_VALUE_LEN];
-	char	tstr[32];
-	char*	p;
-
-	if(value==0)
-		SAFECOPY(str,"Never");
-	else if((p=ctime_r(&value,tstr))==NULL)
-		SAFEPRINTF(str,"0x%lx",value);
-	else if(!include_time)	/* reformat into "Mon DD YYYY" */
-		safe_snprintf(str,sizeof(str),"%.3s %.2s %.4s"		,p+4,p+8,p+20);
-	else					/* reformat into "Mon DD YYYY HH:MM:SS" */
-		safe_snprintf(str,sizeof(str),"%.3s %.2s %.4s %.8s"	,p+4,p+8,p+20,p+11);
-
-	return iniSetString(list, section, key, str, style);
-}
-
-char* iniSetEnum(str_list_t* list, const char* section, const char* key, str_list_t names, unsigned value
-					,ini_style_t* style)
-{
-	if(value < strListCount(names))
-		return iniSetString(list, section, key, names[value], style);
-
-	return iniSetLongInt(list, section, key, value, style);
-}
-
-char* iniSetEnumList(str_list_t* list, const char* section, const char* key
-					,const char* sep, str_list_t names, unsigned* val_list, unsigned count, ini_style_t* style)
-{
-	char	value[INI_MAX_VALUE_LEN];
-	size_t	i;
-	size_t	name_count;
-
-	value[0]=0;
-
-	if(sep==NULL)
-		sep=",";
-
-	if(val_list!=NULL) {
-		name_count = strListCount(names);
-		for(i=0; i < count; i++) {
-			if(value[0])
-				SAFECAT(value,sep);
-			if(val_list[i] < name_count)
-				SAFECAT(value, names[val_list[i]]);
-			else
-				sprintf(value + strlen(value), "%u", val_list[i]);
-		}
-	}
-
-	return iniSetString(list, section, key, value, style);
-}
-
-char* iniSetNamedInt(str_list_t* list, const char* section, const char* key, named_long_t* names
-					 ,long value, ini_style_t* style)
-{
-	size_t	i;
-
-	for(i=0;names[i].name!=NULL;i++)
-		if(names[i].value==value)
-			return iniSetString(list, section, key, names[i].name, style);
-
-	return iniSetInteger(list, section, key, value, style);
-}
-
-char* iniSetNamedHexInt(str_list_t* list, const char* section, const char* key, named_ulong_t* names
-					 ,ulong value, ini_style_t* style)
-{
-	size_t	i;
-
-	for(i=0;names[i].name!=NULL;i++)
-		if(names[i].value==value)
-			return iniSetString(list, section, key, names[i].name, style);
-
-	return iniSetHexInt(list, section, key, value, style);
-}
-
-char* iniSetNamedLongInt(str_list_t* list, const char* section, const char* key, named_ulong_t* names
-					 ,ulong value, ini_style_t* style)
-{
-	size_t	i;
-
-	for(i=0;names[i].name!=NULL;i++)
-		if(names[i].value==value)
-			return iniSetString(list, section, key, names[i].name, style);
-
-	return iniSetLongInt(list, section, key, value, style);
-}
-
-char* iniSetNamedFloat(str_list_t* list, const char* section, const char* key, named_double_t* names
-					 ,double value, ini_style_t* style)
-{
-	size_t	i;
-
-	for(i=0;names[i].name!=NULL;i++)
-		if(names[i].value==value)
-			return iniSetString(list, section, key, names[i].name, style);
-
-	return iniSetFloat(list, section, key, value, style);
-}
-
-char* iniSetBitField(str_list_t* list, const char* section, const char* key
-					 ,ini_bitdesc_t* bitdesc, ulong value, ini_style_t* style)
-{
-	char	str[INI_MAX_VALUE_LEN];
-	int		i;
-	const char* bit_separator = "|";
-
-	if(style==NULL)
-		style=&default_style;
-	if(style->bit_separator!=NULL)
-		bit_separator = style->bit_separator;
-	str[0]=0;
-	for(i=0;bitdesc[i].name;i++) {
-		if((value&bitdesc[i].bit)==0)
-			continue;
-		if(str[0])
-			SAFECAT(str, bit_separator);
-		SAFECAT(str,bitdesc[i].name);
-		value&=~bitdesc[i].bit;
-	}
-	if(value) {	/* left over bits? */
-		if(str[0])
-			SAFECAT(str, bit_separator);
-		sprintf(str+strlen(str), "0x%lX", value);
-	}
-	return iniSetString(list, section, key, str, style);
-}
-
-char* iniSetStringList(str_list_t* list, const char* section, const char* key
-					,const char* sep, str_list_t val_list, ini_style_t* style)
-{
-	char	value[INI_MAX_VALUE_LEN];
-
-	if(sep==NULL)
-		sep=",";
-
-	return iniSetString(list, section, key, strListCombine(val_list, value, sizeof(value), sep), style);
-}
-
-char* iniSetIntList(str_list_t* list, const char* section, const char* key
-					,const char* sep, int* val_list, unsigned count, ini_style_t* style)
-{
-	unsigned i;
-	char	value[INI_MAX_VALUE_LEN];
-
-	if(sep == NULL)
-		sep = ",";
-	for(i = 0; i < count; i++) {
-		if(i) {
-			int len = strlen(value);
-			if(len > INI_MAX_VALUE_LEN - 20)
-				return NULL;
-			sprintf(value + len, "%s%d", sep, *(val_list + i));
-		} else
-			sprintf(value, "%d", *val_list);
-	}
-
-	return iniSetString(list, section, key, value, style);
-}
-
-static char* default_value(const char* deflt, char* value)
-{
-	if(deflt!=NULL && deflt!=value && value!=NULL)
-		sprintf(value,"%.*s",INI_MAX_VALUE_LEN-1,deflt);
-
-	return((char*)deflt);
-}
-
-/* Supports string literals: */
-char* iniReadString(FILE* fp, const char* section, const char* key, const char* deflt, char* value)
-{
-	if(read_value(fp, section, key, value, /* literals_supported: */TRUE)==NULL || *value==0 /* blank */)
-		return default_value(deflt,value);
-
-	return(value);
-}
-
-/* Does NOT support string literals: */
-char* iniReadValue(FILE* fp, const char* section, const char* key, const char* deflt, char* value)
-{
-	if(read_value(fp, section, key, value, /* literals_supported: */FALSE)==NULL || *value==0 /* blank */)
-		return default_value(deflt,value);
-
-	return(value);
-}
-
-/* Supports string literals: */
-char* iniGetString(str_list_t list, const char* section, const char* key, const char* deflt, char* value)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, value, &vp, /* literals_supported: */TRUE);
-
-	if(vp==NULL || *vp==0 /* blank value or missing key */)
-		return default_value(deflt,value);
-
-	if(value != NULL)	/* return the modified (trimmed) value */
-		return value;
-
-	return(vp);
-}
-
-/* Does NOT support string literals: */
-char* iniGetValue(str_list_t list, const char* section, const char* key, const char* deflt, char* value)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, value, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0 /* blank value or missing key */)
-		return default_value(deflt,value);
-
-	if(value != NULL)	/* return the modified (trimmed) value */
-		return value;
-
-	return(vp);
-}
-
-/* Does NOT support string literals: */
-char* iniPopKey(str_list_t* list, const char* section, const char* key, char* value)
-{
-	size_t i;
-
-	if(list==NULL || *list==NULL)
-		return NULL;
-
-	i=get_value(*list, section, key, value, NULL, /* literals_supported: */FALSE);
-
-	if((*list)[i]==NULL)
-		return NULL;
-
-	strListDelete(list,i);
-
-	return(value);
-}
-
-/* Supports string literals: */
-char* iniPopString(str_list_t* list, const char* section, const char* key, char* value)
-{
-	size_t i;
-
-	if(list==NULL || *list==NULL)
-		return NULL;
-
-	i=get_value(*list, section, key, value, NULL, /* literals_supported: */TRUE);
-
-	if((*list)[i]==NULL)
-		return NULL;
-
-	strListDelete(list,i);
-
-	return(value);
-}
-
-char* iniReadExistingString(FILE* fp, const char* section, const char* key, const char* deflt, char* value)
-{
-	if(read_value(fp,section,key,value, /* literals_supported: */TRUE)==NULL)
-		return(NULL);
-
-	if(*value==0 /* blank */)
-		return default_value(deflt,value);
-
-	return(value);
-}
-
-char* iniGetExistingString(str_list_t list, const char* section, const char* key, const char* deflt, char* value)
-{
-	if(!iniKeyExists(list, section, key))
-		return(NULL);
-
-	return iniGetString(list, section, key, deflt, value);
-}
-
-char* iniReadExistingValue(FILE* fp, const char* section, const char* key, const char* deflt, char* value)
-{
-	if(read_value(fp,section,key,value, /* literals_supported: */FALSE)==NULL)
-		return(NULL);
-
-	if(*value==0 /* blank */)
-		return default_value(deflt,value);
-
-	return(value);
-}
-
-char* iniGetExistingValue(str_list_t list, const char* section, const char* key, const char* deflt, char* value)
-{
-	if(!iniKeyExists(list, section, key))
-		return(NULL);
-
-	return iniGetValue(list, section, key, deflt, value);
-}
-
-
-static str_list_t splitList(char* list, const char* sep)
-{
-	char*		token;
-	char*		tmp;
-	ulong		items=0;
-	str_list_t	lp;
-
-	if((lp=strListInit())==NULL)
-		return(NULL);
-
-	if(sep==NULL)
-		sep=",";
-
-	token=strtok_r(list,sep,&tmp);
-	while(token!=NULL) {
-		SKIP_WHITESPACE(token);
-		truncsp(token);
-		if(strListAppend(&lp,token,items++)==NULL)
-			break;
-		token=strtok_r(NULL,sep,&tmp);
-	}
-
-	return(lp);
-}
-
-str_list_t iniReadStringList(FILE* fp, const char* section, const char* key
-						 ,const char* sep, const char* deflt)
-{
-	char*	value;
-	char	buf[INI_MAX_VALUE_LEN];
-	char	list[INI_MAX_VALUE_LEN];
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */TRUE))==NULL || *value==0 /* blank */)
-		value=(char*)deflt;
-
-	if(value==NULL)
-		return(NULL);
-
-	SAFECOPY(list,value);
-
-	return(splitList(list,sep));
-}
-
-str_list_t iniGetStringList(str_list_t list, const char* section, const char* key
-						 ,const char* sep, const char* deflt)
-{
-	char	value[INI_MAX_VALUE_LEN];
-
-	get_value(list, section, key, value, NULL, /* literals_supported: */TRUE);
-
-	if(*value==0 /* blank value or missing key */) {
-		if(deflt==NULL)
-			return(NULL);
-		SAFECOPY(value,deflt);
-	}
-
-	return(splitList(value,sep));
-}
-
-void* iniFreeStringList(str_list_t list)
-{
-	strListFree(&list);
-	return(list);
-}
-
-void* iniFreeNamedStringList(named_string_t** list)
-{
-	ulong	i;
-
-	if(list==NULL)
-		return(NULL);
-
-	for(i=0;list[i]!=NULL;i++) {
-		if(list[i]->name!=NULL)
-			free(list[i]->name);
-		if(list[i]->value!=NULL)
-			free(list[i]->value);
-		free(list[i]);
-	}
-
-	free(list);
-	return(NULL);
-}
-
-str_list_t iniReadSectionList(FILE* fp, const char* prefix)
-{
-	char*	p;
-	char	str[INI_MAX_LINE_LEN];
-	ulong	items=0;
-	str_list_t	lp;
-
-	if((lp=strListInit())==NULL)
-		return(NULL);
-
-	if(fp==NULL)
-		return(lp);
-
-	rewind(fp);
-
-	while(!feof(fp)) {
-		if(fgets(str,sizeof(str),fp)==NULL)
-			break;
-		if(is_eof(str))
-			break;
-		if((p=section_name(str))==NULL)
-			continue;
-		if(prefix!=NULL)
-			if(strnicmp(p,prefix,strlen(prefix))!=0)
-				continue;
-		if(strListFind(lp, p, /* case_sensitive */FALSE) >= 0)
-			continue;
-		if(strListAppend(&lp,p,items++)==NULL)
-			break;
-	}
-
-	return(lp);
-}
-
-str_list_t iniGetSectionList(str_list_t list, const char* prefix)
-{
-	char*	p;
-	char	str[INI_MAX_LINE_LEN];
-	ulong	i,items=0;
-	str_list_t	lp;
-
-	if((lp=strListInit())==NULL)
-		return(NULL);
-
-	if(list==NULL)
-		return(lp);
-
-	for(i=0; list[i]!=NULL; i++) {
-		SAFECOPY(str,list[i]);
-		if(is_eof(str))
-			break;
-		if((p=section_name(str))==NULL)
-			continue;
-		if(prefix!=NULL)
-			if(strnicmp(p,prefix,strlen(prefix))!=0)
-				continue;
-		if(strListFind(lp, p, /* case_sensitive */FALSE) >= 0)
-			continue;
-		if(strListAppend(&lp,p,items++)==NULL)
-			break;
-	}
-
-	return(lp);
-}
-
-size_t iniGetSectionCount(str_list_t list, const char* prefix)
-{
-	char*	p;
-	char	str[INI_MAX_LINE_LEN];
-	size_t	i,items=0;
-
-	if(list==NULL)
-		return(0);
-
-	for(i=0; list[i]!=NULL; i++) {
-		SAFECOPY(str,list[i]);
-		if(is_eof(str))
-			break;
-		if((p=section_name(str))==NULL)
-			continue;
-		if(prefix!=NULL)
-			if(strnicmp(p,prefix,strlen(prefix))!=0)
-				continue;
-		items++;
-	}
-
-	return(items);
-}
-
-size_t iniReadSectionCount(FILE* fp, const char* prefix)
-{
-	char*	p;
-	char	str[INI_MAX_LINE_LEN];
-	ulong	items=0;
-
-	if(fp==NULL)
-		return(0);
-
-	rewind(fp);
-
-	while(!feof(fp)) {
-		if(fgets(str,sizeof(str),fp)==NULL)
-			break;
-		if(is_eof(str))
-			break;
-		if((p=section_name(str))==NULL)
-			continue;
-		if(prefix!=NULL)
-			if(strnicmp(p,prefix,strlen(prefix))!=0)
-				continue;
-		items++;
-	}
-
-	return(items);
-}
-
-
-str_list_t iniReadKeyList(FILE* fp, const char* section)
-{
-	char*	p;
-	char*	vp;
-	char	str[INI_MAX_LINE_LEN];
-	ulong	items=0;
-	str_list_t	lp;
-
-	if((lp=strListInit())==NULL)
-		return(NULL);
-
-	if(fp==NULL)
-		return(lp);
-
-	rewind(fp);
-
-	if(!seek_section(fp,section))
-		return(lp);
-
-	while(!feof(fp)) {
-		if(fgets(str,sizeof(str),fp)==NULL)
-			break;
-		if(is_eof(str))
-			break;
-		if((p=key_name(str, &vp, /* literals_supported: */FALSE))==NULL)
-			continue;
-		if(p==INI_NEW_SECTION)
-			break;
-		if(strListAppend(&lp,p,items++)==NULL)
-			break;
-	}
-
-	return(lp);
-}
-
-str_list_t iniGetKeyList(str_list_t list, const char* section)
-{
-	char*	p;
-	char*	vp;
-	char	str[INI_MAX_LINE_LEN];
-	ulong	i,items=0;
-	str_list_t	lp;
-
-	if((lp=strListInit())==NULL)
-		return(NULL);
-
-	if(list==NULL)
-		return(lp);
-
-	for(i=find_section(list,section);list[i]!=NULL;i++) {
-		SAFECOPY(str,list[i]);
-		if(is_eof(str))
-			break;
-		if((p=key_name(str, &vp, /* literals_supported: */FALSE))==NULL)
-			continue;
-		if(p==INI_NEW_SECTION)
-			break;
-		if(strListAppend(&lp,p,items++)==NULL)
-			break;
-	}
-
-	return(lp);
-}
-
-
-named_string_t**
-iniReadNamedStringList(FILE* fp, const char* section)
-{
-	char*	name;
-	char*	value;
-	char	str[INI_MAX_LINE_LEN];
-	ulong	items=0;
-	named_string_t** lp;
-	named_string_t** np;
-
-	if(fp==NULL)
-		return(NULL);
-
-	rewind(fp);
-
-	if(!seek_section(fp,section))
-		return(NULL);
-
-	/* New behavior, if section exists but is empty, return single element array (terminator only) */
-	if((lp=(named_string_t**)malloc(sizeof(named_string_t*)))==NULL)
-		return(NULL);
-
-	while(!feof(fp)) {
-		if(fgets(str,sizeof(str),fp)==NULL)
-			break;
-		if(is_eof(str))
-			break;
-		if((name=key_name(str, &value, /* literals_supported: */TRUE))==NULL)
-			continue;
-		if(name==INI_NEW_SECTION)
-			break;
-		if((np=(named_string_t**)realloc(lp,sizeof(named_string_t*)*(items+2)))==NULL)
-			break;
-		lp=np;
-		if((lp[items]=(named_string_t*)malloc(sizeof(named_string_t)))==NULL)
-			break;
-		if((lp[items]->name=strdup(name))==NULL)
-			break;
-		if((lp[items]->value=strdup(value))==NULL)
-			break;
-		items++;
-	}
-
-	lp[items]=NULL;	/* terminate list */
-
-	return(lp);
-}
-
-named_string_t**
-iniGetNamedStringList(str_list_t list, const char* section)
-{
-	char*	name;
-	char*	value;
-	char	str[INI_MAX_LINE_LEN];
-	ulong	i,items=0;
-	named_string_t** lp;
-	named_string_t** np;
-
-	if(list==NULL)
-		return(NULL);
-
-	i=find_section(list,section);
-	if(section!=ROOT_SECTION && list[i]==NULL)
-		return(NULL);
-
-	/* New behavior, if section exists but is empty, return single element array (terminator only) */
-	if((lp=(named_string_t**)malloc(sizeof(named_string_t*)))==NULL)
-		return(NULL);
-
-	for(;list[i]!=NULL;i++) {
-		SAFECOPY(str,list[i]);
-		if(is_eof(str))
-			break;
-		if((name=key_name(str, &value, /* literals_supported: */TRUE))==NULL)
-			continue;
-		if(name==INI_NEW_SECTION)
-			break;
-		if((np=(named_string_t**)realloc(lp,sizeof(named_string_t*)*(items+2)))==NULL)
-			break;
-		lp=np;
-		if((lp[items]=(named_string_t*)malloc(sizeof(named_string_t)))==NULL)
-			break;
-		if((lp[items]->name=strdup(name))==NULL)
-			break;
-		if((lp[items]->value=strdup(value))==NULL)
-			break;
-		items++;
-	}
-
-	lp[items]=NULL;	/* terminate list */
-
-	return(lp);
-}
-
-
-/* These functions read a single key of the specified type */
-
-static BOOL isTrue(const char* value)
-{
-	char*	str;
-	char*	p;
-	BOOL	is_true;
-
-	if(!IS_ALPHA(*value))
-		return FALSE;
-
-	if((str=strdup(value)) == NULL)
-		return FALSE;
-
-	/* Truncate value at first space, tab or semicolon for purposes of checking for special boolean words. */
-	/* This allows comments or white-space to immediately follow a special boolean word: "True", "Yes", or "On" */
-	p=str;
-	FIND_CHARSET(p, "; \t");
-	*p=0;
-
-	is_true = (stricmp(str,"TRUE")==0 || stricmp(str,"YES")==0 || stricmp(str,"ON")==0);
-	free(str);
-	return is_true;
-}
-
-static long parseInteger(const char* value)
-{
-	if(isTrue(value))
-		return(TRUE);
-
-	return(strtol(value,NULL,0));
-}
-
-static ulong parseLongInteger(const char* value)
-{
-	if(isTrue(value))
-		return(TRUE);
-
-	return(strtoul(value,NULL,0));
-}
-
-static BOOL parseBool(const char* value)
-{
-	return(INT_TO_BOOL(parseInteger(value)));
-}
-
-long iniReadInteger(FILE* fp, const char* section, const char* key, long deflt)
-{
-	char*	value;
-	char	buf[INI_MAX_VALUE_LEN];
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL)
-		return(deflt);
-
-	if(*value==0)		/* blank value */
-		return(deflt);
-
-	return(parseInteger(value));
-}
-
-long iniGetInteger(str_list_t list, const char* section, const char* key, long deflt)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0)	/* blank value or missing key */
-		return(deflt);
-
-	return(parseInteger(vp));
-}
-
-ushort iniReadShortInt(FILE* fp, const char* section, const char* key, ushort deflt)
-{
-	return((ushort)iniReadInteger(fp, section, key, deflt));
-}
-
-ushort iniGetShortInt(str_list_t list, const char* section, const char* key, ushort deflt)
-{
-	return((ushort)iniGetInteger(list, section, key, deflt));
-}
-
-ulong iniReadLongInt(FILE* fp, const char* section, const char* key, ulong deflt)
-{
-	char*	value;
-	char	buf[INI_MAX_VALUE_LEN];
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL)
-		return(deflt);
-
-	if(*value==0)		/* blank value */
-		return(deflt);
-
-	return(parseLongInteger(value));
-}
-
-ulong iniGetLongInt(str_list_t list, const char* section, const char* key, ulong deflt)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0)	/* blank value or missing key */
-		return(deflt);
-
-	return(parseLongInteger(vp));
-}
-
-int64_t iniReadBytes(FILE* fp, const char* section, const char* key, ulong unit, int64_t deflt)
-{
-	char*	value;
-	char	buf[INI_MAX_VALUE_LEN];
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL)
-		return(deflt);
-
-	if(*value==0)		/* blank value */
-		return(deflt);
-
-	return(parse_byte_count(value,unit));
-}
-
-int64_t iniGetBytes(str_list_t list, const char* section, const char* key, ulong unit, int64_t deflt)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0)	/* blank value or missing key */
-		return(deflt);
-
-	return(parse_byte_count(vp,unit));
-}
-
-double iniReadDuration(FILE* fp, const char* section, const char* key, double deflt)
-{
-	char*	value;
-	char	buf[INI_MAX_VALUE_LEN];
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL)
-		return(deflt);
-
-	if(*value==0)		/* blank value */
-		return(deflt);
-
-	return(parse_duration(value));
-}
-
-double iniGetDuration(str_list_t list, const char* section, const char* key, double deflt)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0)	/* blank value or missing key */
-		return(deflt);
-
-	return(parse_duration(vp));
-}
-
-#if !defined(NO_SOCKET_SUPPORT)
-
-int iniGetSocketOptions(str_list_t list, const char* section, SOCKET sock
-						 ,char* error, size_t errlen)
-{
-	int			i;
-	int			result;
-	char*		name;
-	char		err[128];
-	BYTE*		vp;
-	socklen_t	len;
-	int			option;
-	int			level;
-	int			value;
-	int			type=0;	// Assignment is to silence Valgrind.
-	LINGER		linger;
-	socket_option_t* socket_options=getSocketOptionList();
-#ifdef IPPROTO_IPV6
-	union xp_sockaddr	addr;
-#endif
-
-	len=sizeof(type);
-	if((result=getsockopt(sock, SOL_SOCKET, SO_TYPE, (char*)&type, &len)) != 0) {
-		safe_snprintf(error,errlen,"%d (%s) getting socket type", ERROR_VALUE, socket_strerror(socket_errno,err,sizeof(err)));
-		return(result);
-	}
-#ifdef IPPROTO_IPV6
-	len=sizeof(addr);
-	if((result=getsockname(sock, &addr.addr, &len)) != 0) {
-		safe_snprintf(error,errlen,"%d (%s) getting socket name", ERROR_VALUE, socket_strerror(socket_errno,err,sizeof(err)));
-		return(result);
-	}
-#endif
-	for(i=0;socket_options[i].name!=NULL;i++) {
-		if(socket_options[i].type != 0
-				&& socket_options[i].type != type)
-			continue;
-#ifdef IPPROTO_IPV6
-		if(addr.addr.sa_family != AF_INET6 && socket_options[i].level == IPPROTO_IPV6)
-			continue;
-#endif
-		name = socket_options[i].name;
-		if(!iniValueExists(list, section, name))
-			continue;
-		value=iniGetInteger(list, section, name, 0);
-
-		vp=(BYTE*)&value;
-		len=sizeof(value);
-
-		level	= socket_options[i].level;
-		option	= socket_options[i].value;
-
-		if(option == SO_LINGER) {
-			if(value) {
-				linger.l_onoff = TRUE;
-				linger.l_linger = value;
-			} else {
-				ZERO_VAR(linger);
-			}
-			vp=(BYTE*)&linger;
-			len=sizeof(linger);
-		}
-
-		if((result=setsockopt(sock,level,option,(const char *)vp,len)) != 0) {
-			safe_snprintf(error,errlen,"%d (%s) setting socket option (%s, %d) to %d"
-				,ERROR_VALUE, socket_strerror(socket_errno,err,sizeof(err)), name, option, value);
-			return(result);
-		}
-	}
-
-	return(0);
-}
-
-static ulong parseIpAddress(const char* value)
-{
-	if(strchr(value,'.')==NULL)
-		return(strtol(value,NULL,0));
-
-	return(ntohl(inet_addr(value)));
-}
-
-static struct in6_addr parseIp6Address(const char* value)
-{
-	struct addrinfo hints = {0};
-	struct addrinfo *res, *cur;
-	struct in6_addr ret = {{{0}}};
-
-	hints.ai_flags = AI_NUMERICHOST|AI_PASSIVE;
-	if(getaddrinfo(value, NULL, &hints, &res))
-		return ret;
-
-	for(cur = res; cur; cur++) {
-		if(cur->ai_addr->sa_family == AF_INET6)
-			break;
-	}
-	if(!cur) {
-		freeaddrinfo(res);
-		return ret;
-	}
-	memcpy(&ret, &((struct sockaddr_in6 *)(cur->ai_addr))->sin6_addr, sizeof(ret));
-	freeaddrinfo(res);
-	return ret;
-}
-
-ulong iniReadIpAddress(FILE* fp, const char* section, const char* key, ulong deflt)
-{
-	char	buf[INI_MAX_VALUE_LEN];
-	char*	value;
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL)
-		return(deflt);
-
-	if(*value==0)		/* blank value */
-		return(deflt);
-
-	return(parseIpAddress(value));
-}
-
-struct in6_addr iniReadIp6Address(FILE* fp, const char* section, const char* key, struct in6_addr deflt)
-{
-	char	buf[INI_MAX_VALUE_LEN];
-	char*	value;
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL)
-		return(deflt);
-
-	if(*value==0)		/* blank value */
-		return(deflt);
-
-	return(parseIp6Address(value));
-}
-
-ulong iniGetIpAddress(str_list_t list, const char* section, const char* key, ulong deflt)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0)		/* blank value or missing key */
-		return(deflt);
-
-	return(parseIpAddress(vp));
-}
-
-struct in6_addr iniGetIp6Address(str_list_t list, const char* section, const char* key, struct in6_addr deflt)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0)		/* blank value or missing key */
-		return(deflt);
-
-	return(parseIp6Address(vp));
-}
-
-#endif	/* !NO_SOCKET_SUPPORT */
-
-char* iniFileName(char* dest, size_t maxlen, const char* indir, const char* infname)
-{
-	char	dir[MAX_PATH+1];
-	char	fname[MAX_PATH+1];
-	char	ext[MAX_PATH+1];
-	char*	p;
-
-	SAFECOPY(dir,indir);
-	backslash(dir);
-	SAFECOPY(fname,infname);
-	ext[0]=0;
-	if((p=getfext(fname))!=NULL) {
-		SAFECOPY(ext,p);
-		*p=0;
-	}
-
-#if !defined(NO_SOCKET_SUPPORT)
-	{
-		char hostname[128];
-
-		if(gethostname(hostname,sizeof(hostname))==0) {
-			safe_snprintf(dest,maxlen,"%s%s.%s%s",dir,fname,hostname,ext);
-			if(fexistcase(dest))		/* path/file.host.domain.ini */
-				return(dest);
-			if((p=strchr(hostname,'.'))!=NULL) {
-				*p=0;
-				safe_snprintf(dest,maxlen,"%s%s.%s%s",dir,fname,hostname,ext);
-				if(fexistcase(dest))	/* path/file.host.ini */
-					return(dest);
-			}
-		}
-	}
-#endif
-
-	safe_snprintf(dest,maxlen,"%s%s.%s%s",dir,fname,PLATFORM_DESC,ext);
-	if(fexistcase(dest))	/* path/file.platform.ini */
-		return(dest);
-
-	safe_snprintf(dest,maxlen,"%s%s%s",dir,fname,ext);
-	fexistcase(dest);	/* path/file.ini */
-	return(dest);
-}
-
-double iniReadFloat(FILE* fp, const char* section, const char* key, double deflt)
-{
-	char	buf[INI_MAX_VALUE_LEN];
-	char*	value;
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL)
-		return(deflt);
-
-	if(*value==0)		/* blank value */
-		return(deflt);
-
-	return(atof(value));
-}
-
-double iniGetFloat(str_list_t list, const char* section, const char* key, double deflt)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0)		/* blank value or missing key */
-		return(deflt);
-
-	return(atof(vp));
-}
-
-BOOL iniReadBool(FILE* fp, const char* section, const char* key, BOOL deflt)
-{
-	char	buf[INI_MAX_VALUE_LEN];
-	char*	value;
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL)
-		return(deflt);
-
-	if(*value==0)		/* blank value */
-		return(deflt);
-
-	return(parseBool(value));
-}
-
-BOOL iniGetBool(str_list_t list, const char* section, const char* key, BOOL deflt)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0)		/* blank value or missing key */
-		return(deflt);
-
-	return(parseBool(vp));
-}
-
-static BOOL validDate(struct tm* tm)
-{
-	return(tm->tm_mon && tm->tm_mon<=12
-		&& tm->tm_mday && tm->tm_mday<=31);
-}
-
-static time_t fixedDateTime(struct tm* tm, const char* tstr, char pm)
-{
-	if(tm->tm_year<70)
-		tm->tm_year+=100;	/* 05 == 2005 (not 1905) and 70 == 1970 (not 2070) */
-	else if(tm->tm_year>1900)
-		tm->tm_year-=1900;
-	if(tm->tm_mon)
-		tm->tm_mon--;		/* zero-based month field */
-
-	/* hh:mm:ss [p] */
-	sscanf(tstr,"%u:%u:%u",&tm->tm_hour,&tm->tm_min,&tm->tm_sec);
-	if(tm->tm_hour < 12 && (toupper(pm)=='P' || strchr(tstr,'p') || strchr(tstr,'P')))
-		tm->tm_hour += 12;	/* pm, correct for 24 hour clock */
-
-	tm->tm_isdst=-1;	/* auto-detect */
-
-	return(mktime(tm));
-}
-
-static int getMonth(const char* month)
-{
-	char *mon[]={"Jan","Feb","Mar","Apr","May","Jun"
-            ,"Jul","Aug","Sep","Oct","Nov","Dec",NULL};
-	int i;
-
-	for(i=0;mon[i]!=NULL;i++)
-		if(strnicmp(month,mon[i],3)==0)
-			return(i+1);
-
-	return(atoi(month));
-}
-
-static time_t parseDateTime(const char* value)
-{
-	char	month[INI_MAX_VALUE_LEN];
-	char	tstr[INI_MAX_VALUE_LEN];
-	char	pm=0;
-	time_t	t;
-	struct tm tm;
-	struct tm curr_tm;
-	isoDate_t	isoDate;
-	isoTime_t	isoTime;
-
-	ZERO_VAR(tm);
-	tstr[0]=0;
-
-	/* Use current month and year as default */
-	t=time(NULL);
-	if(localtime_r(&t,&curr_tm)!=NULL) {
-		tm.tm_mon=curr_tm.tm_mon+1;	/* convert to one-based (reversed later) */
-		tm.tm_year=curr_tm.tm_year;
-	}
-
-	/* CCYYMMDDTHHMMSS <--- ISO-8601 date and time format */
-	if(sscanf(value,"%uT%u"
-		,&isoDate,&isoTime)>=2)
-		return(isoDateTime_to_time(isoDate,isoTime));
-
-	/* DD.MM.[CC]YY [time] [p] <-- Euro/Canadian numeric date format */
-	if(sscanf(value,"%u.%u.%u %s %c"
-		,&tm.tm_mday,&tm.tm_mon,&tm.tm_year,tstr,&pm)>=2
-		&& validDate(&tm))
-		return(fixedDateTime(&tm,tstr,pm));
-
-	/* MM/DD/[CC]YY [time] [p] <-- American numeric date format */
-	if(sscanf(value,"%u%*c %u%*c %u %s %c"
-		,&tm.tm_mon,&tm.tm_mday,&tm.tm_year,tstr,&pm)>=2
-		&& validDate(&tm))
-		return(fixedDateTime(&tm,tstr,pm));
-
-	/* DD[-]Mon [CC]YY [time] [p] <-- Perversion of RFC822 date format */
-	if(sscanf(value,"%u%*c %s %u %s %c"
-		,&tm.tm_mday,month,&tm.tm_year,tstr,&pm)>=2
-		&& (tm.tm_mon=getMonth(month))!=0
-		&& validDate(&tm))
-		return(fixedDateTime(&tm,tstr,pm));
-
-	/* Wday, DD Mon YYYY [time] <-- IETF standard (RFC2822) date format */
-	if(sscanf(value,"%*s %u %s %u %s"
-		,&tm.tm_mday,month,&tm.tm_year,tstr)>=2
-		&& (tm.tm_mon=getMonth(month))!=0
-		&& validDate(&tm))
-		return(fixedDateTime(&tm,tstr,0));
-
-	/* Mon DD[,] [CC]YY [time] [p] <-- Preferred date format */
-	if(sscanf(value,"%s %u%*c %u %s %c"
-		,month,&tm.tm_mday,&tm.tm_year,tstr,&pm)>=2
-		&& (tm.tm_mon=getMonth(month))!=0
-		&& validDate(&tm))
-		return(fixedDateTime(&tm,tstr,pm));
-
-	/* Wday Mon DD YYYY [time] <-- JavaScript (SpiderMonkey) Date.toString() format */
-	if(sscanf(value,"%*s %s %u %u %s"
-		,month,&tm.tm_mday,&tm.tm_year,tstr)>=2
-		&& (tm.tm_mon=getMonth(month))!=0
-		&& validDate(&tm))
-		return(fixedDateTime(&tm,tstr,0));
-
-	/* Wday Mon DD [time] YYYY <-- ctime() format */
-	if(sscanf(value,"%*s %s %u %s %u"
-		,month,&tm.tm_mday,tstr,&tm.tm_year)>=2
-		&& (tm.tm_mon=getMonth(month))!=0
-		&& validDate(&tm))
-		return(fixedDateTime(&tm,tstr,0));
-
-	if((t=xpDateTime_to_time(isoDateTimeStr_parse(value))) != INVALID_TIME)
-		return t;
-
-	return(strtoul(value,NULL,0));
-}
-
-time_t iniReadDateTime(FILE* fp, const char* section, const char* key, time_t deflt)
-{
-	char	buf[INI_MAX_VALUE_LEN];
-	char*	value;
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL)
-		return(deflt);
-
-	if(*value==0)		/* blank value */
-		return(deflt);
-
-	return(parseDateTime(value));
-}
-
-time_t iniGetDateTime(str_list_t list, const char* section, const char* key, time_t deflt)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0)		/* blank value or missing key */
-		return(deflt);
-
-	return(parseDateTime(vp));
-}
-
-static unsigned parseEnum(const char* value, str_list_t names, unsigned deflt)
-{
-	unsigned i,count;
-	char val[INI_MAX_VALUE_LEN];
-	char* p=val;
-	char* endptr;
-
-	/* Strip trailing words (enums must be a single word with no white-space) */
-	/* to support comments following enum values */
-	SAFECOPY(val,value);
-	FIND_WHITESPACE(p);
-	*p=0;
-
-	if((count=strListCount(names)) == 0)
-		return 0;
-
-	/* Look for exact matches first */
-	for(i=0; i<count; i++)
-		if(stricmp(names[i],val)==0)
-			return(i);
-
-	/* Look for partial matches second */
-	for(i=0; i<count; i++)
-		if(strnicmp(names[i],val,strlen(val))==0)
-			return(i);
-
-    i=strtoul(val, &endptr, 0);
-	if(*endptr != 0 && !IS_WHITESPACE(*endptr))
-		return deflt;
-	if(i>=count)
-		i=count-1;
-	return i;
-}
-
-unsigned* parseEnumList(const char* values, const char* sep, const char** names, unsigned* count)
-{
-	char*		vals;
-	str_list_t	list;
-	unsigned*	enum_list;
-	size_t		i;
-
-	*count=0;
-
-	if(values==NULL)
-		return NULL;
-
-	if((vals=strdup(values)) == NULL)
-		return NULL;
-
-	list=splitList(vals, sep);
-
-	free(vals);
-
-	if((*count=strListCount(list)) < 1) {
-		strListFree(&list);
-		return NULL;
-	}
-
-	if((enum_list=(unsigned *)malloc((*count)*sizeof(unsigned)))!=NULL) {
-		for(i=0;i<*count;i++)
-			enum_list[i]=parseEnum(list[i], names, /* default: */0);
-	}
-
-	strListFree(&list);
-
-	return enum_list;
-}
-
-unsigned iniReadEnum(FILE* fp, const char* section, const char* key, str_list_t names, unsigned deflt)
-{
-	char	buf[INI_MAX_VALUE_LEN];
-	char*	value;
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL)
-		return(deflt);
-
-	if(*value==0)		/* blank value */
-		return(deflt);
-
-	return(parseEnum(value,names,deflt));
-}
-
-unsigned* iniReadEnumList(FILE* fp, const char* section, const char* key
-						 ,str_list_t names, unsigned* cp
-						 ,const char* sep, const char* deflt)
-{
-	char*		value;
-	char		buf[INI_MAX_VALUE_LEN];
-	unsigned	count;
-
-	if(cp==NULL)
-		cp=&count;
-
-	*cp=0;
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL || *value==0 /* blank */)
-		value=(char*)deflt;
-
-	return(parseEnumList(value, sep, names, cp));
-}
-
-unsigned iniGetEnum(str_list_t list, const char* section, const char* key, str_list_t names, unsigned deflt)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0)		/* blank value or missing key */
-		return(deflt);
-
-	return(parseEnum(vp,names, deflt));
-}
-
-unsigned* iniGetEnumList(str_list_t list, const char* section, const char* key
-						 ,str_list_t names, unsigned* cp, const char* sep, const char* deflt)
-{
-	char*		vp=NULL;
-	unsigned	count;
-
-	if(cp==NULL)
-		cp=&count;
-
-	*cp=0;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0 /* blank value or missing key */) {
-		if(deflt==NULL)
-			return(NULL);
-		vp=(char*)deflt;
-	}
-	return(parseEnumList(vp, sep, names, cp));
-}
-
-static long parseNamedInt(const char* value, named_long_t* names)
-{
-	unsigned i;
-
-	/* Look for exact matches first */
-	for(i=0; names[i].name!=NULL; i++)
-		if(stricmp(names[i].name,value)==0)
-			return(names[i].value);
-
-	/* Look for partial matches second */
-	for(i=0; names[i].name!=NULL; i++)
-		if(strnicmp(names[i].name,value,strlen(value))==0)
-			return(names[i].value);
-
-	return(parseInteger(value));
-}
-
-long iniReadNamedInt(FILE* fp, const char* section, const char* key
-					 ,named_long_t* names, long deflt)
-{
-	char	buf[INI_MAX_VALUE_LEN];
-	char*	value;
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL)
-		return(deflt);
-
-	if(*value==0)		/* blank value */
-		return(deflt);
-
-	return(parseNamedInt(value,names));
-}
-
-long iniGetNamedInt(str_list_t list, const char* section, const char* key
-					,named_long_t* names, long deflt)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0)		/* blank value or missing key */
-		return(deflt);
-
-	return(parseNamedInt(vp,names));
-}
-
-static ulong parseNamedLongInt(const char* value, named_ulong_t* names)
-{
-	unsigned i;
-
-	/* Look for exact matches first */
-	for(i=0; names[i].name!=NULL; i++)
-		if(stricmp(names[i].name,value)==0)
-			return(names[i].value);
-
-	/* Look for partial matches second */
-	for(i=0; names[i].name!=NULL; i++)
-		if(strnicmp(names[i].name,value,strlen(value))==0)
-			return(names[i].value);
-
-	return(parseLongInteger(value));
-}
-
-ulong iniReadNamedLongInt(FILE* fp, const char* section, const char* key
-					 ,named_ulong_t* names, ulong deflt)
-{
-	char	buf[INI_MAX_VALUE_LEN];
-	char*	value;
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL)
-		return(deflt);
-
-	if(*value==0)		/* blank value */
-		return(deflt);
-
-	return(parseNamedLongInt(value,names));
-}
-
-ulong iniGetNamedLongInt(str_list_t list, const char* section, const char* key
-					,named_ulong_t* names, ulong deflt)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0)		/* blank value or missing key */
-		return(deflt);
-
-	return(parseNamedLongInt(vp,names));
-}
-
-static double parseNamedFloat(const char* value, named_double_t* names)
-{
-	unsigned i;
-
-	/* Look for exact matches first */
-	for(i=0; names[i].name!=NULL; i++)
-		if(stricmp(names[i].name,value)==0)
-			return(names[i].value);
-
-	/* Look for partial matches second */
-	for(i=0; names[i].name!=NULL; i++)
-		if(strnicmp(names[i].name,value,strlen(value))==0)
-			return(names[i].value);
-
-	return(atof(value));
-}
-
-double iniReadNamedFloat(FILE* fp, const char* section, const char* key
-					 ,named_double_t* names, double deflt)
-{
-	char	buf[INI_MAX_VALUE_LEN];
-	char*	value;
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL)
-		return(deflt);
-
-	if(*value==0)		/* blank value */
-		return(deflt);
-
-	return(parseNamedFloat(value,names));
-}
-
-double iniGetNamedFloat(str_list_t list, const char* section, const char* key
-					,named_double_t* names, double deflt)
-{
-	char*	vp=NULL;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL || *vp==0)		/* blank value or missing key */
-		return(deflt);
-
-	return(parseNamedFloat(vp,names));
-}
-
-static ulong parseBitField(char* value, ini_bitdesc_t* bitdesc)
-{
-	int		i;
-	char*	p;
-	char*	tp;
-	ulong	v=0;
-
-	for(p=value;*p;) {
-		tp=strchr(p,INI_BIT_SEP);
-		if(tp!=NULL)
-			*tp=0;
-		truncsp(p);
-
-		for(i=0;bitdesc[i].name;i++)
-			if(!stricmp(bitdesc[i].name,p))
-				break;
-
-		if(bitdesc[i].name)
-			v|=bitdesc[i].bit;
-		else
-			v|=strtoul(p,NULL,0);
-
-		if(tp==NULL)
-			break;
-
-		p=tp+1;
-		SKIP_WHITESPACE(p);
-	}
-
-	return(v);
-}
-
-ulong iniReadBitField(FILE* fp, const char* section, const char* key,
-						ini_bitdesc_t* bitdesc, ulong deflt)
-{
-	char*	value;
-	char	buf[INI_MAX_VALUE_LEN];
-
-	if((value=read_value(fp,section,key,buf, /* literals_supported: */FALSE))==NULL)	/* missing key */
-		return(deflt);
-
-	return(parseBitField(value,bitdesc));
-}
-
-ulong iniGetBitField(str_list_t list, const char* section, const char* key,
-						ini_bitdesc_t* bitdesc, ulong deflt)
-{
-	char*	vp=NULL;;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp==NULL)		/* missing key */
-		return(deflt);
-
-	return(parseBitField(vp,bitdesc));
-}
-
-int* parseIntList(const char* values, const char* sep, unsigned* count)
-{
-	char*		vals;
-	str_list_t	list;
-	int*		int_list;
-	size_t		i;
-
-	*count = 0;
-
-	if(values == NULL)
-		return NULL;
-
-	if((vals = strdup(values)) == NULL)
-		return NULL;
-
-	list = splitList(vals, sep);
-
-	free(vals);
-
-	if((*count = strListCount(list)) < 1) {
-		strListFree(&list);
-		return NULL;
-	}
-
-	if((int_list = malloc((*count)*sizeof(int))) != NULL) {
-		for(i = 0; i < *count; i++)
-			int_list[i] = atoi(list[i]);
-	}
-
-	strListFree(&list);
-
-	return int_list;
-}
-
-int* iniGetIntList(str_list_t list, const char* section, const char* key
-						 ,unsigned* cp, const char* sep, const char* deflt)
-{
-	char*		vp=NULL;
-	unsigned	count;
-
-	if(cp == NULL)
-		cp = &count;
-
-	*cp=0;
-
-	get_value(list, section, key, NULL, &vp, /* literals_supported: */FALSE);
-
-	if(vp == NULL || *vp == 0 /* blank value or missing key */) {
-		if(deflt == NULL)
-			return NULL;
-		vp = (char*)deflt;
-	}
-	return parseIntList(vp, sep, cp);
-}
-
-int* iniReadIntList(FILE* fp, const char* section, const char* key
-						 ,unsigned* cp, const char* sep, const char* deflt)
-{
-	char*		value;
-	char		buf[INI_MAX_VALUE_LEN];
-	unsigned	count;
-
-	if(cp == NULL)
-		cp = &count;
-
-	*cp = 0;
-
-	if((value = read_value(fp, section, key, buf, /* literals_supported: */FALSE)) == NULL || *value == 0 /* blank */)
-		value = (char*)deflt;
-
-	return parseIntList(value, sep, cp);
-}
-
-FILE* iniOpenFile(const char* fname, BOOL create)
-{
-	char* mode="r+";
-
-	if(create && !fexist(fname))
-		mode="w+";
-
-	return(fopen(fname,mode));
-}
-
-BOOL iniCloseFile(FILE* fp)
-{
-	return(fclose(fp)==0);
-}
-
-str_list_t iniReadFile(FILE* fp)
-{
-	char		str[INI_MAX_LINE_LEN];
-	char		err[512];
-	char*		p;
-	size_t		i;
-	size_t		inc_len;
-	size_t		inc_counter=0;
-	str_list_t	list;
-	FILE*		insert_fp=NULL;
-
-	if(fp!=NULL)
-		rewind(fp);
-
-	list = strListReadFile(fp, NULL, INI_MAX_LINE_LEN);
-	if(list==NULL)
-		return(NULL);
-
-	/* Look for !include directives */
-	inc_len=strlen(INI_INCLUDE_DIRECTIVE);
-	for(i=0; list[i]!=NULL; i++) {
-		if(strnicmp(list[i],INI_INCLUDE_DIRECTIVE,inc_len)==0) {
-			glob_t gl = {0};
-			size_t j;
-			p=list[i]+inc_len;
-			SKIP_WHITESPACE(p);
-			truncsp(p);
- 			(void)glob(p, GLOB_MARK, NULL, &gl);
-			safe_snprintf(str, sizeof(str), "; %s - %lu matches found", list[i], (ulong)gl.gl_pathc);
-			strListReplace(list, i, str);
-			for(j = 0; j < gl.gl_pathc; j++) {
-				char* fname = gl.gl_pathv[j];
-				if(*lastchar(fname) == '/')
-					continue;
-				if(inc_counter >= INI_INCLUDE_MAX)
-					SAFEPRINTF2(str, "; %s - MAXIMUM INCLUDES REACHED: %u", fname, INI_INCLUDE_MAX);
-				else if((insert_fp=fopen(fname,"r"))==NULL)
-					SAFEPRINTF2(str, "; %s - FAILURE: %s", fname, safe_strerror(errno, err, sizeof(err)));
-				else
-					SAFEPRINTF(str, "; %s", fname);
-				strListInsert(&list, str, i + 1);
-				if(insert_fp!=NULL) {
-					strListInsertFile(insert_fp, &list, i + 2, INI_MAX_LINE_LEN);
-					fclose(insert_fp);
-					insert_fp=NULL;
-					inc_counter++;
-				}
-			}
-			globfree(&gl);
-		}
-	}
-
-	/* truncate new-line chars off end of strings */
-	for(i=0; list[i]!=NULL; i++)
-		truncnl(list[i]);
-
-	return(list);
-}
-
-BOOL iniHasInclude(const str_list_t list)
-{
-	size_t		i;
-
-	/* Look for !include directives */
-	size_t inc_len=strlen(INI_INCLUDE_DIRECTIVE) + 1;
-	for(i=0; list[i]!=NULL; i++) {
-		if(strnicmp(list[i], ";" INI_INCLUDE_DIRECTIVE, inc_len)==0)
-			return TRUE;
-	}
-	return FALSE;
-}
-
-BOOL iniWriteFile(FILE* fp, const str_list_t list)
-{
-	size_t		count;
-	long pos;
-
-	rewind(fp);
-	count = strListWriteFile(fp,list,"\n");
-	fflush(fp);
-	pos = ftell(fp);
-	if (pos == -1)
-		return (FALSE);
-	if(chsize(fileno(fp), pos)!=0)	/* truncate */
-		return(FALSE);
-
-	return(count == strListCount(list));
-}
-
-#ifdef INI_FILE_TEST
-void main(int argc, char** argv)
-{
-	int			i;
-	size_t		l;
-	char		str[128];
-	FILE*		fp;
-	str_list_t	list;
-
-	for(i=1;i<argc;i++) {
-		if((fp=iniOpenFile(argv[i],FALSE)) == NULL) {
-			perror(argv[i]);
-			continue;
-		}
-		if((list=iniReadFile(fp)) != NULL) {
-			iniSortSections(&list, TRUE);
-			for(size_t j = 0; list[j] != NULL; j++)
-				printf("%s\n", list[j]);
-			strListFree(&list);
-		}
-		fclose(fp);
-	}
-}
-#endif
diff --git a/xpdev/ini_file.h b/xpdev/ini_file.h
deleted file mode 100644
index 5830995ccbd20f6bd3fce3a1172e0ed54d3a94c0..0000000000000000000000000000000000000000
--- a/xpdev/ini_file.h
+++ /dev/null
@@ -1,293 +0,0 @@
-/* Functions to parse ini (initialization / configuration) files */
-
-/* $Id: ini_file.h,v 1.60 2020/04/03 18:41:45 rswindell Exp $ */
-// vi: tabstop=4
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _INI_FILE_H
-#define _INI_FILE_H
-
-#if !defined(NO_SOCKET_SUPPORT)
-	#include "sockwrap.h"	/* inet_addr, SOCKET */
-#endif
-#include "genwrap.h"
-#include "str_list.h"	/* strList_t */
-
-#define INI_MAX_VALUE_LEN	1024		/* Maximum value length, includes '\0' */
-#define ROOT_SECTION		NULL
-
-typedef struct {
-	ulong		bit;
-	const char*	name;
-} ini_bitdesc_t;
-
-typedef struct {
-	int		key_len;
-	char*	key_prefix;
-	char*	section_separator;
-	char*	value_separator;
-	char*	bit_separator;
-	char*	literal_separator;
-} ini_style_t;
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/* Read all section names and return as an allocated string list */
-/* Optionally (if prefix!=NULL), returns a subset of section names */
-DLLEXPORT str_list_t 	iniReadSectionList(FILE*, const char* prefix);
-/* Returns number (count) of sections */
-DLLEXPORT size_t 		iniReadSectionCount(FILE*, const char* prefix);
-/* Read all key names and return as an allocated string list */
-DLLEXPORT str_list_t 	iniReadKeyList(FILE*, const char* section);
-/* Read all key and value pairs and return as a named string list */
-DLLEXPORT named_string_t** 
-						iniReadNamedStringList(FILE*, const char* section);
-
-/* Return the supported Log Levels in a string list - for *LogLevel macros */
-DLLEXPORT str_list_t 	iniLogLevelStringList(void);
-
-/* Return the unparsed/converted value */
-DLLEXPORT char* 		iniReadValue(FILE*, const char* section, const char* key
-							,const char* deflt, char* value);
-DLLEXPORT char* 		iniReadExistingValue(FILE*, const char* section, const char* key
-							,const char* deflt, char* value);
-
-/* These functions read a single key of the specified type */
-DLLEXPORT char* 		iniReadString(FILE*, const char* section, const char* key
-							,const char* deflt, char* value);
-/* If the key doesn't exist, iniReadExistingString just returns NULL */
-DLLEXPORT char* 		iniReadExistingString(FILE*, const char* section, const char* key
-							,const char* deflt, char* value);
-DLLEXPORT str_list_t 	iniReadStringList(FILE*, const char* section, const char* key
-							,const char* sep, const char* deflt);
-DLLEXPORT long 			iniReadInteger(FILE*, const char* section, const char* key
-							,long deflt);
-DLLEXPORT ushort 		iniReadShortInt(FILE*, const char* section, const char* key
-							,ushort deflt);
-DLLEXPORT ulong 		iniReadLongInt(FILE*, const char* section, const char* key
-							,ulong deflt);
-DLLEXPORT int64_t 		iniReadBytes(FILE*, const char* section, const char* key
-							,ulong unit, int64_t deflt);
-DLLEXPORT double 		iniReadDuration(FILE*, const char* section, const char* key
-							,double deflt);
-DLLEXPORT double 		iniReadFloat(FILE*, const char* section, const char* key
-							,double deflt);
-DLLEXPORT BOOL 			iniReadBool(FILE*, const char* section, const char* key
-							,BOOL deflt);
-DLLEXPORT time_t 		iniReadDateTime(FILE*, const char* section, const char* key
-							,time_t deflt);
-DLLEXPORT unsigned 		iniReadEnum(FILE*, const char* section, const char* key
-							,str_list_t names, unsigned deflt);
-DLLEXPORT unsigned* 	iniReadEnumList(FILE*, const char* section, const char* key
-							,str_list_t names, unsigned* count, const char* sep, const char* deflt);
-DLLEXPORT int* 			iniReadIntList(FILE*, const char* section, const char* key
-							,unsigned* count, const char* sep, const char* deflt);
-DLLEXPORT long 			iniReadNamedInt(FILE*, const char* section, const char* key
-							,named_long_t*, long deflt);
-DLLEXPORT ulong 		iniReadNamedLongInt(FILE*, const char* section, const char* key
-							,named_ulong_t*, ulong deflt);
-DLLEXPORT double 		iniReadNamedFloat(FILE*, const char* section, const char* key
-							,named_double_t*, double deflt);
-DLLEXPORT ulong 		iniReadBitField(FILE*, const char* section, const char* key
-							,ini_bitdesc_t* bitdesc, ulong deflt);
-#define		iniReadLogLevel(f,s,k,d) iniReadEnum(f,s,k,iniLogLevelStringList(),d)
-
-/* Free string list returned from iniRead*List functions */
-DLLEXPORT void* 		iniFreeStringList(str_list_t list);
-
-/* Free named string list returned from iniReadNamedStringList */
-DLLEXPORT void* 		iniFreeNamedStringList(named_string_t** list);
-
-
-/* File I/O Functions */
-DLLEXPORT char* 		iniFileName(char* dest, size_t maxlen, const char* dir, const char* fname);
-DLLEXPORT FILE* 		iniOpenFile(const char* fname, BOOL create);
-DLLEXPORT str_list_t 	iniReadFile(FILE*);
-DLLEXPORT BOOL 			iniWriteFile(FILE*, const str_list_t);
-DLLEXPORT BOOL 			iniCloseFile(FILE*);
-
-/* StringList functions */
-DLLEXPORT str_list_t 	iniGetSectionList(str_list_t list, const char* prefix);
-DLLEXPORT size_t 		iniGetSectionCount(str_list_t list, const char* prefix);
-DLLEXPORT str_list_t 	iniGetKeyList(str_list_t list, const char* section);
-DLLEXPORT named_string_t** 
-						iniGetNamedStringList(str_list_t list, const char* section);
-
-/* Return the unparsed value (string literals not supported): */
-DLLEXPORT char* 		iniGetValue(str_list_t, const char* section, const char* key
-							,const char* deflt, char* value /* may be NULL */);
-DLLEXPORT char* 		iniGetExistingValue(str_list_t, const char* section, const char* key
-							,const char* deflt, char* value /* may be NULL */);
-
-/* Return the string value (potentially string literals separated by colon rather than equal): */
-DLLEXPORT char* 		iniGetString(str_list_t, const char* section, const char* key
-							,const char* deflt, char* value /* may be NULL */);
-/* If the key doesn't exist, iniGetExistingString just returns NULL */
-DLLEXPORT char* 		iniGetExistingString(str_list_t, const char* section, const char* key
-							,const char* deflt, char* value /* may be NULL */);
-DLLEXPORT str_list_t 	iniGetStringList(str_list_t, const char* section, const char* key
-							,const char* sep, const char* deflt);
-DLLEXPORT long 			iniGetInteger(str_list_t, const char* section, const char* key
-							,long deflt);
-DLLEXPORT ushort 		iniGetShortInt(str_list_t, const char* section, const char* key
-							,ushort deflt);
-DLLEXPORT ulong 		iniGetLongInt(str_list_t, const char* section, const char* key
-							,ulong deflt);
-DLLEXPORT int64_t 		iniGetBytes(str_list_t, const char* section, const char* key
-							,ulong unit, int64_t deflt);
-DLLEXPORT double 		iniGetDuration(str_list_t, const char* section, const char* key
-							,double deflt);
-DLLEXPORT double 		iniGetFloat(str_list_t, const char* section, const char* key
-							,double deflt);
-DLLEXPORT BOOL 			iniGetBool(str_list_t, const char* section, const char* key
-							,BOOL deflt);
-DLLEXPORT time_t 		iniGetDateTime(str_list_t, const char* section, const char* key
-							,time_t deflt);
-DLLEXPORT unsigned 		iniGetEnum(str_list_t, const char* section, const char* key
-							,str_list_t names, unsigned deflt);
-DLLEXPORT unsigned* 	iniGetEnumList(str_list_t, const char* section, const char* key
-							,str_list_t names, unsigned* count, const char* sep, const char* deflt);
-DLLEXPORT int* 			iniGetIntList(str_list_t, const char* section, const char* key
-							,unsigned* count, const char* sep, const char* deflt);
-DLLEXPORT long 			iniGetNamedInt(str_list_t, const char* section, const char* key
-							,named_long_t*, long deflt);
-DLLEXPORT ulong 		iniGetNamedLongInt(str_list_t, const char* section, const char* key
-							,named_ulong_t*, ulong deflt);
-DLLEXPORT double 		iniGetNamedFloat(str_list_t, const char* section, const char* key
-							,named_double_t*, double deflt);
-DLLEXPORT ulong 		iniGetBitField(str_list_t, const char* section, const char* key
-							,ini_bitdesc_t* bitdesc, ulong deflt);
-DLLEXPORT str_list_t 	iniGetSection(str_list_t, const char *section);
-#define		iniGetLogLevel(l,s,k,d) iniGetEnum(l,s,k,iniLogLevelStringList(),d)
-
-#if !defined(NO_SOCKET_SUPPORT)
-DLLEXPORT ulong 		iniReadIpAddress(FILE*, const char* section, const char* key
-							,ulong deflt);
-DLLEXPORT ulong 		iniGetIpAddress(str_list_t, const char* section, const char* key
-							,ulong deflt);
-DLLEXPORT char* 		iniSetIpAddress(str_list_t*, const char* section, const char* key, ulong value
-							,ini_style_t*);
-DLLEXPORT struct in6_addr
-						iniReadIp6Address(FILE*, const char* section, const char* key
-							,struct in6_addr deflt);
-DLLEXPORT struct in6_addr
-						iniGetIp6Address(str_list_t, const char* section, const char* key
-							,struct in6_addr deflt);
-DLLEXPORT char* 		iniSetIp6Address(str_list_t*, const char* section, const char* key, struct in6_addr value
-							,ini_style_t*);
-DLLEXPORT int 			iniGetSocketOptions(str_list_t, const char* section
-							,SOCKET sock, char* error, size_t errlen);
-#endif
-
-DLLEXPORT void 			iniSetDefaultStyle(ini_style_t);
-
-DLLEXPORT char* 		iniSetString(str_list_t*, const char* section, const char* key, const char* value
-							,ini_style_t*);
-DLLEXPORT char* 		iniSetStringLiteral(str_list_t*, const char* section, const char* key, const char* value
-							,ini_style_t*);
-DLLEXPORT char* 		iniSetValue(str_list_t*, const char* section, const char* key, const char* value
-							,ini_style_t*);
-DLLEXPORT char* 		iniSetInteger(str_list_t*, const char* section, const char* key, long value
-							,ini_style_t*);
-DLLEXPORT char* 		iniSetShortInt(str_list_t*, const char* section, const char* key, ushort value
-							,ini_style_t*);
-DLLEXPORT char* 		iniSetLongInt(str_list_t*, const char* section, const char* key, ulong value
-							,ini_style_t*);
-DLLEXPORT char* 		iniSetBytes(str_list_t*, const char* section, const char* key, ulong unit, int64_t value
-							,ini_style_t*);
-DLLEXPORT char* 		iniSetDuration(str_list_t*, const char* section, const char* key, double value
-							,ini_style_t*);
-DLLEXPORT char* 		iniSetHexInt(str_list_t*, const char* section, const char* key, ulong value
-							,ini_style_t*);
-DLLEXPORT char* 		iniSetFloat(str_list_t*, const char* section, const char* key, double value
-							,ini_style_t*);
-DLLEXPORT char* 		iniSetBool(str_list_t*, const char* section, const char* key, BOOL value
-							,ini_style_t*);
-DLLEXPORT char* 		iniSetDateTime(str_list_t*, const char* section, const char* key, BOOL include_time, time_t
-							,ini_style_t*);
-DLLEXPORT char* 		iniSetEnum(str_list_t*, const char* section, const char* key, str_list_t names
-							,unsigned value, ini_style_t*);
-DLLEXPORT char* 		iniSetEnumList(str_list_t*, const char* section, const char* key
-							,const char* sep, str_list_t names, unsigned* values, unsigned count, ini_style_t*);
-DLLEXPORT char* 		iniSetNamedInt(str_list_t*, const char* section, const char* key, named_long_t*
-							,long value, ini_style_t*);
-DLLEXPORT char* 		iniSetNamedHexInt(str_list_t*, const char* section, const char* key, named_ulong_t*
-							,ulong value, ini_style_t*);
-DLLEXPORT char* 		iniSetNamedLongInt(str_list_t*, const char* section, const char* key, named_ulong_t*
-							,ulong value, ini_style_t*);
-DLLEXPORT char* 		iniSetNamedFloat(str_list_t*, const char* section, const char* key, named_double_t*
-							,double value, ini_style_t*);
-DLLEXPORT char* 		iniSetBitField(str_list_t*, const char* section, const char* key, ini_bitdesc_t*, ulong value
-							,ini_style_t*);
-DLLEXPORT char* 		iniSetStringList(str_list_t*, const char* section, const char* key
-							,const char* sep, str_list_t value, ini_style_t*);
-#define		iniSetLogLevel(l,s,k,v,style) iniSetEnum(l,s,k,iniLogLevelStringList(),v,style)
-DLLEXPORT char*			iniSetIntList(str_list_t*, const char* section, const char* key
-							,const char* sep, int* value, unsigned count, ini_style_t*);
-
-DLLEXPORT size_t 		iniAddSection(str_list_t*, const char* section
-							,ini_style_t*);
-
-DLLEXPORT size_t 		iniAppendSection(str_list_t*, const char* section
-							,ini_style_t*);
-
-DLLEXPORT size_t 		iniAppendSectionWithKeys(str_list_t*, const char* section, const str_list_t keys
-							,ini_style_t*);
-
-DLLEXPORT BOOL 			iniSectionExists(str_list_t, const char* section);
-DLLEXPORT BOOL 			iniKeyExists(str_list_t, const char* section, const char* key);
-DLLEXPORT BOOL 			iniValueExists(str_list_t, const char* section, const char* key);
-DLLEXPORT char* 		iniPopKey(str_list_t*, const char* section, const char* key, char* value);
-DLLEXPORT char* 		iniPopString(str_list_t*, const char* section, const char* key, char* value);
-DLLEXPORT BOOL 			iniRemoveKey(str_list_t*, const char* section, const char* key);
-DLLEXPORT BOOL 			iniRemoveValue(str_list_t*, const char* section, const char* key);
-DLLEXPORT BOOL 			iniRemoveSection(str_list_t*, const char* section);
-DLLEXPORT BOOL 			iniRemoveSections(str_list_t*, const char* prefix);
-DLLEXPORT BOOL 			iniRenameSection(str_list_t*, const char* section, const char* newname);
-DLLEXPORT BOOL 			iniSortSections(str_list_t*, BOOL sort_keys);
-
-DLLEXPORT BOOL 			iniHasInclude(const str_list_t);
-
-/*
- * Too handy to leave internal
- */
-DLLEXPORT unsigned*		parseEnumList(const char* values, const char* sep, const char** const names, unsigned* count);
-DLLEXPORT int*			parseIntList(const char* values, const char* sep, unsigned* count);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/ini_file.txt b/xpdev/ini_file.txt
deleted file mode 100644
index 92c65d21c7b6872daef81aa08c3a3107af0cce33..0000000000000000000000000000000000000000
--- a/xpdev/ini_file.txt
+++ /dev/null
@@ -1,213 +0,0 @@
-$Id: ini_file.txt,v 1.2 2005/10/13 10:16:07 rswindell Exp $
-
-Synchronet/xpdev ini_file module
---------------------------------
-The basic format of the files supported by the xpdev ini_file module is that
-of the Windows .ini file, with some additional features.
-
-The basic Windows .ini file format is as follows:
-
-1. The file contains ASCII text only with LF or CR/LF-terminated lines.
-
-2. The file is separated into logical "sections". Each section may have its
-   own list of keys with associated values, one per line.
-
-3. A section begins with a line consisting only of "[" <section name> "]".
-
-4. White space before or after the section name is ignored.
-
-5. A section ends when the end of file is reached or a new section begins.
- 
-6. Keys and associated values within a section are specified, each on their
-   line, in the format: <key_name> "=" <value>
-
-7. White space before and after the key/value separator ("=") is ignored.
-
-8. Comments are lines with a semicolon (";") as the first non-whitespace
-   character.
-
-9. Blank lines between or within sections are ignored.
-
-Example basic Windows .ini file content:
-
-; for 16-bit app support
-[fonts]
-[extensions]
-[Mail]
-MAPI=1
-CMCDLLNAME32=mapi32.dll
-CMCDLLNAME=mapi.dll
-CMC=1
-MAPIX=1
-MAPIXVER=1.0.0.1
-OLEMessaging=1
-[SciCalc]
-layout=0
-[MSUCE]
-Advanced=1
-CodePage=Unicode
-Font=Terminal
-
-
-Synchronet/xpdev extended-ini_file format
-=========================================
-The Synchronet/xpdev ini_file module supports a somewhat "extended" .ini file
-format with the following additions:
-
-Filenames
----------
-INI filenames typically end in a ".ini" suffix, but that is not a requirement.
-
-If the application uses the ini_file module's iniFileName() function to
-determine the correct ini filename for the current system, different ini files
-may be used for different systems on the same network, reading from the same
-directory.
-
-The different ini filename permutations supported (assuming "file.ini" is the
-base filename) are:
-
-    path/file.<host>.<domain>.ini
-    path/file.<host>.ini
-    path/file.<platform>.ini
-    path/file.ini
-
-Root section
-------------
-Key/value pairs in the file *before* the first section definition are
-considered part of the "root" section. This section is often used to define
-key/value pairs that apply globally to all the following sections. The root
-section may have other uses as well.
-
-Section Prefixes
-----------------
-Section names may be include a section "prefix", a fixed portion of the
-section name that may be used be the application to logically group
-related sections. Section pre-fixes typically end in a colon, but that is
-not a requirement.   
-
-Literal string values
----------------------
-String values separated by the key name with a colon (':') instead of an
-equals sign ('='), are parsed as "literal" strings, which means the string
-will retain any trailing white-space on the line. This may be enhanced in
-the future to support C escape sequences, multiple/broken lines, etc.
-
-Section name list
------------------
-If one wishes to specify a list of sections for all values to be applied to
-they may specify a list of section names, separated by '|', where a single
-section name would normally be specified. Example:
-"[telnet|rlogin]"
-
-Boolean values
---------------
-Values with an either true or false (1 or 0) state can have their value
-specified as a number (0, or non-zero), or the following strings (yes,
-English only): "true", "yes", or "on" (interpretted as 1), or "false",
-"no", or "off" (interpretted as 0). Any otherwise unrecognized text strings
-will be interpretted as 0 (false).
-
-Integer values
---------------
-Integer values may be negative or positive whole numbers of up to 
-(at least) 32-bits in size.
-
-Integer values may be specified in octal (base 8), decimal (base 10),
-hexadecimal (base 16), or base 36 formats based on the following
-interpretation of the specified value text:
-
-If the first character is 0 and the second character is not 'x' or 'X', the
-string is interpreted as an octal integer; otherwise, it is interpreted as
-a decimal number. If the first character is '0' and the second character is
-'x' or 'X', the string is interpreted as a hexadecimal integer. If the
-first character is '1' through '9', the string is interpreted as a decimal
-integer. The letters 'a' through 'z' (or 'A' through 'Z') are assigned the
-values 10 through 35.
-
-The exception to this rule are the values of "true", "yes", or "on",
-always interpretted as the value of 1 (one).
-
-Long integer values
--------------------
-Long integer values may be positive whole numbers of up to (at least)
-32-bits in size. Otherwise, long integer values are interpretted the same as
-normal integer values.
-
-Log levels
-----------
-The ini_file module includes built-in support for the standard Unix syslog
-levels: Emergency (0), Alert (1), Critical (2), Error (3), Warning (4), 
-Notice (5), Informational (6), and Debugging (7).
-
-The higher the log level, the more log output will be generated.
-
-Partial or complete log level names may be specified for the log level
-value, or the numeric equivalent.
-
-Byte counts
------------
-Byte count values (e.g. file sizes) may be specified as positive numbers
-(fractional numbers are supported), optionally with a 'T', 'G', 'M', or 'K'
-suffix to specify terabytes, gigabytes, megabytes, or kilobytes, respectively.
-
-Date/Time stamps
-----------------
-Date and time values may be specified in any of the following formats:
-
-ISO-8601 date and time format:                  "CCYYMMDDThhmmss" 
-Euro/Canadian numeric date format:              "DD.MM.[CC]YY [time] [p]"
-American numeric date format:                   "MM/DD/[CC]YY [time] [p]"
-Perversion of RFC822 date format:               "DD[-]Mon [CC]YY [time] [p]"
-IETF standard (RFC2822) date format:            "Wday, DD Mon [CC]YY [time]"
-Preferred date format:                          "Mon DD[,] [CC]YY [time] [p]"
-JavaScript Date.toString() format:              "Wday Mon DD [CC]YY [time]"
-ctime() format:                                 "Wday Mon DD [time] [CC]YY"
-time_t format:                                  seconds since Jan 1, 1970 UTC
-
-where:
-            CC      = Century (i.e. "19" or "20")
-            YY      = Year number (e.g. "05")
-            MM      = Month number (1-12)
-            DD      = Day of month (1-31)
-            hh      = Hour of day (0-23)
-            mm      = Minute of hour (0-59)
-            ss      = Second of minute (0-59)
-            p       = AM/PM designation
-            time    = Time of day specified as "hh[:mm[:ss]]"
-            Mon     = Month name (e.g. "Jan", "Feb", etc.)
-            Wday    = Weekday name (e.g. "Mon", "Tue", etc.)
-            []      = Optional parameter
-
-Bit-fields
-----------
-Bit-field values may be specified as a positive number (same rules of
-interpretation as integer values), a bit-name, or a list of numbers or
-bit-names separated by the '|' character.
-
-Bit-fields are often used to specify multiple boolean-type values in
-a single key/value pair.
-
-Include directive
------------------
-An ini file may be include/imported/inserted into a another with the 
-"!include" directive. The line must begin with "!include", followed by 
-white space, and then a filename to include (optionally with a path). 
-Sections may span files.
-
-file1.ini:
-[section_one]
-    key1 = value1
-!include file2.ini
-
-file2.ini:
-    key2 = value2
-
-In the above example, both key1 and key2 are part of section_one.
-
-End-of-file directive
----------------------
-An ini file may be prematurely terminated with the "!eof" directive. This
-stops the ini_file module functions from processing any lines following this
-directive.
-
-
diff --git a/xpdev/link_list.c b/xpdev/link_list.c
deleted file mode 100644
index 2ecbfa327733924b8903341dbb5be5374dcca96a..0000000000000000000000000000000000000000
--- a/xpdev/link_list.c
+++ /dev/null
@@ -1,963 +0,0 @@
-/* Double-Linked-list library */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <stdlib.h>		/* malloc */
-#include <string.h>		/* memset */
-#include "link_list.h"
-#include "genwrap.h"
-
-#if defined(_WIN32) && defined(LINK_LIST_USE_HEAPALLOC)
-	#define malloc(size)	HeapAlloc(GetProcessHeap(), /* flags: */0, size)
-	#define free(ptr)		HeapFree(GetProcessHeap(), /* flags: */0, ptr)
-#endif
-
-link_list_t* listInit(link_list_t* list, long flags)
-{
-	if(list == NULL)
-		return NULL;
-
-	memset(list,0,sizeof(link_list_t));
-
-	list->flags = flags;
-
-#if defined(LINK_LIST_THREADSAFE)
-	if(list->flags&LINK_LIST_MUTEX) {
-		list->mutex = pthread_mutex_initializer_np(/* recursive: */TRUE);
-	}
-
-	if(list->flags&LINK_LIST_SEMAPHORE)
-		sem_init(&list->sem,0,0);
-#endif
-
-	if(flags&LINK_LIST_ATTACH)
-		listAttach(list);
-
-	return(list);
-}
-
-BOOL listFreeNodeData(list_node_t* node)
-{
-	if(node!=NULL && node->data!=NULL && !(node->flags&LINK_LIST_LOCKED)) {
-		free(node->data);
-		node->data = NULL;
-		return(TRUE);
-	}
-	return(FALSE);
-}
-
-long listFreeNodes(link_list_t* list)
-{
-	list_node_t* node;
-	list_node_t* next;
-
-	if(list==NULL)
-		return(-1);
-
-	listLock(list);
-
-	for(node=list->first; node!=NULL; node=next) {
-
-		if(node->flags&LINK_LIST_LOCKED)
-			break;
-
-		if(((list->flags&LINK_LIST_ALWAYS_FREE) || (node->flags&LINK_LIST_MALLOC))
-			&& !(list->flags&LINK_LIST_NEVER_FREE))
-			listFreeNodeData(node);
-
-		next = node->next;
-
-		free(node);
-
-		if(list->count)
-			list->count--;
-	}
-
-	list->first = node;
-	if(!list->count)
-		list->last = NULL;
-
-	listUnlock(list);
-
-	return(list->count);
-}
-
-BOOL listFree(link_list_t* list)
-{
-	if(list==NULL)
-		return(FALSE);
-
-	if(listFreeNodes(list))
-		return(FALSE);
-
-#if defined(LINK_LIST_THREADSAFE)
-
-	if(list->flags&LINK_LIST_MUTEX) {
-		while(pthread_mutex_destroy((pthread_mutex_t*)&list->mutex)==EBUSY)
-			SLEEP(1);
-		list->flags&=~LINK_LIST_MUTEX;
-	}
-
-	if(list->flags&LINK_LIST_SEMAPHORE) {
-		while(sem_destroy(&list->sem)==-1 && errno==EBUSY)
-			SLEEP(1);
-		//list->sem=(sem_t)NULL; /* Removed 08-20-08 - list->sem is never checked and this causes an error with gcc 4.1.2 (ThetaSigma) */
-		list->flags&=~LINK_LIST_SEMAPHORE;
-	}
-#endif
-
-	return(TRUE);
-}
-
-long listAttach(link_list_t* list)
-{
-	if(list==NULL)
-		return(-1);
-
-	listLock(list);
-	list->refs++;
-	listUnlock(list);
-
-	return(list->refs);
-}
-
-long listDettach(link_list_t* list)
-{
-	int refs;
-
-	if(list==NULL || list->refs<1)
-		return(-1);
-
-	listLock(list);
-	if((refs=--list->refs)==0)
-		listFree(list);
-	else
-		listUnlock(list);
-
-	return(refs);
-}
-
-void* listSetPrivateData(link_list_t* list, void* p)
-{
-	void* old;
-
-	if(list==NULL)
-		return(NULL);
-
-	listLock(list);
-	old=list->private_data;
-	list->private_data=p;
-	listUnlock(list);
-	return(old);
-}
-
-void* listGetPrivateData(link_list_t* list)
-{
-	if(list==NULL)
-		return(NULL);
-	return(list->private_data);
-}
-
-#if defined(LINK_LIST_THREADSAFE)
-
-BOOL listSemPost(link_list_t* list)
-{
-	if(list==NULL || !(list->flags&LINK_LIST_SEMAPHORE))
-		return(FALSE);
-
-	return(sem_post(&list->sem)==0);
-}
-
-BOOL listSemWait(link_list_t* list)
-{
-	if(list==NULL || !(list->flags&LINK_LIST_SEMAPHORE))
-		return(FALSE);
-
-	return(sem_wait(&list->sem)==0);
-}
-
-BOOL listSemTryWait(link_list_t* list)
-{
-	if(list==NULL || !(list->flags&LINK_LIST_SEMAPHORE))
-		return(FALSE);
-
-	return(sem_trywait(&list->sem)==0);
-}
-
-BOOL listSemTryWaitBlock(link_list_t* list, unsigned long timeout)
-{
-	if(list==NULL || !(list->flags&LINK_LIST_SEMAPHORE))
-		return(FALSE);
-
-	return(sem_trywait_block(&list->sem,timeout)==0);
-}
-
-#endif
-
-BOOL listLock(link_list_t* list)
-{
-	int	ret=0;
-
-	if(list==NULL)
-		return(FALSE);
-#if defined(LINK_LIST_THREADSAFE)
-	if((list->flags&LINK_LIST_MUTEX) && (ret=pthread_mutex_lock(&list->mutex))==0)
-#endif
-		list->locks++;
-	return(ret==0);
-}
-
-BOOL listIsLocked(const link_list_t* list)
-{
-	if(list==NULL)
-		return(FALSE);
-	return(list->locks > 0 ? TRUE : FALSE);
-}
-
-BOOL listUnlock(link_list_t* list)
-{
-	int	ret=0;
-
-	if(list==NULL)
-		return(FALSE);
-#if defined(LINK_LIST_THREADSAFE)
-	if((list->flags&LINK_LIST_MUTEX) && (ret=pthread_mutex_unlock(&list->mutex))==0)
-#endif
-		list->locks--;
-	return(ret==0);
-}
-
-long listCountNodes(link_list_t* list)
-{
-	long			count=0;
-	list_node_t*	node;
-
-	if(list==NULL)
-		return(-1);
-
-	if(list->count)
-		return(list->count);
-
-	listLock(list);
-
-	for(node=list->first; node!=NULL; node=node->next)
-		count++;
-
-	listUnlock(list);
-
-	return(count);
-}
-
-list_node_t* listFindNode(link_list_t* list, const void* data, size_t length)
-{
-	list_node_t* node;
-
-	if(list==NULL)
-		return(NULL);
-
-	listLock(list);
-
-	for(node=list->first; node!=NULL; node=node->next) {
-		if(length==0) {
-			if(node->data==data)
-				break;
-		} else if(data==NULL) {
-			if(node->tag==(list_node_tag_t)length)
-				break;
-		} else if(node->data!=NULL && memcmp(node->data,data,length)==0)
-			break;
-	}
-
-	listUnlock(list);
-
-	return(node);
-}
-
-ulong listCountMatches(link_list_t* list, const void* data, size_t length)
-{
-	list_node_t* node;
-	ulong matches = 0;
-
-	if(list==NULL)
-		return 0;
-
-	listLock(list);
-
-	for(node=list->first; node!=NULL; node=node->next) {
-		if(length==0) {
-			if(node->data!=data)
-				continue;
-		} else if(data==NULL) {
-			if(node->tag==(list_node_tag_t)length)
-				continue;
-		} else if(node->data==NULL || memcmp(node->data,data,length)!=0)
-			continue;
-		matches++;
-	}
-
-	listUnlock(list);
-
-	return matches;
-}
-
-#ifndef NO_STR_LIST_SUPPORT
-
-str_list_t listStringList(link_list_t* list)
-{
-	list_node_t*	node;
-	str_list_t		str_list;
-	size_t			count=0;
-
-	if(list==NULL)
-		return(NULL);
-
-	if((str_list=strListInit())==NULL)
-		return(NULL);
-
-	listLock(list);
-
-	for(node=list->first; node!=NULL; node=node->next) {
-		if(node->data!=NULL)
-			strListAppend(&str_list, (char*)node->data, count++);
-	}
-
-	listUnlock(list);
-
-	return(str_list);
-}
-
-str_list_t listSubStringList(const list_node_t* node, long max)
-{
-	long			count;
-	str_list_t		str_list;
-	link_list_t*	list;
-
-	if(node==NULL)
-		return(NULL);
-
-	if((str_list=strListInit())==NULL)
-		return(NULL);
-
-	list=node->list;
-	listLock(list);
-
-	for(count=0; count<max && node!=NULL; node=node->next) {
-		if(node->data!=NULL)
-			strListAppend(&str_list, (char*)node->data, count++);
-	}
-
-	listUnlock(list);
-
-	return(str_list);
-}
-
-void* listFreeStringList(str_list_t list)
-{
-	strListFree(&list);
-	return(list);
-}
-
-#endif	/* #ifndef NO_STR_LIST_SUPPORT */
-
-list_node_t* listFirstNode(link_list_t* list)
-{
-	list_node_t*	node;
-
-	if(list==NULL)
-		return(NULL);
-
-	listLock(list);
-	node=list->first;
-	listUnlock(list);
-
-	return(node);
-}
-
-list_node_t* listLastNode(link_list_t* list)
-{
-	list_node_t* node;
-	list_node_t* last=NULL;
-
-	if(list==NULL)
-		return(NULL);
-
-	listLock(list);
-	if(list->last!=NULL)
-		last=list->last;
-	else
-		for(node=list->first; node!=NULL; node=node->next)
-			last=node;
-	listUnlock(list);
-
-	return(last);
-}
-
-long listNodeIndex(link_list_t* list, list_node_t* find_node)
-{
-	long			i=0;
-	list_node_t*	node;
-
-	if(list==NULL)
-		return(-1);
-
-	listLock(list);
-
-	for(node=list->first; node!=NULL; node=node->next)
-		if(node==find_node)
-			break;
-
-	listUnlock(list);
-
-	if(node==NULL)
-		return(-1);
-
-	return(i);
-}
-
-list_node_t* listNodeAt(link_list_t* list, long index)
-{
-	long			i=0;
-	list_node_t*	node;
-
-	if(list==NULL || index<0)
-		return(NULL);
-
-	listLock(list);
-
-	for(node=list->first; node!=NULL && i<index; node=node->next)
-		i++;
-
-	listUnlock(list);
-
-	return(node);
-}
-
-list_node_t* listNextNode(const list_node_t* node)
-{
-	list_node_t*	next;
-
-	if(node==NULL)
-		return(NULL);
-
-	listLock(node->list);
-	next=node->next;
-	listUnlock(node->list);
-
-	return(next);
-}
-
-list_node_t* listPrevNode(const list_node_t* node)
-{
-	list_node_t*	prev;
-
-	if(node==NULL)
-		return(NULL);
-
-	listLock(node->list);
-	prev=node->prev;
-	listUnlock(node->list);
-
-	return(prev);
-}
-
-void* listNodeData(const list_node_t* node)
-{
-	void*	data;
-
-	if(node==NULL)
-		return(NULL);
-
-	listLock(node->list);
-	data=node->data;
-	listUnlock(node->list);
-
-	return(data);
-}
-
-BOOL listNodeIsLocked(const list_node_t* node)
-{
-	return(node!=NULL && (node->flags&LINK_LIST_LOCKED));
-}
-
-BOOL listLockNode(list_node_t* node)
-{
-	if(node==NULL || (node->flags&LINK_LIST_LOCKED))
-		return(FALSE);
-
-	listLock(node->list);
-	node->flags|=LINK_LIST_LOCKED;
-	listUnlock(node->list);
-
-	return(TRUE);
-}
-
-BOOL listUnlockNode(list_node_t* node)
-{
-	if(!listNodeIsLocked(node))
-		return(FALSE);
-
-	listLock(node->list);
-	node->flags&=~LINK_LIST_LOCKED;
-	listUnlock(node->list);
-
-	return(TRUE);
-}
-
-static list_node_t* list_add_node(link_list_t* list, list_node_t* node, list_node_t* after)
-{
-	if(list==NULL)
-		return(NULL);
-
-	listLock(list);
-
-	node->list = list;
-	if(after==LAST_NODE)					/* e.g. listPushNode() */
-		after=list->last;
-	node->prev = after;
-
-	if(after==list->last)					/* append to list */
-		list->last = node;
-	if(after==FIRST_NODE) {					/* insert at beginning of list */
-		node->next = list->first;
-		if(node->next!=NULL)
-			node->next->prev = node;
-		list->first = node;
-	} else {
-		if(after->next!=NULL) {
-			after->next->prev = node;
-			node->next = after->next;
-		}
-		after->next = node;
-	}
-
-	list->count++;
-
-	listUnlock(list);
-
-#if defined(LINK_LIST_THREADSAFE)
-	if(list->flags&LINK_LIST_SEMAPHORE)
-		listSemPost(list);
-#endif
-
-	return(node);
-}
-
-list_node_t* listAddNode(link_list_t* list, void* data, list_node_tag_t tag, list_node_t* after)
-{
-	list_node_t* node;
-
-	if(list==NULL)
-		return(NULL);
-
-	if((node=(list_node_t*)malloc(sizeof(list_node_t)))==NULL)
-		return(NULL);
-
-	memset(node,0,sizeof(list_node_t));
-	node->data = data;
-	node->tag = tag;
-
-	return(list_add_node(list,node,after));
-}
-
-long listAddNodes(link_list_t* list, void** data, list_node_tag_t* tag, list_node_t* after)
-{
-	long			i;
-	list_node_t*	node=NULL;
-
-	if(data==NULL)
-		return(-1);
-
-	for(i=0; data[i]!=NULL ;i++)
-		if((node=listAddNode(list,data[i],tag==NULL ? LIST_NODE_TAG_DEFAULT : *(tag++),node==NULL ? after:node))==NULL)
-			return(i);
-
-	return(i);
-}
-
-list_node_t* listAddNodeData(link_list_t* list, const void* data, size_t length, list_node_tag_t tag, list_node_t* after)
-{
-	list_node_t*	node;
-	void*			buf;
-
-	if((buf=malloc(length))==NULL)
-		return(NULL);
-	memcpy(buf,data,length);
-
-	if((node=listAddNode(list,buf,tag,after))==NULL) {
-		free(buf);
-		return(NULL);
-	}
-	node->flags |= LINK_LIST_MALLOC;
-
-	return(node);
-}
-
-list_node_t* listAddNodeString(link_list_t* list, const char* str, list_node_tag_t tag, list_node_t* after)
-{
-	list_node_t*	node;
-	char*			buf;
-
-	if(str==NULL)
-		return(NULL);
-
-	if((buf=strdup(str))==NULL)
-		return(NULL);
-
-	if((node=listAddNode(list,buf,tag,after))==NULL) {
-		free(buf);
-		return(NULL);
-	}
-	node->flags |= LINK_LIST_MALLOC;
-
-	return(node);
-}
-
-#ifndef NO_STR_LIST_SUPPORT
-
-long listAddStringList(link_list_t* list, str_list_t str_list, list_node_tag_t* tag, list_node_t* after)
-{
-	long			i;
-	list_node_t*	node=NULL;
-
-	if(str_list==NULL)
-		return(-1);
-
-	for(i=0; str_list[i]!=NULL ;i++)
-		if((node=listAddNodeString(list,str_list[i],tag==NULL ? LIST_NODE_TAG_DEFAULT : *(tag++),node==NULL ? after:node))==NULL)
-			return(i);
-
-	return(i);
-}
-
-#endif
-
-long listAddNodeList(link_list_t* list, const link_list_t* src, list_node_t* after)
-{
-	long			count=0;
-	list_node_t*	node=NULL;
-	list_node_t*	src_node;
-
-	if(src==NULL)
-		return(-1);
-
-	for(src_node=src->first; src_node!=NULL; src_node=src_node->next, count++) {
-		if((node=listAddNode(list, src_node->data, src_node->tag, node==NULL ? after:node))==NULL)
-			return(count);
-		node->flags = src_node->flags;
-	}
-
-	return(count);
-}
-
-long listMerge(link_list_t* list, const link_list_t* src, list_node_t* after)
-{
-	long			count=0;
-	list_node_t*	node=NULL;
-	list_node_t*	src_node;
-
-	if(src==NULL)
-		return(-1);
-
-	for(src_node=src->first; src_node!=NULL; src_node=src_node->next, count++)
-		if((node=list_add_node(list, src_node, node==NULL ? after:node))==NULL)
-			return(count);
-
-	return(count);
-}
-
-link_list_t* listExtract(link_list_t* dest_list, const list_node_t* node, long max)
-{
-	long			count;
-	link_list_t*	list;
-
-	if(node==NULL || node->list==NULL)
-		return(NULL);
-
-	if((list=listInit(dest_list, node->list->flags))==NULL)
-		return(NULL);
-
-	for(count=0; count<max && node!=NULL; node=node->next) {
-		listAddNode(list, node->data, node->tag, list->last);
-		count++;
-	}
-
-	return(list);
-}
-
-static void* list_remove_node(link_list_t* list, list_node_t* node, BOOL free_data)
-{
-	void*	data;
-
-	if(node==FIRST_NODE)
-		node=list->first;
-	else if(node==LAST_NODE)
-		node=list->last;
-	if(node==NULL)
-		return(NULL);
-
-	if(node->flags&LINK_LIST_LOCKED)
-		return(NULL);
-
-	if(node->prev!=NULL)
-		node->prev->next = node->next;
-	if(node->next!=NULL)
-		node->next->prev = node->prev;
-	if(list->first==node)
-		list->first = node->next;
-	if(list->last==node)
-		list->last = node->prev;
-
-	if(free_data)
-		listFreeNodeData(node);
-
-	data = node->data;
-
-	free(node);
-
-	if(list->count)
-		list->count--;
-
-	return(data);
-}
-
-void* listRemoveNode(link_list_t* list, list_node_t* node, BOOL free_data)
-{
-	void*	data;
-
-	if(list==NULL)
-		return(NULL);
-
-	listLock(list);
-
-	data = list_remove_node(list, node, free_data);
-
-	listUnlock(list);
-
-	return(data);
-}
-
-void* listRemoveTaggedNode(link_list_t* list, list_node_tag_t tag, BOOL free_data)
-{
-	void*			data=NULL;
-	list_node_t*	node;
-
-	if(list==NULL)
-		return(NULL);
-
-	listLock(list);
-
-	if((node=listFindTaggedNode(list, tag)) != NULL)
-		data = list_remove_node(list, node, free_data);
-
-	listUnlock(list);
-
-	return(data);
-}
-
-long listRemoveNodes(link_list_t* list, list_node_t* node, long max, BOOL free_data)
-{
-	list_node_t	*next_node;
-	long count;
-
-	if(list==NULL)
-		return(-1);
-
-	listLock(list);
-
-	if(node==FIRST_NODE)
-		node=list->first;
-	if(node==LAST_NODE)
-		node=list->last;
-
-	for(count=0; node!=NULL && count<max; node=next_node, count++) {
-		next_node = node->next;
-		if(listRemoveNode(list, node, free_data)==NULL)
-			break;
-	}
-
-	listUnlock(list);
-
-	return(count);
-}
-
-BOOL listSwapNodes(list_node_t* node1, list_node_t* node2)
-{
-	list_node_t	tmp;
-
-	if(node1==NULL || node2==NULL || node1==node2)
-		return(FALSE);
-
-	if(listNodeIsLocked(node1) || listNodeIsLocked(node2))
-		return(FALSE);
-
-	if(node1->list==NULL || node2->list==NULL)
-		return(FALSE);
-
-#if defined(LINK_LIST_THREADSAFE)
-	listLock(node1->list);
-	if(node1->list != node2->list)
-		listLock(node2->list);
-#endif
-
-	tmp=*node1;
-	node1->tag=node2->tag;
-	node1->data=node2->data;
-	node1->flags=node2->flags;
-	node2->tag=tmp.tag;
-	node2->data=tmp.data;
-	node2->flags=tmp.flags;
-
-#if defined(LINK_LIST_THREADSAFE)
-	listUnlock(node1->list);
-	if(node1->list != node2->list)
-		listUnlock(node2->list);
-#endif
-
-	return(TRUE);
-}
-
-static void list_update_prev(link_list_t* list)
-{
-	list_node_t* node;
-	list_node_t* prev = NULL;
-
-	if(list == NULL)
-		return;
-
-	node = list->first;
-	while(node != NULL) {
-		node->prev = prev;
-		prev = node;
-		node = node->next;
-	}
-}
-
-void listReverse(link_list_t* list)
-{
-	list_node_t* node;
-	list_node_t* prev;
-
-	if(list == NULL)
-		return;
-
-	node = list->first;
-
-	if(node == NULL)
-		return;
-
-	listLock(list);
-
-	list->last = list->first;
-
-	prev = NULL;
-	while(node != NULL) {
-		list_node_t* next = node->next;
-		node->next = prev;
-		prev = node;
-		node = next;
-	}
-
-	list->first = prev;
-
-	list_update_prev(list);
-
-	listUnlock(list);
-}
-
-long listVerify(link_list_t* list)
-{
-	list_node_t* node;
-	list_node_t* prev = NULL;
-	long result = 0;
-
-	if(list == NULL)
-		return -1;
-
-	listLock(list);
-
-	node = list->first;
-	while(node != NULL) {
-		if(node->list != list) {
-			result = -2;
-			break;
-		}
-		if(node->prev != prev) {
-			result = -3;
-			break;
-		}
-		prev = node;
-		node = node->next;
-		result++;
-	}
-	if(result >= 0 && list->last != prev)
-		result = -4;
-
-	if(result >= 0 && result != list->count)
-		result = -5;
-
-	listUnlock(list);
-
-	return result;
-}
-
-#if 0
-
-#include <stdio.h>	/* printf, sprintf */
-
-int main(int arg, char** argv)
-{
-	int		i;
-	long	result;
-	char*	p;
-	char	str[32];
-	link_list_t list;
-
-	listInit(&list,0);
-	if((result = listVerify(&list)) < 0) {
-		fprintf(stderr, "line %d: listVerify() returned %ld\n", __LINE__, result);
-		return EXIT_FAILURE;
-	}
-
-	for(i=0; i<100; i++) {
-		sprintf(str,"%u",i);
-		listPushNodeString(&list,str);
-	}
-	if((result = listVerify(&list)) < 0) {
-		fprintf(stderr, "line %d: listVerify() returned %ld\n", __LINE__, result);
-		return EXIT_FAILURE;
-	}
-
-	listReverse(&list);
-	if((result = listVerify(&list)) < 0) {
-		fprintf(stderr, "line %d: listVerify() returned %ld\n", __LINE__, result);
-		return EXIT_FAILURE;
-	}
-
-	while((p=listShiftNode(&list))!=NULL)
-		printf("%d %s\n",listCountNodes(&list),p), free(p);
-	if((result = listVerify(&list)) < 0) {
-		fprintf(stderr, "line %d: listVerify() returned %ld\n", __LINE__, result);
-		return EXIT_FAILURE;
-	}
-
-	return EXIT_SUCCESS;
-}
-
-#endif
diff --git a/xpdev/link_list.h b/xpdev/link_list.h
deleted file mode 100644
index c2bf6fc6334f2091f95210e2b0affaaa07f1e6e0..0000000000000000000000000000000000000000
--- a/xpdev/link_list.h
+++ /dev/null
@@ -1,205 +0,0 @@
-/* Double-Linked-list library */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _LINK_LIST_H
-#define _LINK_LIST_H
-
-#include <stddef.h>		/* size_t */
-#include <xpdevplus.h>
-#include "wrapdll.h"
-#include "str_list.h"	/* string list functions and types */
-
-#if defined(LINK_LIST_THREADSAFE)
-	#include "threadwrap.h"	/* mutexes */
-	#include "semwrap.h"	/* semaphores */
-#endif
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#define FIRST_NODE				((list_node_t*)NULL)	/* Special value to specify first node in list */
-#define LAST_NODE				((list_node_t*)-1)		/* Special value to specify last node in list */
-
-/* Valid link_list_t.flags and list_node_t.flags bits */
-#define LINK_LIST_MALLOC		(1<<0)	/* Node data allocated with malloc() */
-#define LINK_LIST_ALWAYS_FREE	(1<<1)	/* ALWAYS free node data in listFreeNodes() */
-#define LINK_LIST_NEVER_FREE	(1<<2)	/* NEVER free node data (careful of memory leaks!) */
-#define LINK_LIST_MUTEX			(1<<3)	/* Mutex-protected linked-list */
-#define LINK_LIST_SEMAPHORE		(1<<4)	/* Semaphore attached to linked-list */
-#define LINK_LIST_LOCKED		(1<<5)	/* Node is locked */
-#define LINK_LIST_ATTACH		(1<<6)	/* Attach during init */
-
-/* in case the default tag type is not sufficient for your needs, you can over-ride */
-#if !defined(list_node_tag_t)			
-	typedef long list_node_tag_t;
-#endif
-#if !defined(LIST_NODE_TAG_DEFAULT)
-	#define LIST_NODE_TAG_DEFAULT	0
-#endif
-
-typedef struct list_node {
-	void*				data;			/* pointer to some kind of data */
-	struct list_node*	next;			/* next node in list (or NULL) */
-	struct list_node*	prev;			/* previous node in list (or NULL) */
-	struct link_list*	list;
-	unsigned long		flags;			/* private use flags (by this library) */
-	list_node_tag_t		tag;			/* application use value */
-} list_node_t;
-
-typedef struct link_list {
-	list_node_t*		first;			/* first node in list (or NULL) */
-	list_node_t*		last;			/* last node in list (or NULL) */
-	unsigned long		flags;			/* private use flags (by this library) */
-	long				count;			/* number of nodes in list */
-	void*				private_data;	/* for use by the application/caller */
-	long				refs;			/* reference counter (attached clients) */
-	long				locks;			/* recursive lock counter */
-#if defined(LINK_LIST_THREADSAFE)
-	pthread_mutex_t		mutex;
-	sem_t				sem;
-#endif
-} link_list_t;
-
-/* Initialization, Allocation, and Freeing of Lists and Nodes */
-DLLEXPORT link_list_t*	listInit(link_list_t* /* NULL to auto-allocate */, long flags);
-DLLEXPORT BOOL			listFree(link_list_t*);
-DLLEXPORT long			listFreeNodes(link_list_t*);
-DLLEXPORT BOOL			listFreeNodeData(list_node_t* node);
-
-/* Increment/decrement reference counter (and auto-free when zero), returns -1 on error */
-DLLEXPORT long	listAttach(link_list_t*);
-DLLEXPORT long	listDetach(link_list_t*);
-
-#if defined(LINK_LIST_THREADSAFE)
-DLLEXPORT BOOL	listSemPost(link_list_t*);
-DLLEXPORT BOOL	listSemWait(link_list_t*);
-DLLEXPORT BOOL	listSemTryWait(link_list_t*);
-DLLEXPORT BOOL	listSemTryWaitBlock(link_list_t*, unsigned long timeout);
-#endif
-
-/* Lock/unlock linked lists (works best for mutex-protected lists) */
-/* Locks are recursive (e.g. must call Unlock for each call to Lock */
-DLLEXPORT BOOL	listLock(link_list_t*);
-DLLEXPORT BOOL	listUnlock(link_list_t*);
-DLLEXPORT BOOL	listIsLocked(const link_list_t*);
-#define	listForceUnlock(list)	while(listUnlock(list)==TRUE)
-
-/* Return count or index of nodes, or -1 on error */
-DLLEXPORT long	listCountNodes(link_list_t*);
-DLLEXPORT long	listNodeIndex(link_list_t*, list_node_t*);
-
-/* Get/Set list private data */
-DLLEXPORT void*	listSetPrivateData(link_list_t*, void*);
-DLLEXPORT void*	listGetPrivateData(link_list_t*);
-
-/* Return an allocated string list (which must be freed), array of all strings in linked list */
-DLLEXPORT str_list_t listStringList(link_list_t*);
-
-/* Return an allocated string list (which must be freed), subset of strings in linked list */
-DLLEXPORT str_list_t listSubStringList(const list_node_t*, long max);
-
-/* Free a string list returned from either of the above functions */
-DLLEXPORT void*	listFreeStringList(str_list_t);
-
-/* Extract subset (up to max number of nodes) in linked list (src_node) and place into dest_list */
-/* dest_list == NULL, then allocate a return a new linked list */
-DLLEXPORT link_list_t*	listExtract(link_list_t* dest_list, const list_node_t* src_node, long max);
-
-/* Simple search functions returning found node or NULL on error */
-DLLEXPORT list_node_t*	listNodeAt(link_list_t*, long index);
-/* Find a specific node by data or tag */
-/* Pass length of 0 to search by data pointer rather than by data content comparison (memcmp) */
-DLLEXPORT list_node_t*	listFindNode(link_list_t*, const void* data, size_t length);
-/* Find a specific node by its tag value */
-#define listFindTaggedNode(list, tag)	listFindNode(list, NULL, tag)
-/* Pass length of 0 to search by data pointer rather than by data content comparison (memcmp) */
-DLLEXPORT ulong			listCountMatches(link_list_t*, const void* data, size_t length);
-
-/* Convenience functions */
-DLLEXPORT list_node_t*	listFirstNode(link_list_t*);
-DLLEXPORT list_node_t*	listLastNode(link_list_t*);
-DLLEXPORT list_node_t*	listNextNode(const list_node_t*);
-DLLEXPORT list_node_t*	listPrevNode(const list_node_t*);
-DLLEXPORT void*			listNodeData(const list_node_t*);
-
-/* Primitive node locking (not recursive) */
-DLLEXPORT BOOL listLockNode(list_node_t*);
-DLLEXPORT BOOL listUnlockNode(list_node_t*);
-DLLEXPORT BOOL listNodeIsLocked(const list_node_t*);
-
-/* Add node to list, returns pointer to new node or NULL on error */
-DLLEXPORT list_node_t*	listAddNode(link_list_t*, void* data, list_node_tag_t, list_node_t* after /* NULL=insert */);
-
-/* Add array of node data to list, returns number of nodes added (or negative on error) */
-/* tag array may be NULL */
-DLLEXPORT long		listAddNodes(link_list_t*, void** data, list_node_tag_t*, list_node_t* after /* NULL=insert */);
-
-/* Add node to list, allocating and copying the data for the node */
-DLLEXPORT list_node_t*	listAddNodeData(link_list_t*, const void* data, size_t length, list_node_tag_t, list_node_t* after);
-
-/* Add node to list, allocating and copying ASCIIZ string data */
-DLLEXPORT list_node_t*	listAddNodeString(link_list_t*, const char* str, list_node_tag_t, list_node_t* after);
-
-/* Add a list of strings to the linked list, allocating and copying each */
-/* tag array may be NULL */
-DLLEXPORT long		listAddStringList(link_list_t*, str_list_t, list_node_tag_t*, list_node_t* after);
-
-/* Add a list of nodes from a source linked list */
-DLLEXPORT long		listAddNodeList(link_list_t*, const link_list_t* src, list_node_t* after); 
-
-/* Merge a source linked list into the destination linked list */
-/* after merging, the nodes in the source linked list should not be modified or freed */
-DLLEXPORT long		listMerge(link_list_t* dest, const link_list_t* src, list_node_t* after);
-
-/* Swap the data pointers and flags for 2 nodes (possibly in separate lists) */
-DLLEXPORT BOOL		listSwapNodes(list_node_t* node1, list_node_t* node2);
-
-/* Convenience macros for pushing, popping, and inserting nodes */
-#define	listPushNode(list, data)				listAddNode(list, data, LIST_NODE_TAG_DEFAULT, LAST_NODE)
-#define listInsertNode(list, data)				listAddNode(list, data, LIST_NODE_TAG_DEFAULT, FIRST_NODE)
-#define listPushNodeData(list, data, length)	listAddNodeData(list, data, length, LIST_NODE_TAG_DEFAULT, LAST_NODE)
-#define	listInsertNodeData(list, data, length)	listAddNodeData(list, data, length, LIST_NODE_TAG_DEFAULT, FIRST_NODE)
-#define	listPushNodeString(list, str)			listAddNodeString(list, str, LIST_NODE_TAG_DEFAULT, LAST_NODE)
-#define listInsertNodeString(list, str)			listAddNodeString(list, str, LIST_NODE_TAG_DEFAULT, FIRST_NODE)
-#define	listPushStringList(list, str_list)		listAddStringList(list, str_list, NULL, LAST_NODE)
-#define listInsertStringList(list, str_list)	listAddStringList(list, str_list, NULL, FIRST_NODE)
-#define listPopNode(list)						listRemoveNode(list, LAST_NODE, FALSE)
-#define listShiftNode(list)						listRemoveNode(list, FIRST_NODE, FALSE)
-
-/* Remove node from list, returning the node's data (if not free'd) */
-DLLEXPORT void*	listRemoveNode(link_list_t*, list_node_t* /* NULL=first */, BOOL free_data);
-DLLEXPORT void* listRemoveTaggedNode(link_list_t*, list_node_tag_t, BOOL free_data);
-
-/* Remove multiple nodes from list, returning the number of nodes removed */
-DLLEXPORT long	listRemoveNodes(link_list_t*, list_node_t* /* NULL=first */, long count, BOOL free_data);
-
-/* Reverse the nodes in a list */
-DLLEXPORT void listReverse(link_list_t*);
-
-/* Return >= 0 (count of nodes) if list is valid, negative otherwise */
-DLLEXPORT long listVerify(link_list_t*);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/msg_queue.c b/xpdev/msg_queue.c
deleted file mode 100644
index 7a0a733d4b24d069587705474fd5a87da83d1cd2..0000000000000000000000000000000000000000
--- a/xpdev/msg_queue.c
+++ /dev/null
@@ -1,234 +0,0 @@
-/* Uni or Bi-directional FIFO message queue */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <stdlib.h>		/* malloc */
-#include <string.h>		/* memset */
-
-#include "genwrap.h"	/* msclock() */
-#include "threadwrap.h"	/* pthread_self */
-#include "msg_queue.h"
-
-msg_queue_t* msgQueueInit(msg_queue_t* q, long flags)
-{
-	if(q==NULL) {
-		if((q=(msg_queue_t*)malloc(sizeof(msg_queue_t)))==NULL)
-			return(NULL);
-		flags |= MSG_QUEUE_MALLOC;
-	} 
-
-	memset(q,0,sizeof(msg_queue_t));
-
-	q->flags = flags;
-	q->refs = 1;
-	q->owner_thread_id = pthread_self();
-
-	if(q->flags&MSG_QUEUE_BIDIR)
-		listInit(&q->in,LINK_LIST_SEMAPHORE|LINK_LIST_MUTEX);
-	listInit(&q->out,LINK_LIST_SEMAPHORE|LINK_LIST_MUTEX);
-
-	return(q);
-}
-
-BOOL msgQueueOwner(msg_queue_t* q)
-{
-	if(q==NULL)
-		return(FALSE);
-
-	return q->owner_thread_id == pthread_self();
-}
-
-BOOL msgQueueFree(msg_queue_t* q)
-{
-	if(q==NULL)
-		return(FALSE);
-
-	listFree(&q->in);
-	listFree(&q->out);
-
-	if(q->flags&MSG_QUEUE_MALLOC)
-		free(q);
-
-	return(TRUE);
-}
-
-long msgQueueAttach(msg_queue_t* q)
-{
-	if(q==NULL)
-		return(-1);
-
-	q->refs++;
-
-	return(q->refs);
-}
-
-long msgQueueDetach(msg_queue_t* q)
-{
-	int refs;
-
-	if(q==NULL || q->refs<1)
-		return(-1);
-
-	if(msgQueueOwner(q))
-		q->flags |= MSG_QUEUE_ORPHAN;
-
-	if((refs=--q->refs)==0)
-		msgQueueFree(q);
-
-	return(refs);
-}
-
-void* msgQueueSetPrivateData(msg_queue_t* q, void* p)
-{
-	void* old;
-
-	if(q==NULL)
-		return(NULL);
-
-	old=q->private_data;
-	q->private_data=p;
-	return(old);
-}
-
-void* msgQueueGetPrivateData(msg_queue_t* q)
-{
-	if(q==NULL)
-		return(NULL);
-	return(q->private_data);
-}
-
-static link_list_t* msgQueueReadList(msg_queue_t* q)
-{
-	if(q==NULL)
-		return(NULL);
-
-	if((q->flags&MSG_QUEUE_BIDIR)
-		&& q->owner_thread_id == pthread_self())
-		return(&q->in);
-	return(&q->out);
-}
-
-static link_list_t* msgQueueWriteList(msg_queue_t* q)
-{
-	if(q==NULL)
-		return(NULL);
-
-	if(!(q->flags&MSG_QUEUE_BIDIR)
-		|| q->owner_thread_id == pthread_self())
-		return(&q->out);
-	return(&q->in);
-}
-
-long msgQueueReadLevel(msg_queue_t* q)
-{
-	return listCountNodes(msgQueueReadList(q));
-}
-
-static BOOL list_wait(link_list_t* list, long timeout)
-{
-#if defined(LINK_LIST_THREADSAFE)
-	if(timeout<0)	/* infinite */
-		return listSemWait(list);
-	if(timeout==0)	/* poll */
-		return listSemTryWait(list);
-
-	return listSemTryWaitBlock(list,timeout);
-#else
-	clock_t	start;
-	long	count;
-	
-	start=msclock();
-	while((count=listCountNodes(list))==0) {
-		if(timeout==0)
-			break;
-		if(timeout>0 && msclock()-start > timeout)
-			break;
-		YIELD();
-	}
-	return(INT_TO_BOOL(count));
-#endif
-}
-
-BOOL msgQueueWait(msg_queue_t* q, long timeout)
-{
-	BOOL			result;
-	link_list_t*	list = msgQueueReadList(q);
-
-	if((result=list_wait(list,timeout))==TRUE)
-#if defined(LINK_LIST_THREADSAFE)
-		listSemPost(list)	/* Replace the semaphore we just cleared */
-#endif
-		;
-
-	return(result);
-}
-
-void* msgQueueRead(msg_queue_t* q, long timeout)
-{
-	link_list_t*	list = msgQueueReadList(q);
-
-	list_wait(list,timeout);
-
-	return listShiftNode(list);
-}
-
-void* msgQueuePeek(msg_queue_t* q, long timeout)
-{
-	link_list_t*	list = msgQueueReadList(q);
-
-	if(list_wait(list,timeout))
-#if defined(LINK_LIST_THREADSAFE)
-		listSemPost(list)	/* Replace the semaphore we just cleared */
-#endif
-		;
-
-	return  listNodeData(listFirstNode(list));
-}
-
-void* msgQueueFind(msg_queue_t* q, const void* data, size_t length)
-{
-	link_list_t*	list = msgQueueReadList(q);
-	list_node_t*	node;
-
-	if((node=listFindNode(list,data,length))==NULL)
-		return(NULL);
-	return listRemoveNode(list,node,/* Free Data? */FALSE);
-}
-
-list_node_t* msgQueueFirstNode(msg_queue_t* q)
-{
-	return listFirstNode(msgQueueReadList(q));
-}
-
-list_node_t* msgQueueLastNode(msg_queue_t* q)
-{
-	return listLastNode(msgQueueReadList(q));
-}
-
-long msgQueueWriteLevel(msg_queue_t* q)
-{
-	return listCountNodes(msgQueueWriteList(q));
-}
-
-BOOL msgQueueWrite(msg_queue_t* q, const void* data, size_t length)
-{
-	return listPushNodeData(msgQueueWriteList(q),data,length)!=NULL;
-}
-
diff --git a/xpdev/msg_queue.h b/xpdev/msg_queue.h
deleted file mode 100644
index 5df9af8a801dbf7cd2c97e0ca1dd33d946df78e1..0000000000000000000000000000000000000000
--- a/xpdev/msg_queue.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Uni or Bi-directional FIFO message queue */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _MSG_QUEUE_H
-#define _MSG_QUEUE_H
-
-#include "link_list.h"
-#include "threadwrap.h"
-#include "wrapdll.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-typedef struct {
-	char			name[128];			/* for named-queues */
-	link_list_t		in;
-	link_list_t		out;
-	pthread_t		owner_thread_id;	/* reads from in, writes to out */
-	long			refs;
-	unsigned long	flags;				/* private use flags */
-	void*			private_data;
-} msg_queue_t;
-
-#define MSG_QUEUE_MALLOC		(1<<0)	/* Queue allocated with malloc() */
-#define MSG_QUEUE_BIDIR			(1<<1)	/* Bi-directional message queue */
-#define MSG_QUEUE_ORPHAN		(1<<2)	/* Owner has detached */
-
-DLLEXPORT msg_queue_t*	msgQueueInit(msg_queue_t*, long flags);
-DLLEXPORT BOOL			msgQueueFree(msg_queue_t*);
-
-DLLEXPORT long			msgQueueAttach(msg_queue_t*);
-DLLEXPORT long			msgQueueDetach(msg_queue_t*);
-DLLEXPORT BOOL			msgQueueOwner(msg_queue_t*);
-
-/* Get/Set queue private data */
-DLLEXPORT void*			msgQueueSetPrivateData(msg_queue_t*, void*);
-DLLEXPORT void*			msgQueueGetPrivateData(msg_queue_t*);
-
-DLLEXPORT BOOL			msgQueueWait(msg_queue_t* q, long timeout);
-DLLEXPORT long			msgQueueReadLevel(msg_queue_t*);
-DLLEXPORT void*			msgQueueRead(msg_queue_t*, long timeout);
-DLLEXPORT void*			msgQueuePeek(msg_queue_t*, long timeout);
-DLLEXPORT void*			msgQueueFind(msg_queue_t*, const void*, size_t length);
-DLLEXPORT list_node_t*	msgQueueFirstNode(msg_queue_t*);
-DLLEXPORT list_node_t*	msgQueueLastNode(msg_queue_t*);
-#define			msgQueueNextNode(node)			listNextNode(node)
-#define			msgQueuePrevNode(node)			listPrevNode(node)
-#define			msgQueueNodeData(node)			listNodeData(node)
-
-DLLEXPORT long			msgQueueWriteLevel(msg_queue_t*);
-DLLEXPORT BOOL			msgQueueWrite(msg_queue_t*, const void*, size_t length);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/multisock.c b/xpdev/multisock.c
deleted file mode 100644
index bc4e2d2b261e22855599f1adc7de9bc8dae290ec..0000000000000000000000000000000000000000
--- a/xpdev/multisock.c
+++ /dev/null
@@ -1,642 +0,0 @@
-// Multi-socket versions ofthe socket API...
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "gen_defs.h"
-#include "sockwrap.h"
-#include "dirwrap.h"
-#include "multisock.h"
-#include "haproxy.h"
-#include <stdarg.h>
-
-struct xpms_set* xpms_create(unsigned int retries, unsigned int wait_secs,
-	int (*lprintf)(int level, const char *fmt, ...))
-{
-	struct xpms_set *ret=(struct xpms_set *)calloc(1, sizeof(struct xpms_set));
-
-	if(ret==NULL)
-		return ret;
-	ret->retries = retries;
-	ret->wait_secs = wait_secs;
-	ret->lprintf=lprintf;
-	return ret;
-}
-
-void xpms_destroy(struct xpms_set *xpms_set, void (*sock_destroy)(SOCKET, const void *), const void *cbdata)
-{
-	size_t		i;
-
-	if(!xpms_set)
-		return;
-	for(i=0; i<xpms_set->sock_count; i++) {
-		if(xpms_set->socks[i].sock != INVALID_SOCKET) {
-			if(xpms_set->lprintf!=NULL)
-				xpms_set->lprintf(LOG_INFO, "%04d %s closing socket %s port %d"
-						, xpms_set->socks[i].sock, xpms_set->socks[i].prot?xpms_set->socks[i].prot:"unknown"
-						, xpms_set->socks[i].address
-						, xpms_set->socks[i].port);
-			closesocket(xpms_set->socks[i].sock);
-			if(sock_destroy)
-				sock_destroy(xpms_set->socks[i].sock, cbdata);
-		}
-		xpms_set->socks[i].sock = INVALID_SOCKET;
-		FREE_AND_NULL(xpms_set->socks[i].address);
-		FREE_AND_NULL(xpms_set->socks[i].prot);
-	}
-	FREE_AND_NULL(xpms_set->socks);
-	free(xpms_set);
-}
-
-BOOL xpms_add(struct xpms_set *xpms_set, int domain, int type,
-	int protocol, const char *addr, uint16_t port, const char *prot, 
-	void (*sock_init)(SOCKET, const void *), int(*bind_init)(BOOL), const void *cbdata)
-{
-	struct xpms_sockdef	*new_socks;
-    struct addrinfo		hints;
-    struct addrinfo		*res=NULL;
-    struct addrinfo		*cur;
-    unsigned int		added = 0;
-    int					ret;
-    char				port_str[6];
-	char				err[128];
-
-#ifndef _WIN32
-	struct addrinfo		dummy;
-	struct sockaddr_un	un_addr;
-
-	if(domain == AF_UNIX) {
-		memset(&dummy, 0, sizeof(dummy));
-		memset(&un_addr, 0, sizeof(un_addr));
-		dummy.ai_family = AF_UNIX;
-		dummy.ai_socktype = type;
-		dummy.ai_addr = (struct sockaddr *)&un_addr;
-		un_addr.sun_family=AF_UNIX;
-
-		if(strlen(addr) >= sizeof(un_addr.sun_path)) {
-			if(xpms_set->lprintf)
-				xpms_set->lprintf(LOG_ERR, "!%s ERROR %s is too long for a portable AF_UNIX socket", prot, addr);
-			return FALSE;
-		}
-		strcpy(un_addr.sun_path,addr);
-#ifdef SUN_LEN
-		dummy.ai_addrlen = SUN_LEN(&un_addr);
-#else
-		dummy.ai_addrlen = offsetof(struct sockaddr_un, un_addr.sun_path) + strlen(addr) + 1;
-#endif
-		if(fexist(addr))
-			unlink(addr);
-		res = &dummy;
-	}
-#endif
-	if(res == NULL) {
-		memset(&hints, 0, sizeof(hints));
-		hints.ai_flags=AI_PASSIVE;
-		hints.ai_family=domain;
-		hints.ai_socktype=type;
-		hints.ai_protocol=protocol;
-		hints.ai_flags|=AI_NUMERICSERV;
-#ifdef AI_ADDRCONFIG
-		hints.ai_flags|=AI_ADDRCONFIG;
-#endif
-		sprintf(port_str, "%hu", port);
-		if((ret=getaddrinfo(addr, port_str, &hints, &res))!=0) {
-			if(xpms_set->lprintf)
-				xpms_set->lprintf(LOG_CRIT, "!%s ERROR %d calling getaddrinfo() on %s", prot, ret, addr);
-			return FALSE;
-		}
-	}
-
-	for(cur=res; cur; cur=cur->ai_next) {
-		new_socks=(struct xpms_sockdef *)realloc(xpms_set->socks, sizeof(struct xpms_sockdef)*(xpms_set->sock_count+1));
-		if(new_socks==NULL) {
-			/* This may be a partial failure */
-			if(xpms_set->lprintf)
-				xpms_set->lprintf(LOG_CRIT, "!%s ERROR out of memory adding to multisocket", prot);
-			break;
-		}
-		xpms_set->socks=new_socks;
-		xpms_set->socks[xpms_set->sock_count].address = strdup(addr);
-		xpms_set->socks[xpms_set->sock_count].cb_data = cbdata;
-		xpms_set->socks[xpms_set->sock_count].domain = cur->ai_family;	/* Address/Protocol Family */
-		xpms_set->socks[xpms_set->sock_count].type = cur->ai_socktype;
-		xpms_set->socks[xpms_set->sock_count].protocol = protocol;
-		xpms_set->socks[xpms_set->sock_count].port = port;
-		xpms_set->socks[xpms_set->sock_count].prot = strdup(prot);
-		xpms_set->socks[xpms_set->sock_count].sock = socket(cur->ai_family, cur->ai_socktype, protocol);
-		if(xpms_set->socks[xpms_set->sock_count].sock == INVALID_SOCKET) {
-			FREE_AND_NULL(xpms_set->socks[xpms_set->sock_count].address);
-			FREE_AND_NULL(xpms_set->socks[xpms_set->sock_count].prot);
-			continue;
-		}
-		if(sock_init)
-			sock_init(xpms_set->socks[xpms_set->sock_count].sock, cbdata);
-
-		if(bind_init) {
-			if(port < IPPORT_RESERVED && port > 0)
-				bind_init(FALSE);
-		}
-		if(retry_bind(xpms_set->socks[xpms_set->sock_count].sock, cur->ai_addr, cur->ai_addrlen, xpms_set->retries, xpms_set->wait_secs, prot, xpms_set->lprintf)==-1) {
-			closesocket(xpms_set->socks[xpms_set->sock_count].sock);
-			FREE_AND_NULL(xpms_set->socks[xpms_set->sock_count].address);
-			FREE_AND_NULL(xpms_set->socks[xpms_set->sock_count].prot);
-			if(bind_init) {
-				if(port < IPPORT_RESERVED)
-					bind_init(TRUE);
-			}
-			continue;
-		}
-		if(bind_init) {
-			if(port < IPPORT_RESERVED && port > 0)
-				bind_init(TRUE);
-		}
-
-		if(type != SOCK_DGRAM) {
-			if(listen(xpms_set->socks[xpms_set->sock_count].sock, SOMAXCONN)==-1) {
-				if(xpms_set->lprintf)
-					xpms_set->lprintf(LOG_WARNING, "%04d !%s ERROR %d listening on port %d: %s"
-						,xpms_set->socks[xpms_set->sock_count].sock, prot, ERROR_VALUE
-						,port, socket_strerror(socket_errno,err,sizeof(err)));
-				closesocket(xpms_set->socks[xpms_set->sock_count].sock);
-				FREE_AND_NULL(xpms_set->socks[xpms_set->sock_count].address);
-				FREE_AND_NULL(xpms_set->socks[xpms_set->sock_count].prot);
-				continue;
-			}
-		}
-
-		added++;
-		xpms_set->sock_count++;
-	}
-
-#ifndef _WIN32
-	if(res != &dummy)
-#endif
-		freeaddrinfo(res);
-	if(added)
-		return TRUE;
-	return FALSE;
-}
-
-BOOL xpms_add_list(struct xpms_set *xpms_set, int domain, int type,
-	int protocol, str_list_t list, uint16_t default_port, const char *prot, 
-	void (*sock_init)(SOCKET, const void *), int(*bind_init)(BOOL), const void *cbdata)
-{
-	char	**iface;
-	char	*host;
-	char	*host_str;
-	char	*p, *p2;
-	BOOL	one_good=FALSE;
-	
-	for(iface=list; iface && *iface; iface++) {
-		WORD	port=default_port;
-
-		host=strdup(*iface);
-
-		host_str=host;
-		p = strrchr(host, ':');
-		/*
-		 * If there isn't a [, and the first and last colons aren't the same
-		 * it's assumed to be an IPv6 address
-		 */
-		if(strchr(host,'[')==NULL && p != NULL && strchr(host, ':') != p)
-			p=NULL;
-		if(host[0]=='[') {
-			host_str++;
-			p2=strrchr(host,']');
-			if(p2)
-				*p2=0;
-			if(p2 > p)
-				p=NULL;
-		}
-		if(p!=NULL) {
-			*(p++)=0;
-			sscanf(p, "%hu", &port);
-		}
-		if(xpms_set->lprintf)
-			xpms_set->lprintf(LOG_INFO, "%s listening on socket %s port %hu", prot, host_str, port);
-		if(xpms_add(xpms_set, domain, type, protocol, host_str, port, prot, sock_init, bind_init, cbdata))
-			one_good=TRUE;
-		free(host);
-	}
-	return one_good;
-}
-
-BOOL xpms_add_chararray_list(struct xpms_set *xpms_set, int domain, int type,
-	int protocol, const char *list, uint16_t default_port, const char *prot,
-	void (*sock_init)(SOCKET, const void *), int(*bind_init)(BOOL), const void *cbdata)
-{
-	str_list_t slist;
-	BOOL ret;
-
-	slist = strListSplitCopy(NULL, list, ", \t\r\n");
-	if (slist == NULL)
-		return FALSE;
-	ret = xpms_add_list(xpms_set, domain, type, protocol, slist, default_port, prot,
-			sock_init, bind_init, cbdata);
-	strListFree(&slist);
-	return ret;
-}
-
-/* Convert a binary variable into a hex string - used for printing in the debug log */
-static void btox(char *hexstr, const char *srcbuf, size_t srcbuflen, size_t hexstrlen, int (*lprintf)(int level, const char *fmt, ...)) 
-{
-	size_t         i;
-
-	if (hexstrlen < srcbuflen*2+1) {
-		lprintf(LOG_WARNING,"btox hexstr buffer too small [%d] - not all data will be processed",hexstrlen);
-		srcbuflen = hexstrlen/2-1;
-	}
-
-	*hexstr = '\0';
-	for (i=0;i<srcbuflen;i++) {
-		sprintf(hexstr+strlen(hexstr),"%02x",(unsigned char)srcbuf[i]);
-	}
-}
-
-static BOOL read_socket(SOCKET sock, char *buffer, size_t len, int (*lprintf)(int level, const char *fmt, ...))
-{
-	size_t            i;
-	int            rd;
-	unsigned char           ch;
-	char           err[128];
-
-	for (i=0;i<len;i++) {
-		if (socket_readable(sock, 1000)) {
-			rd = recv(sock,&ch,1,0);
-			if (rd == 0) {
-				lprintf(LOG_WARNING,"%04d multisock read_socket() - remote closed the connection",sock);
-				return FALSE;
-
-			} else if (rd == 1) {
-				buffer[i] = ch;
-
-			} else {
-				lprintf(LOG_WARNING,"%04d multisock read_socket() - failed to read from socket. Got [%d] with error [%s]",sock,rd,socket_strerror(socket_errno,err,sizeof(err)));
-				return FALSE;
-			}
-
-		} else {
-			lprintf(LOG_WARNING,"%04d multisock read_socket() - No data?",sock);
-			return FALSE;
-
-		}
-	}
-
-	return TRUE;
-}
-
-static BOOL read_socket_line(SOCKET sock, char *buffer, size_t buflen, int (*lprintf)(int level, const char *fmt, ...))
-{
-	size_t         i;
-
-	for (i = 0; i < buflen - 1; i++) {
-		if (read_socket(sock, &buffer[i], 1, lprintf)) {
-			switch(buffer[i]) {
-				case 0:
-					return FALSE;
-				case '\n':
-					buffer[i+1] = 0;
-					return TRUE;
-			}
-
-		} else {
-			buffer[i] = 0;
-			return FALSE;
-		}
-	}
-
-	buffer[i] = 0;
-	return FALSE;
-}
-
-SOCKET xpms_accept(struct xpms_set *xpms_set, union xp_sockaddr * addr, 
-	socklen_t * addrlen, unsigned int timeout, uint32_t flags, const void **cb_data)
-{
-#ifdef PREFER_POLL
-	struct pollfd *fds;
-	int poll_timeout;
-	nfds_t scnt = 0;
-#else
-	fd_set         read_fs;
-	struct timeval tv;
-	struct timeval *tvp;
-	SOCKET         max_sock=0;
-#endif
-	size_t         i;
-	SOCKET         ret;
-	char           hapstr[128];
-	char           haphex[256];
-	char           *p, *tok;
-	long           l;
-	void           *vp;
-
-	if (xpms_set->sock_count < 1)
-		return INVALID_SOCKET;
-
-#ifdef PREFER_POLL
-	fds = calloc(xpms_set->sock_count, sizeof(*fds));
-	if (fds == NULL)
-		return INVALID_SOCKET;
-	for (i = 0; i < xpms_set->sock_count; i++) {
-		if (xpms_set->socks[i].sock == INVALID_SOCKET)
-			continue;
-		fds[scnt].fd = xpms_set->socks[i].sock;
-		fds[scnt].events = POLLIN;
-		scnt++;
-	}
-
-	if (timeout == XPMS_FOREVER)
-		poll_timeout = -1;
-	else if (timeout > INT_MAX)
-		poll_timeout = INT_MAX;
-	else
-		poll_timeout = timeout;
-
-	switch (poll(fds, scnt, poll_timeout)) {
-		case 0:
-			free(fds);
-			return INVALID_SOCKET;
-		case -1:
-			free(fds);
-			return SOCKET_ERROR;
-		default:
-			scnt = 0;
-			for(i=0; i<xpms_set->sock_count; i++) {
-				if(xpms_set->socks[i].sock == INVALID_SOCKET)
-					continue;
-				if (fds[scnt].revents & ~(POLLIN)) {
-					scnt++;
-					closesocket(xpms_set->socks[i].sock);
-					xpms_set->lprintf(LOG_ERR, "%04d * Listening socket went bad", xpms_set->socks[i].sock);
-					xpms_set->socks[i].sock = INVALID_SOCKET;
-					continue;
-				}
-				if (fds[scnt++].revents & POLLIN) {
-#else
-	FD_ZERO(&read_fs);
-	for(i=0; i<xpms_set->sock_count; i++) {
-		if(xpms_set->socks[i].sock == INVALID_SOCKET)
-			continue;
-		FD_SET(xpms_set->socks[i].sock, &read_fs);
-		if(xpms_set->socks[i].sock >= max_sock)
-			max_sock=xpms_set->socks[i].sock+1;
-	}
-
-	if(timeout==XPMS_FOREVER)
-		tvp=NULL;
-	else {
-		tv.tv_sec=timeout/1000;
-		tv.tv_usec=(timeout%1000)*1000;
-		tvp=&tv;
-	}
-	switch(select(max_sock, &read_fs, NULL, NULL, tvp)) {
-		case 0:
-			return INVALID_SOCKET;
-		case -1:
-			return SOCKET_ERROR;
-		default:
-			for(i=0; i<xpms_set->sock_count; i++) {
-				if(xpms_set->socks[i].sock == INVALID_SOCKET)
-					continue;
-				if(FD_ISSET(xpms_set->socks[i].sock, &read_fs)) {
-#endif
-					if(cb_data)
-						*cb_data=xpms_set->socks[i].cb_data;
-					ret = accept(xpms_set->socks[i].sock, &addr->addr, addrlen);
-					if (ret == INVALID_SOCKET) {
-						goto error_return;
-					}
-
-					// Set host_ip from haproxy protocol, if its used
-					// http://www.haproxy.org/download/1.8/doc/proxy-protocol.txt
-					if (flags & XPMS_ACCEPT_FLAG_HAPROXY) {
-						memset(addr, 0, sizeof(*addr));
-						xpms_set->lprintf(LOG_DEBUG,"%04d Working out client address from HAProxy PROTO",ret);
-
-						// Read the first line
-						// In normal proxy usage, we shouldnt fail here - but if there is a badly implemented HAPROXY PROTO
-						// or the user attempts to connect direct to the BBS (not via the proxy) there could be anything 
-						// received (IAC sequences, SSH setup, or just badness)
-						if (! read_socket_line(ret, hapstr, 108, xpms_set->lprintf)) {
-							btox(haphex,hapstr,strlen(hapstr),sizeof(haphex), xpms_set->lprintf);
-							xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY looking for version - failed [%s]",ret,haphex);
-							closesocket(ret);
-							goto error_return;
-						}
-
-						btox(haphex,hapstr,strlen(hapstr)>16 ? 16 : strlen(hapstr),sizeof(haphex), xpms_set->lprintf);
-						xpms_set->lprintf(LOG_DEBUG,"%04d * HAPROXY looking for version - 1st %d bytes received [%s] of (%d)",ret,strlen(hapstr)>16 ? 16 : strlen(hapstr),haphex,strlen(hapstr));
-
-						// v1 of the protocol uses plain text, starting with "PROXY "
-						// eg: "PROXY TCP4 255.255.255.255 255.255.255.255 65535 65535\r\n"
-						if (strncmp((char *)hapstr,"PROXY ",6) == 0) {
-							xpms_set->lprintf(LOG_DEBUG,"%04d * HAPROXY PROTO v1",ret);
-
-							tok = &hapstr[6];
-							// IPV4
-							if (strncmp(tok, "TCP4 ", 5) == 0) {
-								tok += 5;
-								xpms_set->lprintf(LOG_DEBUG,"%04d * HAPROXY Proto TCP4",ret,hapstr);
-								addr->addr.sa_family = AF_INET;
-								if (addrlen)
-									*addrlen = sizeof(struct sockaddr_in);
-								vp = &addr->in.sin_addr;
-							// IPV6
-							} else if (strncmp(tok,"TCP6 ",5) == 0) {
-								tok += 5;
-								xpms_set->lprintf(LOG_DEBUG,"%04d * HAPROXY Proto TCP6",ret,hapstr);
-								addr->addr.sa_family = AF_INET6;
-								if (addrlen)
-									*addrlen = sizeof(struct sockaddr_in6);
-								vp = &addr->in6.sin6_addr;
-							// Unknown?
-							} else {
-								xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY Unknown Protocol",ret);
-								closesocket(ret);
-								goto error_return;
-							}
-
-							// Look for the space between the next IP
-							p = strchr(tok, ' ');
-							if (p == NULL) {
-								xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY Couldnt find IP address",ret);
-								closesocket(ret);
-								goto error_return;
-							}
-							*p = 0;
-							if (inet_pton(addr->addr.sa_family, tok, vp) != 1) {
-								xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY Unable to parse %s address [%s]",addr->addr.sa_family == AF_INET ? "IPv4" : "IPv6", tok);
-								closesocket(ret);
-								goto error_return;
-							}
-							tok = p + 1;
-							// Look for the space before the port number
-							p = strchr(tok, ' ');
-							if (p == NULL) {
-								xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY Couldnt find port",ret);
-								closesocket(ret);
-								goto error_return;
-							}
-							tok = p + 1;
-							l = strtol(tok, NULL, 10);
-							if (l <= 0 || l > UINT16_MAX) {
-								xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY Source port out of range",ret);
-								closesocket(ret);
-								goto error_return;
-							}
-							switch(addr->addr.sa_family) {
-								case AF_INET:
-									addr->in.sin_port = htons((unsigned short)l);
-									break;
-								case AF_INET6:
-									addr->in6.sin6_port = htons((unsigned short)l);
-									break;
-							}
-
-						// v2 is in binary with the first 12 bytes "\x0D\x0A\x0D\x0A\x00\x0D\x0A\x51\x55\x49\x54\x0A"
-						// we'll compare the 1st 6 bytes here, since we are determining if we are v1 or v2.
-						} else if (strcmp((char *)hapstr,"\r\n") == 0) {
-							xpms_set->lprintf(LOG_DEBUG,"%04d * HAPROXY PROTO v2",ret);
-
-							// OK, just for sanity, our next 10 chars should be v2...
-							memset(hapstr, 0, 10);
-							if (read_socket(ret,hapstr,10,xpms_set->lprintf)==FALSE || memcmp(hapstr, "\x0D\x0A\x00\x0D\x0A\x51\x55\x49\x54\x0A", 10) != 0) {
-								btox(haphex,hapstr,10,sizeof(haphex), xpms_set->lprintf);
-								xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY Something went wrong - incomplete v2 setup [%s]",ret,haphex);
-								closesocket(ret);
-								goto error_return;
-							}
-
-							// Command and Version
-							if (read_socket(ret,hapstr,1,xpms_set->lprintf)==FALSE) {
-								btox(haphex,hapstr,1,sizeof(haphex), xpms_set->lprintf);
-								xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY looking for Verson/Command - failed [%s]",ret,haphex);
-								closesocket(ret);
-								goto error_return;
-							}
-							xpms_set->lprintf(LOG_DEBUG,"%04d * HAPROXY Version [%x]",ret,(hapstr[0]>>4)&0x0f); //Should be 2
-
-							// Check the version
-							switch((hapstr[0]>>4)&0x0f) {
-								case 0x02:
-									break;
-								default:
-									xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY invalid version [%x]",ret,(hapstr[0]>>4)&0x0f);
-									closesocket(ret);
-									goto error_return;
-							}
-
-							xpms_set->lprintf(LOG_DEBUG,"%04d * HAPROXY Command [%x]",ret,hapstr[0]&0x0f); //0=Local/1=Proxy
-
-							// Check the command
-							switch(hapstr[0]&0x0f) {
-								case HAPROXY_LOCAL:
-									xpms_set->lprintf(LOG_INFO,"%04d * HAPROXY health check - we are alive!",ret);
-									closesocket(ret);
-									goto error_return;
-								case HAPROXY_PROXY:
-									break;
-								default:
-									xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY invalid command [%x]",ret,hapstr[0]&0x0f);
-									closesocket(ret);
-									goto error_return;
-							}
-
-							// Protocol and Family
-							if (read_socket(ret,hapstr,1,xpms_set->lprintf)==FALSE) {
-								btox(haphex,hapstr,1,sizeof(haphex), xpms_set->lprintf);
-								xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY looking for Protocol/Family - failed [%s]",ret,haphex);
-								closesocket(ret);
-								goto error_return;
-							}
-							xpms_set->lprintf(LOG_DEBUG,"%04d * HAPROXY Protocol [%x]",ret,hapstr[0]&0x0f); //0=Unspec/1=AF_INET/2=AF_INET6/3=AF_UNIX
-							l = (hapstr[0]>>4)&0x0f;
-							xpms_set->lprintf(LOG_DEBUG,"%04d * HAPROXY Family [%x]",ret,l); //0=UNSPEC/1=STREAM/2=DGRAM
-
-							// Address Length - 2 bytes
-							if (read_socket(ret,hapstr,2,xpms_set->lprintf)==FALSE) {
-								btox(haphex,hapstr,2,sizeof(haphex), xpms_set->lprintf);
-								xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY looking for address length - failed [%s]",ret,haphex);
-								closesocket(ret);
-								goto error_return;
-							}
-							i = ntohs(*(uint16_t*)hapstr);
-							xpms_set->lprintf(LOG_DEBUG,"%04d * HAPROXY Address Length [%d]",ret,i);
-
-							switch (l) {
-								// IPv4 - AF_INET
-								case HAPROXY_AFINET:
-									if (i != 12) {
-										xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY Something went wrong - IPv4 address length is incorrect",ret);
-										closesocket(ret);
-										goto error_return;
-									}
-									addr->in.sin_family = AF_INET;
-									if (read_socket(ret, hapstr, i, xpms_set->lprintf)==FALSE) {
-										xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY looking for IPv4 address - failed",ret);
-										closesocket(ret);
-										goto error_return;
-									}
-									memcpy(&addr->in.sin_addr.s_addr, hapstr, 4);
-									memcpy(&addr->in.sin_port, &hapstr[8], 2);
-									if (addrlen)
-										*addrlen = sizeof(struct sockaddr_in);
-
-									break;
-
-								// IPv6 - AF_INET6
-								case HAPROXY_AFINET6:
-									if (i != 36) {
-										xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY Something went wrong - IPv6 address length is incorrect.",ret);
-										closesocket(ret);
-										goto error_return;
-									}
-									addr->in6.sin6_family = AF_INET6;
-									if (read_socket(ret,hapstr,i,xpms_set->lprintf)==FALSE) {
-										xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY looking for IPv6 address - failed",ret);
-										closesocket(ret);
-										goto error_return;
-									}
-									memcpy(&addr->in6.sin6_addr.s6_addr, hapstr, 16);
-									memcpy(&addr->in6.sin6_port, &hapstr[32], 2);
-									if (addrlen)
-										*addrlen = sizeof(struct sockaddr_in6);
-
-									break;
-
-								default:
-									xpms_set->lprintf(LOG_ERR,"%04d * HAPROXY Unknown Family [%x]",ret,l);
-									closesocket(ret);
-									goto error_return;
-							}
-
-						} else {
-							xpms_set->lprintf(LOG_ERR,"%04d Unknown HAProxy Initialisation - is HAProxy used?",ret);
-							closesocket(ret);
-							goto error_return;
-						}
-
-						hapstr[0] = 0;
-						inet_addrtop(addr, hapstr, sizeof(hapstr));
-						xpms_set->lprintf(LOG_INFO,"%04d * HAPROXY Source [%s]",ret,hapstr);
-
-#ifdef PREFER_POLL
-						free(fds);
-#endif
-						return ret;
-					} else {
-#ifdef PREFER_POLL
-						free(fds);
-#endif
-						return ret;
-					}
-				}
-			}
-	}
-
-error_return:
-#ifdef PREFER_POLL
-	free(fds);
-#endif
-	return INVALID_SOCKET;
-}
diff --git a/xpdev/multisock.h b/xpdev/multisock.h
deleted file mode 100644
index cc7f1c20f0277d7c6787c81f7588da46465ffb37..0000000000000000000000000000000000000000
--- a/xpdev/multisock.h
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef MULTISOCK_H
-#define MULTISOCK_H
-
-#include <limits.h>
-#include "str_list.h"
-#include "wrapdll.h"
-
-struct xpms_sockdef
-{
-	const void* cb_data;
-	int         domain;
-	int         type;
-	int         protocol;
-	SOCKET      sock;
-	char*       address;
-	uint16_t    port;
-	char*       prot;
-};
-
-struct xpms_set {
-	struct xpms_sockdef* socks;
-	int                (*lprintf)(int level, const char *fmt, ...);
-	size_t               sock_count;
-	unsigned int         retries;
-	unsigned int         wait_secs;
-};
-
-#define XPMS_FOREVER	UINT_MAX
-#define XPMS_FLAGS_NONE 0
-#define XPMS_ACCEPT_FLAG_HAPROXY	(1<<0)
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-DLLEXPORT struct xpms_set* xpms_create(unsigned int retries, unsigned int wait_secs,
-	int (*lprintf)(int level, const char *fmt, ...));
-DLLEXPORT void xpms_destroy(struct xpms_set *xpms_set, void (*sock_destroy)(SOCKET, const void *), const void *cbdata);
-DLLEXPORT BOOL xpms_add(struct xpms_set *xpms_set, int domain, int type,
-	int protocol, const char *addr, uint16_t port, const char *prot, 
-	void (*sock_init)(SOCKET, const void *), int(*bind_init)(BOOL), const void *cbdata);
-DLLEXPORT BOOL xpms_add_list(struct xpms_set *xpms_set, int domain, int type,
-	int protocol, str_list_t list, uint16_t default_port, const char *prot, 
-	void (*sock_init)(SOCKET, const void *), int(*bind_init)(BOOL), const void *cbdata);
-DLLEXPORT BOOL xpms_add_chararray_list(struct xpms_set *xpms_set, int domain, int type,
-	int protocol, const char *list, uint16_t default_port, const char *prot,
-	void (*sock_init)(SOCKET, const void *), int(*bind_init)(BOOL), const void *cbdata);
-DLLEXPORT SOCKET xpms_accept(struct xpms_set *, union xp_sockaddr * addr, 
-	socklen_t * addrlen, unsigned int timeout, uint32_t flags, const void **cb_data);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/xpdev/netwrap.c b/xpdev/netwrap.c
deleted file mode 100644
index 87a4ce3531659aadae23841a8d8d52776b5a6bd3..0000000000000000000000000000000000000000
--- a/xpdev/netwrap.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/* netwrap.c */
-
-/* Network related wrapper functions */
-
-/* $Id: netwrap.c,v 1.8 2019/07/24 04:21:42 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include "sockwrap.h"
-#include "genwrap.h"	/* truncsp */
-#include "netwrap.h"	/* verify prototypes */
-
-#include <stdlib.h>		/* malloc() */
-
-#if defined(_WIN32)
-	#include <iphlpapi.h>	/* GetNetworkParams */
-#endif
-
-str_list_t getNameServerList(void)
-{
-#ifdef __unix__	/* Look up DNS server address */
-	FILE*	fp;
-	char*	p;
-	char	str[128];
-	str_list_t	list;
-
-	if((list=strListInit())==NULL)
-		return(NULL);
-	if((fp=fopen("/etc/resolv.conf","r"))!=NULL) {
-		while(!feof(fp)) {
-			if(fgets(str,sizeof(str),fp)==NULL)
-				break;
-			truncsp(str);
-			p=str;
-			SKIP_WHITESPACE(p);
-			if(strnicmp(p,"nameserver",10)!=0) /* no match */
-				continue;
-			FIND_WHITESPACE(p);	/* skip "nameserver" */
-			SKIP_WHITESPACE(p);	/* skip more white-space */
-			strListPush(&list,p);
-		}
-		fclose(fp);
-	}
-	return(list);
-
-#elif defined(_WIN32)
-	FIXED_INFO* FixedInfo=NULL;
-	ULONG    	FixedInfoLen=0;
-	IP_ADDR_STRING* ip;
-	str_list_t	list;
-
-	if((list=strListInit())==NULL)
-		return(NULL);
-	if(GetNetworkParams(FixedInfo,&FixedInfoLen) == ERROR_BUFFER_OVERFLOW) {
-        FixedInfo=(FIXED_INFO*)malloc(FixedInfoLen);
-		if(GetNetworkParams(FixedInfo,&FixedInfoLen) == ERROR_SUCCESS) {
-			ip=&FixedInfo->DnsServerList;
-			for(; ip!=NULL; ip=ip->Next)
-				strListPush(&list,ip->IpAddress.String);
-		}
-        if(FixedInfo!=NULL)
-            free(FixedInfo);
-    }
-	return(list);
-#else
-	#error "Need a get_nameserver() implementation for this platform"
-#endif
-}
-
-const char* getHostNameByAddr(const char* str)
-{
-	HOSTENT*	h;
-	uint32_t	ip;
-
-#ifdef _WIN32
-	WSADATA wsaData;
-	WSAStartup(MAKEWORD(2, 2), &wsaData);
-#endif
-	if(str==NULL)
-		return NULL;
-	if((ip=inet_addr(str)) == INADDR_NONE)
-		return str;
-	if((h=gethostbyaddr((char *)&ip,sizeof(ip),AF_INET))==NULL)
-		return NULL;
-
-#ifdef _WIN32
-	WSACleanup();
-#endif
-
-	return h->h_name;
-}
-
-/* In case we want to DLL-export getNameServerList in the future */
-void freeNameServerList(str_list_t list)
-{
-	strListFree(&list);
-}
-
-#if NETWRAP_TEST
-int main(int argc, char** argv)
-{
-	size_t		i;
-	str_list_t	list;
-
-	if((list=getNameServerList())!=NULL) {
-		for(i=0;list[i]!=NULL;i++)
-			printf("%s\n",list[i]);
-		freeNameServerList(list);
-	}
-
-	if(argc>1)
-		printf("%s\n", getHostNameByAddr(argv[1]));
-	return 0;
-}
-#endif
-
diff --git a/xpdev/netwrap.h b/xpdev/netwrap.h
deleted file mode 100644
index d8fc18f88d0d45538d7e8d2c8e2338787d85e0e9..0000000000000000000000000000000000000000
--- a/xpdev/netwrap.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Network related wrapper functions */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _NETWRAP_H
-#define _NETWRAP_H
-
-#include <stddef.h>		/* size_t */
-#include "str_list.h"	/* string list functions and types */
-#include "wrapdll.h"
-
-#define IPv4_LOCALHOST	0x7f000001U	/* 127.0.0.1 */
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-DLLEXPORT const char* 	getHostNameByAddr(const char*);
-DLLEXPORT str_list_t	getNameServerList(void);
-DLLEXPORT void			freeNameServerList(str_list_t);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/petdefs.h b/xpdev/petdefs.h
deleted file mode 100644
index bdf83ab9873d22f5a9a199cf6d222900afef6337..0000000000000000000000000000000000000000
--- a/xpdev/petdefs.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/* $Id: petdefs.h,v 1.4 2019/07/09 23:54:43 rswindell Exp $ */
-
-/* Commodore/PET definitions */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-#ifndef _PETDEFS_H_
-#define _PETDEFS_H_
-
-enum petscii_char {
-	/* Colors */
-	PETSCII_BLACK		= 144,
-	PETSCII_WHITE		= 5,
-	PETSCII_RED			= 28,
-	PETSCII_GREEN		= 30,
-	PETSCII_BLUE		= 31,
-	PETSCII_ORANGE		= 129,		// Dark purple in 80 column mode
-	PETSCII_BROWN		= 149,		// Dark yellow in 80 column mode
-	PETSCII_YELLOW		= 158,
-	PETSCII_CYAN		= 159,		// Light cyan in 80 column mode
-	PETSCII_LIGHTRED 	= 150,
-	PETSCII_DARKGRAY	= 151,		// Dark cyan in 80 column mode
-	PETSCII_MEDIUMGRAY	= 152,
-	PETSCII_LIGHTGREEN	= 153,
-	PETSCII_LIGHTBLUE	= 154,
-	PETSCII_LIGHTGRAY	= 155,
-	PETSCII_PURPLE		= 156,
-	/* Char-set */
-	PETSCII_UPPERLOWER	= 14,
-	PETSCII_UPPERGRFX	= 142,
-	/* Attributes */
-	PETSCII_FLASH_ON	= 15,
-	PETSCII_FLASH_OFF	= 143,
-	PETSCII_REVERSE_ON	= 18,
-	PETSCII_REVERSE_OFF	= 146,
-	/* Cursor movement */
-	PETSCII_UP			= 145,
-	PETSCII_DOWN		= 17,
-	PETSCII_LEFT		= 157,
-	PETSCII_RIGHT		= 29,
-	PETSCII_HOME		= 19,
-	PETSCII_CLEAR		= 147,
-	PETSCII_INSERT		= 148,
-	PETSCII_DELETE		= 20,
-	PETSCII_CRLF		= 141,
-	/* Symbols (which don't align with ASCII) */
-	PETSCII_BRITPOUND	= 92,
-	/* Graphic chars */
-	PETSCII_UPARROW		= 0x5E,
-	PETSCII_LEFTARROW	= 0x5f,
-	PETSCII_LIGHTHASH	= 0xA6,
-	PETSCII_MEDIUMHASH	= 0xDE,
-	PETSCII_HEAVYHASH	= 0xA9,
-	PETSCII_SOLID		= 0xA0,	// Actually inversed solid (empty)
-	PETSCII_LEFTHALF	= 0xA1,
-	PETSCII_RIGHTHALF	= 0xB6,	// Not quite a full half
-	PETSCII_TOPHALF		= 0xB8,	// Not quite a full half
-	PETSCII_BOTTOMHALF	= 0xA2,
-	PETSCII_CHECKMARK	= 0xBA,
-	PETSCII_CROSS		= 0xDB,
-	PETSCII_HORZLINE	= 0xC0,
-	PETSCII_VERTLINE	= 0xDD,
-	PETSCII_LWRRHTBOX	= 0xAC,
-	PETSCII_LWRLFTBOX	= 0xBB,
-	PETSCII_UPRRHTBOX	= 0xBC,
-	PETSCII_UPRLFTBOX	= 0xBE,
-	PETSCII_CHECKERBRD	= 0xBF,
-	/* Replacement chars (missing ASCII chars) */
-	PETSCII_BACKSLASH	= '/',	// the 109 graphics char is an 'M' in shifted/text mode :-(
-	PETSCII_BACKTICK	= 0xAD,	// a graphics char actually
-	PETSCII_TILDE		= 0xA8,	// a graphics char actually
-	PETSCII_UNDERSCORE	= 0xA4,	// a graphics char actually
-};
-
-#endif /* Don't add anything after this line */
diff --git a/xpdev/sdlfuncs.c b/xpdev/sdlfuncs.c
deleted file mode 100644
index 3eab1578aa558fd7ae7675e7ab4e1746c66ad5f4..0000000000000000000000000000000000000000
--- a/xpdev/sdlfuncs.c
+++ /dev/null
@@ -1,111 +0,0 @@
-#include <stdlib.h>	/* getenv()/exit()/atexit() */
-#include <stdio.h>	/* NULL */
-
-#include <SDL.h>
-#include "gen_defs.h"
-#include "threadwrap.h"
-#include "sdlfuncs.h"
-
-struct sdlfuncs xpbeep_sdl;
-
-/* Make xp_dl do static linking */
-#ifdef STATIC_SDL
-#define STATIC_LINK
-#endif
-#include "xp_dl.h"
-
-static int sdl_funcs_loaded=0;
-static int sdl_initialized=0;
-static int sdl_audio_initialized=0;
-
-int xpbeep_load_sdl_funcs(struct sdlfuncs *sdlf)
-{
-	dll_handle	sdl_dll;
-	const char *libnames[]={"SDL", "SDL-1.2", "SDL-1.1", NULL};
-
-	putenv("SDL_VIDEO_ALLOW_SCREENSAVER=1");
-	sdlf->gotfuncs=0;
-	if((sdl_dll=xp_dlopen(libnames,RTLD_LAZY|RTLD_GLOBAL,SDL_PATCHLEVEL))==NULL)
-		return(-1);
-
-	if((sdlf->Init=xp_dlsym(sdl_dll, SDL_Init))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->Quit=xp_dlsym(sdl_dll, SDL_Quit))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->SemWait=xp_dlsym(sdl_dll, SDL_SemWait))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->SemPost=xp_dlsym(sdl_dll, SDL_SemPost))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->SDL_CreateSemaphore=xp_dlsym(sdl_dll, SDL_CreateSemaphore))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->SDL_DestroySemaphore=xp_dlsym(sdl_dll, SDL_DestroySemaphore))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->InitSubSystem=xp_dlsym(sdl_dll, SDL_InitSubSystem))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->QuitSubSystem=xp_dlsym(sdl_dll, SDL_QuitSubSystem))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->OpenAudio=xp_dlsym(sdl_dll, SDL_OpenAudio))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->CloseAudio=xp_dlsym(sdl_dll, SDL_CloseAudio))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->PauseAudio=xp_dlsym(sdl_dll, SDL_PauseAudio))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->LockAudio=xp_dlsym(sdl_dll, SDL_LockAudio))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->UnlockAudio=xp_dlsym(sdl_dll, SDL_UnlockAudio))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	if((sdlf->GetAudioStatus=xp_dlsym(sdl_dll, SDL_GetAudioStatus))==NULL) {
-		xp_dlclose(sdl_dll);
-		return(-1);
-	}
-	sdlf->gotfuncs=1;
-	sdl_funcs_loaded=1;
-	return(0);
-}
-
-int init_sdl_audio(void)
-{
-	if (!sdl_funcs_loaded) {
-		if (xpbeep_load_sdl_funcs(&xpbeep_sdl) != 0)
-			return -1;
-	}
-	if(!sdl_initialized) {
-		if(xpbeep_sdl.Init(0)==0)
-			sdl_initialized=TRUE;
-		else
-			return(-1);
-	}
-	if(sdl_audio_initialized)
-		return(0);
-	if(xpbeep_sdl.InitSubSystem(SDL_INIT_AUDIO)==0) {
-		sdl_audio_initialized=TRUE;
-		return(0);
-	}
-	return(-1);
-}
diff --git a/xpdev/sdlfuncs.h b/xpdev/sdlfuncs.h
deleted file mode 100644
index f2eaf34192a73912e9032debd87066a6562d3dd6..0000000000000000000000000000000000000000
--- a/xpdev/sdlfuncs.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef _SDLFUNCS_H_
-#define _SDLFUNCS_H_
-
-#include "SDL.h"
-#include "SDL_audio.h"
-#include "SDL_thread.h"
-#include "SDL_syswm.h"
-
-struct sdlfuncs {
-	int	(*Init)	(Uint32 flags);
-	void	(*Quit)	(void);
-	int	(*SemWait)	(SDL_sem *sem);
-	int	(*SemPost)	(SDL_sem *sem);
-	SDL_sem *(*SDL_CreateSemaphore)	(Uint32 initial_value);
-	void (*SDL_DestroySemaphore)	(SDL_sem *semaphore);
-	int (*InitSubSystem)(Uint32 flags);
-	void (*QuitSubSystem)(Uint32 flags);
-	int (*OpenAudio)(SDL_AudioSpec *desired, SDL_AudioSpec *obtained);
-	void (*CloseAudio)(void);
-	void (*LockAudio)(void);
-	void (*UnlockAudio)(void);
-	void (*PauseAudio)(int pause_on);
-	SDL_AudioStatus (*GetAudioStatus)(void);
-	int	gotfuncs;
-};
-
-extern struct sdlfuncs	xpbeep_sdl;
-extern SDL_sem *sdl_exit_sem;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-int load_sdl_funcs(struct sdlfuncs *sdlf);
-int init_sdl_audio(void);
-int SDL_main_env(int argc, char *argv[], char **env);
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/xpdev/semfile.c b/xpdev/semfile.c
deleted file mode 100644
index 5b17cb940773b1df94d95bafe06c08d2e8f64565..0000000000000000000000000000000000000000
--- a/xpdev/semfile.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/* semfile.c */
-
-/* $Id: semfile.c,v 1.8 2019/07/24 04:11:23 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This program 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; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU General Public License for more details: gpl.txt or			*
- * http://www.fsf.org/copyleft/gpl.html										*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <string.h>
-
-#include "semfile.h"
-#include "filewrap.h"
-#include "dirwrap.h"
-#include "genwrap.h"
-
-#if !defined(NO_SOCKET_SUPPORT)
-	#include "sockwrap.h"
-#endif
-
-/****************************************************************************/
-/* This function compares a single semaphore file's							*/
-/* date/time stamp (if the file exists) against the passed time stamp (t)	*/
-/* updating the time stamp to the latest dated semaphore file and returning	*/
-/* TRUE if any where newer than the initial value.							*/
-/****************************************************************************/
-BOOL semfile_check(time_t* t, const char* fname)
-{
-	time_t	ft;
-
-	if(*t==0)	/* uninitialized */
-		*t=time(NULL);
-
-	if((ft=fdate(fname))==-1 || ft<=*t)
-		return(FALSE);
-
-	*t=ft;
-	return(TRUE);
-}
-
-/****************************************************************************/
-/* This function goes through a list of semaphore files, comparing the file	*/
-/* date/time stamp (if the file exists) against the passed time stamp (t)	*/
-/* updating the time stamp to the latest dated semaphore file and returning	*/
-/* a pointer to the filename if any where newer than the initial timestamp.	*/
-/****************************************************************************/
-char* semfile_list_check(time_t* t, str_list_t filelist)
-{
-	char*	signaled=NULL;
-	size_t		i;
-
-	for(i=0;filelist[i]!=NULL;i++)
-		if(semfile_check(t, filelist[i]))
-			signaled = filelist[i];
-
-	return(signaled);
-}
-
-str_list_t semfile_list_init(const char* parent, 
-							   const char* action, const char* service)
-{
-	char	path[MAX_PATH+1];
-	char	hostname[128];
-	char*	p;
-	str_list_t	list;
-
-	if((list=strListInit())==NULL)
-		return(NULL);
-	SAFEPRINTF2(path,"%s%s",parent,action);
-	strListPush(&list,path);
-	SAFEPRINTF3(path,"%s%s.%s",parent,action,service);
-	strListPush(&list,path);
-#if !defined(NO_SOCKET_SUPPORT)
-	if(gethostname(hostname,sizeof(hostname))==0) {
-		SAFEPRINTF3(path,"%s%s.%s",parent,action,hostname);
-		strListPush(&list,path);
-		SAFEPRINTF4(path,"%s%s.%s.%s",parent,action,hostname,service);
-		strListPush(&list,path);
-		if((p=strchr(hostname,'.'))!=NULL) {
-			*p=0;
-			SAFEPRINTF3(path,"%s%s.%s",parent,action,hostname);
-			strListPush(&list,path);
-			SAFEPRINTF4(path,"%s%s.%s.%s",parent,action,hostname,service);
-			strListPush(&list,path);
-		}
-	}
-#endif
-	return(list);
-}
-
-void semfile_list_add(str_list_t* filelist, const char* path)
-{
-	strListPush(filelist, path);
-}
-
-void semfile_list_free(str_list_t* filelist)
-{
-	strListFree(filelist);
-}
-
-BOOL semfile_signal(const char* fname, const char* text)
-{
-	int file;
-	struct utimbuf ut;
-#if !defined(NO_SOCKET_SUPPORT)
-	char hostname[128];
-
-	if(text==NULL && gethostname(hostname,sizeof(hostname))==0)
-		text=hostname;
-#endif
-	if((file=open(fname,O_CREAT|O_WRONLY, DEFFILEMODE))<0)	/* use sopen instead? */
-		return(FALSE);
-	if(text!=NULL)
-		write(file,text,strlen(text));
-	close(file);
-
-	/* update the time stamp */
-	ut.actime = ut.modtime = time(NULL);
-	return utime(fname, &ut)==0;
-}
diff --git a/xpdev/semfile.h b/xpdev/semfile.h
deleted file mode 100644
index 1b73d1b7d5bffe1970cdc26d045649365e5487dc..0000000000000000000000000000000000000000
--- a/xpdev/semfile.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Semaphore file functions */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _SEMFILE_H
-#define _SEMFILE_H
-
-#include <time.h>		/* time_t */
-#include "str_list.h"	/* string list functions and types */
-#include "wrapdll.h"	/* DLLEXPORT */
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/* semfile.c */
-DLLEXPORT BOOL		semfile_signal(const char* fname, const char* text);
-DLLEXPORT BOOL		semfile_check(time_t* t, const char* fname);
-DLLEXPORT char*		semfile_list_check(time_t* t, str_list_t filelist);
-DLLEXPORT str_list_t	
-					semfile_list_init(const char* parent, const char* action
-												,const char* service);
-DLLEXPORT void		semfile_list_add(str_list_t* filelist, const char* fname);
-DLLEXPORT void		semfile_list_free(str_list_t* filelist);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/semwrap.c b/xpdev/semwrap.c
deleted file mode 100644
index daad53883c243fd0ab25c28d6d7e528906310dc9..0000000000000000000000000000000000000000
--- a/xpdev/semwrap.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/* semwrap.c */
-
-/* Semaphore-related cross-platform development wrappers */
-
-/* $Id: semwrap.c,v 1.15 2018/07/24 01:13:09 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <errno.h>
-#include "semwrap.h"
-
-#if defined(__unix__)
-
-#include <sys/time.h>	/* timespec */
-#include <stdlib.h>	/* NULL */
-
-int
-sem_trywait_block(sem_t *sem, unsigned long timeout)
-{
-	int	retval;
-	struct timespec abstime;
-	struct timeval currtime;
-	
-	gettimeofday(&currtime,NULL);
-	abstime.tv_sec=currtime.tv_sec + (currtime.tv_usec/1000 + timeout)/1000;
-	abstime.tv_nsec=(currtime.tv_usec*1000 + timeout*1000000)%1000000000;
-
-	retval=sem_timedwait(sem, &abstime);
-	if(retval && errno==ETIMEDOUT)
-		errno=EAGAIN;
-	return retval;
-}
-
-#elif defined(_WIN32)
-
-#include <limits.h>		/* INT_MAX */
-
-#if defined(__BORLANDC__)
-	#pragma argsused
-#endif
-int sem_init(sem_t* psem, int pshared, unsigned int value)
-{
-
-	if((*(psem)=CreateSemaphore(NULL,value,INT_MAX,NULL))==NULL)
-		return -1;
-		
-	return 0;
-}
-
-int sem_trywait_block(sem_t* psem, unsigned long timeout)
-{
-	if(WaitForSingleObject(*(psem),timeout)!=WAIT_OBJECT_0) {
-		errno=EAGAIN;
-		return -1;
-	}
-
-	return 0;
-}
-
-int sem_post(sem_t* psem)
-{
-	if(ReleaseSemaphore(*(psem),1,NULL)==TRUE)
-		return 0;
-
-	return -1;
-}
-
-int sem_getvalue(sem_t* psem, int* vp)
-{
-#if 0		/* This only works on 9x *sniff* */
-	ReleaseSemaphore(*(psem),0,(LPLONG)vp);
-	return 0;
-#else
-	/* Note, this should REALLY be in a critical section... */
-	int	retval=0;
-
-	if(WaitForSingleObject(*(psem),0)!=WAIT_OBJECT_0)
-		*vp=0;
-	else {
-		if(ReleaseSemaphore(*(psem),1,(LPLONG)vp))
-			(*vp)++;
-		else
-			retval=-1;
-	}
-	return(retval);
-#endif
-}
-
-int sem_destroy(sem_t* psem)
-{
-	if(CloseHandle(*(psem))==TRUE)
-		return 0;
-	return -1;
-}
-
-#endif /* _WIN32 */
diff --git a/xpdev/semwrap.h b/xpdev/semwrap.h
deleted file mode 100644
index 17cae498a634d26854e716061fe837af87963ce4..0000000000000000000000000000000000000000
--- a/xpdev/semwrap.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/* Semaphore-related cross-platform development wrappers */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _SEMWRAP_H
-#define _SEMWRAP_H
-
-#include "gen_defs.h"
-#include "wrapdll.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#if defined(__unix__)
-	#if defined(USE_XP_SEMAPHORES)
-		#include "xpsem.h"
-		#define 	sem_init(x, y, z)	xp_sem_init(x, y, z)
-		#define 	sem_destroy(x)		xp_sem_destroy(x)
-		#define 	sem_close(x)		xp_sem_close(x)
-		#define 	sem_unlink(x)		xp_sem_unlink(x)
-		#define 	sem_wait(x)			xp_sem_wait(x)
-		#define 	sem_trywait(x)		xp_sem_trywait(x)
-		#define 	sem_post(x)			xp_sem_post(x)
-		#define 	sem_getvalue(x,y)		xp_sem_getvalue(x,y)
-		#define		sem_timedwait(x,y)	xp_sem_timedwait(x,y)
-		#define		sem_t				xp_sem_t
-	#else
-		#include <semaphore.h>	/* POSIX semaphores */
-	#endif
-
-#elif defined(_WIN32)	
-
-	#include <process.h>	/* _beginthread */
-
-	/* POSIX semaphores */
-	typedef HANDLE sem_t;
-	DLLEXPORT int sem_init(sem_t*, int pshared, unsigned int value);
-	DLLEXPORT int sem_post(sem_t*);
-	DLLEXPORT int sem_getvalue(sem_t*, int* value);
-	DLLEXPORT int sem_destroy(sem_t*);
-	#define sem_wait(psem)				sem_trywait_block(psem,INFINITE)
-	#define sem_trywait(psem)			sem_trywait_block(psem,0)
-
-#elif defined(__OS2__)	/* These have *not* been tested! */
-
-	/* POSIX semaphores */
-	typedef HEV sem_t;
-	#define	sem_init(psem,ps,v)			DosCreateEventSem(NULL,psem,0,0);
-	#define sem_wait(psem)				DosWaitEventSem(*(psem),-1)
-	#define sem_post(psem)				DosPostEventSem(*(psem))
-	#define sem_destroy(psem)			DosCloseEventSem(*(psem))
-
-#else
-
-	#error "Need semaphore wrappers."
-
-#endif
-
-/* NOT POSIX */
-DLLEXPORT int sem_trywait_block(sem_t* psem, unsigned long timeout);
-
-
-/* Change semaphore to "unsignaled" (NOT POSIX) */
-#ifdef USE_XP_SEMAPHORES
-#define	sem_reset(psem)					xp_sem_setvalue((psem), 0)
-#else
-#define sem_reset(psem)					while(sem_trywait(psem)==0)
-#endif
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/sockwrap.c b/xpdev/sockwrap.c
deleted file mode 100644
index 42ae2c8198ec1161847528836c611050321ca8f1..0000000000000000000000000000000000000000
--- a/xpdev/sockwrap.c
+++ /dev/null
@@ -1,844 +0,0 @@
-/* Berkley/WinSock socket API wrappers */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This program 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; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU General Public License for more details: gpl.txt or			*
- * http://www.fsf.org/copyleft/gpl.html										*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <stdlib.h>		/* alloca/free on FreeBSD */
-#include <string.h>		/* bzero (for FD_ZERO) on FreeBSD */
-#include <errno.h>		/* ENOMEM */
-#include <stdio.h>		/* SEEK_SET */
-#include <string.h>
-#if defined(_WIN32)
- #include <malloc.h>	/* alloca() on Win32 */
-#endif
-
-#include "genwrap.h"	/* SLEEP */
-#include "gen_defs.h"	/* BOOL/LOG_WARNING */
-#include "sockwrap.h"	/* sendsocket */
-#include "filewrap.h"	/* filelength */
-
-static socket_option_t socket_options[] = {
-	{ "TYPE",				0,				SOL_SOCKET,		SO_TYPE				},
-	{ "ERROR",				0,				SOL_SOCKET,		SO_ERROR			},
-	{ "DEBUG",				0,				SOL_SOCKET,		SO_DEBUG			},
-	{ "LINGER",				SOCK_STREAM,	SOL_SOCKET,		SO_LINGER			},
-	{ "SNDBUF",				0,				SOL_SOCKET,		SO_SNDBUF			},
-	{ "RCVBUF",				0,				SOL_SOCKET,		SO_RCVBUF			},
-
-#ifndef _WINSOCKAPI_	/* Defined, but not supported, by WinSock */
-	{ "SNDLOWAT",			0,				SOL_SOCKET,		SO_SNDLOWAT			},
-	{ "RCVLOWAT",			0,				SOL_SOCKET,		SO_RCVLOWAT			},
-	{ "SNDTIMEO",			0,				SOL_SOCKET,		SO_SNDTIMEO			},
-	{ "RCVTIMEO",			0,				SOL_SOCKET,		SO_RCVTIMEO			},
-#ifdef SO_USELOOPBACK	/* SunOS */
-	{ "USELOOPBACK",		0,				SOL_SOCKET,		SO_USELOOPBACK		},
-#endif
-#endif
-
-	{ "REUSEADDR",			0,				SOL_SOCKET,		SO_REUSEADDR		},	
-#ifdef SO_REUSEPORT	/* BSD */
-	{ "REUSEPORT",			0,				SOL_SOCKET,		SO_REUSEPORT		},	
-#endif
-#ifdef SO_EXCLUSIVEADDRUSE /* WinSock */
-	{ "EXCLUSIVEADDRUSE",	0,				SOL_SOCKET,		SO_EXCLUSIVEADDRUSE },
-#endif
-	{ "KEEPALIVE",			SOCK_STREAM,	SOL_SOCKET,		SO_KEEPALIVE		},
-	{ "DONTROUTE",			0,				SOL_SOCKET,		SO_DONTROUTE		},
-	{ "BROADCAST",			SOCK_DGRAM,		SOL_SOCKET,		SO_BROADCAST		},
-	{ "OOBINLINE",			SOCK_STREAM,	SOL_SOCKET,		SO_OOBINLINE		},
-
-#ifdef SO_ACCEPTCONN											
-	{ "ACCEPTCONN",			SOCK_STREAM,	SOL_SOCKET,		SO_ACCEPTCONN		},
-#endif
-#ifdef SO_PRIORITY		/* Linux */
-	{ "PRIORITY",			0,				SOL_SOCKET,		SO_PRIORITY			},
-#endif
-#ifdef SO_NO_CHECK		/* Linux */
-	{ "NO_CHECK",			0,				SOL_SOCKET,		SO_NO_CHECK			},
-#endif
-#ifdef SO_PROTOTYPE		/* SunOS */
-	{ "PROTOTYPE",			0,				SOL_SOCKET,		SO_PROTOTYPE		},
-#endif
-#ifdef SO_MAX_MSG_SIZE	/* WinSock2 */
-	{ "MAX_MSG_SIZE",		SOCK_DGRAM,		SOL_SOCKET,		SO_MAX_MSG_SIZE		},
-#endif
-#ifdef SO_CONNECT_TIME	/* WinSock2 */
-	{ "CONNECT_TIME",		SOCK_STREAM,	SOL_SOCKET,		SO_CONNECT_TIME		},
-#endif
-
-	/* IPPROTO-level socket options */
-	{ "TCP_NODELAY",		SOCK_STREAM,	IPPROTO_TCP,	TCP_NODELAY			},
-	/* The following are platform-specific */					
-#ifdef TCP_MAXSEG											
-	{ "TCP_MAXSEG",			SOCK_STREAM,	IPPROTO_TCP,	TCP_MAXSEG			},
-#endif															
-#ifdef TCP_CORK													
-	{ "TCP_CORK",			SOCK_STREAM,	IPPROTO_TCP,	TCP_CORK			},
-#endif															
-#ifdef TCP_KEEPIDLE												
-	{ "TCP_KEEPIDLE",		SOCK_STREAM,	IPPROTO_TCP,	TCP_KEEPIDLE		},
-#endif															
-#ifdef TCP_KEEPINTVL											
-	{ "TCP_KEEPINTVL",		SOCK_STREAM,	IPPROTO_TCP,	TCP_KEEPINTVL		},
-#endif															
-#ifdef TCP_KEEPCNT												
-	{ "TCP_KEEPCNT",		SOCK_STREAM,	IPPROTO_TCP,	TCP_KEEPCNT			},
-#endif															
-#ifdef TCP_KEEPALIVE	/* SunOS */
-	{ "TCP_KEEPALIVE",		SOCK_STREAM,	IPPROTO_TCP,	TCP_KEEPALIVE		},
-#endif															
-#ifdef TCP_SYNCNT												
-	{ "TCP_SYNCNT",			SOCK_STREAM,	IPPROTO_TCP,	TCP_SYNCNT			},
-#endif															
-#ifdef TCP_LINGER2												
-	{ "TCP_LINGER2",		SOCK_STREAM,	IPPROTO_TCP,	TCP_LINGER2			},
-#endif														
-#ifdef TCP_DEFER_ACCEPT										
-	{ "TCP_DEFER_ACCEPT",	SOCK_STREAM,	IPPROTO_TCP,	TCP_DEFER_ACCEPT	},
-#endif															
-#ifdef TCP_WINDOW_CLAMP											
-	{ "TCP_WINDOW_CLAMP",	SOCK_STREAM,	IPPROTO_TCP,	TCP_WINDOW_CLAMP	},
-#endif														
-#ifdef TCP_QUICKACK											
-	{ "TCP_QUICKACK",		SOCK_STREAM,	IPPROTO_TCP,	TCP_QUICKACK		},
-#endif						
-#ifdef TCP_NOPUSH			
-	{ "TCP_NOPUSH",			SOCK_STREAM,	IPPROTO_TCP,	TCP_NOPUSH			},
-#endif						
-#ifdef TCP_NOOPT			
-	{ "TCP_NOOPT",			SOCK_STREAM,	IPPROTO_TCP,	TCP_NOOPT			},
-#endif
-#if defined(IPV6_V6ONLY) && defined(IPPROTO_IPV6)
-	{ "IPV6_V6ONLY",		0,				IPPROTO_IPV6,	IPV6_V6ONLY			},
-#endif
-	{ NULL }
-};
-
-int getSocketOptionByName(const char* name, int* level)
-{
-	int i;
-
-	if(level!=NULL)
-		*level=SOL_SOCKET;	/* default option level */
-	for(i=0;socket_options[i].name;i++) {
-		if(stricmp(name,socket_options[i].name)==0) {
-			if(level!=NULL)
-				*level = socket_options[i].level;
-			return(socket_options[i].value);
-		}
-	}
-	if(!IS_DIGIT(*name))	/* unknown option name */
-		return(-1);
-	return(strtol(name,NULL,0));
-}
-
-socket_option_t* getSocketOptionList(void)
-{
-	return(socket_options);
-}
-
-off_t sendfilesocket(int sock, int file, off_t *offset, off_t count)
-{
-	char		buf[1024*16];
-	off_t		len;
-	ssize_t		rd;
-	ssize_t		wr=0;
-	off_t		total=0;
-	ssize_t		i;
-
-/* sendfile() on Linux may or may not work with non-blocking sockets ToDo */
-	len=filelength(file);
-
-	if(offset!=NULL)
-		if(lseek(file,*offset,SEEK_SET)<0)
-			return(-1);
-
-	if(count<1 || count>len) {
-		count=len;
-		count-=tell(file);		/* don't try to read beyond EOF */
-	}
-#if USE_SENDFILE
-	while((i=sendfile(file,sock,(offset==NULL?0:*offset)+total,count-total,NULL,&wr,0))==-1 && errno==EAGAIN)  {
-		total+=wr;
-		SLEEP(1);
-	}
-	if(i==0)
-		return(count);
-#endif
-
-	if(count<0) {
-		errno=EINVAL;
-		return(-1);
-	}
-
-	while(total<count) {
-		rd=read(file,buf,sizeof(buf));
-		if(rd==-1)
-			return(-1);
-		if(rd==0)
-			break;
-		for(i=wr=0;i<rd;i+=wr) {
-			wr=sendsocket(sock,buf+i,rd-i);
-			if(wr>0)
-				continue;
-			if(wr==SOCKET_ERROR && ERROR_VALUE==EWOULDBLOCK) {
-				wr=0;
-				SLEEP(1);
-				continue;
-			}
-			return(wr);
-		}
-		if(i!=rd)
-			return(-1);
-		total+=rd;
-	}
-
-	if(offset!=NULL)
-		(*offset)+=total;
-
-	return(total);
-}
-
-off_t recvfilesocket(int sock, int file, off_t *offset, off_t count)
-{
-	/* Writes a file from a socket -
-	 *
-	 * sock		- Socket to read from
-	 * file		- File descriptior to write to
-	 *				MUST be open and writeable
-	 * offset	- pointer to file offset to start writing at
-	 *				is set to offset writing STOPPED
-	 *				on return
-	 * count	- number of bytes to read/write
-	 *
-	 * returns -1 if an error occurse, otherwise
-	 * returns number ob bytes written and sets offset
-	 * to the new offset
-	 */
-	 
-	char*	buf;
-	ssize_t	rd;
-	ssize_t	wr;
-
-	if(count<1) {
-		errno=ERANGE;
-		return(-1);
-	}
-		
-	if((buf=(char*)malloc((size_t)count))==NULL) {
-		errno=ENOMEM;
-		return(-1);
-	}
-
-	if(offset!=NULL) {
-		if(lseek(file,*offset,SEEK_SET)<0) {
-			free(buf);
-			return(-1);
-		}
-	}
-
-	rd=read(sock,buf,(size_t)count);
-	if(rd!=count) {
-		free(buf);
-		return(-1);
-	}
-
-	wr=write(file,buf,rd);
-
-	if(offset!=NULL)
-		(*offset)+=wr;
-
-	free(buf);
-	return(wr);
-}
-
-
-/* Return true if connected, optionally sets *rd_p to true if read data available */
-/*
- * The exact conditions where rd_p is set to TRUE and the return value
- * is true or false are complex, but the intent appears to be as follows:
- *
- * If the remote has half-closed the socket, rd_p should be FALSE and
- * the function should return FALSE, unless rd_p is NULL in which case
- * the function should return TRUE.  wr_p will indicate that transmit
- * buffers are available.
- *
- * If we have half-closed the socket, wr_p should be TRUE, the function
- * should return TRUE, and rd_p will indicate if there is data available
- * to be received.
- *
- * If the socket is completely closed, wr_p should be TRUE, rd_p should be
- * FALSE, and the function should return FALSE, unless rd_p is NULL in which
- * case, the function should return TRUE.
- *
- * When the function is open in both directions, wr_p will indicate transmit
- * buffers are available, rd_p will indicate data is available to be recv()ed
- * and the return value should be TRUE.
- *
- * If the socket is invalid, rd_p should be FALSE, wr_p should be FALSE, and
- * the function should return FALSE.
- *
- * These rules have various exceptions when errors are returned by select(),
- * poll(), or recv(), which will generally cause a FALSE return with rd_p
- * being FALSE and wr_p being FALSE if select/poll failed, or indicating
- * available write buffers otherwise.
- */
-BOOL socket_check(SOCKET sock, BOOL* rd_p, BOOL* wr_p, DWORD timeout)
-{
-#ifdef PREFER_POLL
-	struct pollfd pfd = {0};
-	int j, rd;
-	char ch;
-
-	if(rd_p!=NULL)
-		*rd_p=FALSE;
-
-	if(wr_p!=NULL)
-		*wr_p=FALSE;
-
-	if(sock==INVALID_SOCKET)
-		return(FALSE);
-
-	pfd.fd = sock;
-	pfd.events = POLLIN | POLLHUP;
-	if (wr_p != NULL)
-		pfd.events |= POLLOUT;
-
-	j = poll(&pfd, 1, timeout);
-
-	if (j == 0)
-		return TRUE;
-
-	if (j == 1) {
-		if (wr_p != NULL && (pfd.revents & POLLOUT)) {
-			*wr_p = TRUE;
-			if (rd_p == NULL)
-				return TRUE;
-		}
-
-		if (pfd.revents & (POLLERR | POLLNVAL | POLLHUP))
-			return FALSE;
-
-		if(pfd.revents & ~(POLLOUT) && (rd_p !=NULL || wr_p==NULL))  {
-			rd=recv(sock,&ch,1,MSG_PEEK);
-			if(rd==1 || (rd==SOCKET_ERROR && ERROR_VALUE==EMSGSIZE)) {
-				if(rd_p!=NULL)
-					*rd_p=TRUE;
-				return TRUE;
-			}
-		}
-		return FALSE;
-	}
-
-	if (j == -1) {
-		if (errno == EINTR || errno == ENOMEM)
-			return TRUE;
-	}
-
-	return FALSE;
-#else
-	char	ch;
-	int		i,rd;
-	fd_set	rd_set;
-	fd_set*	rd_set_p=&rd_set;
-	fd_set	wr_set;
-	fd_set*	wr_set_p=NULL;
-	struct	timeval tv;
-
-	if(rd_p!=NULL)
-		*rd_p=FALSE;
-
-	if(wr_p!=NULL)
-		*wr_p=FALSE;
-
-	if(sock==INVALID_SOCKET)
-		return(FALSE);
-
-	FD_ZERO(&rd_set);
-	FD_SET(sock,&rd_set);
-	if(wr_p!=NULL) {
-		wr_set_p=&wr_set;
-		FD_ZERO(wr_set_p);
-		FD_SET(sock,wr_set_p);
-		if(rd_p==NULL)
-			rd_set_p=NULL;
-	}
-
-	/* Convert timeout from ms to sec/usec */
-	tv.tv_sec=timeout/1000;
-	tv.tv_usec=(timeout%1000)*1000;
-
-	i=select(sock+1,rd_set_p,wr_set_p,NULL,&tv);
-	if(i==SOCKET_ERROR)
-		return(FALSE);
-
-	if(i==0) 
-		return(TRUE);
-
-	if(wr_p!=NULL && FD_ISSET(sock,wr_set_p)) {
-		*wr_p=TRUE;
-		if(i==1)
-			return(TRUE);
-	}
-
-	if(rd_p !=NULL || wr_p==NULL)  {
-		rd=recv(sock,&ch,1,MSG_PEEK);
-		if(rd==1 
-			|| (rd==SOCKET_ERROR && ERROR_VALUE==EMSGSIZE)) {
-			if(rd_p!=NULL)
-				*rd_p=TRUE;
-			return(TRUE);
-		}
-	}
-
-	return(FALSE);
-#endif
-}
-
-/*
- * Return TRUE if recv() will not block on socket
- * Will block for timeout ms or forever if timeout is negative
- *
- * This means it will return true if recv() will return an error
- * as well as if the socket is closed (and recv() will return 0)
- */
-BOOL socket_readable(SOCKET sock, int timeout)
-{
-#ifdef PREFER_POLL
-	struct pollfd pfd = {0};
-	pfd.fd = sock;
-	pfd.events = POLLIN;
-
-	if (poll(&pfd, 1, timeout) == 1)
-		return TRUE;
-	return FALSE;
-#else
-	fd_set rd_set;
-	struct timeval tv = {0};
-	struct timeval *tvp = &tv;
-
-	FD_ZERO(&rd_set);
-	FD_SET(sock, &rd_set);
-	if (timeout < 0)
-		tvp = NULL;
-	else {
-		tv.tv_sec = timeout / 1000;
-		tv.tv_usec = (timeout % 1000) * 1000;
-	}
-
-	switch (select(sock+1, &rd_set, NULL, NULL, tvp)) {
-		case 0:		// Nothing to read
-			return FALSE;
-		case 1:
-			return TRUE;
-	}
-	// Errors and unexpected cases
-	return TRUE;
-#endif
-}
-
-/*
- * Return TRUE if send() will not block on socket
- * Will block for timeout ms or forever if timeout is negative
- *
- * This means it will return true if send() will return an error
- * as well as if the socket is closed (and send() will return 0)
- */
-BOOL socket_writable(SOCKET sock, int timeout)
-{
-#ifdef PREFER_POLL
-	struct pollfd pfd = {0};
-	pfd.fd = sock;
-	pfd.events = POLLOUT;
-
-	if (poll(&pfd, 1, timeout) == 1)
-		return TRUE;
-	return FALSE;
-#else
-	fd_set wr_set;
-	struct timeval tv = {0};
-	struct timeval *tvp = &tv;
-
-	FD_ZERO(&wr_set);
-	FD_SET(sock, &wr_set);
-	if (timeout < 0)
-		tvp = NULL;
-	else {
-		tv.tv_sec = timeout / 1000;
-		tv.tv_usec = (timeout % 1000) * 1000;
-	}
-
-	switch (select(sock+1, NULL, &wr_set, NULL, tvp)) {
-		case 0:		// Nothing to read
-			return FALSE;
-		case 1:
-			return TRUE;
-	}
-	// Errors and unexpected cases
-	return TRUE;
-#endif
-}
-
-/*
- * Return TRUE if recv() will not block and will return zero
- * or an error. This is *not* a test if a socket is
- * disconnected, but rather that it is disconnected *AND* all
- * data has been recv()ed.
- */
-BOOL socket_recvdone(SOCKET sock, int timeout)
-{
-#ifdef PREFER_POLL
-	struct pollfd pfd = {0};
-	pfd.fd = sock;
-	pfd.events = POLLIN;
-	char ch;
-	int rd;
-
-	switch (poll(&pfd, 1, timeout)) {
-		case 1:
-			if (pfd.revents) {
-				rd = recv(sock,&ch,1,MSG_PEEK);
-				if (rd == 1 || (rd==SOCKET_ERROR && ERROR_VALUE==EMSGSIZE))
-					return FALSE;
-				return TRUE;
-			}
-			return FALSE;
-		case -1:
-			if (errno == EINTR || errno == ENOMEM)
-				return FALSE;
-			return TRUE;
-	}
-	return FALSE;
-#else
-	fd_set rd_set;
-	struct timeval tv = {0};
-	struct timeval *tvp = &tv;
-	char ch;
-	int rd;
-
-	FD_ZERO(&rd_set);
-	FD_SET(sock, &rd_set);
-	if (timeout < 0)
-		tvp = NULL;
-	else {
-		tv.tv_sec = timeout / 1000;
-		tv.tv_usec = (timeout % 1000) * 1000;
-	}
-
-	switch (select(sock+1, &rd_set, NULL, NULL, tvp)) {
-		case -1:	// Error, call this disconnected
-			return TRUE;
-		case 0:		// Nothing to read
-			return FALSE;
-	}
-	rd = recv(sock,&ch,1,MSG_PEEK);
-	if (rd == 1 || (rd==SOCKET_ERROR && ERROR_VALUE==EMSGSIZE))
-		return FALSE;
-	return TRUE;
-#endif
-}
-
-int retry_bind(SOCKET s, const struct sockaddr *addr, socklen_t addrlen
-			   ,uint retries, uint wait_secs
-			   ,const char* prot
-			   ,int (*lprintf)(int level, const char *fmt, ...))
-{
-	char	port_str[128];
-	char	err[256];
-	int		result=-1;
-	uint	i;
-
-	if(addr->sa_family==AF_INET)
-		SAFEPRINTF(port_str," to port %u",ntohs(((SOCKADDR_IN *)(addr))->sin_port));
-	else
-		port_str[0]=0;
-	for(i=0;i<=retries;i++) {
-		if((result=bind(s,addr,addrlen))==0)
-			break;
-		if(lprintf!=NULL)
-			lprintf(i<retries ? LOG_WARNING:LOG_CRIT
-				,"%04d !ERROR %d binding %s socket%s: %s", s, ERROR_VALUE, prot, port_str, socket_strerror(socket_errno, err, sizeof(err)));
-		if(i<retries) {
-			if(lprintf!=NULL)
-				lprintf(LOG_WARNING,"%04d Will retry in %u seconds (%u of %u)"
-					,s, wait_secs, i+1, retries);
-			SLEEP(wait_secs*1000);
-		}
-	}
-	return(result);
-}
-
-int nonblocking_connect(SOCKET sock, struct sockaddr* addr, size_t size, unsigned timeout)
-{
-	int result;
-	socklen_t optlen;
-
-	result=connect(sock, addr, size);
-
-	if(result==SOCKET_ERROR) {
-		result=ERROR_VALUE;
-		if(result==EWOULDBLOCK || result==EINPROGRESS) {
-			if (socket_writable(sock, timeout * 1000)) {
-				result = 0;
-			}
-			else {
-				optlen = sizeof(result);
-				if(getsockopt(sock, SOL_SOCKET, SO_ERROR, (void*)&result, &optlen)==SOCKET_ERROR)
-					result=ERROR_VALUE;
-			}
-		}
-	}
-	return result;
-}
-
-
-union xp_sockaddr* inet_ptoaddr(const char *addr_str, union xp_sockaddr *addr, size_t size)
-{
-    struct addrinfo hints = {0};
-    struct addrinfo *res, *cur;
-
-    hints.ai_flags = AI_NUMERICHOST|AI_PASSIVE;
-    if(getaddrinfo(addr_str, NULL, &hints, &res))
-        return NULL;
-    
-    for(cur = res; cur; cur = cur->ai_next) {
-        if(cur->ai_addr->sa_family == AF_INET6)
-            break;
-        if(cur->ai_addr->sa_family == AF_INET)
-            break;
-    }
-    if(!cur) {
-        freeaddrinfo(res);
-        return NULL;
-    }
-    if (size < sizeof(struct sockaddr_in6)) {
-        freeaddrinfo(res);
-        return NULL;
-	}
-	size = sizeof(struct sockaddr_in6);
-    memcpy(addr, ((struct sockaddr_in6 *)(cur->ai_addr)), size);
-    freeaddrinfo(res);
-    return addr;
-}
-
-const char* inet_addrtop(union xp_sockaddr *addr, char *dest, size_t size)
-{
-#ifdef _WIN32
-	if(getnameinfo(&addr->addr, xp_sockaddr_len(addr), dest, size, NULL, 0, NI_NUMERICHOST))
-		safe_snprintf(dest, size, "<Error %u converting address, family=%u>", WSAGetLastError(), addr->addr.sa_family);
-	return dest;
-#else
-	switch(addr->addr.sa_family) {
-		case AF_INET:
-			return inet_ntop(addr->in.sin_family, &addr->in.sin_addr, dest, size);
-		case AF_INET6:
-			return inet_ntop(addr->in6.sin6_family, &addr->in6.sin6_addr, dest, size);
-		case AF_UNIX:
-			strncpy(dest, addr->un.sun_path, size);
-			dest[size-1]=0;
-			return dest;
-		default:
-			safe_snprintf(dest, size, "<unknown address family: %u>", addr->addr.sa_family);
-			return NULL;
-	}
-#endif
-}
-
-uint16_t inet_addrport(union xp_sockaddr *addr)
-{
-	switch(addr->addr.sa_family) {
-		case AF_INET:
-			return ntohs(addr->in.sin_port);
-		case AF_INET6:
-			return ntohs(addr->in6.sin6_port);
-		default:
-			return 0;
-	}
-}
-
-void inet_setaddrport(union xp_sockaddr *addr, uint16_t port)
-{
-	switch(addr->addr.sa_family) {
-		case AF_INET:
-			addr->in.sin_port = htons(port);
-			break;
-		case AF_INET6:
-			addr->in6.sin6_port = htons(port);
-			break;
-	}
-}
-
-/* Return TRUE if the 2 addresses are the same host (type and address) */
-BOOL inet_addrmatch(union xp_sockaddr* addr1, union xp_sockaddr* addr2)
-{
-	if(addr1->addr.sa_family != addr2->addr.sa_family)
-		return FALSE;
-
-	switch(addr1->addr.sa_family) {
-		case AF_INET:
-			return memcmp(&addr1->in.sin_addr, &addr2->in.sin_addr, sizeof(addr1->in.sin_addr)) == 0;
-		case AF_INET6:
-			return memcmp(&addr1->in6.sin6_addr, &addr2->in6.sin6_addr, sizeof(addr1->in6.sin6_addr)) == 0;
-	}
-	return FALSE;
-}
-
-/* Return the current socket error description (for Windows), like strerror() does for errno */
-DLLEXPORT char* socket_strerror(int error_number, char* buf, size_t buflen)
-{
-#if defined(_WINSOCKAPI_)
-	strncpy(buf, "Unknown error", buflen);
-	buf[buflen - 1] = 0;
-	if(error_number > 0 && error_number < WSABASEERR)
-		error_number += WSABASEERR;
-	if(!FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_MAX_WIDTH_MASK,	// dwFlags
-		NULL,			// lpSource
-		error_number,	// dwMessageId
-		MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),    // dwLanguageId
-		buf,
-		buflen,
-		NULL))
-		safe_snprintf(buf, buflen, "Error %d getting error description", GetLastError());
-	truncsp(buf);
-	return buf;
-#else
-	return safe_strerror(error_number, buf, buflen);
-#endif
-}
-
-DLLEXPORT void set_socket_errno(int err)
-{
-#if defined(_WINSOCKAPI_)
-	WSASetLastError(err);
-#else
-	errno = err;
-#endif
-}
-
-DLLEXPORT int xp_inet_pton(int af, const char *src, void *dst)
-{
-	struct addrinfo hints = {0};
-	struct addrinfo *res, *cur;
-
-	if (af != AF_INET && af != AF_INET6) {
-		set_socket_errno(EAFNOSUPPORT);
-		return -1;
-	}
-
-	hints.ai_flags = AI_NUMERICHOST|AI_PASSIVE;
-	if(getaddrinfo(src, NULL, &hints, &res))
-		return -1;
-
-	for(cur = res; cur; cur++) {
-		if(cur->ai_addr->sa_family == af)
-			break;
-	}
-	if(!cur) {
-		freeaddrinfo(res);
-		return 0;
-	}
-	switch(af) {
-		case AF_INET:
-			memcpy(dst, &(((struct sockaddr_in *)cur)->sin_addr), sizeof(((struct sockaddr_in *)cur)->sin_addr));
-			break;
-		case AF_INET6:
-			memcpy(dst, &(((struct sockaddr_in6 *)cur)->sin6_addr), sizeof(((struct sockaddr_in6 *)cur)->sin6_addr));
-			break;
-	}
-	freeaddrinfo(res);
-	return 1;
-}
-
-#ifdef _WIN32
-DLLEXPORT int
-socketpair(int domain, int type, int protocol, SOCKET *sv)
-{
-	union xp_sockaddr la = {0};
-	const int ra = 1;
-	SOCKET ls;
-	SOCKET *check;
-	fd_set rfd;
-	struct timeval tv;
-	size_t sa_len;
-
-	sv[0] = sv[1] = INVALID_SOCKET;
-	ls = socket(domain, type, protocol);
-	if (ls == INVALID_SOCKET)
-		goto fail;
-	switch (domain) {
-		case PF_INET:
-			if (inet_ptoaddr("127.0.0.1", &la, sizeof(la)) == NULL)
-				goto fail;
-			sa_len = sizeof(la.in);
-			break;
-		case PF_INET6:
-			if (inet_ptoaddr("::1", &la, sizeof(la)) == NULL)
-				goto fail;
-			sa_len = sizeof(la.in6);
-			break;
-		default:
-			goto fail;
-	}
-	inet_setaddrport(&la, 0);
-	if (setsockopt(ls, SOL_SOCKET, SO_REUSEADDR, (const char *)&ra, sizeof(ra)) == -1)
-		goto fail;
-	if (bind(ls, &la.addr, sa_len) == -1)
-		goto fail;
-	if (getsockname(ls, &la.addr, &sa_len) == -1)
-		goto fail;
-	if (listen(ls, 1) == -1)
-		goto fail;
-	sv[0] = socket(la.addr.sa_family, type, protocol);
-	if (sv[0] == INVALID_SOCKET)
-		goto fail;
-	if (connect(sv[0], &la.addr, sa_len) == -1)
-		goto fail;
-	sv[1] = accept(ls, NULL, NULL);
-	if (sv[1] == INVALID_SOCKET)
-		goto fail;
-	closesocket(ls);
-	ls = INVALID_SOCKET;
-
-	if (send(sv[1], (const char *)&sv, sizeof(sv), 0) != sizeof(sv))
-		goto fail;
-	tv.tv_sec = 0;
-	tv.tv_usec = 50000;
-	FD_ZERO(&rfd);
-	FD_SET(sv[0], &rfd);
-	if (select(sv[0] + 1, &rfd, NULL, NULL, &tv) != 1)
-		goto fail;
-	if (recv(sv[0], (char *)&check, sizeof(check), 0) != sizeof(check))
-		goto fail;
-	if (check != sv)
-		goto fail;
-	return 0;
-
-fail:
-	if (ls != INVALID_SOCKET)
-		closesocket(ls);
-	if (sv[0] != INVALID_SOCKET)
-		closesocket(sv[0]);
-	sv[0] = INVALID_SOCKET;
-	if (sv[1] != INVALID_SOCKET)
-		closesocket(sv[1]);
-	sv[1] = INVALID_SOCKET;
-	return -1;
-}
-#endif
-
diff --git a/xpdev/sockwrap.h b/xpdev/sockwrap.h
deleted file mode 100644
index b5d3866f255326b9b8b64e6e2352b7b19f78f278..0000000000000000000000000000000000000000
--- a/xpdev/sockwrap.h
+++ /dev/null
@@ -1,308 +0,0 @@
-/* Berkley/WinSock socket API wrappers */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This program 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; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU General Public License for more details: gpl.txt or			*
- * http://www.fsf.org/copyleft/gpl.html										*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _SOCKWRAP_H
-#define _SOCKWRAP_H
-
-#include "gen_defs.h"	/* BOOL */
-
-/***************/
-/* OS-specific */
-/***************/
-#if defined(_WIN32)	/* Use WinSock */
-
-#ifndef _WINSOCKAPI_
-	#include <winsock2.h>	/* socket/bind/etc. */
-	#include <mswsock.h>	/* Microsoft WinSock2 extensions */
-#if defined(__BORLANDC__)
-// Borland C++ builder 6 comes with a broken ws2tcpip.h header for GCC.
-#define _MSC_VER 7
-#endif
-    #include <ws2tcpip.h>	/* More stuff */
-#if defined(__BORLANDC__)
-#undef _MSC_VER
-#endif
-	#if (_WIN32_WINNT < _WIN32_WINNT_WINXP)
-		#include <wspiapi.h>	/* getaddrinfo() for Windows 2k */
-	#endif
-	#define SOCK_MAXADDRLEN sizeof(SOCKADDR_STORAGE)
-	/* Let's agree on a standard WinSock symbol here, people */
-	#define _WINSOCKAPI_
-#endif
-#ifndef MSG_WAITALL
-#define MSG_WAITALL 0x08
-#endif
-
-#elif defined __unix__		/* Unix-variant */
-							
-#include <netdb.h>			/* gethostbyname */
-#include <sys/types.h>		/* For u_int32_t on FreeBSD */
-#include <netinet/in.h>		/* IPPROTO_IP */
-#include <sys/un.h>
-/* define _BSD_SOCKLEN_T_ in order to define socklen_t on darwin */
-#ifdef __DARWIN__
-#define _BSD_SOCKLEN_T_	int
-#endif
-#include <sys/socket.h>		/* socket/bind/etc. */
-#include <sys/time.h>		/* struct timeval */
-#include <arpa/inet.h>		/* inet_ntoa */
-#include <netinet/tcp.h>	/* TCP_NODELAY */
-#include <unistd.h>			/* close */
-#include <poll.h>
-#if defined(__solaris__)
-	#include <sys/filio.h>  /* FIONBIO */
-	#define INADDR_NONE -1L
-#else
-	#include <sys/ioctl.h>	/* FIONBIO */
-#endif
-
-#endif
-
-#include <errno.h>		/* errno */
-#include "wrapdll.h"	/* DLLEXPORT */
-
-typedef struct {
-	char*	name;
-	int		type;		/* Supported socket types (or 0 for unspecified) */
-	int		level;
-	int		value;
-} socket_option_t;
-
-/*
- * Fancy sockaddr_* union
- */
-union xp_sockaddr {
-	struct sockaddr			addr;
-	struct sockaddr_in		in;
-	struct sockaddr_in6		in6;
-#ifndef _WIN32
-	struct sockaddr_un		un;
-#endif
-	struct sockaddr_storage	store;
-};
-
-#define xp_sockaddr_len(a) ((((struct sockaddr *)a)->sa_family == AF_INET6) ? sizeof(struct sockaddr_in6) : sizeof(struct sockaddr_in))
-
- 
-
-/**********************************/
-/* Socket Implementation-specific */
-/**********************************/
-#if defined(_WINSOCKAPI_)
-
-#undef  EINTR
-#define EINTR			(WSAEINTR-WSABASEERR)
-#undef  ENOTSOCK
-#define ENOTSOCK		(WSAENOTSOCK-WSABASEERR)
-#undef  EMSGSIZE
-#define EMSGSIZE		(WSAEMSGSIZE-WSABASEERR)
-#undef  EWOULDBLOCK
-#define EWOULDBLOCK		(WSAEWOULDBLOCK-WSABASEERR)
-
-#ifndef EPROTOTYPE
-#define EPROTOTYPE		(WSAEPROTOTYPE-WSABASEERR)
-#endif
-#ifndef ENOPROTOOPT
-#define ENOPROTOOPT		(WSAENOPROTOOPT-WSABASEERR)
-#endif
-#ifndef EPROTONOSUPPORT
-#define EPROTONOSUPPORT	(WSAEPROTONOSUPPORT-WSABASEERR)
-#endif
-#ifndef ESOCKTNOSUPPORT
-#define ESOCKTNOSUPPORT	(WSAESOCKTNOSUPPORT-WSABASEERR)
-#endif
-#ifndef EOPNOTSUPP
-#define EOPNOTSUPP		(WSAEOPNOTSUPP-WSABASEERR)
-#endif
-#ifndef EPFNOSUPPORT
-#define EPFNOSUPPORT	(WSAEPFNOSUPPORT-WSABASEERR)
-#endif
-#ifndef EAFNOSUPPORT
-#define EAFNOSUPPORT	(WSAEAFNOSUPPORT-WSABASEERR)
-#endif
-
-#undef  EADDRINUSE
-#define EADDRINUSE		(WSAEADDRINUSE-WSABASEERR)
-#undef  EADDRNOTAVAIL
-#define EADDRNOTAVAIL	(WSAEADDRNOTAVAIL-WSABASEERR)
-#undef  ECONNABORTED
-#define ECONNABORTED	(WSAECONNABORTED-WSABASEERR)
-#undef  ECONNRESET
-#define ECONNRESET		(WSAECONNRESET-WSABASEERR)
-#undef  ENOBUFS
-#define ENOBUFS			(WSAENOBUFS-WSABASEERR)
-#undef  EISCONN
-#define EISCONN			(WSAEISCONN-WSABASEERR)
-#undef  ENOTCONN
-#define ENOTCONN		(WSAENOTCONN-WSABASEERR)
-#undef  ESHUTDOWN
-#define ESHUTDOWN		(WSAESHUTDOWN-WSABASEERR)
-#undef  ETIMEDOUT
-#define ETIMEDOUT		(WSAETIMEDOUT-WSABASEERR)
-#undef  ECONNREFUSED
-#define ECONNREFUSED	(WSAECONNREFUSED-WSABASEERR)
-#undef	EINPROGRESS
-#define EINPROGRESS		(WSAEINPROGRESS-WSABASEERR)
-
-/* for shutdown() */
-#define SHUT_RD			SD_RECEIVE
-#define SHUT_WR			SD_SEND
-#define SHUT_RDWR		SD_BOTH
-
-#define s_addr			S_un.S_addr
-#define sa_family_t		ushort
-typedef uint32_t                in_addr_t;
-
-static  int wsa_error;
-#define ERROR_VALUE			((wsa_error=WSAGetLastError())>0 ? wsa_error-WSABASEERR : wsa_error)
-#define socket_errno		WSAGetLastError()
-#define sendsocket(s,b,l)	send(s,b,l,0)
-typedef ULONG nfds_t;
-/*
- * NOTE: WSAPoll() has a bug where a non-blocking socket which has connect()
- *       called on it that is trying to connect to a closed port will timeout
- *       instead of returning a failure, even with POLLOUT specified.
- */
-#define poll(s, c, t)		WSAPoll(s, c, t)
-
-/* For getaddrinfo() */
-#ifndef AI_ADDRCONFIG
-# define AI_ADDRCONFIG 0x400 // Vista or later
-#endif
-#ifndef AI_NUMERICSERV
-# define AI_NUMERICSERV 0		// Not supported by Win32
-#endif
-
-#else	/* BSD sockets */
-
-/* WinSock-isms */
-#define HOSTENT			struct hostent
-#define IN_ADDR			struct in_addr
-#define SOCKADDR		struct sockaddr
-#define SOCKADDR_IN		struct sockaddr_in
-#define LINGER			struct linger
-#define SOCKET			int
-#define SOCKET_ERROR	-1
-#define INVALID_SOCKET  (SOCKET)(~0)
-#define closesocket		close
-#define ioctlsocket		ioctl
-#define ERROR_VALUE		errno
-#define socket_errno	errno
-#define sendsocket		write		/* FreeBSD send() is broken */
-
-#ifdef __WATCOMC__
-	#define socklen_t		int
-#endif
-
-#endif	/* __unix__ */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-DLLEXPORT socket_option_t* getSocketOptionList(void);
-DLLEXPORT int getSocketOptionByName(const char* name, int* level);
-
-DLLEXPORT off_t sendfilesocket(int sock, int file, off_t* offset, off_t count);
-DLLEXPORT off_t recvfilesocket(int sock, int file, off_t* offset, off_t count);
-DLLEXPORT BOOL socket_check(SOCKET sock, BOOL* rd_p, BOOL* wr_p, DWORD timeout);
-DLLEXPORT int retry_bind(SOCKET s, const struct sockaddr *addr, socklen_t addrlen
-				   ,uint retries, uint wait_secs, const char* prot
-				   ,int (*lprintf)(int level, const char *fmt, ...));
-DLLEXPORT int nonblocking_connect(SOCKET, struct sockaddr*, size_t, unsigned timeout /* seconds */);
-DLLEXPORT union xp_sockaddr* inet_ptoaddr(const char *addr_str, union xp_sockaddr *addr, size_t size);
-DLLEXPORT const char* inet_addrtop(union xp_sockaddr *addr, char *dest, size_t size);
-DLLEXPORT uint16_t inet_addrport(union xp_sockaddr *addr);
-DLLEXPORT void inet_setaddrport(union xp_sockaddr *addr, uint16_t port);
-DLLEXPORT BOOL inet_addrmatch(union xp_sockaddr* addr1, union xp_sockaddr* addr2);
-DLLEXPORT char* socket_strerror(int, char*, size_t);
-DLLEXPORT void set_socket_errno(int);
-DLLEXPORT int xp_inet_pton(int af, const char *src, void *dst);
-#if defined(_WIN32) // mingw and WinXP's WS2_32.DLL don't have inet_pton():
-	#define inet_pton	xp_inet_pton
-DLLEXPORT int socketpair(int domain, int type, int protocol, SOCKET *sv);
-#endif
-
-/*
- * Return TRUE if recv() will not block on socket
- * Will block for timeout ms or forever if timeout is negative
- *
- * This means it will return true if recv() will return an error
- * as well as if the socket is closed (and recv() will return 0)
- */
-DLLEXPORT BOOL socket_readable(SOCKET sock, int timeout);
-
-/*
- * Return TRUE if send() will not block on socket
- * Will block for timeout ms or forever if timeout is negative
- *
- * This means it will return true if send() will return an error
- * as well as if the socket is closed (and send() will return 0)
- */
-DLLEXPORT BOOL socket_writable(SOCKET sock, int timeout);
-
-/*
- * Return TRUE if recv() will not block and will return zero
- * or an error. This is *not* a test if a socket is
- * disconnected, but rather that it is disconnected *AND* all
- * data has been recv()ed.
- */
-DLLEXPORT BOOL socket_recvdone(SOCKET sock, int timeout);
-
-#ifdef __cplusplus
-}
-#endif
-
-#ifndef IPPORT_HTTP
-#define IPPORT_HTTP			80
-#endif
-#ifndef IPPORT_HTTPS
-#define IPPORT_HTTPS			443
-#endif
-#ifndef IPPORT_FTP
-#define IPPORT_FTP			21
-#endif
-#ifndef IPPORT_TELNET
-#define IPPORT_TELNET		23
-#endif
-#ifndef IPPORT_SMTP
-#define IPPORT_SMTP			25
-#endif
-#ifndef IPPORT_POP3
-#define IPPORT_POP3			110
-#endif
-#ifndef IPPORT_POP3S
-#define IPPORT_POP3S			995
-#endif
-#ifndef IPPORT_IDENT
-#define IPPORT_IDENT		113
-#endif
-#ifndef IPPORT_SUBMISSION
-#define IPPORT_SUBMISSION	587
-#endif
-#ifndef IPPORT_SUBMISSIONS
-#define IPPORT_SUBMISSIONS	465
-#endif
-#ifndef IPPORT_BINKP
-#define IPPORT_BINKP		24554
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/str_list.c b/xpdev/str_list.c
deleted file mode 100644
index aeace2d05c0f3ffb1fb5f62cde5aa5e387c2eba6..0000000000000000000000000000000000000000
--- a/xpdev/str_list.c
+++ /dev/null
@@ -1,876 +0,0 @@
-/* Functions to deal with NULL-terminated string lists */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <stdlib.h>		/* malloc and qsort */
-#include <string.h>		/* strtok */
-#include "genwrap.h"	/* stricmp */
-#include "str_list.h"
-#include "xpprintf.h"
-
-str_list_t strListInit(void)
-{
-	str_list_t list;
-
-	if((list=(str_list_t)malloc(sizeof(char*)))==NULL)
-		return(NULL);
-
-	list[0]=NULL;	/* terminated by default */
-	return(list);
-}
-
-size_t strListCount(const str_list_t list)
-{
-	size_t i;
-
-	COUNT_LIST_ITEMS(list,i);
-
-	return(i);
-}
-
-BOOL strListIsEmpty(const str_list_t list)
-{
-	return (list == NULL) || (list[0] == NULL);
-}
-
-int strListIndexOf(const str_list_t list, const char* str)
-{
-	size_t		i;
-
-	if(list==NULL)
-		return -1;
-
-	for(i=0; list[i]!=NULL; i++) {
-		if(list[i]==str)
-			return i;
-	}
-	
-	return -1;
-}
-
-int strListFind(const str_list_t list, const char* str, BOOL case_sensitive)
-{
-	size_t		i;
-
-	if(list == NULL || str == NULL)
-		return -1;
-
-	for(i=0; list[i]!=NULL; i++) {
-		if(case_sensitive) {
-			if(strcmp(list[i],str) == 0)
-				return i;
-		} else {
-			if(stricmp(list[i],str) == 0)
-				return i;
-		}
-	}
-	
-	return -1;
-}
-
-static char* str_list_append(str_list_t* list, char* str, size_t index)
-{
-	str_list_t lp;
-
-	if((lp=(str_list_t)realloc(*list,sizeof(char*)*(index+2)))==NULL)
-		return(NULL);
-
-	*list=lp;
-	lp[index++]=str;
-	lp[index]=NULL;	/* terminate list */
-
-	return(str);
-}
-
-static char* str_list_insert(str_list_t* list, char* str, size_t index)
-{
-	size_t	i;
-	size_t	count;
-	str_list_t lp;
-
-	if(*list == NULL)
-		*list = strListInit();
-	count = strListCount(*list);
-	if(index > count)	/* invalid index, do nothing */
-		return(NULL);
-
-	count++;
-	if((lp=(str_list_t)realloc(*list,sizeof(char*)*(count+1)))==NULL)
-		return(NULL);
-
-	*list=lp;
-	for(i=count; i>index; i--)
-		lp[i]=lp[i-1];
-	lp[index]=str;
-
-	return(str);
-}
-
-char* strListRemove(str_list_t* list, size_t index)
-{
-	char*	str;
-	size_t	i;
-	size_t	count;
-	str_list_t lp;
-
-	count = strListCount(*list);
-
-	if(index==STR_LIST_LAST_INDEX && count)
-		index = count-1;
-
-	if(index >= count)	/* invalid index, do nothing */
-		return(NULL);
-
-	count--;
-	if((lp=(str_list_t)realloc(*list,sizeof(char*)*(count+1)))==NULL)
-		return(NULL);
-
-	*list=lp;
-	str=lp[index];
-	for(i=index; i<count; i++)
-		lp[i]=lp[i+1];
-	lp[count]=NULL;
-
-	return(str);
-}
-
-// Remove without realloc
-char* strListFastRemove(str_list_t list, size_t index)
-{
-	char*	str;
-	size_t	i;
-	size_t	count;
-
-	count = strListCount(list);
-
-	if(index == STR_LIST_LAST_INDEX && count)
-		index = count-1;
-
-	if(index >= count)	/* invalid index, do nothing */
-		return NULL;
-
-	str = list[index];
-	for(i = index; i < count; i++)
-		list[i] = list[i + 1];
-
-	return str;
-}
-
-BOOL strListDelete(str_list_t* list, size_t index)
-{
-	char*	str;
-
-	if((str=strListRemove(list, index))==NULL)
-		return(FALSE);
-
-	free(str);
-
-	return(TRUE);
-}
-
-BOOL strListFastDelete(str_list_t list, size_t index)
-{
-	char*	str;
-
-	if((str=strListFastRemove(list, index))==NULL)
-		return(FALSE);
-
-	free(str);
-
-	return(TRUE);
-}
-
-char* strListReplace(const str_list_t list, size_t index, const char* str)
-{
-	char*	buf;
-	size_t	count;
-
-	if(str==NULL)
-		return(NULL);
-
-	count = strListCount(list);
-
-	if(index==STR_LIST_LAST_INDEX && count)
-		index = count-1;
-
-	if(index >= count)	/* invalid index, do nothing */
-		return(NULL);
-
-	if((buf=(char*)realloc(list[index],strlen(str)+1))==NULL)
-		return(NULL);
-
-	list[index]=buf;
-	strcpy(buf,str);
-
-	return(buf);
-}
-
-size_t strListModifyEach(const str_list_t list, char*(modify(size_t, char*, void*)), void* cbdata)
-{
-	size_t	i;
-	if(list == NULL)
-		return 0;
-	for(i = 0; list[i] != NULL; i++) {
-		char* str = modify(i, list[i], cbdata);
-		if(str == NULL || str == list[i])	// Same old pointer (or NULL), no modification
-			continue;
-		str = strdup(str);
-		if(str == NULL)
-			break;
-		free(list[i]);
-		list[i] = str;
-	}
-	return i;
-}
-
-BOOL strListSwap(const str_list_t list, size_t index1, size_t index2)
-{
-	char*	tmp;
-	size_t	count;
-
-	count = strListCount(list);
-
-	if(index1==STR_LIST_LAST_INDEX && count)
-		index1 = count-1;
-
-	if(index2==STR_LIST_LAST_INDEX && count)
-		index2 = count-1;
-
-	if(index1 >= count || index2 >= count || index1 == index2)	
-		return(FALSE);	/* invalid index, do nothing */
-
-	tmp=list[index1];
-	list[index1]=list[index2];
-	list[index2]=tmp;
-
-	return(TRUE);
-}
-
-char* strListAppend(str_list_t* list, const char* str, size_t index)
-{
-	char* buf;
-	char *ret;
-
-	if(str==NULL)
-		return(NULL);
-
-	if((buf=strdup(str))==NULL)
-		return(NULL);
-
-	if(index==STR_LIST_LAST_INDEX)
-		index=strListCount(*list);
-
-	ret = str_list_append(list,buf,index);
-	if (ret == NULL)
-		free(buf);
-	return ret;
-}
-
-size_t strListAppendList(str_list_t* list, const str_list_t add_list)
-{
-	size_t	i;
-	size_t	count;
-
-	count=strListCount(*list);
-	for(i=0; add_list != NULL && add_list[i] != NULL; i++)
-		strListAppend(list,add_list[i],count++);
-
-	return(count);
-}
-
-#if !defined(__BORLANDC__) // Doesn't have asprintf() or va_copy()_vscprintf()
-char* strListAppendFormat(str_list_t* list, const char* format, ...)
-{
-	char *ret;
-	char* buf = NULL;
-	int len;
-	va_list va;
-
-	va_start(va, format);
-	len = vasprintf(&buf, format, va);
-	va_end(va);
-
-	if(len == -1 || buf == NULL)
-		return NULL;
-
-	ret = str_list_append(list, buf, strListCount(*list));
-	if (ret == NULL)
-		free(buf);
-	return ret;
-}
-#endif
-
-char* strListInsert(str_list_t* list, const char* str, size_t index)
-{
-	char* buf;
-	char* ret;
-
-	if(str==NULL)
-		return(NULL);
-
-	if((buf=strdup(str))==NULL)
-		return(NULL);
-
-	ret = str_list_insert(list,buf,index);
-	if (ret == NULL)
-		free(buf);
-	return ret;
-}
-
-size_t strListInsertList(str_list_t* list, const str_list_t add_list, size_t index)
-{
-	size_t	i;
-
-	if(add_list == NULL)
-		return 0;
-
-	for(i=0; add_list[i]!=NULL; i++)
-		if(strListInsert(list,add_list[i],index++)==NULL)
-			break;
-
-	return(i);
-}
-
-#if !defined(__BORLANDC__) // Doesn't have asprintf() or va_copy()_vscprintf()
-char* strListInsertFormat(str_list_t* list, size_t index, const char* format, ...)
-{
-	char *ret;
-	char* buf = NULL;
-	int len;
-	va_list va;
-
-	va_start(va, format);
-	len = vasprintf(&buf, format, va);
-	va_end(va);
-
-	if(len == -1 || buf == NULL)
-		return NULL;
-
-	ret = str_list_insert(list, buf, index);
-	if (ret == NULL)
-		free(buf);
-	return ret;
-}
-#endif
-
-str_list_t strListSplit(str_list_t* lp, char* str, const char* delimit)
-{
-	size_t	count;
-	char*	token;
-	char*	tmp;
-	str_list_t	list;
-
-	if(str==NULL || delimit==NULL)
-		return(NULL);
-
-	if(lp==NULL) {
-		if((list = strListInit())==NULL)
-			return(NULL);
-		lp=&list;
-		count=0;
-	} else
-		count=strListCount(*lp);
-
-	for(token = strtok_r(str, delimit, &tmp); token!=NULL; token=strtok_r(NULL, delimit, &tmp))
-		if(strListAppend(lp, token, count++)==NULL)
-			break;
-
-	return(*lp);
-}
-
-str_list_t strListSplitCopy(str_list_t* list, const char* str, const char* delimit)
-{
-	char*		buf;
-	str_list_t	new_list;
-
-	if(str==NULL || delimit==NULL)
-		return(NULL);
-
-	if((buf=strdup(str))==NULL)
-		return(NULL);
-
-	new_list=strListSplit(list,buf,delimit);
-
-	free(buf);
-
-	if(list!=NULL)
-		*list = new_list;
-
-	return(new_list);
-}
-
-size_t strListMerge(str_list_t* list, str_list_t add_list)
-{
-	size_t	i;
-	size_t	count;
-
-	if(add_list == NULL)
-		return 0;
-
-	count=strListCount(*list);
-	for(i=0; add_list[i]!=NULL; i++)
-		str_list_append(list,add_list[i],count++);
-
-	return(i);
-}
-
-char* strListCombine(str_list_t list, char* buf, size_t maxlen, const char* delimit)
-{
-	size_t	i;
-	char*	end;
-	char*	ptr;
-
-	if(maxlen<1)
-		return(NULL);
-
-	if(buf==NULL)
-		if((buf=(char*)malloc(maxlen))==NULL)
-			return(NULL);
-
-	memset(buf, 0, maxlen);
-	if(list==NULL)
-		return buf;
-
-	end=buf+maxlen;
-	for(i=0, ptr=buf; list[i]!=NULL && buf<end; i++)
-		ptr += safe_snprintf(ptr, end-ptr, "%s%s", i ? delimit:"", list[i]);
-
-	return(buf);
-}
-
-#if defined(_WIN32)
-	#define QSORT_CALLBACK_TYPE	__cdecl
-#else
-	#define QSORT_CALLBACK_TYPE
-#endif
-
-static int QSORT_CALLBACK_TYPE strListCompareAlpha(const void *arg1, const void *arg2)
-{
-   return stricmp(*(char**)arg1, *(char**)arg2);
-}
-
-static int QSORT_CALLBACK_TYPE strListCompareAlphaReverse(const void *arg1, const void *arg2)
-{
-   return stricmp(*(char**)arg2, *(char**)arg1);
-}
-
-static int QSORT_CALLBACK_TYPE strListCompareAlphaCase(const void *arg1, const void *arg2)
-{
-   return strcmp(*(char**)arg1, *(char**)arg2);
-}
-
-static int QSORT_CALLBACK_TYPE strListCompareAlphaCaseReverse(const void *arg1, const void *arg2)
-{
-   return strcmp(*(char**)arg2, *(char**)arg1);
-}
-
-void strListSortAlpha(str_list_t list)
-{
-	if(list != NULL)
-		qsort(list,strListCount(list),sizeof(char*),strListCompareAlpha);
-}
-
-void strListSortAlphaReverse(str_list_t list)
-{
-	if(list != NULL)
-		qsort(list,strListCount(list),sizeof(char*),strListCompareAlphaReverse);
-}
-
-void strListSortAlphaCase(str_list_t list)
-{
-	if(list != NULL)
-		qsort(list,strListCount(list),sizeof(char*),strListCompareAlphaCase);
-}
-
-void strListSortAlphaCaseReverse(str_list_t list)
-{
-	if(list != NULL)
-		qsort(list,strListCount(list),sizeof(char*),strListCompareAlphaCaseReverse);
-}
-
-str_list_t strListDup(str_list_t list)
-{
-	str_list_t	ret;
-	size_t		count=0;
-
-	if(list == NULL)
-		return NULL;
-	ret = strListInit();
-	for(; *list; list++)
-		strListAppend(&ret, *list, count++);
-	return ret;
-}
-
-int strListCmp(str_list_t list1, str_list_t list2)
-{
-	str_list_t	l1=strListDup(list1);
-	str_list_t	l2=strListDup(list2);
-	str_list_t	ol1=l1;
-	str_list_t	ol2=l2;
-	int			tmp;
-	int			ret;
-
-	if(*l1 == NULL && *l2 == NULL) {
-		ret=0;
-		goto early_return;
-	}
-	if(*l1 == NULL) {
-		ret = -1;
-		goto early_return;
-	}
-	if(*l2 == NULL) {
-		ret = 1;
-		goto early_return;
-	}
-
-	strListSortAlphaCase(l1);
-	strListSortAlphaCase(l2);
-
-	for(; *l1; l1++) {
-		l2++;
-		if(*l2==NULL) {
-			ret=1;
-			goto early_return;
-		}
-		tmp = strcmp(*l1, *l2);
-		if(tmp != 0) {
-			ret=tmp;
-			goto early_return;
-		}
-	}
-	l2++;
-	if(*l2==NULL)
-		ret=0;
-	else
-		ret=-1;
-
-early_return:
-	strListFree(&ol1);
-	strListFree(&ol2);
-	return ret;
-}
-
-void strListFreeStrings(str_list_t list)
-{
-	size_t i;
-
-	FREE_LIST_ITEMS(list,i);
-}
-
-void strListFree(str_list_t* list)
-{
-	if(list != NULL && *list != NULL) {
-		strListFreeStrings(*list);
-		FREE_AND_NULL(*list);
-	}
-}
-
-static str_list_t str_list_read_file(FILE* fp, str_list_t* lp, size_t max_line_len)
-{
-	char*		buf=NULL;
-	size_t		count;
-	str_list_t	list;
-
-	if(max_line_len<1)
-		max_line_len=2048;
-
-	if(lp==NULL) {
-		if((list = strListInit())==NULL)
-			return(NULL);
-		lp=&list;
-	}
-
-	if(fp!=NULL) {
-		count=strListCount(*lp);
-		while(!feof(fp)) {
-			if(buf==NULL && (buf=(char*)malloc(max_line_len+1))==NULL)
-				return(NULL);
-			
-			if(fgets(buf,max_line_len+1,fp)==NULL)
-				break;
-			strListAppend(lp, buf, count++);
-		}
-	}
-	if(buf)
-		free(buf);
-
-	return(*lp);
-}
-
-size_t strListInsertFile(FILE* fp, str_list_t* lp, size_t index, size_t max_line_len)
-{
-	str_list_t	list;
-	size_t		count;
-
-	if((list=str_list_read_file(fp, NULL, max_line_len)) == NULL)
-		return(0);
-
-	count = strListInsertList(lp, list, index);
-
-	strListFree(&list);
-
-	return(count);
-}
-
-str_list_t strListReadFile(FILE* fp, str_list_t* lp, size_t max_line_len)
-{
-	return str_list_read_file(fp,lp,max_line_len);
-}
-
-size_t strListWriteFile(FILE* fp, const str_list_t list, const char* separator)
-{
-	size_t		i;
-
-	if(list==NULL)
-		return(0);
-
-	for(i=0; list[i]!=NULL; i++) {
-		if(fputs(list[i],fp)==EOF)
-			break;
-		if(separator!=NULL && fputs(separator,fp)==EOF)
-			break;
-	}
-	
-	return(i);
-}
-
-char* strListJoin(const str_list_t list, char* buf, size_t buflen, const char* separator)
-{
-	size_t		i;
-
-	if(buflen < 1)
-		return NULL;
-
-	*buf = '\0';
-
-	if(list == NULL)
-		return buf;
-
-	if(separator == NULL)
-		separator = ", ";
-
-	for(i = 0; list[i] != NULL; i++) {
-		if(strlen(buf) + strlen(separator) + strlen(list[i]) >= buflen)
-			break;
-		if(i > 0)
-			strcat(buf, separator);
-		strcat(buf, list[i]);
-	}
-	return buf;
-}
-
-size_t strListBlockLength(char* block)
-{
-	char*	p=block;
-	size_t	str_len;
-	size_t	block_len=0;
-
-	if(block==NULL)
-		return(0);
-
-	/* calculate total block length */
-	while((str_len=strlen(p))!=0) {
-		block_len+=(str_len + 1);
-		p+=(str_len + 1);
-	}
-	/* block must be double-NULL terminated */
-	if(!block_len)
-		block_len=1;
-	block_len++;
-
-	return(block_len);
-}
-
-char* strListCopyBlock(char* block)
-{
-	char*	p;
-	size_t	block_len;
-	
-	if((block_len=strListBlockLength(block))==0)
-		return(NULL);
-
-	if((p=(char*)malloc(block_len))==NULL)
-		return(NULL);
-	memcpy(p, block, block_len);
-	return(p);
-}
-
-char* strListAppendBlock(char* block, str_list_t list)
-{
-	char*	p;
-	size_t	str_len;
-	size_t	block_len;	
-	size_t	i;
-
-	if((block_len=strListBlockLength(block))!=0)
-		block_len--;	/* Over-write existing NULL terminator */
-
-	for(i=0; list != NULL && list[i] != NULL; i++) {
-		str_len=strlen(list[i]);
-		if(str_len==0)
-			continue;	/* can't include empty strings in block */
-		if((p=(char*)realloc(block, block_len + str_len + 1))==NULL) {
-			FREE_AND_NULL(block);
-			return(block);
-		}
-		block=p;
-		strcpy(block + block_len, list[i]);
-		block_len += (str_len + 1);
-	}
-
-	/* block must be double-NULL terminated */
-	if(!block_len)
-		block_len=1;
-	block_len++;
-	if((p=(char*)realloc(block, block_len))==NULL) {
-		FREE_AND_NULL(block);
-		return(block);
-	}
-	block=p;
-	memset(block + (block_len-2), 0, 2);
-
-	return(block);
-}
-
-char* strListCreateBlock(str_list_t list)
-{
-	return(strListAppendBlock(NULL,list));
-}
-
-void strListFreeBlock(char* block)
-{
-	if(block!=NULL)
-		free(block);	/* this must be done here for Windows-DLL reasons */
-}
-
-int strListTruncateTrailingWhitespaces(str_list_t list)
-{
-	size_t		i;
-
-	if(list==NULL)
-		return(0);
-
-	for(i=0; list[i]!=NULL; i++) {
-		truncsp(list[i]);
-	}
-	return i;
-}
-
-int strListTruncateTrailingLineEndings(str_list_t list)
-{
-	size_t		i;
-
-	if(list==NULL)
-		return(0);
-
-	for(i=0; list[i]!=NULL; i++) {
-		truncnl(list[i]);
-	}
-	return i;
-}
-
-/* Truncate strings in list at first occurrence of any char in 'set' */
-int strListTruncateStrings(str_list_t list, const char* set)
-{
-	size_t		i;
-	char*		p;
-
-	if(list==NULL)
-		return(0);
-
-	for(i=0; list[i]!=NULL; i++) {
-		p=strpbrk(list[i], set);
-		if(p!=NULL && *p!=0)
-			*p=0;
-	}
-	return i;
-}
-
-/* Strip chars in 'set' from strings in list */
-int strListStripStrings(str_list_t list, const char* set)
-{
-	size_t		i;
-	char*		o;
-	char*		p;
-
-	if(list == NULL)
-		return 0;
-
-	for(i = 0; list[i] != NULL; i++) {
-		for(o = p = list[i]; (*p != '\0'); p++) {
-			if(strchr(set, *p) == NULL)
-				*(o++) = *p;
-		}
-		*o = '\0';
-	}
-	return i;
-}
-
-/* Remove duplicate strings from list, return the new list length */
-int strListDedupe(str_list_t* list, BOOL case_sensitive)
-{
-	size_t		i,j;
-
-	if(list == NULL || *list == NULL)
-		return 0;
-
-	for(i = 0; (*list)[i] != NULL; i++) {
-		for(j = i + 1; (*list)[j] != NULL; ) {
-			if((case_sensitive && strcmp((*list)[i], (*list)[j]) == 0)
-				|| (!case_sensitive && stricmp((*list)[i], (*list)[j]) == 0))
-				strListDelete(list, j);
-			else
-				j++;
-		}
-	}
-	return i;
-}
-
-int strListDeleteBlanks(str_list_t* list)
-{
-	size_t		i;
-
-	if(list == NULL || *list == NULL)
-		return 0;
-
-	for(i = 0; (*list)[i] != NULL; ) {
-		if((*list)[i][0] == '\0')
-			strListDelete(list, i);
-		else
-			i++;
-	}
-	return i;
-}
-
-int strListFastDeleteBlanks(str_list_t list)
-{
-	size_t		i;
-
-	if(list == NULL || *list == NULL)
-		return 0;
-
-	for(i = 0; list[i] != NULL; ) {
-		if(list[i][0] == '\0')
-			strListFastDelete(list, i);
-		else
-			i++;
-	}
-	return i;
-}
diff --git a/xpdev/str_list.h b/xpdev/str_list.h
deleted file mode 100644
index a5994b359efe7f4c14c6b49ff7b4ab374b864a34..0000000000000000000000000000000000000000
--- a/xpdev/str_list.h
+++ /dev/null
@@ -1,177 +0,0 @@
-/* Functions to deal with NULL-terminated string lists */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _STR_LIST_H
-#define _STR_LIST_H
-
-#include <stdio.h>			/* FILE */
-#include <stddef.h>         /* size_t */
-#include "gen_defs.h"
-#include "wrapdll.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#define STR_LIST_LAST_INDEX	(~0)
-
-typedef char** str_list_t;
-
-/* Returns an allocated and terminated string list */
-DLLEXPORT str_list_t	strListInit(void);
-
-/* Frees the strings in the list (and the list itself) */
-DLLEXPORT void			strListFree(str_list_t*);
-
-/* Frees the strings in the list */
-DLLEXPORT void			strListFreeStrings(str_list_t);
-
-/* Adds a string to the end of a string list (see strListPush) */
-/* Pass a pointer to a string list, the string to add (append) */
-/* The string to add is duplicated (using strdup) and the duplicate is added to the list */
-/* If you already know the index of the last string, pass it, otherwise pass STR_LIST_LAST_INDEX */
-/* Returns the updated list or NULL on error */
-DLLEXPORT char*			strListAppend(str_list_t*, const char* str, size_t index);
-
-/* Append a string list onto another string list */
-DLLEXPORT size_t		strListAppendList(str_list_t*, const str_list_t append_list);
-
-/* Append a malloc'd formatted string to the end of the list */
-DLLEXPORT char*			strListAppendFormat(str_list_t* list, const char* format, ...);
-
-/* Inserts a string into the list at a specific index */
-/* Pass a pointer to a string list, the string to add (insert) */
-/* The string to add is duplicated (using strdup) and the duplicate is added to the list */
-DLLEXPORT char*			strListInsert(str_list_t*, const char* str, size_t index);
-
-/* Insert a string list into another string list */
-DLLEXPORT size_t		strListInsertList(str_list_t*, const str_list_t append_list, size_t index);
-
-/* Insert a malloc'd formatted string into the list */
-DLLEXPORT char*			strListInsertFormat(str_list_t* list, size_t index, const char* format, ...);
-
-/* Remove a string at a specific index */
-DLLEXPORT char*			strListRemove(str_list_t*, size_t index);
-DLLEXPORT char*			strListFastRemove(str_list_t, size_t index);
-
-/* Remove and free a string at a specific index */
-DLLEXPORT BOOL			strListDelete(str_list_t*, size_t index);
-DLLEXPORT BOOL			strListFastDelete(str_list_t, size_t index);
-
-/* Replace a string at a specific index */
-DLLEXPORT char*			strListReplace(const str_list_t, size_t index, const char* str);
-
-/* Return a single-string representation of the entire string list, joined with the specified separator */
-DLLEXPORT char*			strListJoin(const str_list_t, char* buf, size_t buflen, const char* separator);
-
-/* Call a modification callback function for each string in a list */
-/* and replace each string with the result of the modification callback. */
-/* If the modification callback function returns NULL, the string is not modified. */
-/* If the modification callback function returns the same string item pointer it was passed, the string is not realloc'd. */
-/* If the modification callback function needs to expand the string item (make it bigger), it must return a new valid pointer */
-/* (possibly, the cbdata, a global array or a static automatic variable). Since the new pointer is not free'd here, it should */
-/* not be dynamically allocated by the callback function. */
-/* Returns the number of modified strings (normally, the list count unless there was a failure) */
-DLLEXPORT size_t		strListModifyEach(const str_list_t list, char*(modify(size_t index, char* str, void*)), void* cbdata);
-
-/* Swap the strings at index1 and index2 */
-DLLEXPORT BOOL			strListSwap(const str_list_t, size_t index1, size_t index2);
-
-/* Convenience macros for pushing, popping strings (LIFO stack) */
-#define		strListPush(list, str)	strListAppend(list, str, STR_LIST_LAST_INDEX)
-#define		strListPop(list)		strListRemove(list, STR_LIST_LAST_INDEX)
-
-/* Add to an existing or new string list by splitting specified string (str) */
-/* into multiple strings, separated by one of the delimit characters */
-DLLEXPORT str_list_t	strListSplit(str_list_t*, char* str, const char* delimit);
-
-/* Same as above, but copies str to temporary heap buffer first */
-DLLEXPORT str_list_t	strListSplitCopy(str_list_t*, const char* str, const char* delimit);
-
-/* Merge 2 string lists (no copying of string data) */
-DLLEXPORT size_t		strListMerge(str_list_t*, str_list_t append_list);
-
-/* Create a single delimited string from the specified list */
-/* If buf is NULL, the buf is malloc'd and should be freed using strListFreeBlock() */
-/* Note: maxlen includes '\0' terminator */
-DLLEXPORT char*			strListCombine(str_list_t, char* buf, size_t maxlen, const char* delimit);
-
-/* Count the number of strings in the list and returns the count */
-DLLEXPORT size_t		strListCount(const str_list_t);
-DLLEXPORT BOOL			strListIsEmpty(const str_list_t);
-
-/* Returns the index of the specified str (by ptr compare) or -1 if not found */
-DLLEXPORT int			strListIndexOf(const str_list_t, const char* str);
-/* Returns the index of the specified str (by string compare) or -1 if not found */
-DLLEXPORT int			strListFind(const str_list_t, const char* str, BOOL case_sensitive);
-
-/* Sort the strings in the string list */
-DLLEXPORT void			strListSortAlpha(str_list_t);
-DLLEXPORT void			strListSortAlphaReverse(str_list_t);
-
-/* Case-sensitive sorting */
-DLLEXPORT void			strListSortAlphaCase(str_list_t);
-DLLEXPORT void			strListSortAlphaCaseReverse(str_list_t);
-
-/* Create/Copy/Append/Free NULL-terminated string block */
-/* (e.g. for environment variable blocks) */
-DLLEXPORT char*			strListCreateBlock(str_list_t);
-DLLEXPORT char*			strListCopyBlock(char* block);
-DLLEXPORT char*			strListAppendBlock(char* block, str_list_t);
-DLLEXPORT size_t		strListBlockLength(char* block);
-DLLEXPORT void			strListFreeBlock(char*);
-
-/* Duplicates a list */
-DLLEXPORT str_list_t	strListDup(str_list_t list);
-
-/* Compares two lists */
-DLLEXPORT int			strListCmp(str_list_t list1, str_list_t list2);
-
-/* Modifies strings in list (returns count of items in list) */
-DLLEXPORT int			strListTruncateTrailingWhitespaces(str_list_t);
-DLLEXPORT int			strListTruncateTrailingLineEndings(str_list_t);
-/* Truncate strings in list at first occurrence of any char in 'set' */
-DLLEXPORT int			strListTruncateStrings(str_list_t, const char* set);
-/* Remove all occurrences of chars in set from string in list */
-DLLEXPORT int			strListStripStrings(str_list_t, const char* set);
-/* Remove duplicate strings from list, return the new list length */
-DLLEXPORT int			strListDedupe(str_list_t*, BOOL case_sensitive);
-/* Remove blank strings from list, return the new list length */
-DLLEXPORT int			strListDeleteBlanks(str_list_t*);
-DLLEXPORT int			strListFastDeleteBlanks(str_list_t);
-
-/************/
-/* File I/O */
-/************/
-
-/* Read lines from file appending each line (with '\n' char) to string list */
-/* Pass NULL list to have list allocated for you */
-DLLEXPORT str_list_t	strListReadFile(FILE*, str_list_t*, size_t max_line_len);
-DLLEXPORT size_t		strListInsertFile(FILE*, str_list_t*, size_t index, size_t max_line_len);
-
-/* Write to file (fp) each string in the list, optionally separated by separator (e.g. "\n") */
-DLLEXPORT size_t		strListWriteFile(FILE*, const str_list_t, const char* separator);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/strwrap.c b/xpdev/strwrap.c
deleted file mode 100644
index 00fff9a4c5612bca9db38e3c70c3a9f6b0d81124..0000000000000000000000000000000000000000
--- a/xpdev/strwrap.c
+++ /dev/null
@@ -1,77 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#if !defined _MSC_VER && !defined __BORLANDC__
-char* itoa(int val, char* str, int radix)
-{
-	switch(radix) {
-		case 8:
-			sprintf(str,"%o",val);
-			break;
-		case 10:
-			sprintf(str,"%u",val);
-			break;
-		case 16:
-			sprintf(str,"%x",val);
-			break;
-		default:
-			sprintf(str,"bad radix: %d",radix);
-			break;
-	}
-	return(str);
-}
-
-char* ltoa(long val, char* str, int radix)
-{
-	switch(radix) {
-		case 8:
-			sprintf(str,"%lo",val);
-			break;
-		case 10:
-			sprintf(str,"%lu",val);
-			break;
-		case 16:
-			sprintf(str,"%lx",val);
-			break;
-		default:
-			sprintf(str,"bad radix: %d",radix);
-			break;
-	}
-	return(str);
-}
-#endif
-
-#if defined(_WIN32) && !defined(_MSC_VER)
-/* From FreeBSD */
-size_t
-strnlen(const char *s, size_t maxlen)
-{
-	size_t len;
-
-	for (len = 0; len < maxlen; len++, s++) {
-		if (!*s)
-			break;
-	}
-	return (len);
-}
-#endif
-
-#ifdef _WIN32
-/* From FreeBSD */
-char *
-strndup(const char *str, size_t maxlen)
-{
-	char *copy;
-	size_t len;
-
-	len = strnlen(str, maxlen);
-	copy = malloc(len + 1);
-	if (copy != NULL) {
-		(void)memcpy(copy, str, len);
-		copy[len] = '\0';
-	}
-
-	return copy;
-}
-#endif
diff --git a/xpdev/strwrap.h b/xpdev/strwrap.h
deleted file mode 100644
index e52986f122e4baa1a5fe5ec95b0fd4daa36fdf1d..0000000000000000000000000000000000000000
--- a/xpdev/strwrap.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef _STRWRAP_H_
-#define _STRWRAP_H_
-
-#include <string.h>
-
-#if !defined _MSC_VER && !defined __BORLANDC__
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-char* itoa(int val, char* str, int radix);
-char* ltoa(long val, char* str, int radix);
-#if defined(__cplusplus)
-}
-#endif
-
-#define strset(x,y)	memset(x, y, strlen(x))
-
-#endif
-
-#if defined(_MSC_VER) || defined(__MSVCRT__)
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-char *strndup(const char *str, size_t maxlen);
-size_t strnlen(const char *s, size_t maxlen);
-
-#if defined(__cplusplus)
-}
-#endif
-#endif
-
-#endif
diff --git a/xpdev/threadwrap.c b/xpdev/threadwrap.c
deleted file mode 100644
index 782ee302e98847e4bba32607632c88f2923de469..0000000000000000000000000000000000000000
--- a/xpdev/threadwrap.c
+++ /dev/null
@@ -1,304 +0,0 @@
-/* threadwrap.c */
-
-/* Thread-related cross-platform development wrappers */
-
-/* $Id: threadwrap.c,v 1.37 2019/02/18 04:04:11 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#if defined(__unix__)
-	#include <unistd.h>	/* _POSIX_THREADS */
-	#include <sys/param.h>	/* BSD */
-#endif
-
-#if defined(_WIN32) && !defined(_WIN32_WINNT)
-	#define _WIN32_WINNT 0x0400	/* Needed for TryEnterCriticalSection */
-#endif
-
-#include "genwrap.h"	/* SLEEP() */
-#include "threadwrap.h"
-
-/****************************************************************************/
-/* Wrapper for Win32 create/begin thread function							*/
-/* Uses POSIX threads														*/
-/****************************************************************************/
-#if defined(__unix__)
-#if defined(_POSIX_THREADS)
-ulong _beginthread(void( *start_address )( void * )
-		,unsigned stack_size, void *arglist)
-{
-	pthread_t	thread;
-	pthread_attr_t attr;
-	size_t		default_stack;
-
-	(void)stack_size;
-
-	pthread_attr_init(&attr);     /* initialize attribute structure */
-
-	/* set thread attributes to PTHREAD_CREATE_DETACHED which will ensure
-	   that thread resources are freed on exit() */
-	pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
-
-	/* Default stack size in BSD is too small for JS stuff */
-	/* Force to at least 256k */
-#define XPDEV_MIN_THREAD_STACK_SIZE	(256*1024)
-	if(stack_size==0 && pthread_attr_getstacksize(&attr, &default_stack)==0 
-			&& default_stack < XPDEV_MIN_THREAD_STACK_SIZE)
-		stack_size=XPDEV_MIN_THREAD_STACK_SIZE;
-
-	if(stack_size!=0)
-		pthread_attr_setstacksize(&attr, stack_size);
-
-	if(pthread_create(&thread
-#if defined(__BORLANDC__) /* a (hopefully temporary) work-around */
-			,NULL
-#else
-			,&attr	/* default attributes */
-#endif
-			/* POSIX defines this arg as "void *(*start_address)" */
-			,(void * (*)(void *)) start_address
-			,arglist)==0) {
-		pthread_attr_destroy(&attr);
-		return((ulong) thread /* thread handle */);
-	}
-
-	pthread_attr_destroy(&attr);
-	return(-1);	/* error */
-}
-#else
-
-#error "Need _beginthread implementation for non-POSIX thread library."
-
-#endif
-
-#endif	/* __unix__ */
-
-/****************************************************************************/
-/* Wrappers for POSIX thread (pthread) mutexes								*/
-/****************************************************************************/
-pthread_mutex_t pthread_mutex_initializer_np(BOOL recursive)
-{
-	pthread_mutex_t	mutex;
-#if defined(_POSIX_THREADS)
-	pthread_mutexattr_t attr;
-	pthread_mutexattr_init(&attr);
-	if(recursive)
-#if defined(__linux__) && defined(PTHREAD_MUTEX_RECURSIVE_NP) && !defined(__USE_UNIX98)
-		pthread_mutexattr_settype(&attr,PTHREAD_MUTEX_RECURSIVE_NP);
-#else
-		pthread_mutexattr_settype(&attr,PTHREAD_MUTEX_RECURSIVE);
-#endif
-	pthread_mutex_init(&mutex, &attr);
-#else	/* Assumes recursive (e.g. Windows) */
-	(void)recursive;
-	pthread_mutex_init(&mutex,NULL);
-#endif
-	return(mutex);
-}
-
-#if !defined(_POSIX_THREADS)
-
-int pthread_once(pthread_once_t *oc, void (*init)(void))
-{
-	if (oc == NULL || init == NULL)
-		return EINVAL;
-	switch(InterlockedCompareExchange(&(oc->state), 1, 0)) {
-		case 0:	// Never called
-			init();
-			InterlockedIncrement(&(oc->state));
-			return 0;
-		case 1:	// In init function
-			/* We may not need to use InterlockedCompareExchange() here,
-			 * but I hate marking things as volatile, and hate tight loops
-			 * testing things that aren't marked volatile.
-			 */
-			while(InterlockedCompareExchange(&(oc->state), 1, 0) != 2)
-				SLEEP(1);
-			return 0;
-		case 2:	// Done.
-			return 0;
-	}
-	return EINVAL;
-}
-
-int pthread_mutex_init(pthread_mutex_t* mutex, void* attr)
-{
-	(void)attr;
-#if defined(PTHREAD_MUTEX_AS_WIN32_MUTEX)
-	return ((((*mutex)=CreateMutex(/* security */NULL, /* owned */FALSE, /* name */NULL))==NULL) ? -1 : 0);
-#elif defined(_WIN32)	/* Win32 Critical Section */
-	InitializeCriticalSection(mutex);
-	return 0;	/* No error */
-#elif defined(__OS2__)
-	return DosCreateMutexSem(/* name */NULL, mutex, /* attr */0, /* owned */0);
-#endif
-}
-
-int pthread_mutex_lock(pthread_mutex_t* mutex)
-{
-#if defined(PTHREAD_MUTEX_AS_WIN32_MUTEX)
-	return (WaitForSingleObject(*mutex, INFINITE)==WAIT_OBJECT_0 ? 0 : EBUSY);
-#elif defined(_WIN32)	/* Win32 Critical Section */
-	EnterCriticalSection(mutex);
-	return 0;	/* No error */
-#elif defined(__OS2__)
-	return DosRequestMutexSem(*mutex, -1 /* SEM_INDEFINITE_WAIT */);
-#endif
-}
-
-int pthread_mutex_trylock(pthread_mutex_t* mutex)
-{
-#if defined(PTHREAD_MUTEX_AS_WIN32_MUTEX)
-	return (WaitForSingleObject(*mutex, 0)==WAIT_OBJECT_0 ? 0 : EBUSY);
-#elif defined(_WIN32)	/* Win32 Critical Section */
-	/* TryEnterCriticalSection only available on NT4+ :-( */
-	return (TryEnterCriticalSection(mutex) ? 0 : EBUSY);
-#elif defined(__OS2__)
-	return DosRequestMutexSem(*mutex, 0 /* SEM_IMMEDIATE_RETURN */);
-#endif
-}
-
-int pthread_mutex_unlock(pthread_mutex_t* mutex)
-{
-#if defined(PTHREAD_MUTEX_AS_WIN32_MUTEX)
-	return (ReleaseMutex(*mutex) ? 0 : GetLastError());
-#elif defined(_WIN32)	/* Win32 Critical Section */
-	LeaveCriticalSection(mutex);
-	return 0;	/* No error */
-#elif defined(__OS2__)
-	return DosReleaseMutexSem(*mutex);
-#endif
-}
-
-int pthread_mutex_destroy(pthread_mutex_t* mutex)
-{
-#if defined(PTHREAD_MUTEX_AS_WIN32_MUTEX)
-	return (CloseHandle(*mutex) ? 0 : GetLastError());
-#elif defined(_WIN32)	/* Win32 Critical Section */
-	DeleteCriticalSection(mutex);
-	return 0;	/* No error */
-#elif defined(__OS2__)
-	return DosCloseMutexSem(*mutex);
-#endif
-}
-
-#endif	/* POSIX thread mutexes */
-
-/************************************************************************/
-/* Protected (thread-safe) Integers (e.g. atomic/interlocked variables) */
-/************************************************************************/
-
-#if __STDC_NO_ATOMICS__
-void protected_int32_init(protected_int32_t* prot, int32_t value)
-{
-	prot->value = value;
-	pthread_mutex_init(&prot->mutex,NULL);
-}
-
-void protected_int64_init(protected_int64_t* prot, int64_t value)
-{
-	prot->value = value;
-	pthread_mutex_init(&prot->mutex,NULL);
-}
-
-int32_t protected_int32_adjust(protected_int32_t* i, int32_t adjustment)
-{
-	int32_t	newval;
-	pthread_mutex_lock(&i->mutex);
-	newval = i->value += adjustment;
-	pthread_mutex_unlock(&i->mutex);
-	return newval;
-}
-
-uint32_t protected_uint32_adjust(protected_uint32_t* i, int32_t adjustment)
-{
-	uint32_t newval;
-	pthread_mutex_lock(&i->mutex);
-	newval = i->value += adjustment;
-	pthread_mutex_unlock(&i->mutex);
-	return newval;
-}
-
-int64_t protected_int64_adjust(protected_int64_t* i, int64_t adjustment)
-{
-	int64_t	newval;
-	pthread_mutex_lock(&i->mutex);
-	newval = i->value += adjustment;
-	pthread_mutex_unlock(&i->mutex);
-	return newval;
-}
-
-uint64_t protected_uint64_adjust(protected_uint64_t* i, int64_t adjustment)
-{
-	uint64_t newval;
-	pthread_mutex_lock(&i->mutex);
-	newval = i->value += adjustment;
-	pthread_mutex_unlock(&i->mutex);
-	return newval;
-}
-
-int32_t protected_int32_set(protected_int32_t* i, int32_t val)
-{
-	int32_t	newval;
-	pthread_mutex_lock(&i->mutex);
-	newval = i->value = val;
-	pthread_mutex_unlock(&i->mutex);
-	return newval;
-}
-
-uint32_t protected_uint32_set(protected_uint32_t* i, uint32_t val)
-{
-	uint32_t newval;
-	pthread_mutex_lock(&i->mutex);
-	newval = i->value = val;
-	pthread_mutex_unlock(&i->mutex);
-	return newval;
-}
-
-int64_t protected_int64_set(protected_int64_t* i, int64_t val)
-{
-	int64_t	newval;
-	pthread_mutex_lock(&i->mutex);
-	newval = i->value = val;
-	pthread_mutex_unlock(&i->mutex);
-	return newval;
-}
-
-uint64_t protected_uint64_set(protected_uint64_t* i, uint64_t val)
-{
-	uint64_t newval;
-	pthread_mutex_lock(&i->mutex);
-	newval = i->value = val;
-	pthread_mutex_unlock(&i->mutex);
-	return newval;
-}
-#endif
diff --git a/xpdev/threadwrap.h b/xpdev/threadwrap.h
deleted file mode 100644
index 29638b532ef1e093480502d9730c49fd2fe9b27d..0000000000000000000000000000000000000000
--- a/xpdev/threadwrap.h
+++ /dev/null
@@ -1,278 +0,0 @@
-/* Thread-related cross-platform development wrappers */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _THREADWRAP_H
-#define _THREADWRAP_H
-
-#include "gen_defs.h"	/* HANDLE */
-#include "wrapdll.h"	/* DLLEXPORT and */
-
-#if !__STDC_NO_ATOMICS__
-	#if defined __GNUC__ && (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 9)) && !defined(__llvm__) && !defined(__INTEL_COMPILER)
-		#define __STDC_NO_ATOMICS__ 1
-	#elif defined __BORLANDC__ || defined _MSC_VER
-		#define __STDC_NO_ATOMICS__ 1
-	#endif
-#endif
-#if !__STDC_NO_ATOMICS__
-#include <stdbool.h>
-#ifdef __cplusplus
-#include <atomic>
-#else
-#include <stdatomic.h>
-#endif
-#endif
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#if defined(__unix__)
-
-	#include <sys/param.h>
-	#include <pthread.h>	/* POSIX threads and mutexes */
-	#include <unistd.h>	/* _POSIX_THREADS definition on FreeBSD (at least) */
-
-	/* Win32 thread API wrappers */
-	ulong _beginthread(void( *start_address )( void * )
-			,unsigned stack_size, void *arglist);
-
-	#define GetCurrentThreadId()		pthread_self()
-
-#elif defined(_WIN32)	
-
-	#include <process.h>	/* _beginthread */
-	#include <limits.h>		/* INT_MAX */
-	#include <errno.h>		/* EAGAIN and EBUSY */
-
-	/* POSIX threads */
-	typedef DWORD pthread_t;
-	#define pthread_self()				GetCurrentThreadId()
-	#define pthread_equal(t1,t2)		((t1)==(t2))
-
-	/* POSIX mutexes */
-	#ifdef PTHREAD_MUTEX_AS_WIN32_MUTEX	/* Much slower/heavier than critical sections */
-
-		typedef HANDLE pthread_mutex_t;
-
-	#else	/* Implemented as Win32 Critical Sections */
-
-		typedef CRITICAL_SECTION pthread_mutex_t;
-
-	#endif
-
-#elif defined(__OS2__)
-
-	/* POSIX mutexes */
-	typedef TID pthread_t;
-	typedef HEV pthread_mutex_t;
-
-#else
-
-	#error "Need thread wrappers."
-
-#endif
-
-/****************************************************************************/
-/* Wrappers for POSIX thread (pthread) mutexes								*/
-/****************************************************************************/
-
-pthread_mutex_t pthread_mutex_initializer_np(BOOL recursive);
-
-#if defined(_POSIX_THREADS)
-
-#if defined (__FreeBSD__) || defined (__OpenBSD__)
- #include <pthread_np.h>
- #define	SetThreadName(c)	pthread_set_name_np(pthread_self(),c)
-#elif defined(__GLIBC__)
- #include <features.h>
- #if (__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 12))
-  #define	SetThreadName(c)	pthread_setname_np(pthread_self(),c)
- #else
-  #define SetThreadName(c)
- #endif
-#else
- #define SetThreadName(c)
-#endif
-
-#else
-
-DLLEXPORT int pthread_mutex_init(pthread_mutex_t*, void* attr);
-DLLEXPORT int pthread_mutex_lock(pthread_mutex_t*);
-DLLEXPORT int pthread_mutex_trylock(pthread_mutex_t*);
-DLLEXPORT int pthread_mutex_unlock(pthread_mutex_t*);
-DLLEXPORT int pthread_mutex_destroy(pthread_mutex_t*);
-
-#define SetThreadName(c)
-
-// A structure in case we need to add an event or something...
-typedef struct {
-	long	state;
-} pthread_once_t;
-
-#define PTHREAD_ONCE_INIT	{0};
-DLLEXPORT int pthread_once(pthread_once_t *oc, void (*init)(void));
-
-#endif
-
-#if !defined(PTHREAD_MUTEX_INITIALIZER_NP)
-	#define PTHREAD_MUTEX_INITIALIZER_NP			pthread_mutex_initializer_np(/* recursive: */FALSE)
-#endif
-#if !defined(PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP)
-	#define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP	pthread_mutex_initializer_np(/* recursive: */TRUE)
-#endif
-
-/************************************************************************/
-/* Protected (thread-safe) Integers (e.g. atomic/interlocked variables) */
-/************************************************************************/
-/* Use of these types and functions is not as fast as your compiler or  */
-/* platform-specific functions (e.g. InterlockedIncrement on Windows or */
-/* atomic_add_int on FreeBSD) but they have the advantage of always		*/
-/* working and being thread-safe on all platforms that support pthread	*/
-/* mutexes.																*/
-/************************************************************************/
-#if !__STDC_NO_ATOMICS__
-#ifdef __cplusplus
-typedef std::atomic<int32_t> protected_int32_t;
-typedef std::atomic<uint32_t> protected_uint32_t;
-typedef std::atomic<int64_t> protected_int64_t;
-typedef std::atomic<uint64_t> protected_uint64_t;
-#define protected_int32_init(pval, val) std::atomic_store<int32_t>(pval, val)
-#define protected_uint32_init(pval, val) std::atomic_store<uint32_t>(pval, val)
-#define protected_int64_init(pval, val) std::atomic_store<int64_t>(pval, val)
-#define protected_uint64_init(pval, val) std::atomic_store<uint64_t>(pval, val)
-
-#define protected_int32_set(pval, val) std::atomic_store<int32_t>(pval, val)
-#define protected_uint32_set(pval, val) std::atomic_store<uint32_t>(pval, val)
-#define protected_int64_set(pval, val) std::atomic_store<int64_t>(pval, val)
-#define protected_uint64_(pval, val) std::atomic_store<uint64_t>(pval, val)
-
-#define protected_int32_adjust(pval, adj) std::atomic_fetch_add<int32_t>(pval, adj)
-#define protected_uint32_adjust(pval, adj) std::atomic_fetch_add<uint32_t>(pval, adj)
-#define protected_int64_adjust(pval, adj) std::atomic_fetch_add<int64_t>(pval, adj)
-#define protected_uint64_adjust(pval, adj) std::atomic_fetch_add<uint64_t>(pval, adj)
-
-#define protected_int32_adjust_fetch(pval, adj) (std::atomic_fetch_add<int32_t>(pval, adj) + adj)
-#define protected_uint32_adjust_fetch(pval, adj) (std::atomic_fetch_add<uint32_t>(pval, adj) + adj)
-#define protected_int64_adjust_fetch(pval, adj) (std::atomic_fetch_add<int64_t>(pval, adj) + adj)
-#define protected_uint64_adjust_fetch(pval, adj) (std::atomic_fetch_add<uint64_t>(pval, adj) + adj)
-
-#define protected_int32_value(val) std::atomic_load<int32_t>(&val)
-#define protected_uint32_value(val) std::atomic_load<uint32_t>(&val)
-#define protected_int64_value(val) std::atomic_load<int64_t>(&val)
-#define protected_uint64_value(val) std::atomic_load<uint64_t>(&val)
-#else
-typedef _Atomic(int32_t) protected_int32_t;
-typedef _Atomic(uint32_t) protected_uint32_t;
-typedef _Atomic(int64_t) protected_int64_t;
-typedef _Atomic(uint64_t) protected_uint64_t;
-
-#define protected_int32_init(pval, val) atomic_init(pval, val)
-#define protected_uint32_init(pval, val) atomic_init(pval, val)
-#define protected_int64_init(pval, val) atomic_init(pval, val)
-#define protected_uint64_init(pval, val) atomic_init(pval, val)
-
-#define protected_int32_set(pval, val) atomic_init(pval, val)
-#define protected_uint32_set(pval, val) atomic_init(pval, val)
-#define protected_int64_set(pval, val) atomic_init(pval, val)
-#define protected_uint64_set(pval, val) atomic_init(pval, val)
-
-#define protected_int32_adjust(pval, adj) atomic_fetch_add(pval, adj)
-#define protected_uint32_adjust(pval, adj) atomic_fetch_add(pval, adj)
-#define protected_int64_adjust(pval, adj) atomic_fetch_add(pval, adj)
-#define protected_uint64_adjust(pval, adj) atomic_fetch_add(pval, adj)
-
-#define protected_int32_adjust_fetch(pval, adj) (atomic_fetch_add(pval, adj) + adj)
-#define protected_uint32_adjust_fetch(pval, adj) (atomic_fetch_add(pval, adj) + adj)
-#define protected_int64_adjust_fetch(pval, adj) (atomic_fetch_add(pval, adj) + adj)
-#define protected_uint64_adjust_fetch(pval, adj) (atomic_fetch_add(pval, adj) + adj)
-
-#define protected_int32_value(val) atomic_load(&val)
-#define protected_uint32_value(val) atomic_load(&val)
-#define protected_int64_value(val) atomic_load(&val)
-#define protected_uint64_value(val) atomic_load(&val)
-#endif
-
-#define protected_int32_destroy(i)
-#define protected_uint32_destroy(i)
-#define protected_int64_destroy(i)
-#define protected_uint64_destroy(i)
-#else
-typedef struct {
-	int32_t				value;
-	pthread_mutex_t		mutex;
-} protected_int32_t;
-
-typedef struct {
-	uint32_t			value;
-	pthread_mutex_t		mutex;
-} protected_uint32_t;
-
-typedef struct {
-	int64_t				value;
-	pthread_mutex_t		mutex;
-} protected_int64_t;
-
-typedef struct {
-	uint64_t			value;
-	pthread_mutex_t		mutex;
-} protected_uint64_t;
-
-#define protected_uint32_init(i, val)	protected_int32_init((protected_int32_t*)i, val)
-#define protected_uint64_init(i, val)	protected_int64_init((protected_int64_t*)i, val)
-/* Return 0 on success, non-zero on failure (see pthread_mutex_destroy): */
-#define protected_int32_destroy(i)	pthread_mutex_destroy(&(i).mutex)
-#define protected_uint32_destroy	protected_int32_destroy	
-#define protected_int64_destroy		protected_int32_destroy	
-#define protected_uint64_destroy	protected_int32_destroy	
-#define protected_int32_value(i)		protected_int32_adjust(&(i),0)
-#define protected_uint32_value(i)		protected_uint32_adjust(&(i),0)
-#define protected_int64_value(i)		protected_int64_adjust(&(i),0)
-#define protected_uint64_value(i)		protected_uint64_adjust(&(i),0)
-
-#define protected_int32_adjust_fetch(a, b)	protected_int32_adjust(a, b)
-#define protected_uint32_adjust_fetch(a, b)	protected_uint32_adjust(a, b)
-#define protected_int64_adjust_fetch(a, b)	protected_int64_adjust(a, b)
-#define protected_uint64_adjust_fetch(a, b)	protected_uint64_adjust(a, b)
-
-/* Return 0 on success, non-zero on failure (see pthread_mutex_init): */
-DLLEXPORT void protected_int32_init(protected_int32_t*,	int32_t value);
-DLLEXPORT void protected_int64_init(protected_int64_t*,	int64_t value);
-
-/* Return new value: */
-DLLEXPORT int32_t protected_int32_adjust(protected_int32_t*, int32_t adjustment);
-DLLEXPORT int32_t protected_int32_set(protected_int32_t*, int32_t val);
-DLLEXPORT uint32_t protected_uint32_adjust(protected_uint32_t*, int32_t adjustment);
-DLLEXPORT uint32_t protected_uint32_set(protected_uint32_t*, uint32_t val);
-DLLEXPORT int64_t protected_int64_adjust(protected_int64_t*, int64_t adjustment);
-DLLEXPORT int64_t protected_int64_set(protected_int64_t*, int64_t val);
-DLLEXPORT uint64_t protected_uint64_adjust(protected_uint64_t*, int64_t adjustment);
-DLLEXPORT uint64_t protected_uint64_set(protected_uint64_t*, uint64_t adjustment);
-
-#endif
-
-#if defined(__cplusplus)
-}
-#endif
-
-#include "semwrap.h"
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/tutorial.doc b/xpdev/tutorial.doc
deleted file mode 100644
index 4f13c2ba0b02db75f708b131a98fe53d7a6c0118..0000000000000000000000000000000000000000
Binary files a/xpdev/tutorial.doc and /dev/null differ
diff --git a/xpdev/tutorial.ppt b/xpdev/tutorial.ppt
deleted file mode 100644
index 58ce1a865f9ec7e520ab7f3b0b2238bbfdcb7af6..0000000000000000000000000000000000000000
Binary files a/xpdev/tutorial.ppt and /dev/null differ
diff --git a/xpdev/unicode.c b/xpdev/unicode.c
deleted file mode 100644
index 96a333764decdf64aa4edd8394233d8ca1c68036..0000000000000000000000000000000000000000
--- a/xpdev/unicode.c
+++ /dev/null
@@ -1,744 +0,0 @@
-/* Synchronet Unicode encode/decode/translate functions */
-
-/* $Id: unicode.c,v 1.15 2019/08/30 11:04:53 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include "unicode.h"
-#include "cp437defs.h"
-#include "unicode_defs.h"
-
-// Want UNICDE encodings of terminal control characters?
-#if defined USE_UNICODE_FOR_TERM_CTRL_CHARS
-#	define UNICODE_TERM_CTRL_CHAR_CODE(x) x
-#else
-#	define UNICODE_TERM_CTRL_CHAR_CODE(x) 0
-#endif
-
-// CP437 character to/from UNICODE code point conversion
-// The CP437 character value is the index into the table.
-// If the value at that index is 0, no translation is needed (1:1 mapping).
-enum unicode_codepoint cp437_unicode_tbl[] =
-{
-	/* 0x00 */ UNICODE_UNDEFINED,
-	/* 0x01 */ UNICODE_WHITE_SMILING_FACE,
-	/* 0x02 */ UNICODE_BLACK_SMILING_FACE,
-	/* 0x03 */ UNICODE_BLACK_HEART_SUIT,
-	/* 0x04 */ UNICODE_BLACK_DIAMOND_SUIT,
-	/* 0x05 */ UNICODE_BLACK_CLUB_SUIT,
-	/* 0x06 */ UNICODE_BLACK_SPADE_SUIT,
-	/* 0x07 '\a' */	UNICODE_TERM_CTRL_CHAR_CODE(UNICODE_BULLET),
-	/* 0x08 '\b' */	UNICODE_TERM_CTRL_CHAR_CODE(UNICODE_INVERSE_BULLET),
-	/* 0x09 '\t' */	UNICODE_TERM_CTRL_CHAR_CODE(UNICODE_WHITE_CIRCLE),
-	/* 0x0A '\n' */	UNICODE_TERM_CTRL_CHAR_CODE(UNICODE_INVERSE_WHITE_CIRCLE),
-	/* 0x0B */ UNICODE_MALE_SIGN,
-	/* 0x0C '\f' */	UNICODE_TERM_CTRL_CHAR_CODE(UNICODE_FEMALE_SIGN),
-	/* 0x0D '\r' */	UNICODE_TERM_CTRL_CHAR_CODE(UNICODE_EIGHTH_NOTE),
-	/* 0x0E */ UNICODE_BEAMED_EIGHTH_NOTES,
-	/* 0x0F */ UNICODE_WHITE_SUN_WITH_RAYS,
-	/* 0x10 */ UNICODE_BLACK_RIGHT_POINTING_POINTER,
-	/* 0x11 */ UNICODE_BLACK_LEFT_POINTING_POINTER,
-	/* 0x12 */ UNICODE_UP_DOWN_ARROW,
-	/* 0x13 */ UNICODE_DOUBLE_EXCLAMATION_MARK,
-	/* 0x14 */ UNICODE_PILCROW_SIGN,
-	/* 0x15 */ UNICODE_SECTION_SIGN,
-	/* 0x16 */ UNICODE_BLACK_RECTANGLE,
-	/* 0x17 */ UNICODE_UP_DOWN_ARROW_WITH_BASE,
-	/* 0x18 */ UNICODE_UPWARDS_ARROW,
-	/* 0x19 */ UNICODE_DOWNWARDS_ARROW,
-	/* 0x1A */ UNICODE_RIGHTWARDS_ARROW,
-	/* 0x1B '\e' */ UNICODE_TERM_CTRL_CHAR_CODE(UNICODE_LEFTWARDS_ARROW),
-	/* 0x1C */ UNICODE_RIGHT_ANGLE,
-	/* 0x1D */ UNICODE_LEFT_RIGHT_ARROW,
-	/* 0x1E */ UNICODE_BLACK_UP_POINTING_TRIANGLE,
-	/* 0x1F */ UNICODE_BLACK_DOWN_POINTING_TRIANGLE,
-	/* 0x20-0x7E	(1:1 with US-ASCII and CP437) */
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	0,
-	/* 0x7F (DEL) */ UNICODE_TERM_CTRL_CHAR_CODE(UNICODE_HOUSE),
-	/* 0x80 */ UNICODE_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA,
-	/* 0x81 */ UNICODE_LATIN_SMALL_LETTER_U_WITH_DIAERESIS,
-	/* 0x82 */ UNICODE_LATIN_SMALL_LETTER_E_WITH_ACUTE,
-	/* 0x83 */ UNICODE_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX,
-	/* 0x84 */ UNICODE_LATIN_SMALL_LETTER_A_WITH_DIAERESIS,
-	/* 0x85 */ UNICODE_LATIN_SMALL_LETTER_A_WITH_GRAVE,
-	/* 0x86 */ UNICODE_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE,
-	/* 0x87 */ UNICODE_LATIN_SMALL_LETTER_C_WITH_CEDILLA,
-	/* 0x88 */ UNICODE_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX,
-	/* 0x89 */ UNICODE_LATIN_SMALL_LETTER_E_WITH_DIAERESIS,
-	/* 0x8A */ UNICODE_LATIN_SMALL_LETTER_E_WITH_GRAVE,
-	/* 0x8B */ UNICODE_LATIN_SMALL_LETTER_I_WITH_DIAERESIS,
-	/* 0x8C */ UNICODE_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX,
-	/* 0x8D */ UNICODE_LATIN_SMALL_LETTER_I_WITH_GRAVE,
-	/* 0x8E */ UNICODE_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS,
-	/* 0x8F */ UNICODE_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE,
-	/* 0x90 */ UNICODE_LATIN_CAPITAL_LETTER_E_WITH_ACUTE,
-	/* 0x91 */ UNICODE_LATIN_SMALL_LETTER_AE,
-	/* 0x92 */ UNICODE_LATIN_CAPITAL_LETTER_AE,
-	/* 0x93 */ UNICODE_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX,
-	/* 0x94 */ UNICODE_LATIN_SMALL_LETTER_O_WITH_DIAERESIS,
-	/* 0x95 */ UNICODE_LATIN_SMALL_LETTER_O_WITH_GRAVE,
-	/* 0x96 */ UNICODE_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX,
-	/* 0x97 */ UNICODE_LATIN_SMALL_LETTER_U_WITH_GRAVE,
-	/* 0x98 */ UNICODE_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS,
-	/* 0x99 */ UNICODE_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS,
-	/* 0x9A */ UNICODE_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS,
-	/* 0x9B */ UNICODE_CENT_SIGN,
-	/* 0x9C */ UNICODE_POUND_SIGN,
-	/* 0x9D */ UNICODE_YEN_SIGN,
-	/* 0x9E */ UNICODE_PESETA_SIGN,
-	/* 0x9F */ UNICODE_LATIN_SMALL_LETTER_F_WITH_HOOK,
-	/* 0xA0 */ UNICODE_LATIN_SMALL_LETTER_A_WITH_ACUTE,
-	/* 0xA1 */ UNICODE_LATIN_SMALL_LETTER_I_WITH_ACUTE,
-	/* 0xA2 */ UNICODE_LATIN_SMALL_LETTER_O_WITH_ACUTE,
-	/* 0xA3 */ UNICODE_LATIN_SMALL_LETTER_U_WITH_ACUTE,
-	/* 0xA4 */ UNICODE_LATIN_SMALL_LETTER_N_WITH_TILDE,
-	/* 0xA5 */ UNICODE_LATIN_CAPITAL_LETTER_N_WITH_TILDE,
-	/* 0xA6 */ UNICODE_FEMININE_ORDINAL_INDICATOR,
-	/* 0xA7 */ UNICODE_MASCULINE_ORDINAL_INDICATOR,
-	/* 0xA8 */ UNICODE_INVERTED_QUESTION_MARK,
-	/* 0xA9 */ UNICODE_REVERSED_NOT_SIGN,
-	/* 0xAA */ UNICODE_NOT_SIGN,
-	/* 0xAB */ UNICODE_VULGAR_FRACTION_ONE_HALF,
-	/* 0xAC */ UNICODE_VULGAR_FRACTION_ONE_QUARTER,
-	/* 0xAD */ UNICODE_INVERTED_EXCLAMATION_MARK,
-	/* 0xAE */ UNICODE_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK,
-	/* 0xAF */ UNICODE_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK,
-	/* 0xB0 */ UNICODE_LIGHT_SHADE,
-	/* 0xB1 */ UNICODE_MEDIUM_SHADE,
-	/* 0xB2 */ UNICODE_DARK_SHADE,
-	/* 0xB3 */ UNICODE_BOX_DRAWINGS_LIGHT_VERTICAL,
-	/* 0xB4 */ UNICODE_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT,
-	/* 0xB5 */ UNICODE_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE,
-	/* 0xB6 */ UNICODE_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE,
-	/* 0xB7 */ 0x2556,
-	/* 0xB8 */ 0x2555,
-	/* 0xB9 */ 0x2563,
-	/* 0xBA */ 0x2551,
-	/* 0xBB */ 0x2557,
-	/* 0xBC */ 0x255D,
-	/* 0xBD */ 0x255C,
-	/* 0xBE */ 0x255B,
-	/* 0xBF */ 0x2510,
-	/* 0xC0 */ 0x2514,
-	/* 0xC1 */ 0x2534,
-	/* 0xC2 */ 0x252C,
-	/* 0xC3 */ 0x251C,
-	/* 0xC4 */ 0x2500,
-	/* 0xC5 */ 0x253C,
-	/* 0xC6 */ 0x255E,
-	/* 0xC7 */ 0x255F,
-	/* 0xC8 */ 0x255A,
-	/* 0xC9 */ 0x2554,
-	/* 0xCA */ 0x2569,
-	/* 0xCB */ 0x2566,
-	/* 0xCC */ 0x2560,
-	/* 0xCD */ 0x2550,
-	/* 0xCE */ 0x256C,
-	/* 0xCF */ 0x2567,
-	/* 0xD0 */ 0x2568,
-	/* 0xD1 */ 0x2564,
-	/* 0xD2 */ 0x2565,
-	/* 0xD3 */ 0x2559,
-	/* 0xD4 */ 0x2558,
-	/* 0xD5 */ 0x2552,
-	/* 0xD6 */ 0x2553,
-	/* 0xD7 */ 0x256B,
-	/* 0xD8 */ 0x256A,
-	/* 0xD9 */ 0x2518,
-	/* 0xDA */ 0x250C,
-	/* 0xDB */ 0x2588,
-	/* 0xDC */ UNICODE_LOWER_HALF_BLOCK,
-	/* 0xDD */ 0x258C,
-	/* 0xDE */ 0x2590,
-	/* 0xDF */ UNICODE_UPPER_HALF_BLOCK,
-	/* 0xE0 */ UNICODE_GREEK_SMALL_LETTER_ALPHA,
-	/* 0xE1 */ UNICODE_GREEK_SMALL_LETTER_BETA, // or UNICODE_LATIN_SMALL_LETTER_SHARP_S
-	/* 0xE2 */ UNICODE_GREEK_SMALL_LETTER_GAMMA,
-	/* 0xE3 */ UNICODE_GREEK_SMALL_LETTER_PI,
-	/* 0xE4 */ UNICODE_GREEK_CAPITAL_LETTER_SIGMA,
-	/* 0xE5 */ UNICODE_GREEK_SMALL_LETTER_SIGMA,
-	/* 0xE6 */ UNICODE_GREEK_SMALL_LETTER_MU, // or UNICODE_MICRO_SIGN
-	/* 0xE7 */ UNICODE_GREEK_SMALL_LETTER_TAU,
-	/* 0xE8 */ UNICODE_GREEK_CAPITAL_LETTER_PHI,
-	/* 0xE9 */ UNICODE_GREEK_SMALL_LETTER_THETA, // or UNICODE_GREEK_CAPITAL_LETTER_THETA
-	/* 0xEA */ UNICODE_GREEK_CAPITAL_LETTER_OMEGA,
-	/* 0xEB */ UNICODE_GREEK_SMALL_LETTER_DELTA,
-	/* 0xEC */ UNICODE_INFINITY,
-	/* 0xED */ UNICODE_GREEK_SMALL_LETTER_PHI,
-	/* 0xEE */ UNICODE_GREEK_SMALL_LETTER_EPSILON,
-	/* 0xEF */ UNICODE_INTERSECTION,
-	/* 0xF0 */ UNICODE_IDENTICAL_TO, // A.K.A. "TRIPLE BAR"
-	/* 0xF1 */ UNICODE_PLUS_MINUS_SIGN,
-	/* 0xF2 */ UNICODE_GREATER_THAN_OR_EQUAL_TO,
-	/* 0xF3 */ UNICODE_LESS_THAN_OR_EQUAL_TO,
-	/* 0xF4 */ UNICODE_TOP_HALF_INTEGRAL,
-	/* 0xF5 */ UNICODE_BOTTOM_HALF_INTEGRAL,
-	/* 0xF6 */ UNICODE_DIVISION_SIGN,
-	/* 0xF7 */ UNICODE_ALMOST_EQUAL_TO,
-	/* 0xF8 */ UNICODE_DEGREE_SIGN,
-	/* 0xF9 */ UNICODE_BULLET_OPERATOR,
-	/* 0xFA */ UNICODE_MIDDLE_DOT,
-	/* 0xFB */ UNICODE_SQUARE_ROOT, // or UNICODE_CHECK_MARK
-	/* 0xFC */ UNICODE_SUPERSCRIPT_LATIN_SMALL_LETTER_N,
-	/* 0xFD */ UNICODE_SUPERSCRIPT_TWO,
-	/* 0xFE */ UNICODE_HALFWIDTH_BLACK_SQUARE, // or UNICODE_BLACK_SQUARE
-	/* 0xFF */ UNICODE_NO_BREAK_SPACE
-};
-
-size_t unicode_width(enum unicode_codepoint u)
-{
-	switch(u) {
-		case UNICODE_UNDEFINED:
-		case UNICODE_ZERO_WIDTH_SPACE:
-		case UNICODE_ZERO_WIDTH_NON_JOINER:
-		case UNICODE_ZERO_WIDTH_JOINER:
-		case UNICODE_VARIATION_SELECTOR_1:
-		case UNICODE_VARIATION_SELECTOR_2:
-		case UNICODE_VARIATION_SELECTOR_3:
-		case UNICODE_VARIATION_SELECTOR_4:
-		case UNICODE_VARIATION_SELECTOR_5:
-		case UNICODE_VARIATION_SELECTOR_6:
-		case UNICODE_VARIATION_SELECTOR_7:
-		case UNICODE_VARIATION_SELECTOR_8:
-		case UNICODE_VARIATION_SELECTOR_9:
-		case UNICODE_VARIATION_SELECTOR_10:
-		case UNICODE_VARIATION_SELECTOR_11:
-		case UNICODE_VARIATION_SELECTOR_12:
-		case UNICODE_VARIATION_SELECTOR_13:
-		case UNICODE_VARIATION_SELECTOR_14:
-		case UNICODE_VARIATION_SELECTOR_15:
-		case UNICODE_VARIATION_SELECTOR_16:
-		case UNICODE_ZERO_WIDTH_NO_BREAK_SPACE:
-			return 0;
-		default:
-			if(    (u >= UNICODE_BLOCK_CJK_RADICALS_SUPPLEMENT_BEGIN		&& u <= UNICIDE_BLOCK_YI_RADICALS_END)
-				|| (u >= UNICIDE_BLOCK_HANGUL_SYLLABLES_BEGIN				&& u <= UNICIDE_BLOCK_HANGUL_SYLLABLES_END)
-				|| (u >= UNICODE_BLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_BEGIN	&& u <= UNICODE_BLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_END)
-				|| (u >= UNICODE_BLOCK_VERTICAL_FORMS_BEGIN					&& u <= UNICODE_BLOCK_VERTICAL_FORMS_END)
-				|| (u >= UNICODE_BLOCK_CJK_COMPATIBILITY_FORMS_BEGIN		&& u <= UNICODE_BLOCK_CJK_COMPATIBILITY_FORMS_END)
-				|| (u >= UNICODE_BLOCK_SMALL_FORM_VARIANTS_BEGIN			&& u <= UNICODE_BLOCK_SMALL_FORM_VARIANTS_END)
-				|| (u >= UNICODE_SUBBLOCK_FULLWIDTH_CHARS_BEGIN				&& u <= UNICODE_SUBBLOCK_FULLWIDTH_CHARS_END)
-				|| (u >= UNICODE_SUBBLOCK_FULLWIDTH_SYMBOLS_BEGIN			&& u <= UNICODE_SUBBLOCK_FULLWIDTH_SYMBOLS_END)
-				)
-				return 2;
-			return 1;
-	}
-}
-
-char unicode_to_latin1(enum unicode_codepoint codepoint)
-{
-	if (codepoint < 0 || codepoint > 255)
-		return UNICODE_UNDEFINED;
-	return codepoint;
-}
-
-char unicode_to_cp437(enum unicode_codepoint codepoint)
-{
-	switch(codepoint) {
-		case UNICODE_ACUTE_ACCENT:								return '\'';
-
-		case UNICODE_BROKEN_BAR:								return '|';
-		case UNICODE_MACRON:									return '~';
-
-		case UNICODE_CENT_SIGN:									return CP437_CENT_SIGN;
-		case UNICODE_POUND_SIGN:								return CP437_POUND_SIGN;
-		case UNICODE_YEN_SIGN:									return CP437_YEN_SIGN;
-		case UNICODE_SECTION_SIGN:								return CP437_SECTION_SIGN;
-		case UNICODE_DEGREE_CELSIUS:
-		case UNICODE_DEGREE_FAHRENHEIT:
-		case UNICODE_DEGREE_SIGN:								return CP437_DEGREE_SIGN;
-		case UNICODE_PLUS_MINUS_SIGN:							return CP437_PLUS_MINUS_SIGN;
-		case UNICODE_SUPERSCRIPT_TWO:							return CP437_SUPERSCRIPT_TWO;
-		case UNICODE_PILCROW_SIGN:								return CP437_PILCROW_SIGN;
-		case UNICODE_INVERTED_QUESTION_MARK:					return CP437_INVERTED_QUESTION_MARK;
-		case UNICODE_INVERTED_EXCLAMATION_MARK:					return CP437_INVERTED_EXCLAMATION_MARK;
-		case UNICODE_DOUBLE_EXCLAMATION_MARK:					return CP437_DOUBLE_EXCLAMATION_MARK;
-		case UNICODE_LEFT_POINTING_ANGLE_BRACKET:				return '<';
-		case UNICODE_RIGHT_POINTING_ANGLE_BRACKET:				return '>';
-		case UNICODE_COUNTERSINK:								return 'v';
-		case UNICODE_APL_FUNCTIONAL_SYMBOL_I_BEAM:				return 'I';
-
-		// Perform Upper -> Lower case mapping where an upper case equivalent doesn't exist in CP437:
-		case UNICODE_LATIN_CAPITAL_LETTER_A_WITH_GRAVE:			return CP437_LATIN_SMALL_LETTER_A_WITH_GRAVE;
-		case UNICODE_LATIN_CAPITAL_LETTER_A_WITH_ACUTE:			return CP437_LATIN_SMALL_LETTER_A_WITH_ACUTE;
-		case UNICODE_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX:	return CP437_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX;
-
-		case UNICODE_LATIN_CAPITAL_LETTER_E_WITH_GRAVE:			return CP437_LATIN_SMALL_LETTER_E_WITH_GRAVE;
-		case UNICODE_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX:	return CP437_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX;
-		case UNICODE_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS:		return CP437_LATIN_SMALL_LETTER_E_WITH_DIAERESIS;
-
-		case UNICODE_LATIN_CAPITAL_LETTER_I_WITH_GRAVE:			return CP437_LATIN_SMALL_LETTER_I_WITH_GRAVE;
-		case UNICODE_LATIN_CAPITAL_LETTER_I_WITH_ACUTE:			return CP437_LATIN_SMALL_LETTER_I_WITH_ACUTE;
-		case UNICODE_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX:	return CP437_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX;
-		case UNICODE_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS:		return CP437_LATIN_SMALL_LETTER_I_WITH_DIAERESIS;
-
-		case UNICODE_LATIN_CAPITAL_LETTER_O_WITH_GRAVE:			return CP437_LATIN_SMALL_LETTER_O_WITH_GRAVE;
-		case UNICODE_LATIN_CAPITAL_LETTER_O_WITH_ACUTE:			return CP437_LATIN_SMALL_LETTER_O_WITH_ACUTE;
-		case UNICODE_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX:	return CP437_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX;
-
-		case UNICODE_LATIN_CAPITAL_LETTER_U_WITH_GRAVE:			return CP437_LATIN_SMALL_LETTER_U_WITH_GRAVE;
-		case UNICODE_LATIN_CAPITAL_LETTER_U_WITH_ACUTE:			return CP437_LATIN_SMALL_LETTER_U_WITH_ACUTE;
-		case UNICODE_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX:	return CP437_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX;
-
-		case UNICODE_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS:		return CP437_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS;
-
-		// Greek letters
-		case UNICODE_GREEK_CAPITAL_LETTER_ALPHA:
-		case UNICODE_GREEK_CAPITAL_LETTER_ALPHA_WITH_TONOS:		return 'A';
-		case UNICODE_GREEK_CAPITAL_LETTER_BETA:					return 'B';
-		case UNICODE_GREEK_CAPITAL_LETTER_GAMMA:
-		case UNICODE_GREEK_SMALL_LETTER_GAMMA:					return CP437_GREEK_CAPITAL_LETTER_GAMMA;
-		case UNICODE_GREEK_CAPITAL_LETTER_DELTA:
-		case UNICODE_GREEK_SMALL_LETTER_DELTA:					return CP437_GREEK_SMALL_LETTER_DELTA;
-		case UNICODE_GREEK_CAPITAL_LETTER_EPSILON:
-		case UNICODE_GREEK_CAPITAL_LETTER_EPSILON_WITH_TONOS:
-		case UNICODE_GREEK_SMALL_LETTER_EPSILON:
-		case UNICODE_GREEK_SMALL_LETTER_EPSILON_WITH_TONOS:		return CP437_GREEK_SMALL_LETTER_EPSILION;
-		case UNICODE_GREEK_CAPITAL_LETTER_ZETA:					return 'Z';
-		case UNICODE_GREEK_CAPITAL_LETTER_ETA:					return 'H';
-		case UNICODE_GREEK_CAPITAL_LETTER_THETA:
-		case UNICODE_GREEK_SMALL_LETTER_THETA:
-		case UNICODE_GREEK_THETA_SYMBOL:						return CP437_GREEK_SMALL_LETTER_THETA;
-		case UNICODE_GREEK_CAPITAL_LETTER_IOTA:					
-		case UNICODE_GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA:	return 'I';
-		case UNICODE_GREEK_CAPITAL_LETTER_KAPPA:				return 'K';
-		case UNICODE_GREEK_CAPITAL_LETTER_MU:					return 'M';
-		case UNICODE_GREEK_CAPITAL_LETTER_NU:					return 'N';
-		case UNICODE_GREEK_CAPITAL_LETTER_OMICRON:				return 'O';
-		case UNICODE_GREEK_CAPITAL_LETTER_PI:
-		case UNICODE_GREEK_SMALL_LETTER_PI:
-		case UNICODE_GREEK_PI_SYMBOL:							return CP437_GREEK_SMALL_LETTER_PI;
-		case UNICODE_GREEK_CAPITAL_LETTER_RHO:					return 'P';
-		case UNICODE_GREEK_CAPITAL_LETTER_SIGMA:				return CP437_GREEK_CAPITAL_LETTER_SIGMA;			
-		case UNICODE_GREEK_CAPITAL_LETTER_TAU:
-		case UNICODE_GREEK_SMALL_LETTER_TAU:
-																return 'T';
-		case UNICODE_GREEK_CAPITAL_LETTER_UPSILON:				return 'Y';
-		case UNICODE_GREEK_CAPITAL_LETTER_PHI:					return CP437_GREEK_CAPITAL_LETTER_PHI;
-		case UNICODE_GREEK_CAPITAL_LETTER_CHI:					return 'X';
-		case UNICODE_GREEK_CAPITAL_LETTER_OMEGA:
-		case UNICODE_GREEK_CAPITAL_LETTER_OMEGA_WITH_TONOS:
-		case UNICODE_GREEK_SMALL_LETTER_OMEGA:
-		case UNICODE_GREEK_SMALL_LETTER_OMEGA_WITH_TONOS:		return CP437_GREEK_CAPITAL_LETTER_OMEGA;
-		case UNICODE_GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA:
-																return CP437_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS;
-		case UNICODE_GREEK_SMALL_LETTER_ALPHA:
-		case UNICODE_GREEK_SMALL_LETTER_ALPHA_WITH_TONOS:		return CP437_GREEK_SMALL_LETTER_ALPHA;
-		case UNICODE_GREEK_SMALL_LETTER_BETA:					return CP437_GREEK_SMALL_LETTER_BETA;
-		case UNICODE_GREEK_SMALL_LETTER_MU:						return CP437_GREEK_SMALL_LETTER_MU;
-		case UNICODE_GREEK_SMALL_LETTER_NU:						return 'v';
-		case UNICODE_GREEK_SMALL_LETTER_OMICRON:				return 'o';
-		case UNICODE_GREEK_SMALL_LETTER_OMICRON_WITH_TONOS:		return CP437_LATIN_SMALL_LETTER_O_WITH_ACUTE;
-		case UNICODE_GREEK_SMALL_LETTER_UPSILON:				return 'u';
-		case UNICODE_GREEK_SMALL_LETTER_UPSILON_WITH_TONOS:		return CP437_LATIN_SMALL_LETTER_U_WITH_ACUTE;
-		case UNICODE_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA:
-		case UNICODE_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS:
-																return CP437_LATIN_SMALL_LETTER_U_WITH_DIAERESIS;
-		case UNICODE_GREEK_SMALL_LETTER_IOTA:					
-		case UNICODE_GREEK_SMALL_LETTER_IOTA_WITH_TONOS:		return 'i';
-		case UNICODE_GREEK_SMALL_LETTER_KAPPA:					return 'k';
-		case UNICODE_GREEK_SMALL_LETTER_CHI:					return 'x';
-		case UNICODE_GREEK_SMALL_LETTER_SIGMA:
-		case UNICODE_GREEK_SMALL_LETTER_FINAL_SIGMA:			return CP437_GREEK_SMALL_LETTER_SIGMA;
-		case UNICODE_GREEK_SMALL_LETTER_RHO:					return 'p';	
-		case UNICODE_GREEK_SMALL_LETTER_ZETA:					return 'z';
-		case UNICODE_GREEK_SMALL_LETTER_ETA:					return 'n';
-
-		case UNICODE_EM_DASH:
-			return '\xC4';
-
-		case UNICODE_BULLET:
-		case UNICODE_BULLET_OPERATOR:							return CP437_BULLET_OPERATOR;
-
-		case UNICODE_NO_BREAK_SPACE:
-		case UNICODE_EN_QUAD:
-		case UNICODE_EM_QUAD:
-		case UNICODE_EN_SPACE:
-		case UNICODE_EM_SPACE:									return ' ';
-
-		case UNICODE_SQUARE_ROOT:								return CP437_SQUARE_ROOT;
-		case UNICODE_CHECK_MARK:
-		case UNICODE_HEAVY_CHECK_MARK:							return CP437_CHECK_MARK;
-
-		case UNICODE_MULTIPLICATION_X:
-		case UNICODE_HEAVY_MULTIPLICATION_X:
-		case UNICODE_BALLOT_X:
-		case UNICODE_HEAVY_BALLOT_X:							return 'x';
-
-		case UNICODE_DIVISION_SLASH:							return '/';
-		case UNICODE_SET_MINUS:									return '\\';
-		case UNICODE_ASTERISK_OPERATOR:							return '*';
-
-		case UNICODE_DOUBLE_VERTICAL_LINE:						return CP437_BOX_DRAWINGS_DOUBLE_VERTICAL;
-
-		case UNICODE_DOUBLE_LOW_LINE:							return '=';
-		case UNICODE_LEFT_SINGLE_QUOTATION_MARK:
-		case UNICODE_RIGHT_SINGLE_QUOTATION_MARK:
-		case UNICODE_SINGLE_HIGH_REVERSED_9_QUOTATION_MARK:		return '\'';
-		case UNICODE_SINGLE_LOW_9_QUOTATION_MARK:				return ',';
-		case UNICODE_LEFT_DOUBLE_QUOTATION_MARK:
-		case UNICODE_RIGHT_DOUBLE_QUOTATION_MARK:				
-		case UNICODE_DOUBLE_LOW_9_QUOTATION_MARK:
-		case UNICODE_DOUBLE_HIGH_REVERSED_9_QUOTATION_MARK:		return '"';
-		case UNICODE_DAGGER:									return CP437_BOX_DRAWINGS_VERTICAL_AND_HORIZONTAL;
-		
-		case UNICODE_BLACK_SQUARE:
-		case UNICODE_BLACK_SQUARE_CENTERED:
-		case UNICODE_BLACK_SQUARE_FOR_STOP:
-		case UNICODE_BLACK_SMALL_SQUARE:
-		case UNICODE_BLACK_MEDIUM_SQUARE:
-		case UNICODE_BLACK_LARGE_SQUARE:
-		case UNICODE_BLACK_MEDIUM_SMALL_SQUARE:
-		case UNICODE_BLACK_VERY_SMALL_SQUARE:	
-		case UNICODE_HALFWIDTH_BLACK_SQUARE:					return CP437_HALFWIDTH_BLACK_SQUARE;
-
-		case UNICODE_HORIZONTAL_BAR:
-		case UNICODE_OVERLINE:
-		case 0x2500: // Box Drawings Light Horizontal
-		case 0x2501: // Box Drawings Heavy Horizontal
-		case 0x2504: // Box Drawings Light Triple Dash Horizontal
-		case 0x2505: // Box Drawings Heavy Triple Dash Horizontal
-		case 0x2508: // Box Drawings Light Quadruple Dash Horizontal
-		case 0x2509: // Box Drawings Heavy Quadruple Dash Horizontal
-		case 0x254C: // Box Drawings Light Double Dash Horizontal
-		case 0x254D: // Box Drawings Heavy Double Dash Horizontal
-		case 0x2574: // Box Drawings Light Left
-		case 0x2576: // Box Drawings Light Right
-		case 0x2578: // Box Drawings Heavy Left
-		case 0x257A: // Box Drawings Heavy Right
-		case 0x257C: // Box Drawings Light Left and Heavy Right
-		case 0x257E: // Box Drawings Heavy Left and Light Right
-			return '\xC4';
-
-		case 0x2502: // Box Drawings Light Vertical
-		case 0x2503: // Box Drawings Heavy Vertical
-		case 0x2506: // Box Drawings Light Triple Dash Vertical
-		case 0x2507: // Box Drawings Heavy Triple Dash Vertical
-		case 0x250A: // Box Drawings Light Quadruple Dash Vertical
-		case 0x250B: // Box Drawings Heavy Quadruple Dash Vertical
-			return '\xB3';
-
-		case 0x250C: // BOX DRAWINGS LIGHT DOWN AND RIGHT
-		case 0x250D:
-		case 0x250E:
-		case 0x250F: // BOX DRAWINGS HEAVY DOWN AND RIGHT
-			return '\xDA';
-
-		case 0x2510: // BOX DRAWINGS LIGHT DOWN AND LEFT
-		case 0x2511:
-		case 0x2512:
-		case 0x2513: // BOX DRAWINGS HEAVY DOWN AND LEFT
-			return '\xBF';
-
-		case 0x2514: // BOX DRAWINGS LIGHT UP AND RIGHT
-		case 0x2515:
-		case 0x2516:
-		case 0x2517: // BOX DRAWINGS HEAVY UP AND RIGHT
-			return '\xC0';
-
-		case 0x2518: // BOX DRAWINGS LIGHT UP AND LEFT
-		case 0x2519:
-		case 0x251A:
-		case 0x251B: // BOX DRAWINGS HEAVY UP AND LEFT
-			return '\xD9';
-
-		case 0x251C: // BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-		case 0x251D:
-		case 0x251E:
-		case 0x251F:
-		case 0x2520:
-		case 0x2521:
-		case 0x2522:
-		case 0x2523: // BOX DRAWINGS HEAVY VERTICAL AND RIGHT
-			return '\xC3';
-
-		case 0x2524: // BOX DRAWINGS LIGHT VERTICAL AND LEFT
-		case 0x2525:
-		case 0x2526:
-		case 0x2527:
-		case 0x2528:
-		case 0x2529:
-		case 0x252A:
-		case 0x252B:
-			return '\xB4';
-
-		case 0x252C: // BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-		case 0x252D:
-		case 0x252E:
-		case 0x252F:
-		case 0x2530:
-		case 0x2531:
-		case 0x2532: // BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY
-		case 0x2533: // BOX DRAWINGS HEAVY DOWN AND HORIZONTAL
-			return '\xC2';
-
-		case 0x2534: // BOX DRAWINGS LIGHT UP AND HORIZONTAL
-		case 0x2535: // BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT
-		case 0x2536: // BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT
-		case 0x2537: // BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY
-		case 0x2538: // BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT
-		case 0x2539: // BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY
-		case 0x253A: // BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY
-		case 0x253B: // BOX DRAWINGS HEAVY UP AND HORIZONTAL
-			return '\xC1';
-
-		case 0x253C: // BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-		case 0x253D: // BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT
-		case 0x253E: // BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT
-		case 0x253F: // BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY
-		case 0x2540: // BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT
-		case 0x2541: // BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT
-		case 0x2542: // BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT
-		case 0x2543: // BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT
-		case 0x2544: // BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT
-		case 0x2545: // BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT
-		case 0x2546: // BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT
-		case 0x2547: // BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY
-		case 0x2548: // BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY
-		case 0x2549: // BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY
-		case 0x254A: // BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY
-		case 0x254B: // BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
-			return '\xC5';
-
-		case 0x254E: // BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL
-		case 0x254F: // BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL
-			return '|';
-
-		case 0x256D: // BOX DRAWINGS LIGHT ARC DOWN AND RIGHT
-			return '\xDA';
-
-		case 0x256E: // BOX DRAWINGS LIGHT ARC DOWN AND LEFT
-			return '\xBF';
-
-		case 0x256F: // BOX DRAWINGS LIGHT ARC UP AND LEFT
-			return '\xD9';
-
-		case 0x2570: // BOX DRAWINGS LIGHT ARC UP AND RIGHT
-			return '\xC0';
-
-		case 0x2571: // BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT
-			return '/';
-
-		case 0x2572: // BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT
-			return '\\';
-
-		case 0x2573: // BOX DRAWINGS LIGHT DIAGONAL CROSS
-			return 'X';
-
-		case 0x2575: // Box Drawings Light Up
-		case 0x2577: // Box Drawings Light Down
-		case 0x2579: // Box Drawings Heavy Up
-		case 0x257B: // Box Drawings Heavy Down
-		case 0x257D: // Box Drawings Light Up and Heavy Down
-		case 0x257F: // Box Drawings Heavy Up and Light Down
-			return '\xB3';
-
-		case UNICODE_FULL_BLOCK:
-			return CP437_FULL_BLOCK;
-		case UNICODE_LOWER_HALF_BLOCK:
-			return CP437_LOWER_HALF_BLOCK;
-		case UNICODE_LEFT_HALF_BLOCK:
-			return CP437_LEFT_HALF_BLOCK;
-		case UNICODE_RIGHT_HALF_BLOCK:
-			return CP437_RIGHT_HALF_BLOCK;
-		case UNICODE_UPPER_HALF_BLOCK:
-			return CP437_UPPER_HALF_BLOCK;
-
-		case 0x2581: // Lower One Eighth Block
-			return '_';
-
-		case 0x2582: // Lower One Quarter Block
-		case 0x2583: // Lower Three Eighths Block
-			return '\x16';
-
-		case 0x2585: // Lower Five Eighths Block
-		case 0x2586: // Lower Three Quarters Block
-		case 0x2587: // Lower Seven Eighths Block
-			return '\xDC';
-
-		case 0x2589: // Left Seven Eighths Block
-			return '\xDB';
-
-		case 0x258A: // Left Three Quarters Block
-		case 0x258B: // Left Five Eighths Block
-		case 0x258D: // Left Three Eighths Block
-		case 0x258E: // Left One Quarter Block
-		case 0x258F: // Left One Eighth Block
-			return '\xDD';
-
-		case 0x2595: // Right One Eighth Block
-			return '\xDE';
-
-		case 0x2594: // Upper One Eighth Block
-			return '\xDF';
-
-		case UNICODE_KATAKANA_LETTER_TU:					return CP437_BLACK_SMILING_FACE;
-
-		case UNICODE_SMALL_COMMA:				
-		case UNICODE_SMALL_IDEOGRAPHIC_COMMA:				return ',';
-		case UNICODE_SMALL_FULL_STOP:						return '.';
-		case UNICODE_SMALL_SEMICOLON:						return ';';
-		case UNICODE_SMALL_COLON:							return ':';
-		case UNICODE_SMALL_QUESTION_MARK:					return '?';
-		case UNICODE_SMALL_EXCLAMATION_MARK:				return '!';
-		case UNICODE_SMALL_EM_DASH:							return '-';
-		case UNICODE_SMALL_LEFT_PARENTHESIS:				return '(';
-		case UNICODE_SMALL_RIGHT_PARENTHESIS:				return ')';
-		case UNICODE_SMALL_LEFT_CURLY_BRACKET:				return '{';
-		case UNICODE_SMALL_RIGHT_CURLY_BRACKET:				return '}';
-		case UNICODE_SMALL_LEFT_TORTOISE_SHELL_BRACKET:		return '[';
-		case UNICODE_SMALL_RIGHT_TORTOISE_SHELL_BRACKET:	return ']';
-		case UNICODE_SMALL_NUMBER_SIGN:						return '#';
-		case UNICODE_SMALL_AMPERSAND:						return '&';
-		case UNICODE_SMALL_ASTERISK:						return '*';
-		case UNICODE_SMALL_PLUS_SIGN:						return '+';
-		case UNICODE_SMALL_HYPHEN_MINUS:					return '-';
-		case UNICODE_SMALL_LESS_THAN_SIGN:					return '<';
-		case UNICODE_SMALL_GREATER_THAN_SIGN:				return '>';
-		case UNICODE_SMALL_EQUALS_SIGN:						return '=';
-		case UNICODE_SMALL_REVERSE_SOLIDUS:					return '\\';
-		case UNICODE_SMALL_DOLLAR_SIGN:						return '$';
-		case UNICODE_SMALL_PERCENT_SIGN:					return '%';
-		case UNICODE_SMALL_COMMERCIAL_AT:					return '@';
-
-		default:	
-		{
-			int i;
-
-			if(codepoint >= UNICODE_FULLWIDTH_EXCLAMATION_MARK && codepoint <= UNICODE_FULLWIDTH_TILDE)
-				return '!' + (codepoint - UNICODE_FULLWIDTH_EXCLAMATION_MARK);
-
-			// Look for a 1:1 match in the CP437 -> Unicode table
-			for(i = 1; i < 0x100; i++) {
-				if(cp437_unicode_tbl[i] == codepoint)
-					return i;
-			}
-			break;
-		}
-	}
-
-	return UNICODE_UNDEFINED; // Not-mapped
-}
diff --git a/xpdev/unicode.h b/xpdev/unicode.h
deleted file mode 100644
index 461a4ecee65176507a0a589a16cee1b0324d284e..0000000000000000000000000000000000000000
--- a/xpdev/unicode.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Synchronet Unicode encode/decode/translate functions */
-
-/* $Id: unicode.h,v 1.3 2019/07/10 00:02:40 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef UNICODE_H_
-#define UNICODE_H_
-
-#include <stdlib.h>
-#include "unicode_defs.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-extern enum unicode_codepoint cp437_unicode_tbl[];
-size_t unicode_width(enum unicode_codepoint);
-char unicode_to_cp437(enum unicode_codepoint);
-char unicode_to_latin1(enum unicode_codepoint);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif // Don't add anything after this line
diff --git a/xpdev/unicode_defs.h b/xpdev/unicode_defs.h
deleted file mode 100644
index 790836fc53672ea5c1a4db3b6ed324285c3fc8fc..0000000000000000000000000000000000000000
--- a/xpdev/unicode_defs.h
+++ /dev/null
@@ -1,750 +0,0 @@
-/* Synchronet Unicode definitions */
-
-/* $Id: unicode_defs.h,v 1.10 2019/08/30 10:48:47 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef UNICODE_DEFS_H_
-#define UNICODE_DEFS_H_
-
-enum unicode_codepoint {
-	UNICODE_UNDEFINED = 0x0000,	// UNICODE_NULL() is defined
-
-	UNICODE_NEXT_LINE = 0x0085,
-	UNICODE_REVERSE_LINE_FEED = 0x008D,
-	UNICODE_NO_BREAK_SPACE = 0x00A0,
-	UNICODE_INVERTED_EXCLAMATION_MARK = 0x00A1,
-	UNICODE_CENT_SIGN = 0x00A2,
-	UNICODE_POUND_SIGN = 0x00A3,
-	UNICODE_CURRENCY_SIGN = 0x00A4,
-	UNICODE_YEN_SIGN = 0x00A5,
-	UNICODE_BROKEN_BAR = 0x00A6,
-	UNICODE_SECTION_SIGN = 0x00A7,
-	UNICODE_COPYRIGHT_SIGN = 0x0A9,
-	UNICODE_FEMININE_ORDINAL_INDICATOR = 0x00AA,
-	UNICODE_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK = 0x00AB,
-	UNICODE_NOT_SIGN = 0x00AC,
-	UNICODE_SOFT_HYPHEN = 0x00AD,
-	UNICODE_REGISTERED_SIGN = 0x00AE,
-	UNICODE_MACRON = 0x00AF,
-	UNICODE_DEGREE_SIGN = 0x00B0,
-	UNICODE_PLUS_MINUS_SIGN = 0x00B1,
-	UNICODE_SUPERSCRIPT_TWO = 0x00B2,
-	UNICODE_ACUTE_ACCENT = 0x00B4,
-	UNICODE_MICRO_SIGN = 0x00B5,
-	UNICODE_PILCROW_SIGN = 0x00B6,	// Paragraph mark
-	UNICODE_MIDDLE_DOT = 0x00B7,
-	UNICODE_MASCULINE_ORDINAL_INDICATOR = 0x00BA,
-	UNICODE_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK = 0x00BB,
-	UNICODE_VULGAR_FRACTION_ONE_QUARTER = 0x00BC,
-	UNICODE_VULGAR_FRACTION_ONE_HALF = 0x00BD,
-
-	UNICODE_INVERTED_QUESTION_MARK = 0x00BF,
-
-	UNICODE_LATIN_CAPITAL_LETTER_A_WITH_GRAVE = 0x00C0,
-	UNICODE_LATIN_CAPITAL_LETTER_A_WITH_ACUTE = 0x00C1,
-	UNICODE_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX = 0x00C2,
-	UNICODE_LATIN_CAPITAL_LETTER_A_WITH_TILDE = 0x00C3,
-	UNICODE_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS = 0x00C4,
-	UNICODE_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE = 0x00C5,
-	UNICODE_LATIN_CAPITAL_LETTER_AE = 0x00C6,
-	UNICODE_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA = 0x00C7,
-	UNICODE_LATIN_CAPITAL_LETTER_E_WITH_GRAVE = 0x00C8,
-	UNICODE_LATIN_CAPITAL_LETTER_E_WITH_ACUTE = 0x00C9,
-	UNICODE_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX = 0x00CA,
-	UNICODE_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS = 0x00CB,
-	UNICODE_LATIN_CAPITAL_LETTER_I_WITH_GRAVE = 0x00CC,
-	UNICODE_LATIN_CAPITAL_LETTER_I_WITH_ACUTE = 0x00CD,
-	UNICODE_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX = 0x00CE,
-	UNICODE_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS = 0x00CF,
-	UNICODE_LATIN_CAPITAL_LETTER_ETH = 0x00D0,
-	UNICODE_LATIN_CAPITAL_LETTER_N_WITH_TILDE = 0x00D1,
-	UNICODE_LATIN_CAPITAL_LETTER_O_WITH_GRAVE = 0x00D2,
-	UNICODE_LATIN_CAPITAL_LETTER_O_WITH_ACUTE = 0x00D3,
-	UNICODE_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX = 0x00D4,
-	UNICODE_LATIN_CAPITAL_LETTER_O_WITH_TILDE = 0x00D5,
-	UNICODE_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS = 0x00D6,
-	UNICODE_MULTIPLICATION_SIGN = 0x00D7,
-	UNICODE_LATIN_CAPITAL_LETTER_O_WITH_STROKE = 0x00D8,
-	UNICODE_LATIN_CAPITAL_LETTER_U_WITH_GRAVE = 0x00D9,
-	UNICODE_LATIN_CAPITAL_LETTER_U_WITH_ACUTE = 0x00DA,
-	UNICODE_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX = 0x00DB,
-	UNICODE_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS = 0x00DC,
-	UNICODE_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE = 0x00DD,
-	UNICODE_LATIN_CAPITAL_LETTER_THORN = 0x00DE,
-	UNICODE_LATIN_SMALL_LETTER_SHARP_S = 0x00DF,
-	UNICODE_LATIN_SMALL_LETTER_A_WITH_GRAVE = 0x00E0,
-	UNICODE_LATIN_SMALL_LETTER_A_WITH_ACUTE = 0x00E1,
-	UNICODE_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX = 0x00E2,
-	UNICODE_LATIN_SMALL_LETTER_A_WITH_TILDE = 0x00E3,
-	UNICODE_LATIN_SMALL_LETTER_A_WITH_DIAERESIS = 0x00E4,
-	UNICODE_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE = 0x00E5,
-	UNICODE_LATIN_SMALL_LETTER_AE = 0x00E6,
-	UNICODE_LATIN_SMALL_LETTER_C_WITH_CEDILLA = 0x00E7,
-	UNICODE_LATIN_SMALL_LETTER_E_WITH_GRAVE = 0x00E8,
-	UNICODE_LATIN_SMALL_LETTER_E_WITH_ACUTE = 0x00E9,
-	UNICODE_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX = 0x00EA,
-	UNICODE_LATIN_SMALL_LETTER_E_WITH_DIAERESIS = 0x00EB,
-	UNICODE_LATIN_SMALL_LETTER_I_WITH_GRAVE = 0x00EC,
-	UNICODE_LATIN_SMALL_LETTER_I_WITH_ACUTE = 0x00ED,
-	UNICODE_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX = 0x00EE,
-	UNICODE_LATIN_SMALL_LETTER_I_WITH_DIAERESIS = 0x00EF,
-	UNICODE_LATIN_SMALL_LETTER_ETH = 0x00F0,
-	UNICODE_LATIN_SMALL_LETTER_N_WITH_TILDE = 0x00F1,
-	UNICODE_LATIN_SMALL_LETTER_O_WITH_GRAVE = 0x00F2,
-	UNICODE_LATIN_SMALL_LETTER_O_WITH_ACUTE = 0x00F3,
-	UNICODE_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX = 0x00F4,
-	UNICODE_LATIN_SMALL_LETTER_O_WITH_TILDE = 0x00F5,
-	UNICODE_LATIN_SMALL_LETTER_O_WITH_DIAERESIS = 0x00F6,
-	UNICODE_DIVISION_SIGN = 0x00F7,
-	UNICODE_LATIN_SMALL_LETTER_O_WITH_STROKE = 0x00F8,
-	UNICODE_LATIN_SMALL_LETTER_U_WITH_GRAVE = 0x00F9,
-	UNICODE_LATIN_SMALL_LETTER_U_WITH_ACUTE = 0x00FA,
-	UNICODE_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX = 0x00FB,
-	UNICODE_LATIN_SMALL_LETTER_U_WITH_DIAERESIS = 0x00FC,
-	UNICODE_LATIN_SMALL_LETTER_Y_WITH_ACUTE = 0x00FD,
-	UNICODE_LATIN_SMALL_LETTER_THORN = 0x00FE,
-	UNICODE_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS = 0x00FF,
-	UNICODE_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS = 0x0178,
-	UNICODE_LATIN_SMALL_LETTER_F_WITH_HOOK = 0x0192,
-
-	UNICODE_GREEK_CAPITAL_LETTER_HETA = 0x0370,
-	UNICODE_GREEK_SMALL_LETTER_HETA = 0x0371,
-	UNICODE_GREEK_CAPITAL_LETTER_ARCHAIC_SAMPI = 0x0372,
-	UNICODE_GREEK_SMALL_LETTER_ARCHAIC_SAMPI = 0x0373,
-	UNICODE_GREEK_NUMERAL_SIGN = 0x0374,
-	UNICODE_GREEK_LOWER_NUMERAL_SIGN = 0x0375,
-	UNICODE_GREEK_CAPITAL_LETTER_PAMPHYLIAN_DIGAMMA = 0x0376,
-	UNICODE_GREEK_SMALL_LETTER_PAMPHYLIAN_DIGAMMA = 0x0377,
-	UNICODE_GREEK_YPOGEGRAMMENI = 0x037A,
-	UNICODE_GREEK_SMALL_REVERSED_LUNATE_SIGMA_SYMBOL = 0x037B,
-	UNICODE_GREEK_SMALL_DOTTED_LUNATE_SIGMA_SYMBOL = 0x037C,
-	UNICODE_GREEK_SMALL_REVERSED_DOTTED_LUNATE_SIGMA_SYMBOL = 0x037D,
-	UNICODE_GREEK_QUESTION_MARK = 0x037E,
-	UNICODE_GREEK_CAPITAL_LETTER_YOT = 0x037F,
-	UNICODE_GREEK_TONOS = 0x0384,
-	UNICODE_GREEK_DIALYTIKA_TONOS = 0x0385,
-	UNICODE_GREEK_CAPITAL_LETTER_ALPHA_WITH_TONOS = 0x0386,
-	UNICODE_GREEK_ANO_TELEIA = 0x0387,
-	UNICODE_GREEK_CAPITAL_LETTER_EPSILON_WITH_TONOS = 0x0388,
-	UNICODE_GREEK_CAPITAL_LETTER_ETA_WITH_TONOS = 0x0389,
-	UNICODE_GREEK_CAPITAL_LETTER_IOTA_WITH_TONOS = 0x038A,
-	UNICODE_GREEK_CAPITAL_LETTER_OMICRON_WITH_TONOS = 0x038C,
-	UNICODE_GREEK_CAPITAL_LETTER_UPSILON_WITH_TONOS = 0x038E,
-	UNICODE_GREEK_CAPITAL_LETTER_OMEGA_WITH_TONOS = 0x038F,
-	UNICODE_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA_AND_TONOS = 0x0390,
-	UNICODE_GREEK_CAPITAL_LETTER_ALPHA = 0x0391,
-	UNICODE_GREEK_CAPITAL_LETTER_BETA = 0x0392,
-	UNICODE_GREEK_CAPITAL_LETTER_GAMMA = 0x0393,
-	UNICODE_GREEK_CAPITAL_LETTER_DELTA = 0x0394,
-	UNICODE_GREEK_CAPITAL_LETTER_EPSILON = 0x0395,
-	UNICODE_GREEK_CAPITAL_LETTER_ZETA = 0x0396,
-	UNICODE_GREEK_CAPITAL_LETTER_ETA = 0x397,
-	UNICODE_GREEK_CAPITAL_LETTER_THETA = 0x0398,
-	UNICODE_GREEK_CAPITAL_LETTER_IOTA = 0x0399,
-	UNICODE_GREEK_CAPITAL_LETTER_KAPPA = 0x039A,
-	UNICODE_GREEK_CAPITAL_LETTER_LAMDA = 0x039B,
-	UNICODE_GREEK_CAPITAL_LETTER_MU = 0x039C,
-	UNICODE_GREEK_CAPITAL_LETTER_NU = 0x039D,
-	UNICODE_GREEK_CAPITAL_LETTER_XI = 0x039E,
-	UNICODE_GREEK_CAPITAL_LETTER_OMICRON = 0x039F,
-	UNICODE_GREEK_CAPITAL_LETTER_PI = 0x03A0,
-	UNICODE_GREEK_CAPITAL_LETTER_RHO = 0x03A1,
-	UNICODE_GREEK_CAPITAL_LETTER_SIGMA = 0x03A3,
-	UNICODE_GREEK_CAPITAL_LETTER_TAU = 0x03A4,
-	UNICODE_GREEK_CAPITAL_LETTER_UPSILON = 0x03A5,
-	UNICODE_GREEK_CAPITAL_LETTER_PHI = 0x03A6,
-	UNICODE_GREEK_CAPITAL_LETTER_CHI = 0x03A7,
-	UNICODE_GREEK_CAPITAL_LETTER_PSI = 0x03A8,
-	UNICODE_GREEK_CAPITAL_LETTER_OMEGA = 0x03A9,
-	UNICODE_GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA = 0x03AA,
-	UNICODE_GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA = 0x03AB,
-	UNICODE_GREEK_SMALL_LETTER_ALPHA_WITH_TONOS = 0x03AC,
-	UNICODE_GREEK_SMALL_LETTER_EPSILON_WITH_TONOS = 0x03AD,
-	UNICODE_GREEK_SMALL_LETTER_ETA_WITH_TONOS = 0x03AE,
-	UNICODE_GREEK_SMALL_LETTER_IOTA_WITH_TONOS = 0x03AF,
-	UNICODE_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS = 0x03B0,
-	UNICODE_GREEK_SMALL_LETTER_ALPHA = 0x03B1,
-	UNICODE_GREEK_SMALL_LETTER_BETA = 0x03B2,
-	UNICODE_GREEK_SMALL_LETTER_GAMMA = 0x03B3,
-	UNICODE_GREEK_SMALL_LETTER_DELTA = 0x03B4,
-	UNICODE_GREEK_SMALL_LETTER_EPSILON = 0x03B5,
-	UNICODE_GREEK_SMALL_LETTER_ZETA = 0x03B6,
-	UNICODE_GREEK_SMALL_LETTER_ETA = 0x03B7,
-	UNICODE_GREEK_SMALL_LETTER_THETA = 0x03B8,
-	UNICODE_GREEK_SMALL_LETTER_IOTA = 0x03B9,
-	UNICODE_GREEK_SMALL_LETTER_KAPPA = 0x03BA,
-	UNICODE_GREEK_SMALL_LETTER_LAMDA = 0x03BB,
-	UNICODE_GREEK_SMALL_LETTER_MU = 0x03BC,
-	UNICODE_GREEK_SMALL_LETTER_NU = 0x03BD,
-	UNICODE_GREEK_SMALL_LETTER_XI = 0x03BE,
-	UNICODE_GREEK_SMALL_LETTER_OMICRON = 0x03BF,
-	UNICODE_GREEK_SMALL_LETTER_PI = 0x03C0,
-	UNICODE_GREEK_SMALL_LETTER_RHO = 0x03C1,
-	UNICODE_GREEK_SMALL_LETTER_FINAL_SIGMA = 0x03C2,
-	UNICODE_GREEK_SMALL_LETTER_SIGMA = 0x03C3,
-	UNICODE_GREEK_SMALL_LETTER_TAU = 0x03C4,
-	UNICODE_GREEK_SMALL_LETTER_UPSILON = 0x03C5,
-	UNICODE_GREEK_SMALL_LETTER_PHI = 0x03C6,
-	UNICODE_GREEK_SMALL_LETTER_CHI = 0x03C7,
-	UNICODE_GREEK_SMALL_LETTER_PSI = 0x03C8,
-	UNICODE_GREEK_SMALL_LETTER_OMEGA = 0x03C9,
-	UNICODE_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA = 0x03CA,
-	UNICODE_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA = 0x03CB,
-	UNICODE_GREEK_SMALL_LETTER_OMICRON_WITH_TONOS = 0x03CC,
-	UNICODE_GREEK_SMALL_LETTER_UPSILON_WITH_TONOS = 0x03CD,
-	UNICODE_GREEK_SMALL_LETTER_OMEGA_WITH_TONOS = 0x03CE,
-	UNICODE_GREEK_CAPITLA_KAI_SYMBOL = 0x03CF,
-	UNICODE_GREEK_BETA_SYMBOL = 0x03D0,
-	UNICODE_GREEK_THETA_SYMBOL = 0x03D1,
-	UNICODE_GREEK_UPSILON_WITH_HOOK_SYMBOL = 0x03D2,
-	UNICODE_GREEK_UPSILON_WITH_ACUTE_AND_HOOK_SYMBOL = 0x03D3,
-	UNICODE_GREEK_UPSILON_WITH_DIAERESIS_AND_HOOK_SYMBOL = 0x03D4,
-	UNICODE_GREEK_PHI_SYMBOL = 0x03D5,
-	UNICODE_GREEK_PI_SYMBOL = 0x03D6,
-	UNICODE_GREEK_KAI_SYMBOL = 0x03D7,
-	UNICODE_GREEK_LETTER_ARCHAIC_KOPPA = 0x03D8,
-	UNICODE_GREEK_SMALL_LETTER_ARCHAIC_KOPPA = 0x03D9,
-	UNICODE_GREEK_LETTER_STIGMA = 0x03DA,
-	UNICODE_GREEK_SMALL_LETTER_STIGMA = 0x03DB,
-	UNICODE_GREEK_LETTER_DIGAMMA = 0x03DC,
-	UNICODE_GREEK_SMALL_LETTER_DIGAMMA = 0x03DD,
-	UNICODE_GREEK_LETTER_KOPPA = 0x03DE,
-	UNICODE_GREEK_SMALL_LETTER_KOPPA = 0x03DF,
-	UNICODE_GREEK_LETTER_SAMPI = 0x03E0,
-	UNICODE_GREEK_SMALL_LETTER_SAMPI = 0x03E1,
-
-	UNICODE_EN_QUAD = 0x2000,
-	UNICODE_EM_QUAD = 0x2001,
-	UNICODE_EN_SPACE = 0x2002,
-	UNICODE_EM_SPACE = 0x2003,
-	UNICODE_ZERO_WIDTH_SPACE = 0x200B,
-	UNICODE_ZERO_WIDTH_NON_JOINER = 0x200C,
-	UNICODE_ZERO_WIDTH_JOINER = 0x200D,
-	UNICODE_EM_DASH = 0x2014,
-	UNICODE_HORIZONTAL_BAR = 0x2015,
-	UNICODE_DOUBLE_VERTICAL_LINE = 0x2016,
-	UNICODE_DOUBLE_LOW_LINE = 0x2017,
-	UNICODE_LEFT_SINGLE_QUOTATION_MARK = 0x2018,
-	UNICODE_RIGHT_SINGLE_QUOTATION_MARK = 0x2019,
-	UNICODE_SINGLE_LOW_9_QUOTATION_MARK = 0x201A,
-	UNICODE_SINGLE_HIGH_REVERSED_9_QUOTATION_MARK = 0x201B,
-	UNICODE_LEFT_DOUBLE_QUOTATION_MARK = 0x201C,
-	UNICODE_RIGHT_DOUBLE_QUOTATION_MARK = 0x201D,
-	UNICODE_DOUBLE_LOW_9_QUOTATION_MARK = 0x201E,
-	UNICODE_DOUBLE_HIGH_REVERSED_9_QUOTATION_MARK = 0x201F,
-	UNICODE_DAGGER = 0x2020,
-	UNICODE_DOUBLE_DAGGER = 0x2021,
-	UNICODE_BULLET = 0x2022,
-	UNICODE_HORIZONTAL_ELLIPSIS = 0x2026,
-	UNICODE_LINE_SEPARATOR = 0x2028,
-	UNICODE_DOUBLE_EXCLAMATION_MARK = 0x203c,
-	UNICODE_OVERLINE = 0x203E,
-	UNICODE_SUPERSCRIPT_LATIN_SMALL_LETTER_N = 0x207F,
-	UNICODE_PESETA_SIGN = 0x20A7,
-
-	UNICODE_DEGREE_CELSIUS = 0x2103,
-	UNICODE_CARE_OF = 0x2105,
-	UNICODE_DEGREE_FAHRENHEIT = 0x2109,
-	UNICODE_NUMERO_SIGN = 0x2116,
-	UNICODE_SOUND_RECORDING_COPYRIGHT = 0x2117,
-	UNICODE_TRADE_MARK_SIGN = 0x2122,
-	UNICODE_LEFTWARDS_ARROW = 0x2190,
-	UNICODE_UPWARDS_ARROW = 0x2191,
-	UNICODE_RIGHTWARDS_ARROW = 0x2192,
-	UNICODE_DOWNWARDS_ARROW = 0x2193,
-	UNICODE_LEFT_RIGHT_ARROW = 0x2194,
-	UNICODE_UP_DOWN_ARROW = 0x2195,
-
-	UNICODE_UP_DOWN_ARROW_WITH_BASE = 0x21A8,
-
-	UNICODE_DIVISION_SLASH = 0x2215,
-	UNICODE_SET_MINUS = 0x2216,
-	UNICODE_ASTERISK_OPERATOR = 0x2217,
-	UNICODE_RING_OPERATOR = 0x2218,
-	UNICODE_BULLET_OPERATOR = 0x2219,
-	UNICODE_SQUARE_ROOT = 0x221A,
-	UNICODE_INFINITY = 0x221E,
-	UNICODE_RIGHT_ANGLE = 0x221F,
-
-	UNICODE_INTERSECTION = 0x2229,
-
-	UNICODE_ALMOST_EQUAL_TO = 0x2248,
-
-	UNICODE_IDENTICAL_TO = 0x2261,
-	UNICODE_LESS_THAN_OR_EQUAL_TO = 0x2264,
-	UNICODE_GREATER_THAN_OR_EQUAL_TO = 0x2265,
-
-	UNICODE_DIAMETER_SIGN = 0x2300,
-	UNICODE_ELECTRIC_ARROW = 0x2301,
-	UNICODE_HOUSE = 0x2302,
-	UNICODE_UP_ARROWHEAD = 0x2303,
-	UNICODE_DOWN_ARROWHEAD = 0x2304,
-	UNICODE_PROJECTIVE = 0x2305,
-	UNICODE_PERSPECTIVE = 0x2306,
-	UNICODE_WAVY_LINE = 0x2307,
-	UNICODE_LEFT_CEILING = 0x2308,
-	UNICODE_RIGHT_CEILING = 0x2309,
-	UNICODE_LEFT_FLOOR = 0x230A,
-	UNICODE_RIGHT_FLOOR = 0x230B,
-	UNICODE_BOTTOM_RIGHT_CROP = 0x230C,
-	UNICODE_BOTTOM_LEFT_CROP = 0x230D,
-	UNICODE_TOP_RIGHT_CROP = 0x230E,
-	UNICODE_TOP_LEFT_CROP = 0x230F,
-	UNICODE_REVERSED_NOT_SIGN = 0x2310,
-	UNICODE_SQUARE_LOZENGE = 0x2311,
-	UNICODE_ARC = 0x2312,
-	UNICODE_SEGMENT = 0x2313,
-	UNICODE_SECTOR = 0x2314,
-	UNICODE_TELEPHONE_RECORDER = 0x2315,
-	UNICODE_POSITION_INDICATOR = 0x2316,
-	UNICODE_VIEWDATA_SQUARE = 0x2317,
-	UNICODE_PLACE_OF_INTEREST_SIGN = 0x2318,
-	UNICODE_TURNED_NOT_SIGN = 0x2319,
-	UNICODE_WATCH = 0x231A,
-	UNICODE_HOURGLASS = 0x231B,
-	UNICODE_TOP_LEFT_CORNER = 0x231C,
-	UNICODE_TOP_RIGHT_CORNER = 0x231D,
-	UNICODE_BOTTOM_LEFT_CORNER = 0x231E,
-	UNICODE_BOTTOM_RIGHT_CORNER = 0x231F,
-	UNICODE_TOP_HALF_INTEGRAL = 0x2320,
-	UNICODE_BOTTOM_HALF_INTEGRAL = 0x2321,
-	UNICODE_FROWN = 0x2322,
-	UNICODE_SMILE = 0x2323,
-	UNICODE_UP_ARROWHEAD_BETWEEN_TWO_HORIZONTAL_BARS = 0x2324,
-	UNICODE_OPTION_KEY = 0x2325,
-	UNICODE_ERASE_TO_THE_RIGHT = 0x2326,
-	UNICODE_X_IN_A_RECTANGLE_BOX = 0x2327,
-	UNICODE_KEYBOARD = 0x2328,
-	UNICODE_LEFT_POINTING_ANGLE_BRACKET = 0x2329,
-	UNICODE_RIGHT_POINTING_ANGLE_BRACKET = 0x232A,
-	UNICODE_ERASE_TO_THE_LEFT = 0x232B,
-	UNICODE_BENZENE_RING = 0x232C,
-	UNICODE_CYLINDRICITY = 0x232D,
-	UNICODE_ALL_AROUND_PROFILE = 0x232E,
-	UNICODE_SYMMETRY = 0x232F,
-	UNICODE_TOTAL_RUNOUT = 0x2330,
-	UNICODE_DIMENSION_ORIGIN = 0x2331,
-	UNICODE_CONICAL_TAPER = 0x2332,
-	UNICODE_SLOPE = 0x2333,
-	UNICODE_COUNTERBORE = 0x2334,
-	UNICODE_COUNTERSINK = 0x2335,
-	UNICODE_APL_FUNCTIONAL_SYMBOL_I_BEAM = 0x2336,
-
-	UNICODE_ALARM_CLOCK = 0x23F0,
-
-	UNICODE_HOURGLASS_WITH_FLOWING_SAND = 0x23F3,
-	UNICODE_BLACK_MEDIUM_LEFT_POINTING_TRIANGLE = 0x23F4,
-	UNICODE_BLACK_MEDIUM_RIGHT_POINTING_TRIANGLE = 0x23F5,
-	UNICODE_BLACK_MEDIUM_UP_POINTING_TRIANGLE = 0x23F6,
-	UNICODE_BLACK_MEDIUM_DOWN_POINTING_TRIANGLE = 0x23F7,
-	UNICODE_DOUBLE_VERTICAL_BAR = 0x23F8,
-	UNICODE_BLACK_SQUARE_FOR_STOP = 0x23F9,
-	UNICODE_BLACK_CIRCLE_FOR_RECORD = 0x23FA,
-
-	UNICODE_SYMBOL_FOR_NULL = 0x2400,
-	UNICODE_SYMBOL_FOR_START_OF_HEADING = 0x2401,
-	UNICODE_SYMBOL_FOR_START_OF_TEXT = 0x2402,
-	UNICODE_SYMBOL_FOR_END_OF_TEXT = 0x2403,
-	UNICODE_SYMBOL_FOR_END_OF_TRANSMISSION = 0x2404,
-	UNICODE_SYMBOL_FOR_ENQUIRY = 0x2405,
-	UNICODE_SYMBOL_FOR_ACKNOWLEDGE = 0x2406,
-	UNICODE_SYMBOL_FOR_BELL = 0x2407,
-	UNICODE_SYMBOL_FOR_BACKSPACE = 0x2408,
-	UNICODE_SYMBOL_FOR_HORIZONTAL_TABULATION = 0x2409,
-	UNICODE_SYMBOL_FOR_LINE_FEED = 0x240A,
-	UNICODE_SYMBOL_FOR_VERTICAL_TABULATION = 0x240B,
-	UNICODE_SYMBOL_FOR_FORM_FEED = 0x240C,
-	UNICODE_SYMBOL_FOR_CARRIAGE_RETURN = 0x240D,
-	UNICODE_SYMBOL_FOR_SHIFT_OUT = 0x240E,
-	UNICODE_SYMBOL_FOR_SHIFT_IN = 0x240F,
-	UNICODE_SYMBOL_FOR_DATA_LINK_ESCAPE = 0x2410,
-	UNICODE_SYMBOL_FOR_DEVICE_CONTROL_ONE = 0x2411,
-	UNICODE_SYMBOL_FOR_DEVICE_CONTROL_TWO = 0x2412,
-	UNICODE_SYMBOL_FOR_DEVICE_CONTROL_THREE = 0x2413,
-	UNICODE_SYMBOL_FOR_DEVICE_CONTROL_FOUR = 0x2414,
-	UNICODE_SYMBOL_FOR_NEGATIVE_ACKNOWLEDGE = 0x2415,
-	UNICODE_SYMBOL_FOR_SYNCHRONOUS_IDLE = 0x2416,
-	UNICODE_SYMBOL_FOR_END_OF_TRANSMISSION_BLOCK = 0x2417,
-	UNICODE_SYMBOL_FOR_CANCEL = 0x2418,
-	UNICODE_SYMBOL_FOR_END_OF_MEDIUM = 0x2419,
-	UNICODE_SYMBOL_FOR_SUBSTITUTE = 0x241A,
-	UNICODE_SYMBOL_FOR_ESCAPE = 0x241B,
-	UNICODE_SYMBOL_FOR_FILE_SEPARATOR = 0x241C,
-	UNICODE_SYMBOL_FOR_GROUP_SEPARATOR = 0x241D,
-	UNICODE_SYMBOL_FOR_RECORD_SEPARATOR = 0x241E,
-	UNICODE_SYMBOL_FOR_UNIT_SEPARATOR = 0x241F,
-	UNICODE_SYMBOL_FOR_SPACE = 0x2420,
-	UNICODE_SYMBOL_FOR_DELETE = 0x2421,
-	UNICODE_BLANK_SYMBOL = 0x2422,
-	UNICODE_OPEN_BOX = 0x2423,
-	UNICODE_SYMBOL_FOR_NEWLINE = 0x2424,
-	UNICODE_SYMBOL_FOR_DELETE_FORM_TWO = 0x2425,
-	UNICODE_SYMBOL_FOR_SUBSTITUTE_FORM_TWO = 0x2426,
-
-	UNICODE_BOX_DRAWINGS_LIGHT_HORIZONTAL = 0x2500,
-	UNICODE_BOX_DRAWINGS_HEAVY_HORIZONTAL = 0x2501,
-	UNICODE_BOX_DRAWINGS_LIGHT_VERTICAL = 0x2502,
-	UNICODE_BOX_DRAWINGS_HEAVY_VERTICAL	= 0x2503,
-	UNICODE_BOX_DRAWINGS_LIGHT_TRIPLE_DASH_HORIZONTAL = 0x2504,
-	UNICODE_BOX_DRAWINGS_HEAVY_TRIPLE_DASH_HORIZONTAL = 0x2505,
-	UNICODE_BOX_DRAWINGS_LIGHT_TRIPLE_DASH_VERTICAL	= 0x2506,
-	UNICODE_BOX_DRAWINGS_HEAVY_TRIPLE_DASH_VERTICAL	= 0x2507,
-	UNICODE_BOX_DRAWINGS_LIGHT_QUADRUPLE_DASH_HORIZONTAL = 0x2508,
-	UNICODE_BOX_DRAWINGS_HEAVY_QUADRUPLE_DASH_HORIZONTAL = 0x2509,
-	UNICODE_BOX_DRAWINGS_LIGHT_QUADRUPLE_DASH_VERTICAL = 0x250A,
-	UNICODE_BOX_DRAWINGS_HEAVY_QUADRUPLE_DASH_VERTICAL = 0x250B,
-	UNICODE_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT = 0x250C,
-	UNICODE_BOX_DRAWINGS_250D = 0x250D,
-	UNICODE_BOX_DRAWINGS_250E = 0x250E,
-	UNICODE_BOX_DRAWINGS_HEAVY_DOWN_AND_RIGHT = 0x250F,
-	UNICODE_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT = 0x2510,
-	UNICODE_BOX_DRAWINGS_2511 = 0x2511,
-	UNICODE_BOX_DRAWINGS_2512 = 0x2512,
-	UNICODE_BOX_DRAWINGS_HEAVY_DOWN_AND_LEFT = 0x2513,
-	UNICODE_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT	= 0x2514,
-	UNICODE_BOX_DRAWINGS_2515 = 0x2515,
-	UNICODE_BOX_DRAWINGS_2516 = 0x2516,
-	UNICODE_BOX_DRAWINGS_HEAVY_UP_AND_RIGHT	= 0x2517,
-	UNICODE_BOX_DRAWINGS_LIGHT_UP_AND_LEFT	= 0x2518,
-	UNICODE_BOX_DRAWINGS_2519 = 0x2519,
-	UNICODE_BOX_DRAWINGS_251A = 0x251A,
-	UNICODE_BOX_DRAWINGS_HEAVY_UP_AND_LEFT	= 0x251B,
-	UNICODE_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT	= 0x251C,
-	UNICODE_BOX_DRAWINGS_251D = 0x251D,
-	UNICODE_BOX_DRAWINGS_251E = 0x251E,
-	UNICODE_BOX_DRAWINGS_251F = 0x251F,
-	UNICODE_BOX_DRAWINGS_2520 = 0x2520,
-	UNICODE_BOX_DRAWINGS_2521 = 0x2521,
-	UNICODE_BOX_DRAWINGS_2522= 0x2522,
-	UNICODE_BOX_DRAWINGS_HEAVY_VERTICAL_AND_RIGHT = 0x2523,
-	UNICODE_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT = 0x2524,
-	UNICODE_BOX_DRAWINGS_2525 = 0x2525,
-	UNICODE_BOX_DRAWINGS_2526 = 0x2526,
-	UNICODE_BOX_DRAWINGS_2527 = 0x2527,
-	UNICODE_BOX_DRAWINGS_2528 = 0x2528,
-	UNICODE_BOX_DRAWINGS_2529 = 0x2529,
-	UNICODE_BOX_DRAWINGS_252A = 0x252A,
-	UNICODE_BOX_DRAWINGS_252B = 0x252B,
-	UNICODE_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL = 0x252C,
-	UNICODE_BOX_DRAWINGS_252D = 0x252D,
-	UNICODE_BOX_DRAWINGS_252E = 0x252E,
-	UNICODE_BOX_DRAWINGS_252F = 0x252F,
-	UNICODE_BOX_DRAWINGS_2530 = 0x2530,
-	UNICODE_BOX_DRAWINGS_2531 = 0x2531,
-	UNICODE_BOX_DRAWINGS_LEFT_LIGHT_AND_RIGHT_DOWN_HEAVY = 0x2532,
-	UNICODE_BOX_DRAWINGS_HEAVY_DOWN_AND_HORIZONTAL = 0x2533,
-	UNICODE_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL = 0x2534,
-	UNICODE_BOX_DRAWINGS_LEFT_HEAVY_AND_RIGHT_UP_LIGHT = 0x2535,
-	UNICODE_BOX_DRAWINGS_RIGHT_HEAVY_AND_LEFT_UP_LIGHT = 0x2536,
-	UNICODE_BOX_DRAWINGS_UP_LIGHT_AND_HORIZONTAL_HEAVY = 0x2537,
-	UNICODE_BOX_DRAWINGS_UP_HEAVY_AND_HORIZONTAL_LIGHT = 0x2538,
-	UNICODE_BOX_DRAWINGS_RIGHT_LIGHT_AND_LEFT_UP_HEAVY = 0x2539,
-	UNICODE_BOX_DRAWINGS_LEFT_LIGHT_AND_RIGHT_UP_HEAVY = 0x253A,
-	UNICODE_BOX_DRAWINGS_HEAVY_UP_AND_HORIZONTAL = 0x253B,
-	UNICODE_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL = 0x253C,
-	UNICODE_BOX_DRAWINGS_LEFT_HEAVY_AND_RIGHT_VERTICAL_LIGHT = 0x253D,
-	UNICODE_BOX_DRAWINGS_RIGHT_HEAVY_AND_LEFT_VERTICAL_LIGHT = 0x253E,
-	UNICODE_BOX_DRAWINGS_VERTICAL_LIGHT_AND_HORIZONTAL_HEAVY = 0x253F,
-	UNICODE_BOX_DRAWINGS_UP_HEAVY_AND_DOWN_HORIZONTAL_LIGHT	= 0x2540,
-	UNICODE_BOX_DRAWINGS_DOWN_HEAVY_AND_UP_HORIZONTAL_LIGHT	= 0x2541,
-	UNICODE_BOX_DRAWINGS_VERTICAL_HEAVY_AND_HORIZONTAL_LIGHT = 0x2542,
-	UNICODE_BOX_DRAWINGS_LEFT_UP_HEAVY_AND_RIGHT_DOWN_LIGHT	= 0x2543,
-	UNICODE_BOX_DRAWINGS_RIGHT_UP_HEAVY_AND_LEFT_DOWN_LIGHT	= 0x2544,
-	UNICODE_BOX_DRAWINGS_LEFT_DOWN_HEAVY_AND_RIGHT_UP_LIGHT	= 0x2545,
-	UNICODE_BOX_DRAWINGS_RIGHT_DOWN_HEAVY_AND_LEFT_UP_LIGHT	= 0x2546,
-	UNICODE_BOX_DRAWINGS_DOWN_LIGHT_AND_UP_HORIZONTAL_HEAVY	= 0x2547,
-	UNICODE_BOX_DRAWINGS_UP_LIGHT_AND_DOWN_HORIZONTAL_HEAVY	= 0x2548,
-	UNICODE_BOX_DRAWINGS_RIGHT_LIGHT_AND_LEFT_VERTICAL_HEAVY = 0x2549,
-	UNICODE_BOX_DRAWINGS_LEFT_LIGHT_AND_RIGHT_VERTICAL_HEAVY = 0x254A,
-	UNICODE_BOX_DRAWINGS_HEAVY_VERTICAL_AND_HORIZONTAL = 0x254B,
-	UNICODE_BOX_DRAWINGS_LIGHT_DOUBLE_DASH_HORIZONTAL = 0x254C,
-	UNICODE_BOX_DRAWINGS_HEAVY_DOUBLE_DASH_HORIZONTAL = 0x254D,
-	UNICODE_BOX_DRAWINGS_LIGHT_DOUBLE_DASH_VERTICAL	= 0x254E,
-	UNICODE_BOX_DRAWINGS_HEAVY_DOUBLE_DASH_VERTICAL	= 0x254F,
-	UNICODE_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE = 0x2561,
-	UNICODE_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE = 0x2562,
-	UNICODE_BOX_DRAWINGS_LIGHT_ARC_DOWN_AND_RIGHT = 0x256D,
-	UNICODE_BOX_DRAWINGS_LIGHT_ARC_DOWN_AND_LEFT = 0x256E,
-	UNICODE_BOX_DRAWINGS_LIGHT_ARC_UP_AND_LEFT = 0x256F,
-	UNICODE_BOX_DRAWINGS_LIGHT_ARC_UP_AND_RIGHT	= 0x2570,
-	UNICODE_BOX_DRAWINGS_LIGHT_DIAGONAL_UPPER_RIGHT_TO_LOWER_LEFT = 0x2571,
-	UNICODE_BOX_DRAWINGS_LIGHT_DIAGONAL_UPPER_LEFT_TO_LOWER_RIGHT = 0x2572,
-	UNICODE_BOX_DRAWINGS_LIGHT_DIAGONAL_CROSS = 0x2573,
-	UNICODE_BOX_DRAWINGS_LIGHT_LEFT	= 0x2574,
-	UNICODE_BOX_DRAWINGS_LIGHT_UP = 0x2575,
-	UNICODE_BOX_DRAWINGS_LIGHT_RIGHT = 0x2576,
-	UNICODE_BOX_DRAWINGS_LIGHT_DOWN	= 0x2577,
-	UNICODE_BOX_DRAWINGS_HEAVY_LEFT	= 0x2578,
-	UNICODE_BOX_DRAWINGS_HEAVY_UP = 0x2579,
-	UNICODE_BOX_DRAWINGS_HEAVY_RIGHT = 0x257A,
-	UNICODE_BOX_DRAWINGS_HEAVY_DOWN	= 0x257B,
-	UNICODE_BOX_DRAWINGS_LIGHT_LEFT_AND_HEAVY_RIGHT	= 0x257C,
-	UNICODE_BOX_DRAWINGS_LIGHT_UP_AND_HEAVY_DOWN = 0x257D,
-	UNICODE_BOX_DRAWINGS_HEAVY_LEFT_AND_LIGHT_RIGHT	= 0x257E,
-	UNICODE_BOX_DRAWINGS_HEAVY_UP_AND_LIGHT_DOWN = 0x257F,
-
-	UNICODE_UPPER_HALF_BLOCK = 0x2580,
-	UNICODE_LOWER_ONE_EIGHTH_BLOCK	= 0x2581,
-	UNICODE_LOWER_ONE_QUARTER_BLOCK	= 0x2582,
-	UNICODE_LOWER_THREE_EIGHTHS_BLOCK = 0x2583,
-	UNICODE_LOWER_HALF_BLOCK = 0x2584,
-	UNICODE_LOWER_FIVE_EIGHTHS_BLOCK = 0x2585,
-	UNICODE_LOWER_THREE_QUARTERS_BLOCK = 0x2586,
-	UNICODE_LOWER_SEVEN_EIGHTHS_BLOCK = 0x2587,
-	UNICODE_FULL_BLOCK = 0x2588,
-	UNICODE_LEFT_SEVEN_EIGHTHS_BLOCK = 0x2589,
-	UNICODE_LEFT_THREE_QUARTERS_BLOCK = 0x258A,
-	UNICODE_LEFT_FIVE_EIGHTHS_BLOCK	= 0x258B,
-	UNICODE_LEFT_HALF_BLOCK	= 0x258C,
-	UNICODE_LEFT_THREE_EIGHTHS_BLOCK = 0x258D,
-	UNICODE_LEFT_ONE_QUARTER_BLOCK = 0x258E,
-	UNICODE_LEFT_ONE_EIGHTH_BLOCK = 0x258F,
-	UNICODE_RIGHT_HALF_BLOCK = 0x2590,
-	UNICODE_LIGHT_SHADE = 0x2591,
-	UNICODE_MEDIUM_SHADE = 0x2591,
-	UNICODE_DARK_SHADE = 0x2592,
-	UNICODE_RIGHT_ONE_EIGHTH_BLOCK = 0x2595,
-	UNICODE_UPPER_ONE_EIGHTH_BLOCK = 0x2594,
-
-	UNICODE_BLACK_SQUARE = 0x25A0,
-	UNICODE_BLACK_SMALL_SQUARE = 0x25AA,
-	UNICODE_BLACK_RECTANGLE = 0x25AC,
-	UNICODE_BLACK_UP_POINTING_TRIANGLE = 0x25B2,
-	UNICODE_BLACK_RIGHT_POINTING_POINTER = 0x25BA,
-	UNICODE_BLACK_DOWN_POINTING_TRIANGLE = 0x25BC,
-	UNICODE_BLACK_LEFT_POINTING_POINTER = 0x25C4,
-	UNICODE_WHITE_CIRCLE = 0x25CB,
-	UNICODE_INVERSE_BULLET = 0x25D8,
-	UNICODE_INVERSE_WHITE_CIRCLE = 0x25D9,
-
-	UNICODE_BLACK_MEDIUM_SQUARE = 0x25FC,
-	UNICODE_WHITE_MEDIUM_SMALL_SQUARE = 0x25FD,
-	UNICODE_BLACK_MEDIUM_SMALL_SQUARE = 0x25FE,
-	UNICODE_LOWER_RIGHT_TRIANGLE = 0x25FF,
-	UNICODE_BLACK_SUN_WITH_RAYS = 0x2600,
-	UNICODE_CLOUD = 0x2601,
-	UNICODE_UMBRELLA = 0x2602,
-	UNICODE_SNOWMAN = 0x2603,
-	UNICODE_COMET = 0x2604,
-	UNICODE_BLACK_STAR = 0x2605,
-	UNICODE_WHITE_STAR = 0x2606,
-	UNICODE_LIGHTNING = 0x2607,
-	UNICODE_THUNDERSTORM = 0x2608,
-	UNICODE_SUN = 0x2609,
-	UNICODE_ASCENDING_NODE = 0x260A,
-	UNICODE_DESCENDING_NODE = 0x260B,
-	UNICODE_CONJUNCTION = 0x260C,
-	UNICODE_OPPOSITION = 0x260D,
-	UNICODE_BLACK_TELEPHONE = 0x260E,
-	UNICODE_WHITE_TELEPHONE = 0x260F,
-	UNICODE_BALLOT_BOX = 0x2610,
-	UNICODE_BALLOT_BOX_WITH_CHECK = 0x2611,
-	UNICODE_BALLOT_BOX_WITH_X = 0x2612,
-	UNICODE_SALTIRE = 0x2613,
-	UNICODE_UMBRELLA_WITH_RAIN_DROPS = 0x2614,
-	UNICODE_HOT_BEVERAGE = 0x2615,
-	UNICODE_WHITE_SHOGI_PIECE = 0x2616,
-	UNICODE_BLACK_SHOGI_PIECE = 0x2617,
-	UNICODE_SHAMROCK = 0x2618,
-	UNICODE_REVERSED_ROTATED_FLORAL_HEART_BULLET = 0x2619,
-	UNICODE_BLACK_LEFT_POINTING_INDEX = 0x261A,
-	UNICODE_BLACK_RIGHT_POINTING_INDEX = 0x261B,
-	UNICODE_WHITE_LEFT_POINTING_INDEX = 0x261C,
-	UNICODE_WHITE_UP_POINTING_INDEX = 0x261D,
-	UNICODE_WHITE_RIGHT_POINTING_INDEX = 0x261E,
-	UNICODE_WHITE_DOWN_POINTING_INDEX = 0x261F,
-	UNICODE_SKULL_AND_CROSSBONES = 0x2620,
-	UNICODE_CAUTION_SIGN = 0x2621,
-	UNICODE_RADIOACTIVE_SIGN = 0x2622,
-	UNICODE_BIOHAZARD_SIGN = 0x2623,
-	UNICODE_CADUCEUS = 0x2624,
-	UNICODE_ANKH = 0x2625,
-	UNICODE_ORTHODOX_CROSS = 0x2626,
-	UNICODE_CHI_RHO = 0x2627,
-	UNICODE_CROSS_OF_LORRAINE = 0x2628,
-	UNICODE_CROSS_OF_JERUSALEM = 0x2629,
-	UNICODE_STAR_AND_CRESCENT = 0x262A,
-	UNICODE_FARSI_SYMBOL = 0x262B,
-	UNICODE_ADI_SHAKTI = 0x262C,
-	UNICODE_HAMMER_AND_SICKLE = 0x262D,
-	UNICODE_PEACE_SYMBOL = 0x262E,
-	UNICODE_YIN_YANG = 0x262F,
-	UNICODE_TRIGRAM_FOR_HEAVEN = 0x2630,
-	UNICODE_TRIGRAM_FOR_LAKE = 0x2631,
-	UNICODE_TRIGRAM_FOR_FIRE = 0x2632,
-	UNICODE_TRIGRAM_FOR_THUNDER = 0x2633,
-	UNICODE_TRIGRAM_FOR_WIND = 0x2634,
-	UNICODE_TRIGRAM_FOR_WATER = 0x2635,
-	UNICODE_TRIGRAM_FOR_MOUNTAIN = 0x2636,
-	UNICODE_TRIGRAM_FOR_EARTH = 0x2637,
-	UNICODE_WHEEL_OF_DHARMA = 0x2638,
-	UNICODE_WHITE_FROWNING_FACE = 0x2639,
-	UNICODE_WHITE_SMILING_FACE = 0x263A,
-	UNICODE_BLACK_SMILING_FACE = 0x263B,
-	UNICODE_WHITE_SUN_WITH_RAYS = 0x263C,
-	UNICODE_FEMALE_SIGN = 0x2640,
-	UNICODE_EIGHTH_NOTE = 0x266A,
-	UNICODE_BEAMED_EIGHTH_NOTES = 0x266B,
-	UNICODE_MALE_SIGN = 0x2642,
-	UNICODE_BLACK_HEART_SUIT = 0x2665,
-	UNICODE_BLACK_DIAMOND_SUIT = 0x2666,
-	UNICODE_BLACK_CLUB_SUIT = 0x2663,
-	UNICODE_BLACK_SPADE_SUIT = 0x2660,
-
-	UNICODE_CHECK_MARK = 0x2713,
-	UNICODE_HEAVY_CHECK_MARK = 0x2714,
-
-	UNICODE_MULTIPLICATION_X = 0x2715,
-	UNICODE_HEAVY_MULTIPLICATION_X = 0x2716,
-	UNICODE_BALLOT_X = 0x2717,
-	UNICODE_HEAVY_BALLOT_X = 0x2718,
-
-	UNICODE_BLACK_LARGE_SQUARE = 0x2B1B,
-
-	UNICODE_BLACK_VERY_SMALL_SQUARE = 0x2B1D,
-
-	UNICODE_BLACK_SQUARE_CENTERED = 0x2BC0,
-
-	UNICODE_IDEOGRAPHIC_SPACE = 0x3000,	// Fullwidth space
-
-	UNICODE_KATAKANA_LETTER_TU = 0x30C4,
-
-	UNICODE_VARIATION_SELECTOR_1 = 0xFE00,
-	UNICODE_VARIATION_SELECTOR_2 = 0xFE01,
-	UNICODE_VARIATION_SELECTOR_3 = 0xFE02,
-	UNICODE_VARIATION_SELECTOR_4 = 0xFE03,
-	UNICODE_VARIATION_SELECTOR_5 = 0xFE04,
-	UNICODE_VARIATION_SELECTOR_6 = 0xFE05,
-	UNICODE_VARIATION_SELECTOR_7 = 0xFE06,
-	UNICODE_VARIATION_SELECTOR_8 = 0xFE07,
-	UNICODE_VARIATION_SELECTOR_9 = 0xFE08,
-	UNICODE_VARIATION_SELECTOR_10 = 0xFE09,
-	UNICODE_VARIATION_SELECTOR_11 = 0xFE0A,
-	UNICODE_VARIATION_SELECTOR_12 = 0xFE0B,
-	UNICODE_VARIATION_SELECTOR_13 = 0xFE0C,
-	UNICODE_VARIATION_SELECTOR_14 = 0xFE0D,
-	UNICODE_VARIATION_SELECTOR_15 = 0xFE0E,
-	UNICODE_VARIATION_SELECTOR_16 = 0xFE0F,
-	UNICODE_ZERO_WIDTH_NO_BREAK_SPACE = 0xFEFF,
-
-	UNICODE_SMALL_COMMA = 0xFE50,
-	UNICODE_SMALL_IDEOGRAPHIC_COMMA = 0xFE51,
-	UNICODE_SMALL_FULL_STOP = 0xFE52,
-	UNICODE_SMALL_SEMICOLON = 0xFE54,
-	UNICODE_SMALL_COLON = 0xFE55,
-	UNICODE_SMALL_QUESTION_MARK = 0xFE56,
-	UNICODE_SMALL_EXCLAMATION_MARK = 0xFE57,
-	UNICODE_SMALL_EM_DASH = 0xFE58,
-	UNICODE_SMALL_LEFT_PARENTHESIS = 0xFE59,
-	UNICODE_SMALL_RIGHT_PARENTHESIS = 0xFE5A,
-	UNICODE_SMALL_LEFT_CURLY_BRACKET = 0xFE5B,
-	UNICODE_SMALL_RIGHT_CURLY_BRACKET = 0xFE5C,
-	UNICODE_SMALL_LEFT_TORTOISE_SHELL_BRACKET = 0xFE5D,
-	UNICODE_SMALL_RIGHT_TORTOISE_SHELL_BRACKET = 0xFE5E,
-	UNICODE_SMALL_NUMBER_SIGN = 0xFE5F,
-	UNICODE_SMALL_AMPERSAND = 0xFE60,
-	UNICODE_SMALL_ASTERISK = 0xFE61,
-	UNICODE_SMALL_PLUS_SIGN = 0xFE62,
-	UNICODE_SMALL_HYPHEN_MINUS = 0xFE63,
-	UNICODE_SMALL_LESS_THAN_SIGN = 0xFE64,
-	UNICODE_SMALL_GREATER_THAN_SIGN = 0xFE65,
-	UNICODE_SMALL_EQUALS_SIGN = 0xFE66,
-	UNICODE_SMALL_REVERSE_SOLIDUS = 0xFE68,
-	UNICODE_SMALL_DOLLAR_SIGN = 0xFE69,
-	UNICODE_SMALL_PERCENT_SIGN = 0xFE6A,
-	UNICODE_SMALL_COMMERCIAL_AT = 0xFE6B,
-
-	UNICODE_FULLWIDTH_EXCLAMATION_MARK = 0xFF01,
-	UNICODE_FULLWIDTH_TILDE = 0xFF5E,
-	UNICODE_FULLWIDTH_LEFT_WHITE_PARENTHESIS = 0xFF5F,
-	UNICODE_FULLWIDTH_RIGHT_WHITE_PARENTHESIS = 0xFF60,
-
-	UNICODE_HALFWIDTH_BLACK_SQUARE = 0xFFED,
-	UNICODE_HALFWIDTH_WHITE_CIRCLE = 0xFFEE,
-
-	UNICODE_REPLACEMENT_CHARACTER = 0xFFFD
-};
-
-// Blocks
-#define UNICODE_BLOCK_BASIC_LATIN_BEGIN							0x0000
-#define UNICODE_BLOCK_BASIC_LATIN_END							0x007F
-#define UNICODE_BLOCK_HANGUL_JAMO_BEGIN							0x1100
-#define UNICODE_BLOCK_HANGUL_JAMO_END							0x11FF
-#define UNICODE_BLOCK_CJK_RADICALS_SUPPLEMENT_BEGIN				0x2E80	// Fullwidth
-#define UNICODE_BLOCK_CJK_RADICALS_SUPPLEMENT_END				0x2EFF	// Fullwidth
-#define UNICODE_BLOCK_KANGXI_RADICALS_BEGIN						0x2F00	// Fullwidth
-#define UNICODE_BLOCK_KANGXI_RADICALS_END						0x2FDF	// Fullwidth
-#define UNICODE_BLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS_BEGIN	0x2FF0	// Fullwidth
-#define UNICODE_BLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS_END	0x2FFF	// Fullwidth
-#define UNICODE_BLOCK_CJK_SYMBOLS_AND_PUNCTUATION_BEGIN			0x3000	// Fullwidth 0x3000 - 0x3029
-#define UNICODE_BLOCK_CJK_SYMBOLS_AND_PUNCTUATION_END			0x303F  // Fullwidth 0x3030 - 0x303E
-#define UNICODE_BLOCK_HIRAGANA_BEGIN							0x3040	// Fullwidth 0x3040 - 0x3098
-#define UNICODE_BLOCK_HIRAGANA_END								0x309F	// Fullwidth 0x309B - 0x309F
-#define UNICODE_BLOCK_KATAKANA_BEGIN							0x30A0	// Fullwidth
-#define UNICODE_BLOCK_KATAKANA_END								0x30FF	// Fullwidth
-#define UNICODE_BLOCK_BOPOMOFO_BEGIN							0x3100	// Fullwidth
-#define UNICODE_BLOCK_BOPOMOFO_END								0x312F	// Fullwidth
-#define UNICODE_BLOCK_HANGUL_COMPATIBILITY_JAMO_BEGIN			0x3130	// Fullwidth
-#define UNICODE_BLOCK_HANGUL_COMPATIBILITY_JAMO_END				0x318F	// Fullwidth
-#define UNICODE_BLOCK_KANBUN_BEGIN								0x3190	// Fullwidth
-#define UNICODE_BLOCK_KANBUN_END								0x319F	// Fullwidth
-#define UNICODE_BLOCK_BOPOMOFO_EXTENDED_BEGIN					0x31A0	// Fullwidth
-#define UNICODE_BLOCK_BOPOMOFO_EXTENDED_END						0x31BF	// Fullwidth
-#define UNICODE_BLOCK_CJK_STROKES_BEGIN							0x31C0	// Fullwidth
-#define UNICODE_BLOCK_CJK_STROKES_END							0x31EF	// Fullwidth
-#define UNICODE_BLOCK_KATAKANA_PHONETIC_EXTENSIONS_BEGIN		0x31F0	// Fullwidth
-#define UNICODE_BLOCK_KATAKANA_PHONETIC_EXTENSIONS_END			0x31FF	// Fullwidth
-#define UNICIDE_BLOCK_YI_RADICALS_BEGIN							0xA490	// Fullwidth	
-#define UNICIDE_BLOCK_YI_RADICALS_END							0xA4CF	// Fullwidth
-#define UNICIDE_BLOCK_HANGUL_SYLLABLES_BEGIN					0xAC00	// Fullwidth
-#define UNICIDE_BLOCK_HANGUL_SYLLABLES_END						0xD7AF	// Fullwidth
-#define UNICODE_BLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_BEGIN		0xF900	// Fullwidth
-#define UNICODE_BLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_END			0xFAFF	// Fullwidth
-#define UNICODE_BLOCK_VERTICAL_FORMS_BEGIN						0xFE10	// Fullwidth
-#define UNICODE_BLOCK_VERTICAL_FORMS_END						0xFE1F	// Fullwidth
-#define UNICODE_BLOCK_CJK_COMPATIBILITY_FORMS_BEGIN				0xFE30	// Fullwidth
-#define UNICODE_BLOCK_CJK_COMPATIBILITY_FORMS_END				0xFE4F	// Fullwidth
-#define UNICODE_BLOCK_SMALL_FORM_VARIANTS_BEGIN					0xFE50	// Fullwidth
-#define UNICODE_BLOCK_SMALL_FORM_VARIANTS_END					0xFE6F
-#define UNICODE_BLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS_BEGIN		0xFF00
-#define UNICODE_BLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS_END			0xFFEF
-
-// Sub-Blocks
-#define UNICODE_SUBBLOCK_FULLWIDTH_HANGUL_BEGIN					0x1100
-#define UNICODE_SUBBLOCK_FULLWIDTH_HANGUL_END					0x115F
-#define UNICODE_SUBBLOCK_FULLWIDTH_CHARS_BEGIN					0xFF01
-#define UNICODE_SUBBLOCK_FULLWIDTH_CHARS_END					0xFF60
-#define UNICODE_SUBBLOCK_FULLWIDTH_SYMBOLS_BEGIN				0xFFE0
-#define UNICODE_SUBBLOCK_FULLWIDTH_SYMBOLS_END					0xFFE6
-
-#endif // Don't add anything after this line
diff --git a/xpdev/wrapdll.h b/xpdev/wrapdll.h
deleted file mode 100644
index 74f9ecea587baa3b4b9b801d00c2ef025d92d03d..0000000000000000000000000000000000000000
--- a/xpdev/wrapdll.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Defines DLLEXPORT for cross-platform development wrappers */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#if defined(DLLEXPORT)
-	#undef DLLEXPORT
-#endif
-
-#if defined(_WIN32) && (defined(WRAPPER_IMPORTS) || defined(WRAPPER_EXPORTS))
-	#if defined(WRAPPER_IMPORTS)
-		#define DLLEXPORT	__declspec(dllimport)
-	#else
-		#define DLLEXPORT	__declspec(dllexport)
-	#endif
-#else	/* !_WIN32 || !_DLL*/
-	#define DLLEXPORT
-#endif
-
diff --git a/xpdev/wraptest.c b/xpdev/wraptest.c
deleted file mode 100644
index cf92bf24d112c9e3d980f76114edba10b59e3e05..0000000000000000000000000000000000000000
--- a/xpdev/wraptest.c
+++ /dev/null
@@ -1,418 +0,0 @@
-/* wraptest.c */
-
-/* Verification of cross-platform development wrappers */
-
-/* $Id: wraptest.c,v 1.45 2019/07/24 04:15:54 rswindell Exp $ */
-
-#include <time.h>	/* ctime */
-
-#include "genwrap.h"
-#include "conwrap.h"
-#include "dirwrap.h"
-#include "filewrap.h"
-#include "sockwrap.h"
-#include "threadwrap.h"
-#include "xpbeep.h"
-#include "xpendian.h"
-
-#define LOCK_FNAME	"test.fil"
-#define LOCK_OFFSET	0
-#define LOCK_LEN	4
-
-static void getkey(void);
-static void sem_test_thread(void* arg);
-static void sem_test_thread_block(void* arg);
-static void sleep_test_thread(void* arg);
-static void sopen_test_thread(void* arg);
-static void sopen_child_thread(void* arg);
-static void lock_test_thread(void* arg);
-
-
-typedef struct {
-	sem_t parent_sem;
-	sem_t child_sem;
-} thread_data_t;
-
-int main()
-{
-	char	str[128];
-	char	compiler[128];
-	char	fpath[MAX_PATH+1];
-	char*	path = ".";
-	char*	glob_pattern = "*wrap*";
-	int		i;
-	int		ch;
-	uint	u;
-	time_t	t;
-	glob_t	g;
-	DIR*	dir;
-	DIRENT*	dirent;
-	thread_data_t thread_data;
-	int	fd;
-	int	fd2;
-	int	canrelock=0;
-	clock_t	ticks;
-
-	/* Show platform details */
-	DESCRIBE_COMPILER(compiler);
-	printf("%-15s: %s\n","Platform",PLATFORM_DESC);
-	printf("%-15s: %s\n","Version",os_version(str));
-	printf("%-15s: %s\n","Compiler"	,compiler);
-	printf("%-15s: %ld\n","Random Number",xp_random(1000));
-
-	for(i=0;i<3;i++) {
-		if(_beginthread(
-			  sopen_child_thread	/* entry point */
-			 ,0  					/* stack size (0=auto) */
-			 ,(void*)i				/* data */
-			 )==(unsigned long)-1)
-			printf("_beginthread failed\n");
-		else
-			SLEEP(1);
-	}
-	printf("Waiting for all sopen_child_threads to close...\n");
-	SLEEP(5000);	/* wait for all threads to quit */
-
-	/* Exclusive sopen test */
-	printf("\nsopen() test\n");
-	if((fd=sopen(LOCK_FNAME,O_RDWR|O_CREAT,SH_DENYRW,S_IREAD|S_IWRITE))==-1) {
-		perror(LOCK_FNAME);
-		return(errno);
-	}
-	printf("%s is opened with an exclusive (read/write) lock\n",LOCK_FNAME);
-	getkey();
-	if(_beginthread(
-		  sopen_test_thread	/* entry point */
-		 ,0  				/* stack size (0=auto) */
-		 ,NULL				/* data */
-		 )==(unsigned long)-1)
-		printf("_beginthread failed\n");
-	else
-		SLEEP(1000);
-	close(fd);
-
-	/* sopen()/lock test */
-	printf("\nlock() test\n");
-	if((fd=sopen(LOCK_FNAME,O_RDWR|O_CREAT,SH_DENYNO,S_IREAD|S_IWRITE))==-1) {
-		perror(LOCK_FNAME);
-		return(errno);
-	}
-	write(fd,"lock testing\n",LOCK_LEN);
-	if(lock(fd,LOCK_OFFSET,LOCK_LEN)==0)
-		printf("lock() succeeds\n");
-	else
-		printf("!FAILURE: lock() non-functional (or file already locked)\n");
-	if(lock(fd,LOCK_OFFSET,LOCK_LEN)==0)  {
-		printf("!FAILURE: Subsequent lock of region was allowed (will skip some tests)\n");
-		canrelock=1;
-	}
-		
-	if(_beginthread(
-		  lock_test_thread	/* entry point */
-		 ,0  				/* stack size (0=auto) */
-		 ,NULL				/* data */
-		 )==(unsigned long)-1)
-		printf("_beginthread failed\n");
-	else
-		SLEEP(1000);
-	if(canrelock)
-		printf("?? Skipping some tests due to inability to detect own locks\n");
-	else  {
-		if(lock(fd,LOCK_OFFSET,LOCK_LEN))
-			printf("Locks in first thread survive open()/close() in other thread\n");
-		else
-			printf("!FAILURE: lock() in first thread lost by open()/close() in other thread\n");
-		if(lock(fd,LOCK_OFFSET+LOCK_LEN+1,LOCK_LEN))
-			printf("!FAILURE: file locking\n");
-		else
-			printf("Record locking\n");
-	}
-	if((fd2=sopen(LOCK_FNAME,O_RDWR,SH_DENYRW))==-1) {
-		printf("Cannot reopen SH_DENYRW while lock is held\n");
-		close(fd2);
-	}
-	else  {
-		printf("!FAILURE: can reopen SH_DENYRW while lock is held\n");
-	}
-	if(unlock(fd,LOCK_OFFSET,LOCK_LEN))
-		printf("!FAILURE: unlock() non-functional\n");
-	if(lock(fd,LOCK_OFFSET+LOCK_LEN+1,LOCK_LEN))
-		printf("Cannot re-lock after non-overlapping unlock()\n");
-	else
-		printf("!FAILURE: can re-lock after non-overlappping unlock()\n");
-	if(lock(fd,LOCK_OFFSET,LOCK_LEN))
-		printf("!FAILURE: cannot re-lock unlocked area\n");
-	close(fd);
-
-	/* getch test */
-	printf("\ngetch() test (ESC to continue)\n");
-	do {
-		ch=getch();
-		printf("getch() returned %d\n",ch);
-	} while(ch!=ESC);
-
-	/* kbhit test */
-	printf("\nkbhit() test (any key to continue)\n");
-	while(!kbhit()) {
-		printf(".");
-		fflush(stdout);
-		SLEEP(500);
-	}
-	getch();	/* remove character from keyboard buffer */
-
-	/* BEEP test */
-	printf("\nBEEP() test\n");
-	getkey();
-	for(i=750;i>250;i-=5)
-		BEEP(i,15);
-	for(;i<1000;i+=5)
-		BEEP(i,15);
-
-	/* SLEEP test */
-	printf("\nSLEEP(5 second) test\n");
-	getkey();
-	t=time(NULL);
-	printf("sleeping... ");
-	fflush(stdout);
-	ticks=msclock();
-	SLEEP(5000);
-	printf("slept %ld seconds (%ld according to msclock)\n",time(NULL)-t,(msclock()-ticks)/MSCLOCKS_PER_SEC);
-
-	/* Thread SLEEP test */
-	printf("\nThread SLEEP(5 second) test\n");
-	getkey();
-	i=0;
-	if(_beginthread(
-		  sleep_test_thread	/* entry point */
-		 ,0					/* stack size (0=auto) */
-		 ,&i				/* data */
-		 )==(unsigned long)-1)
-		printf("_beginthread failed\n");
-	else {
-		SLEEP(1);			/* yield to child thread */
-		while(i==0) {
-			printf(".");
-			fflush(stdout);
-			SLEEP(1000);
-		}
-	}
-
-	/* glob test */
-	printf("\nglob(%s) test\n",glob_pattern);
-	getkey();
-	i=glob(glob_pattern,GLOB_MARK,NULL,&g);
-	if(i==0) {
-		for(u=0;u<g.gl_pathc;u++)
-			printf("%s\n",g.gl_pathv[u]);
-		globfree(&g);
-	} else
-		printf("glob(%s) returned %d\n",glob_pattern,i);
-
-	/* opendir (and other directory functions) test */
-	printf("\nopendir(%s) test\n",path);
-	getkey();
-	printf("\nDirectory of %s\n\n",FULLPATH(fpath,path,sizeof(fpath)));
-	dir=opendir(path);
-	while(dir!=NULL && (dirent=readdir(dir))!=NULL) {
-		t=fdate(dirent->d_name);
-		printf("%.24s %10lu  %06o  %s%c\n"
-			,ctime(&t)
-			,flength(dirent->d_name)
-			,getfattr(dirent->d_name)
-			,dirent->d_name
-			,isdir(dirent->d_name) ? '/':0
-			);
-	}
-	if(dir!=NULL)
-		closedir(dir);
-	printf("\nFree disk space: %lu kbytes\n",getfreediskspace(path,1024));
-
-	/* Thread (and inter-process communication) test */
-	printf("\nSemaphore test\n");
-	getkey();
-	if(sem_init(&thread_data.parent_sem
-		,0 /* shared between processes */
-		,0 /* initial count */
-		)) {
-		printf("sem_init failed\n");
-	}
-	if(sem_init(&thread_data.child_sem
-		,0	/* shared between processes */
-		,0	/* initial count */
-		)) {
-		printf("sem_init failed\n");
-	}
-	if(_beginthread(
-		  sem_test_thread	/* entry point */
-		 ,0					/* stack size (0=auto) */
-		 ,&thread_data		/* data */
-		 )==(unsigned long)-1)
-		printf("_beginthread failed\n");
-	else {
-		sem_wait(&thread_data.child_sem);	/* wait for thread to begin */
-		for(i=0;i<10;i++) {
-			printf("<parent>");
-			sem_post(&thread_data.parent_sem);
-			sem_wait(&thread_data.child_sem);
-		}
-		sem_wait(&thread_data.child_sem);	/* wait for thread to end */
-	}
-	sem_destroy(&thread_data.parent_sem);
-	sem_destroy(&thread_data.child_sem);
-
-	printf("\nSemaphore blocking test\n");
-	getkey();
-	sem_init(&thread_data.parent_sem
-		,0 /* shared between processes */
-		,0 /* initial count */
-		);
-	sem_init(&thread_data.child_sem
-		,0	/* shared between processes */
-		,0	/* initial count */
-		);
-	if(_beginthread(
-		  sem_test_thread_block	/* entry point */
-		 ,0					/* stack size (0=auto) */
-		 ,&thread_data		/* data */
-		 )==(unsigned long)-1)
-		printf("_beginthread failed\n");
-	else {
-		sem_wait(&thread_data.child_sem);	/* wait for thread to begin */
-		for(i=0;i<10;i++) {
-			printf("<parent>");
-			SLEEP(5000);
-			sem_post(&thread_data.parent_sem);
-			sem_wait(&thread_data.child_sem);
-		}
-		sem_wait(&thread_data.child_sem);	/* wait for thread to end */
-	}
-	printf("\nsem_trywait_block test...");
-	t=time(NULL);
-	sem_trywait_block(&thread_data.parent_sem,5000);
-	printf("\ntimed-out after %ld seconds (should be 5 seconds)\n",time(NULL)-t);
-	sem_destroy(&thread_data.parent_sem);
-	sem_destroy(&thread_data.child_sem);
-	printf("\nendian check...");
-	memcpy(&i,"\x01\x02\x03\x04",4);
-	if(LE_LONG(i)==67305985) {
-		printf("OK!\n");
-	}
-	else {
-		printf("FAILED!\n");
-	}
-	return 0;
-}
-
-static void getkey(void)
-{
-	printf("Hit any key to continue...");
-	fflush(stdout);
-	getch();
-	printf("\r%30s\r","");
-	fflush(stdout);
-}
-
-static void sleep_test_thread(void* arg)
-{
-	time_t t=time(NULL);
-	printf("child sleeping");
-	fflush(stdout);
-	SLEEP(5000);
-	printf("\nchild awake after %ld seconds\n",time(NULL)-t);
-
-	*(int*)arg=1;	/* signal parent: we're done */
-}
-
-static void sem_test_thread(void* arg)
-{
-	ulong i;
-	thread_data_t* data = (thread_data_t*)arg;
-
-	printf("sem_test_thread entry\n");
-	sem_post(&data->child_sem);		/* signal parent: we've started */
-
-	for(i=0;i<10;i++) {
-		sem_wait(&data->parent_sem);
-		printf(" <child>\n");
-		sem_post(&data->child_sem);
-	}
-
-	printf("sem_test_thread exit\n");
-	sem_post(&data->child_sem);		/* signal parent: we're done */
-}
-
-static void sem_test_thread_block(void* arg)
-{
-	ulong i;
-	thread_data_t* data = (thread_data_t*)arg;
-
-	printf("sem_test_thread_block entry\n");
-	sem_post(&data->child_sem);		/* signal parent: we've started */
-
-	for(i=0;i<10;i++) {
-		if(sem_trywait_block(&data->parent_sem,500))  {
-			printf(" sem_trywait_block() timed out");
-			sem_wait(&data->parent_sem);
-		}
-		else  {
-			printf(" FAILURE: Didn't block");
-		}
-		printf(" <child>\n");
-		sem_post(&data->child_sem);
-	}
-
-	printf("sem_test_thread_block exit\n");
-	sem_post(&data->child_sem);		/* signal parent: we're done */
-}
-
-static void lock_test_thread(void* arg)
-{
-	int	fd;
-
-	fd=sopen(LOCK_FNAME,O_RDWR,SH_DENYNO);
-	if(lock(fd,LOCK_OFFSET,LOCK_LEN)==0)
-		printf("!FAILURE: Lock not effective between threads\n");
-	else
-		printf("Locks effective between threads\n");
-	close(fd);
-	fd=sopen(LOCK_FNAME,O_RDWR,SH_DENYNO);
-	if(lock(fd,LOCK_OFFSET,LOCK_LEN))
-		printf("Locks survive file open()/close() in other thread\n");
-	else
-		printf("!FAILURE: Locks do not survive file open()/close() in other thread\n");
-	close(fd);
-}
-
-static void sopen_test_thread(void* arg)
-{
-	int fd;
-
-	if((fd=sopen(LOCK_FNAME,O_RDWR,SH_DENYWR))!=-1)
-		printf("!FAILURE: allowed to reopen with SH_DENYWR\n");
-	else if((fd=sopen(LOCK_FNAME,O_RDWR,SH_DENYRW))!=-1)
-		printf("!FAILURE: allowed to reopen with SH_DENYRW\n");
-	else
-		printf("reopen disallowed\n");
-
-	if(fd!=-1)
-		close(fd);
-}
-
-static void sopen_child_thread(void* arg)
-{
-	int fd;
-
-	printf("sopen_child_thread: %d begin\n",(int)arg);
-	if((fd=sopen(LOCK_FNAME,O_RDWR,SH_DENYRW))!=-1) {
-		if(arg)
-			printf("!FAILURE: was able to reopen in child thread\n");
-		else {
-			SLEEP(5000);
-		}
-		close(fd);
-	} else if(arg==0)
-		perror(LOCK_FNAME);
-	printf("sopen_child_thread: %d end\n",(int)arg);
-}
-
-/* End of wraptest.c */
diff --git a/xpdev/xp_dl.c b/xpdev/xp_dl.c
deleted file mode 100644
index 11527c6b0e9fe3559c3a5cb2cf5acc03ad1719a6..0000000000000000000000000000000000000000
--- a/xpdev/xp_dl.c
+++ /dev/null
@@ -1,76 +0,0 @@
-#include <stdio.h>
-#include "dirwrap.h"
-#include "xp_dl.h"
-
-#ifndef STATIC_LINK
-#if defined(__unix__)
-
-DLLEXPORT dll_handle xp_dlopen(const char **names, int mode, int major)
-{
-	const char	*name;
-	char		fname[MAX_PATH+1];
-	dll_handle	ret=NULL;
-	int			i;
-
-	for(; *names && (*names)[0]; names++) {
-		name=*names;
-		/* Try for version match */
-		sprintf(fname, "lib%s.so.%d", name, major);
-		if((ret=dlopen(fname, mode))!=NULL)
-			return(ret);
-
-		/* Try for name match */
-		sprintf(fname, "lib%s.so", name);
-		if((ret=dlopen(fname, mode))!=NULL)
-			return(ret);
-
-		/* Try for name match without the prefix */
-		sprintf(fname, "%s.so", name);
-		if((ret=dlopen(fname, mode))!=NULL)
-			return(ret);
-
-		/* Try all previous major versions */
-		for(i=major-1; i>=0; i--) {
-			sprintf(fname, "lib%s.so.%d", name, i);
-			if((ret=dlopen(fname, mode))!=NULL)
-				return(ret);
-		}
-
-#if defined(__APPLE__) && defined(__MACH__)
-		/* Try for version match */
-		sprintf(fname, "lib%s.%d.dylib", name, major);
-		if((ret=dlopen(fname, mode))!=NULL)
-			return(ret);
-
-		/* Try for name match */
-		sprintf(fname, "lib%s.dylib", name);
-		if((ret=dlopen(fname, mode))!=NULL)
-			return(ret);
-
-		/* Try all previous major versions */
-		for(i=major-1; i>=0; i--) {
-			sprintf(fname, "lib%s.%d.dylib", name, i);
-			if((ret=dlopen(fname, mode))!=NULL)
-				return(ret);
-		}
-#endif	/* OS X */
-	}
-
-	return(NULL);
-}
-#elif defined(_WIN32)
-DLLEXPORT dll_handle xp_dlopen(const char **names, int mode, int major)
-{
-	char		fname[MAX_PATH+1];
-	dll_handle	ret=NULL;
-
-	for(; *names && (*names)[0]; names++) {
-		sprintf(fname, "%s.dll", *names);
-		if((ret=LoadLibrary(fname))!=NULL)
-			return(ret);
-	}
-	return(NULL);
-}
-#endif	/* __unix__,_WIN32 */
-
-#endif	/* STATIC_LINK */
diff --git a/xpdev/xp_dl.h b/xpdev/xp_dl.h
deleted file mode 100644
index 70779a662898d26795101ad4b2a1c85d0bf10dcc..0000000000000000000000000000000000000000
--- a/xpdev/xp_dl.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef _XP_DL_H_
-#define _XP_DL_H_
-
-#include "wrapdll.h"
-
-#ifndef STATIC_LINK
-#if defined(__unix__)
-	#include <dlfcn.h>
-
-	typedef void * dll_handle;
-	DLLEXPORT dll_handle xp_dlopen(const char **name, int mode, int major);
-	#define xp_dlsym(handle, name)				dlsym(handle, #name)
-	#define xp_dlclose(handle)					dlclose(handle)
-#elif defined(_WIN32)
-	#include <windows.h>
-
-	typedef HMODULE dll_handle;
-	DLLEXPORT dll_handle xp_dlopen(const char **name, int mode, int major);
-	#define xp_dlsym(handle, name)				((void *)GetProcAddress(handle, #name))
-	#define xp_dlclose(handle)					(FreeLibrary(handle)?0:-1)
-
-	/* Unused values for *nix compatability */
-	enum {
-		 RTLD_LAZY
-		,RTLD_NOW
-		,RTLD_GLOBAL
-		,RTLD_LOCAL
-		,RTLD_TRACE
-	};
-#endif
-#else
-	typedef void* dll_handle;
-
-	#define xp_dlopen(name, mode, major)	(name)
-	#define xp_dlsym(handle, name)			(name)
-	#define xp_dlclose(handle)				(0)
-#endif
-
-#endif
diff --git a/xpdev/xp_syslog.h b/xpdev/xp_syslog.h
deleted file mode 100644
index 7d9cab5a2bee94feeb4da9e8487063519cb49e3d..0000000000000000000000000000000000000000
--- a/xpdev/xp_syslog.h
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifndef XP_SYSLOG_H_
-#define XP_SYSLOG_H_
-#include <stdarg.h>
-
-
-/* priorities */
-#define LOG_EMERG		0		/* system is unusable */
-#define LOG_ALERT		1		/* action must be taken immediately */
-#define LOG_CRIT		2		/* critical conditions */
-#define LOG_ERR			3		/* error conditions */
-#define LOG_WARNING		4		/* warning conditions */
-#define LOG_NOTICE		5		/* normal but significant condition */
-#define LOG_INFO		6		/* informational */
-#define LOG_DEBUG		7		/* debug-level messages */
-
-#define LOG_KERN		(0<<3)	/* kernel messages */
-#define LOG_USER		(1<<3)	/* random user-level messages */
-#define LOG_MAIL		(2<<3)	/* mail system */
-#define LOG_DAEMON		(3<<3)	/* system daemons */
-#define LOG_AUTH		(4<<3)	/* authorization messages */
-#define LOG_SYSLOG		(5<<3)	/* messages generated internally by syslogd */
-#define LOG_LPR			(6<<3)	/* line printer subsystem */
-#define LOG_NEWS		(7<<3)	/* network news subsystem */
-#define LOG_UUCP		(8<<3)	/* UUCP subsystem */
-#define LOG_CRON		(9<<3)	/* clock daemon */
-#define LOG_AUTHPRIV	(10<<3)	/* authorization messages (private) */
-								/* Facility #10 clashes in DEC UNIX, where */
-								/* it's defined as LOG_MEGASAFE for AdvFS  */
-								/* event logging.                          */
-#define LOG_FTP			(11<<3)	/* ftp daemon */
-#define LOG_NTP			(12<<3)	/* NTP subsystem */
-#define LOG_SECURITY	(13<<3)	/* security subsystems (firewalling, etc.) */
-#define LOG_CONSOLE		(14<<3)	/* /dev/console output */
-
-/* facility codes */
-#define LOG_LOCAL0		(16<<3)	/* reserved for local use */
-#define LOG_LOCAL1		(17<<3)	/* reserved for local use */
-#define LOG_LOCAL2		(18<<3)	/* reserved for local use */
-#define LOG_LOCAL3		(19<<3)	/* reserved for local use */
-#define LOG_LOCAL4		(20<<3)	/* reserved for local use */
-#define LOG_LOCAL5		(21<<3)	/* reserved for local use */
-#define LOG_LOCAL6		(22<<3)	/* reserved for local use */
-#define LOG_LOCAL7		(23<<3)	/* reserved for local use */
-
-/* Masks to extract parts */
-#define LOG_PRIMASK     0x07    /* mask to extract priority part */
-#define LOG_FACMASK     0x03f8  /* mask to extract facility part */
-
-/* Logopts for xp_openlog() */
-#define LOG_CONS		0x02	/* log on the console if errors in sending */
-#define LOG_PERROR		0x20	/* log to stderr as well */
-
-/* Port number */
-#define SYSLOG_PORT 514
-
-void xp_set_loghost(const char *hostname);
-void xp_openlog(const char *ident, int logopt, int facility);
-void xp_vsyslog(int priority, const char *message, va_list va);
-void xp_syslog(int priority, const char *message, ...);
-
-#endif
diff --git a/xpdev/xpbeep.c b/xpdev/xpbeep.c
deleted file mode 100644
index 4e8e6ce53cf8d15e1489e3cbcf86e55a4dd40c7d..0000000000000000000000000000000000000000
--- a/xpdev/xpbeep.c
+++ /dev/null
@@ -1,1235 +0,0 @@
-/* $Id: xpbeep.c,v 1.113 2020/05/15 01:12:10 deuce Exp $ */
-
-/* TODO: USE PORTAUDIO! */
-
-/* standard headers */
-#include <math.h>
-#include <stdlib.h>
-#include "xp_dl.h"
-
-#if defined(_WIN32)
-	#include <windows.h>
-	#include <mmsystem.h>
-#elif defined(__unix__)
-	#include <fcntl.h>
-	#include <sys/ioctl.h>
-	#if SOUNDCARD_H_IN==1
-		#include <sys/soundcard.h>
-	#elif SOUNDCARD_H_IN==2
-		#include <soundcard.h>
-	#elif SOUNDCARD_H_IN==3
-		#include <linux/soundcard.h>
-	#else
-		#ifndef USE_ALSA_SOUND
-			#warning Cannot find soundcard.h
-		#endif
-	#endif
-	#ifdef USE_ALSA_SOUND
-		#include <dlfcn.h>
-		#include <alsa/asoundlib.h>
-	#endif
-	/* KIOCSOUND */
-	#if defined(__FreeBSD__)
-		#include <sys/kbio.h>
-	#elif defined(__linux__)
-		#include <sys/kd.h>	
-	#elif defined(__solaris__)
-		#include <sys/kbio.h>
-		#include <sys/kbd.h>
-	#endif
-	#if (defined(__OpenBSD__) || defined(__NetBSD__)) && defined(HAS_MACHINE_SPKR_H)
-		#include <machine/spkr.h>
-	#elif defined(__FreeBSD__)
-		#if defined(HAS_DEV_SPEAKER_SPEAKER_H)
-			#include <dev/speaker/speaker.h>
-		#elif defined(HAS_MACHINE_SPEAKER_H)
-			#include <machine/speaker.h>
-		#endif
-	#endif
-#endif
-
-/* xpdev headers */
-#ifdef WITH_PORTAUDIO
-#include <portaudio.h>
-#endif
-
-#ifdef WITH_PULSEAUDIO
-#include <pulse/simple.h>
-#endif
-
-#ifdef WITH_SDL_AUDIO
-#include "sdlfuncs.h"
-#endif
-
-#include "genwrap.h"
-#include "xpbeep.h"
-
-#define S_RATE	22050
-
-#ifdef XPDEV_THREAD_SAFE
-#include "threadwrap.h"
-
-static BOOL sample_thread_running=FALSE;
-static sem_t sample_pending_sem;
-static sem_t sample_complete_sem;
-static pthread_mutex_t sample_mutex;
-static pthread_mutex_t handle_mutex;
-static const unsigned char *sample_buffer;
-static int samples_posted;
-static size_t sample_size;
-
-#endif
-
-static BOOL sound_device_open_failed=FALSE;
-#ifdef USE_ALSA_SOUND
-static BOOL alsa_device_open_failed=FALSE;
-#endif
-#ifdef WITH_SDL_AUDIO
-static BOOL sdl_device_open_failed=FALSE;
-#endif
-#ifdef WITH_PORTAUDIO
-static BOOL portaudio_device_open_failed=FALSE;
-#endif
-#ifdef WITH_PULSEAUDIO
-static BOOL pulseaudio_device_open_failed=FALSE;
-#endif
-
-enum {
-	 SOUND_DEVICE_CLOSED
-	,SOUND_DEVICE_WIN32
-	,SOUND_DEVICE_ALSA
-	,SOUND_DEVICE_OSS
-	,SOUND_DEVICE_SDL
-	,SOUND_DEVICE_PORTAUDIO
-	,SOUND_DEVICE_PULSEAUDIO
-};
-
-static int handle_type=SOUND_DEVICE_CLOSED;
-static int handle_rc;
-
-#ifdef WITH_PULSEAUDIO
-struct pulseaudio_api_struct {
-	pa_simple* (*simple_new)(const char * server, const char * name, pa_stream_direction_t dir, const char * dev, const char * stream_name, const pa_sample_spec * ss, const pa_channel_map * map, const pa_buffer_attr * attr, int * error);
-	int (*simple_write)(pa_simple * s, const void * data, size_t bytes, int * error);
-	int (*simple_drain)(pa_simple * s, int * error);
-	void (*simple_free)(pa_simple * s);
-};
-struct pulseaudio_api_struct *pu_api = NULL;
-static pa_simple *pu_handle;
-static int				pulseaudio_initialized=FALSE;
-#endif
-
-#ifdef WITH_PORTAUDIO
-static PaStream			*portaudio_stream;
-static int				portaudio_buf_len=0;
-static int				portaudio_buf_pos=0;
-static const unsigned char	*pawave=NULL;
-static int				portaudio_initialized=FALSE;
-#ifndef PaStream	// Detect version... defined for 1.8 and not for 1.9
-#define PortAudioCallback	void
-#define PaTimestamp		PaTime
-#endif
-struct portaudio_api_struct {
-	PaError (*init)( void );
-	PaError (*open)( PaStream** stream,
-                              int numInputChannels,
-                              int numOutputChannels,
-                              PaSampleFormat sampleFormat,
-                              double sampleRate,
-                              unsigned long framesPerBuffer,
-                              unsigned long numberOfBuffers,
-                              PortAudioCallback *callback,
-                              void *userData );
-	PaError (*close)( PaStream* );
-	PaError (*start)( PaStream *stream );
-	PaError (*stop)( PaStream *stream );
-	PaError (*active)( PaStream *stream );
-	PaError (*write)( PaStream *stream, const void *buf, unsigned long frames );
-	int	(*version)( void );
-	int	ver;
-};
-struct portaudio_api_struct *pa_api=NULL;
-#endif
-
-#ifdef WITH_SDL_AUDIO
-static SDL_AudioSpec	spec;
-static int				sdl_audio_buf_len=0;
-static int				sdl_audio_buf_pos=0;
-static const unsigned char	*swave;
-static SDL_sem			*sdlToneDone;
-#endif
-
-#ifdef _WIN32
-static	HWAVEOUT		waveOut;
-static	WAVEHDR			wh[2];
-static	int				curr_wh;
-#endif
-
-#ifdef USE_ALSA_SOUND
-static snd_pcm_t *playback_handle;
-static snd_pcm_hw_params_t *hw_params=NULL;
-#endif
-
-#ifdef AFMT_U8
-static	int dsp;
-#endif
-
-#define WAVE_PI	3.14159265358979323846
-#define WAVE_TPI 6.28318530717958647692
-
-#ifdef USE_ALSA_SOUND
-struct alsa_api_struct {
-	int		(*snd_pcm_open)
-				(snd_pcm_t **pcm, const char *name, snd_pcm_stream_t stream, int mode);
-	int		(*snd_pcm_hw_params_malloc)
-				(snd_pcm_hw_params_t **ptr);
-	int		(*snd_pcm_hw_params_any)
-				(snd_pcm_t *pcm, snd_pcm_hw_params_t *params);
-	int		(*snd_pcm_hw_params_set_access)
-				(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_access_t _access);
-	int		(*snd_pcm_hw_params_set_format)
-				(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, snd_pcm_format_t val);
-	int		(*snd_pcm_hw_params_set_rate_near)
-				(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int *val, int *dir);
-	int		(*snd_pcm_hw_params_set_channels)
-				(snd_pcm_t *pcm, snd_pcm_hw_params_t *params, unsigned int val);
-	int		(*snd_pcm_hw_params)
-				(snd_pcm_t *pcm, snd_pcm_hw_params_t *params);
-	int		(*snd_pcm_prepare)
-				(snd_pcm_t *pcm);
-	void	(*snd_pcm_hw_params_free)
-				(snd_pcm_hw_params_t *obj);
-	int 	(*snd_pcm_close)
-				(snd_pcm_t *pcm);
-	snd_pcm_sframes_t (*snd_pcm_writei)
-				(snd_pcm_t *pcm, const void *buffer, snd_pcm_uframes_t size);
-	int		(*snd_pcm_drain)
-				(snd_pcm_t *pcm);
-};
-
-struct alsa_api_struct *alsa_api=NULL;
-#endif
-
-#ifdef XPDEV_THREAD_SAFE
-static void init_sample(void);
-static BOOL xp_play_sample_locked(const unsigned char *sample, size_t size, BOOL background);
-#endif
-
-/********************************************************************************/
-/* Calculate and generate a sound wave pattern (thanks to Deuce!)				*/
-/********************************************************************************/
-void xptone_makewave(double freq, unsigned char *wave, int samples, enum WAVE_SHAPE shape)
-{
-	int	i;
-	int midpoint;
-	double inc;
-	double pos;
-	BOOL endhigh;
-	int crossings;
-	int numcross=0;
-
-	if(freq==0) {
-		memset(wave, 128, samples);
-	}
-	else {
-		midpoint=samples/2;
-		inc=8.0*atan(1.0);
-		inc *= ((double)freq / (double)S_RATE);
-
-		for(i=0;i<samples;i++) {
-			pos=(inc*(double)i);
-			pos -= (int)(pos/WAVE_TPI)*WAVE_TPI;
-			switch(shape) {
-				case WAVE_SHAPE_SINE:
-					wave[i]=(sin (pos))*127+128;
-					break;
-				case WAVE_SHAPE_SINE_HARM:
-					wave[i]=(sin (pos))*64+128;
-					wave[i]=(sin ((inc*2)*(double)i))*24;
-					wave[i]=(sin ((inc*3)*(double)i))*16;
-					break;
-				case WAVE_SHAPE_SAWTOOTH:
-					wave[i]=(WAVE_TPI-pos)*40.5;
-					break;
-				case WAVE_SHAPE_SQUARE:
-					wave[i]=(pos<WAVE_PI)?255:0;
-					break;
-				case WAVE_SHAPE_SINE_SAW:
-					wave[i]=(((sin (pos))*127+128)+((WAVE_TPI-pos)*40.5))/2;
-					break;
-				case WAVE_SHAPE_SINE_SAW_CHORD:
-					wave[i]=(((sin (pos))*64+128)+((WAVE_TPI-pos)*6.2))/2;
-					wave[i]+=(sin ((inc/2)*(double)i))*24;
-					wave[i]+=(sin ((inc/3)*(double)i))*16;
-					break;
-				case WAVE_SHAPE_SINE_SAW_HARM:
-					wave[i]=(((sin (pos))*64+128)+((WAVE_TPI-pos)*6.2))/2;
-					wave[i]+=(sin ((inc*2)*(double)i))*24;
-					wave[i]+=(sin ((inc*3)*(double)i))*16;
-					break;
-			}
-		}
-
-		/* Now we have a "perfect" wave... 
-		 * we must clean it up now to avoid click/pop
-		 */
-		if(wave[samples-1]>128)
-			endhigh=TRUE;
-		else
-			endhigh=FALSE;
-		/* Completely remove the last wave fragment */
-		i=samples-1;
-		if(wave[i]!=128) {
-			for(;i>midpoint;i--) {
-				if(endhigh && wave[i]<128)
-					break;
-				if(!endhigh && wave[i]>128)
-					break;
-				wave[i]=128;
-			}
-		}
-
-		/* Number of crossings should be on the order of 5ms worth... according to the ARRL */
-		/* We're ASSuming that a full wave crosses twice */
-		numcross=freq/100;
-		if(numcross) {
-			/* Ramp up and down by one third for three corssings of 128 */
-			crossings=0;
-			for(i=0; i<(samples-1); i++) {
-				if(((wave[i]<128 && wave[i+1]>=128) || (wave[i]>128 && wave[i+1]<=128)) && i>2) {
-					crossings++;
-					if(crossings>=numcross)
-						break;
-				}
-				wave[i]=128+((wave[i]-128)/((numcross-crossings)*(numcross-crossings)));
-			}
-			crossings=0;
-			for(i=samples-1; i>0; i--) {
-				if(((wave[i]<128 && wave[i-1]>=128) || (wave[i]>128 && wave[i-1]<=128)) && i>2) {
-					crossings++;
-					if(crossings>=numcross)
-						break;
-				}
-				wave[i]=128+((wave[i]-128)/((numcross-crossings)*(numcross-crossings)));
-			}
-		}
-	}
-}
-
-#ifdef WITH_PORTAUDIO
-/*
- * Used by v18 library, not v19!
- */
-static int portaudio_callback(void *inputBuffer
-				, void *outputBuffer
-				, unsigned long framesPerBuffer
-				, const PaTimestamp outTime
-				, void *userData )
-{
-	int copylen=framesPerBuffer;
-	int maxlen=portaudio_buf_len-portaudio_buf_pos;
-
-	if(copylen>maxlen) {
-		copylen=maxlen;
-		memset(((char *)outputBuffer)+copylen, 128, framesPerBuffer-copylen);
-	}
-	if(copylen) {
-		memcpy(outputBuffer, (*((unsigned char **)userData))+portaudio_buf_pos, copylen);
-		portaudio_buf_pos+=copylen;
-	}
-	if(portaudio_buf_pos >= portaudio_buf_len)
-		return(1);
-	return(0);
-}
-#endif
-
-#ifdef WITH_SDL_AUDIO
-void sdl_fillbuf(void *userdata, Uint8 *stream, int len)
-{
-	int	copylen=len;
-	int maxlen=sdl_audio_buf_len-sdl_audio_buf_pos;
-
-	/* Copy in the current buffer */
-	if(copylen>maxlen)
-		copylen=maxlen;
-	/* Fill with silence */
-	if(len>copylen)
-		memset(stream+copylen, spec.silence, len-copylen);
-	if(copylen) {
-		memcpy(stream, swave+sdl_audio_buf_pos, copylen);
-		sdl_audio_buf_pos+=copylen;
-		/* If we're done, post the semaphore */
-		if(sdl_audio_buf_pos>=sdl_audio_buf_len) {
-			xpbeep_sdl.SemPost(sdlToneDone);
-			sdl_audio_buf_len=0;
-			sdl_audio_buf_pos=0;
-			free((void *)swave);
-		}
-	}
-}
-#endif
-
-#ifdef XPDEV_THREAD_SAFE
-pthread_once_t sample_initialized_pto = PTHREAD_ONCE_INIT;
-#endif
-static BOOL
-xptone_open_locked(void)
-{
-#ifdef _WIN32
-	WAVEFORMATEX	w;
-#endif
-
-#ifdef AFMT_U8
-	int format=AFMT_U8;
-	int channels=1;
-	int	rate=S_RATE;
-	int	fragsize=0x7fff0004;
-#endif
-
-	/* Already open */
-
-	if(handle_type!=SOUND_DEVICE_CLOSED) {
-		handle_rc++;
-		return(TRUE);
-	}
-
-#ifdef WITH_PULSEAUDIO
-	if(!pulseaudio_device_open_failed) {
-		if(pu_api==NULL) {
-			dll_handle dl=NULL;
-			const char *libnames[]={"pulse-simple",NULL};
-			if(((pu_api=(struct pulseaudio_api_struct *)malloc(sizeof(struct pulseaudio_api_struct)))==NULL)
-					|| ((dl=xp_dlopen(libnames,RTLD_LAZY,0))==NULL)
-					|| ((pu_api->simple_new=xp_dlsym(dl,pa_simple_new))==NULL)
-					|| ((pu_api->simple_write=xp_dlsym(dl,pa_simple_write))==NULL)
-					|| ((pu_api->simple_drain=xp_dlsym(dl,pa_simple_drain))==NULL)
-					|| ((pu_api->simple_free=xp_dlsym(dl,pa_simple_free))==NULL)
-					) {
-				if(dl)
-					xp_dlclose(dl);
-				free(pu_api);
-				pu_api=NULL;
-			}
-			if(pu_api==NULL) {
-				pulseaudio_device_open_failed=TRUE;
-			}
-		}
-		if(pu_api != NULL) {
-			handle_type=SOUND_DEVICE_PULSEAUDIO;
-			handle_rc++;
-#ifdef XPDEV_THREAD_SAFE
-			pthread_mutex_unlock(&handle_mutex);
-			pthread_mutex_lock(&sample_mutex);
-			if (samples_posted == 0)
-				xp_play_sample_locked((unsigned char *)"\x80", 1, FALSE);
-			pthread_mutex_unlock(&sample_mutex);
-#else
-			xptone(0, 1, WAVE_SHAPE_SQUARE);
-#endif
-			if (pulseaudio_device_open_failed) {
-				handle_type = SOUND_DEVICE_CLOSED;
-			}
-			else {
-				return(TRUE);
-			}
-		}
-	}
-#endif
-
-#ifdef WITH_PORTAUDIO
-	if(!portaudio_device_open_failed) {
-		if(pa_api==NULL) {
-			dll_handle dl=NULL;
-			const char *libnames[]={"portaudio",NULL};
-			if(((pa_api=(struct portaudio_api_struct *)malloc(sizeof(struct portaudio_api_struct)))==NULL)
-					|| ((dl=xp_dlopen(libnames,RTLD_LAZY,0))==NULL)
-					|| ((pa_api->init=xp_dlsym(dl,Pa_Initialize))==NULL)
-					|| ((pa_api->open=xp_dlsym(dl,Pa_OpenDefaultStream))==NULL)
-					|| ((pa_api->close=xp_dlsym(dl,Pa_CloseStream))==NULL)
-					|| ((pa_api->start=xp_dlsym(dl,Pa_StartStream))==NULL)
-					||
-						(
-							((pa_api->active=xp_dlsym(dl,Pa_StreamActive))==NULL)
-							&& ((pa_api->active=xp_dlsym(dl,Pa_IsStreamActive))==NULL)
-						)
-					|| ((pa_api->stop=xp_dlsym(dl,Pa_StopStream))==NULL)
-					) {
-				if(dl)
-					xp_dlclose(dl);
-				free(pa_api);
-				pa_api=NULL;
-			}
-			else {
-				/* Get version and other optional pointers */
-				pa_api->ver=1800;
-				if((pa_api->version=xp_dlsym(dl, Pa_GetVersion))!=NULL) {
-					pa_api->ver=pa_api->version();
-					if(pa_api->ver >= 1899) {
-						if((pa_api->write=xp_dlsym(dl, Pa_WriteStream))==NULL) {
-							xp_dlclose(dl);
-							free(pa_api);
-							pa_api=NULL;
-						}
-					}
-				}
-			}
-			if(pa_api==NULL) {
-				portaudio_device_open_failed=TRUE;
-			}
-		}
-		if(pa_api != NULL) {
-			if(!portaudio_initialized) {
-				if(pa_api->init() != paNoError)
-					portaudio_device_open_failed=TRUE;
-				else
-					portaudio_initialized=TRUE;
-			}
-			if(portaudio_initialized) {
-				if(pa_api->open(&portaudio_stream
-						, 0	/* No input */
-						, 1	/* Mono output */
-						, paUInt8
-						, S_RATE
-						, 256
-						, 0
-						, pa_api->ver >= 1899 ? NULL : portaudio_callback
-						, &pawave) != paNoError)
-					portaudio_device_open_failed=TRUE;
-				else {
-					handle_type=SOUND_DEVICE_PORTAUDIO;
-					handle_rc++;
-					return(TRUE);
-				}
-			}
-		}
-	}
-#endif
-
-#ifdef WITH_SDL_AUDIO
-	if(!sdl_device_open_failed) {
-		if(init_sdl_audio()==-1) {
-			sdl_device_open_failed=TRUE;
-		}
-		else {
-			spec.freq=22050;
-			spec.format=AUDIO_U8;
-			spec.channels=1;
-			spec.samples=256;		/* Size of audio buffer */
-			spec.size=256;
-			spec.callback=sdl_fillbuf;
-			spec.userdata=NULL;
-			if(xpbeep_sdl.OpenAudio(&spec, NULL)==-1) {
-				sdl_device_open_failed=TRUE;
-			}
-			else {
-				sdlToneDone=xpbeep_sdl.SDL_CreateSemaphore(0);
-				sdl_audio_buf_len=0;
-				sdl_audio_buf_pos=0;
-				xpbeep_sdl.PauseAudio(FALSE);
-				handle_type=SOUND_DEVICE_SDL;
-				handle_rc++;
-				return(TRUE);
-			}
-		}
-	}
-#endif
-
-#ifdef _WIN32
-	if(!sound_device_open_failed) {
-		w.wFormatTag = WAVE_FORMAT_PCM;
-		w.nChannels = 1;
-		w.nSamplesPerSec = S_RATE;
-		w.wBitsPerSample = 8;
-		w.nBlockAlign = (w.wBitsPerSample * w.nChannels) / 8;
-		w.nAvgBytesPerSec = w.nSamplesPerSec * w.nBlockAlign;
-
-		if(!sound_device_open_failed && waveOutOpen(&waveOut, WAVE_MAPPER, &w, 0, 0, 0)!=MMSYSERR_NOERROR)
-			sound_device_open_failed=TRUE;
-		if(sound_device_open_failed)
-			return(FALSE);
-		memset(&wh, 0, sizeof(wh));
-		wh[0].dwBufferLength=S_RATE*15/2+1;
-		wh[1].dwBufferLength=S_RATE*15/2+1;
-		handle_type=SOUND_DEVICE_WIN32;
-		if(!sound_device_open_failed) {
-			handle_rc++;
-			return(TRUE);
-		}
-	}
-#endif
-
-#ifdef USE_ALSA_SOUND
-	if(!alsa_device_open_failed) {
-		if(alsa_api==NULL) {
-			dll_handle dl=NULL;
-			const char *libnames[]={"asound", NULL};
-			if(((alsa_api=(struct alsa_api_struct *)malloc(sizeof(struct alsa_api_struct)))==NULL)
-					|| ((dl=xp_dlopen(libnames,RTLD_LAZY,2))==NULL)
-					|| ((alsa_api->snd_pcm_open=xp_dlsym(dl,snd_pcm_open))==NULL)
-					|| ((alsa_api->snd_pcm_hw_params_malloc=xp_dlsym(dl,snd_pcm_hw_params_malloc))==NULL)
-					|| ((alsa_api->snd_pcm_hw_params_any=xp_dlsym(dl,snd_pcm_hw_params_any))==NULL)
-					|| ((alsa_api->snd_pcm_hw_params_set_access=xp_dlsym(dl,snd_pcm_hw_params_set_access))==NULL)
-					|| ((alsa_api->snd_pcm_hw_params_set_format=xp_dlsym(dl,snd_pcm_hw_params_set_format))==NULL)
-					|| ((alsa_api->snd_pcm_hw_params_set_rate_near=xp_dlsym(dl,snd_pcm_hw_params_set_rate_near))==NULL)
-					|| ((alsa_api->snd_pcm_hw_params_set_channels=xp_dlsym(dl,snd_pcm_hw_params_set_channels))==NULL)
-					|| ((alsa_api->snd_pcm_hw_params=xp_dlsym(dl,snd_pcm_hw_params))==NULL)
-					|| ((alsa_api->snd_pcm_prepare=xp_dlsym(dl,snd_pcm_prepare))==NULL)
-					|| ((alsa_api->snd_pcm_hw_params_free=xp_dlsym(dl,snd_pcm_hw_params_free))==NULL)
-					|| ((alsa_api->snd_pcm_close=xp_dlsym(dl,snd_pcm_close))==NULL)
-					|| ((alsa_api->snd_pcm_writei=xp_dlsym(dl,snd_pcm_writei))==NULL)
-					|| ((alsa_api->snd_pcm_drain=xp_dlsym(dl,snd_pcm_drain))==NULL)
-					) {
-				if(dl)
-					xp_dlclose(dl);
-				free(alsa_api);
-				alsa_api=NULL;
-				alsa_device_open_failed=TRUE;
-			}
-			if(alsa_api==NULL)
-				alsa_device_open_failed=TRUE;
-		}
-		if(alsa_api!=NULL) {
-			unsigned int rate=S_RATE;
-			if((alsa_api->snd_pcm_open(&playback_handle, "default", SND_PCM_STREAM_PLAYBACK, 0)<0)
-					|| (alsa_api->snd_pcm_hw_params_malloc(&hw_params)<0)
-					|| (alsa_api->snd_pcm_hw_params_any(playback_handle, hw_params)<0)
-					|| (alsa_api->snd_pcm_hw_params_set_access(playback_handle, hw_params, SND_PCM_ACCESS_RW_INTERLEAVED) < 0)
-					|| (alsa_api->snd_pcm_hw_params_set_format(playback_handle, hw_params, SND_PCM_FORMAT_U8) < 0)
-					|| (alsa_api->snd_pcm_hw_params_set_rate_near(playback_handle, hw_params, &rate, 0) < 0) 
-					|| (alsa_api->snd_pcm_hw_params_set_channels(playback_handle, hw_params, 1) < 0)
-					|| (alsa_api->snd_pcm_hw_params(playback_handle, hw_params) < 0)
-					|| (alsa_api->snd_pcm_prepare(playback_handle) < 0)) {
-				alsa_device_open_failed=TRUE;
-				if(hw_params!=NULL)
-					alsa_api->snd_pcm_hw_params_free(hw_params);
-				if(playback_handle!=NULL) {
-					alsa_api->snd_pcm_close(playback_handle);
-					playback_handle=NULL;
-				}
-			}
-			else {
-				alsa_api->snd_pcm_hw_params_free(hw_params);
-				handle_type=SOUND_DEVICE_ALSA;
-				handle_rc++;
-				return(TRUE);
-			}
-		}
-	}
-#endif
-
-#ifdef AFMT_U8
-	if(!sound_device_open_failed) {
-		if((dsp=open("/dev/dsp",O_WRONLY,0))<0) {
-			sound_device_open_failed=TRUE;
-		}
-		else  {
-			ioctl(dsp, SNDCTL_DSP_SETFRAGMENT, &fragsize);
-			if((ioctl(dsp, SNDCTL_DSP_SETFMT, &format)==-1) || format!=AFMT_U8) {
-				sound_device_open_failed=TRUE;
-				close(dsp);
-			}
-			else if((ioctl(dsp, SNDCTL_DSP_CHANNELS, &channels)==-1) || channels!=1) {
-				sound_device_open_failed=TRUE;
-				close(dsp);
-			}
-			else if((ioctl(dsp, SNDCTL_DSP_SPEED, &rate)==-1) || rate!=S_RATE) {
-				sound_device_open_failed=TRUE;
-				close(dsp);
-			}
-		}
-	}
-	if(sound_device_open_failed) {
-		return(FALSE);
-	}
-	handle_type=SOUND_DEVICE_OSS;
-	if(!sound_device_open_failed) {
-		handle_rc++;
-		return(TRUE);
-	}
-#endif
-
-	return(FALSE);
-}
-
-BOOL
-xptone_open(void)
-{
-	BOOL ret;
-#ifdef XPDEV_THREAD_SAFE
-	pthread_once(&sample_initialized_pto, init_sample);
-	pthread_mutex_lock(&handle_mutex);
-#endif
-	ret = xptone_open_locked();
-#ifdef XPDEV_THREAD_SAFE
-	pthread_mutex_unlock(&handle_mutex);
-#endif
-	return ret;
-}
-
-static void
-xptone_complete_locked(void)
-{
-	if(handle_type==SOUND_DEVICE_CLOSED) {
-		return;
-	}
-
-#ifdef WITH_PULSEAUDIO
-	else if (handle_type == SOUND_DEVICE_PULSEAUDIO) {
-		int err;
-		if (pu_handle)
-			pu_api->simple_drain(pu_handle, &err);
-	}
-#endif
-
-#ifdef WITH_PORTAUDIO
-	else if(handle_type==SOUND_DEVICE_PORTAUDIO) {
-		pa_api->stop(portaudio_stream);
-		if (pawave) {
-			free((void *)pawave);
-			pawave = NULL;
-		}
-	}
-#endif
-
-#ifdef WITH_SDL_AUDIO
-	else if(handle_type==SOUND_DEVICE_SDL) {
-		while(xpbeep_sdl.GetAudioStatus()==SDL_AUDIO_PLAYING)
-			SLEEP(1);
-	}
-#endif
-
-#ifdef _WIN32
-	if(handle_type==SOUND_DEVICE_WIN32) {
-		if(wh[0].dwFlags & WHDR_PREPARED) {
-			while(waveOutUnprepareHeader(waveOut, &wh[0], sizeof(wh))==WAVERR_STILLPLAYING)
-				SLEEP(1);
-			FREE_AND_NULL(wh[0].lpData);
-		}
-		if(wh[1].dwFlags & WHDR_PREPARED) {
-			while(waveOutUnprepareHeader(waveOut, &wh[1], sizeof(wh))==WAVERR_STILLPLAYING)
-				SLEEP(1);
-			FREE_AND_NULL(wh[1].lpData);
-		}
-	}
-#endif
-
-#ifdef USE_ALSA_SOUND
-	if(handle_type==SOUND_DEVICE_ALSA) {
-		if(!alsa_device_open_failed)
-			alsa_api->snd_pcm_drain(playback_handle);
-	}
-#endif
-
-#ifdef AFMT_U8
-	else if(handle_type==SOUND_DEVICE_OSS) {
-		ioctl(dsp, SNDCTL_DSP_SYNC, NULL);
-	}
-#endif
-}
-
-void
-xptone_complete(void)
-{
-#ifdef XPDEV_THREAD_SAFE
-	pthread_mutex_lock(&handle_mutex);
-#endif
-	xptone_complete_locked();
-#ifdef XPDEV_THREAD_SAFE
-	pthread_mutex_unlock(&handle_mutex);
-#endif
-}
-
-BOOL xptone_close_locked(void)
-{
-	xptone_complete_locked();
-
-	if (handle_rc <= 0)
-		return FALSE;
-	if (--handle_rc)
-		return TRUE;
-
-#ifdef WITH_PORTAUDIO
-	if(handle_type==SOUND_DEVICE_PORTAUDIO) {
-		pa_api->close(portaudio_stream);
-	}
-#endif
-
-#ifdef WITH_PULSEAUDIO
-	if(handle_type==SOUND_DEVICE_PULSEAUDIO) {
-		if (pu_handle)
-			pu_api->simple_free(pu_handle);
-		pu_handle = NULL;
-	}
-#endif
-
-#ifdef WITH_SDL_AUDIO
-	if(handle_type==SOUND_DEVICE_SDL) {
-		xpbeep_sdl.CloseAudio();
-		xpbeep_sdl.SDL_DestroySemaphore(sdlToneDone);
-	}
-#endif
-
-#ifdef _WIN32
-	if(handle_type==SOUND_DEVICE_WIN32) {
-		waveOutClose(waveOut);
-	}
-#endif
-
-#ifdef USE_ALSA_SOUND
-	if(handle_type==SOUND_DEVICE_ALSA) {
-		alsa_api->snd_pcm_close (playback_handle);
-		playback_handle=NULL;
-	}
-#endif
-
-#ifdef AFMT_U8
-	if(handle_type==SOUND_DEVICE_OSS) {
-		close(dsp);
-	}
-#endif
-	handle_type=SOUND_DEVICE_CLOSED;
-	sound_device_open_failed=FALSE;
-#ifdef USE_ALSA_SOUND
-	alsa_device_open_failed=FALSE;
-#endif
-#ifdef WITH_SDL_AUDIO
-	sdl_device_open_failed=FALSE;
-#endif
-#ifdef WITH_PORTAUDIO
-	portaudio_device_open_failed=FALSE;
-#endif
-#ifdef WITH_PULSEAUDIO
-	pulseaudio_device_open_failed = FALSE;
-#endif
-
-	return(TRUE);
-}
-
-BOOL
-xptone_close(void)
-{
-	BOOL ret;
-
-#ifdef XPDEV_THREAD_SAFE
-	pthread_mutex_lock(&handle_mutex);
-#endif
-	ret = xptone_close_locked();
-#ifdef XPDEV_THREAD_SAFE
-	pthread_mutex_unlock(&handle_mutex);
-#endif
-	return ret;
-}
-
-static BOOL
-do_xp_play_sample(const unsigned char *sampo, size_t sz, int *freed)
-{
-	const unsigned char *samp;
-	int need_copy = 0;
-#ifdef AFMT_U8
-	int wr;
-	int	i;
-#endif
-
-#ifdef WITH_PORTAUDIO
-	if(handle_type==SOUND_DEVICE_PORTAUDIO) {
-		if(pa_api->ver < 1899)
-			need_copy = 1;
-	}
-#endif
-#ifdef _WIN32
-	if(handle_type==SOUND_DEVICE_WIN32)
-		need_copy = 1;
-#endif
-#ifdef WITH_SDL_AUDIO
-	if(handle_type==SOUND_DEVICE_SDL)
-		need_copy = 1;
-#endif
-
-	if (freed)
-		*freed = need_copy;
-	if (need_copy) {
-		if (freed) {
-			samp = sampo;
-		}
-		else {
-			samp = malloc(sz);
-			if (!samp)
-				return FALSE;
-			memcpy((void *)samp, sampo, sz);
-		}
-	}
-	else {
-		samp = sampo;
-	}
-
-#ifdef WITH_PULSEAUDIO
-	if(handle_type==SOUND_DEVICE_PULSEAUDIO) {
-		int err;
-		pa_sample_spec ss;
-		ss.format = PA_SAMPLE_U8;
-		ss.rate = 22050;
-		ss.channels = 1;
-		if (pu_handle == NULL) {
-			if((pu_handle = pu_api->simple_new(NULL, "XPBeep", PA_STREAM_PLAYBACK, NULL, "Beeps and Boops", &ss, NULL, NULL, NULL)) == NULL) {
-				pulseaudio_device_open_failed=TRUE;
-				pulseaudio_initialized=FALSE;
-				xptone_close_locked();
-				xptone_open_locked();
-			}
-			else
-				pulseaudio_initialized=TRUE;
-		}
-		if (pulseaudio_initialized)
-			pu_api->simple_write(pu_handle, sampo, sz, &err);
-	}
-#endif
-
-#ifdef WITH_PORTAUDIO
-	if(handle_type==SOUND_DEVICE_PORTAUDIO) {
-		if(pa_api->ver >= 1899) {
-			pa_api->start(portaudio_stream);
-			pa_api->write(portaudio_stream, samp, sz);
-		}
-		else {
-			xptone_complete_locked();
-			pawave=samp;
-			portaudio_buf_pos=0;
-			portaudio_buf_len=sz;
-			pa_api->start(portaudio_stream);
-		}
-		return TRUE;
-	}
-#endif
-
-#ifdef WITH_SDL_AUDIO
-	if(handle_type==SOUND_DEVICE_SDL) {
-		xpbeep_sdl.LockAudio();
-		swave=samp;
-		sdl_audio_buf_pos=0;
-		sdl_audio_buf_len=sz;
-		xpbeep_sdl.UnlockAudio();
-		xpbeep_sdl.PauseAudio(FALSE);
-		xpbeep_sdl.SemWait(sdlToneDone);
-		xpbeep_sdl.PauseAudio(TRUE);
-		return TRUE;
-	}
-#endif
-
-#ifdef _WIN32
-	if(handle_type==SOUND_DEVICE_WIN32) {
-		if(wh[curr_wh].dwFlags & WHDR_PREPARED) {
-			while(waveOutUnprepareHeader(waveOut, &wh[curr_wh], sizeof(wh[curr_wh]))==WAVERR_STILLPLAYING)
-				SLEEP(1);
-		}
-		free(wh[curr_wh].lpData);
-		wh[curr_wh].lpData=samp;
-		wh[curr_wh].dwBufferLength=sz;
-		if(waveOutPrepareHeader(waveOut, &wh[curr_wh], sizeof(wh[curr_wh]))==MMSYSERR_NOERROR) {
-			if(waveOutWrite(waveOut, &wh[curr_wh], sizeof(wh[curr_wh]))==MMSYSERR_NOERROR) {
-				curr_wh ^= 1;
-			}
-		}
-		return TRUE;
-	}
-#endif
-
-#ifdef USE_ALSA_SOUND
-	if(handle_type==SOUND_DEVICE_ALSA) {
-		int ret;
-		int written=0;
-
-		while (written < sz) {
-			ret = alsa_api->snd_pcm_writei(playback_handle, samp + written, sz - written);
-			if (ret < 0) {
-				if (alsa_api->snd_pcm_prepare(playback_handle) == 0) {
-					ret = 0;
-				}
-				else {
-					if (written == 0) {
-						/* Go back and try OSS */
-						xptone_close_locked();
-						alsa_device_open_failed = TRUE;
-						xptone_open_locked();
-					}
-					break;
-				}
-			}
-			written += ret;
-		}
-		if (written == sz)
-			return TRUE;
-	}
-#endif
-
-#ifdef AFMT_U8
-	if(handle_type==SOUND_DEVICE_OSS) {
-		wr=0;
-		while(wr<sz) {
-			i=write(dsp, samp+wr, sz-wr);
-			if(i>=0)
-				wr+=i;
-		}
-		return TRUE;
-	}
-#endif
-
-	return FALSE;
-}
-
-#ifdef XPDEV_THREAD_SAFE
-void xp_play_sample_thread(void *data)
-{
-	BOOL			must_close;
-	BOOL			posted_last=TRUE;
-	BOOL			waited=FALSE;
-	unsigned char	*sample=NULL;
-	size_t			this_sample_size;
-	int freed;
-
-	SetThreadName("Sample Play");
-	sample_thread_running=TRUE;
-	sem_post(&sample_complete_sem);
-	while(1) {
-		must_close = FALSE;
-		if(!waited) {
-			if(sem_wait(&sample_pending_sem)!=0)
-				goto error_return;
-		}
-		else
-			waited=FALSE;
-		posted_last=FALSE;
-		pthread_mutex_lock(&handle_mutex);
-
-		if(handle_type==SOUND_DEVICE_CLOSED) {
-			must_close=TRUE;
-			if(!xptone_open_locked()) {
-				sem_post(&sample_complete_sem);
-				pthread_mutex_unlock(&handle_mutex);
-				continue;
-			}
-		}
-
-		if(pthread_mutex_lock(&sample_mutex)!=0) {
-			pthread_mutex_unlock(&handle_mutex);
-			goto error_return;
-		}
-		this_sample_size=sample_size;
-		FREE_AND_NULL(sample);
-		sample=(unsigned char *)malloc(sample_size);
-		if(sample==NULL) {
-				sem_post(&sample_complete_sem);
-				pthread_mutex_unlock(&sample_mutex);
-				pthread_mutex_unlock(&handle_mutex);
-				continue;
-		}
-		memcpy(sample, sample_buffer, this_sample_size);
-		pthread_mutex_unlock(&sample_mutex);
-
-		do_xp_play_sample(sample, this_sample_size, &freed);
-		if (freed)
-			sample = NULL;
-		sem_post(&sample_complete_sem);
-		posted_last=TRUE;
-		if(must_close) {
-			if(sem_trywait(&sample_pending_sem)==0) {
-				waited=TRUE;
-			}
-			else {
-				xptone_close_locked();
-			}
-		}
-		pthread_mutex_unlock(&handle_mutex);
-	}
-
-error_return:
-#ifdef _WIN32
-	pthread_mutex_lock(&handle_mutex);
-	if(handle_type==SOUND_DEVICE_WIN32) {
-		if(wh[curr_wh].dwFlags & WHDR_PREPARED) {
-			while(waveOutUnprepareHeader(waveOut, &wh[curr_wh], sizeof(wh[curr_wh]))==WAVERR_STILLPLAYING)
-				SLEEP(1);
-		}
-		FREE_AND_NULL(wh[curr_wh].lpData);
-	}
-	pthread_mutex_unlock(&handle_mutex);
-#endif
-
-	FREE_AND_NULL(sample);
-	xptone_close();
-	if(!posted_last) {
-		sem_post(&sample_complete_sem);
-	}
-	sample_thread_running=FALSE;
-}
-
-static void
-init_sample(void)
-{
-	pthread_mutex_init(&sample_mutex, NULL);
-	pthread_mutex_init(&handle_mutex, NULL);
-	sem_init(&sample_pending_sem, 0, 0);
-	sem_init(&sample_complete_sem, 0, 0);
-}
-
-static BOOL xp_play_sample_locked(const unsigned char *sample, size_t size, BOOL background)
-{
-	if(!sample_thread_running) {
-		_beginthread(xp_play_sample_thread, 0,NULL);
-		sem_wait(&sample_complete_sem);
-	}
-
-	while(samples_posted > 0) {
-		pthread_mutex_unlock(&sample_mutex);
-		sem_wait(&sample_complete_sem);
-		pthread_mutex_lock(&sample_mutex);
-		samples_posted--;
-	}
-	sample_buffer=sample;
-	sample_size=size;
-	samples_posted++;
-	sem_post(&sample_pending_sem);
-	if(!background) {
-		while(samples_posted > 0) {
-			pthread_mutex_unlock(&sample_mutex);
-			sem_wait(&sample_complete_sem);
-			pthread_mutex_lock(&sample_mutex);
-			samples_posted--;
-		}
-	}
-	return TRUE;
-}
-
-/*
- * This MUST not return false after sample goes into the sample buffer in the background.
- * If it does, the caller won't be able to free() it.
- */
-BOOL xp_play_sample(const unsigned char *sample, size_t size, BOOL background)
-{
-	BOOL ret;
-	pthread_once(&sample_initialized_pto, init_sample);
-
-	pthread_mutex_lock(&sample_mutex);
-	ret = xp_play_sample_locked(sample, size, background);
-	pthread_mutex_unlock(&sample_mutex);
-	return(ret);
-}
-#else
-BOOL xp_play_sample(const unsigned char *sample, size_t sample_size, BOOL background)
-{
-	BOOL must_close=FALSE;
-	BOOL ret;
-
-	if(handle_type==SOUND_DEVICE_CLOSED) {
-		must_close=TRUE;
-		if(!xptone_open())
-			return(FALSE);
-	}
-
-	ret = do_xp_play_sample(sample, sample_size, NULL);
-	if(must_close)
-		xptone_close();
-	return(ret);
-}
-#endif
-
-/********************************************************************************/
-/* Play a tone through the wave/DSP output device (sound card) - Deuce			*/
-/********************************************************************************/
-
-BOOL xptone(double freq, DWORD duration, enum WAVE_SHAPE shape)
-{
-	unsigned char	*wave;
-	int samples;
-	BOOL ret;
-
-	wave=(unsigned char *)malloc(S_RATE*15/2+1);
-	if(!wave)
-		return FALSE;
-	if(freq<17 && freq != 0)
-		freq=17;
-	samples=S_RATE*duration/1000;
-	if(freq) {
-		if(samples<=S_RATE/freq*2)
-			samples=S_RATE/freq*2;
-	}
-	if(freq==0 || samples > S_RATE/freq*2) {
-		int sample_len;
-
-		xptone_makewave(freq,wave,S_RATE*15/2,shape);
-		for(sample_len=S_RATE*15/2-1; sample_len && wave[sample_len]==128; sample_len--)
-			;
-		sample_len++;
-		while(samples > S_RATE*15/2) {
-			if(!xp_play_sample(wave, sample_len, TRUE)) {
-				free(wave);
-				return FALSE;
-			}
-			samples -= sample_len;
-		}
-	}
-	xptone_makewave(freq,wave,samples,shape);
-	ret = xp_play_sample(wave, samples, FALSE);
-	free(wave);
-	return ret;
-}
-
-#ifdef __unix__
-/****************************************************************************/
-/* Generate a tone at specified frequency for specified milliseconds		*/
-/* Thanks to Casey Martin (and Deuce) for this code							*/
-/****************************************************************************/
-void unix_beep(int freq, int dur)
-{
-	static int console_fd=-1;
-
-#if (defined(__FreeBSD__) && defined(HAS_MACHINE_SPEAKER_H)) || ((defined(__OpenBSD__) || defined(__NetBSD__)) && defined(HAS_MACHINE_SPKR_H))
-	int speaker_fd=-1;
-	tone_t tone;
-
-	speaker_fd = open("/dev/speaker", O_WRONLY|O_APPEND);
-	if(speaker_fd != -1)  {
-		tone.frequency=freq;
-		tone.duration=dur/10;
-		ioctl(speaker_fd,SPKRTONE,&tone);
-		close(speaker_fd);
-		return;
-	}
-#endif
-
-#if !defined(__GNU__) && !defined(__QNX__) && !defined(__OpenBSD__) && !defined(__NetBSD__) && !defined(__APPLE__) && !defined(__CYGWIN__) && !defined(__HAIKU__)
-	if(console_fd == -1) 
-  		console_fd = open("/dev/console", O_NOCTTY);
-	
-	if(console_fd != -1) {
-#if defined(__solaris__)
-		ioctl(console_fd, KIOCCMD, KBD_CMD_BELL);
-#else
-		if(freq != 0)	/* Don't divide by zero */
-			ioctl(console_fd, KIOCSOUND, (int) (1193180 / freq));
-#endif /* solaris */
-		SLEEP(dur);
-#if defined(__solaris__)
-		ioctl(console_fd, KIOCCMD, KBD_CMD_NOBELL);	/* turn off tone */
-#else
-		ioctl(console_fd, KIOCSOUND, 0);	/* turn off tone */
-#endif /* solaris */
-	}
-#endif
-}
-
-#endif
-
-/********************************************************************************/
-/* Play sound through DSP/wave device, if unsuccessful, play through PC speaker	*/
-/********************************************************************************/
-void xpbeep(double freq, DWORD duration)
-{
-	if(xptone(freq,duration,WAVE_SHAPE_SINE_SAW_HARM))
-		return;
-
-#if defined(_WIN32)
-	Beep((DWORD)(freq+.5), duration);
-#elif defined(__unix__)
-	unix_beep((int)(freq+.5),duration);
-#endif
-}
diff --git a/xpdev/xpbeep.h b/xpdev/xpbeep.h
deleted file mode 100644
index 93bac7d7b8fbe69f16791d0251f7a6ec88574b73..0000000000000000000000000000000000000000
--- a/xpdev/xpbeep.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* $Id: xpbeep.h,v 1.16 2020/04/15 15:18:00 deuce Exp $ */
-
-#ifndef _XPBEEP_H_
-#define _XPBEEP_H_
-
-#include "gen_defs.h"
-#include "wrapdll.h"
-
-#if defined(_WIN32)
-	#if 0
-	#define BEEP(freq,dur)	xpbeep((double)(freq),(DWORD)(dur))
-	#else
-	#define BEEP(freq,dur)	Beep((DWORD)(freq),(DWORD)(dur))
-	#endif
-#elif defined(__OS2__)
-	#define BEEP(freq,dur)	DosBeep(freq,dur)
-#elif defined(__unix__) || defined(__APPLE__)
-	#define BEEP(freq,dur)	xpbeep((double)(freq),(DWORD)(dur))
-#else
-	#error "Unsupported Target: Need some macros and/or function prototypes here."
-#endif
-
-enum WAVE_SHAPE {
-	 WAVE_SHAPE_SINE
-	,WAVE_SHAPE_SAWTOOTH
-	,WAVE_SHAPE_SQUARE
-	,WAVE_SHAPE_SINE_SAW
-	,WAVE_SHAPE_SINE_HARM
-	,WAVE_SHAPE_SINE_SAW_CHORD
-	,WAVE_SHAPE_SINE_SAW_HARM
-};
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-DLLEXPORT void xptone_makewave(double freq, unsigned char *wave, int samples, enum WAVE_SHAPE shape);
-DLLEXPORT BOOL xptone_open(void);
-DLLEXPORT BOOL xptone_close(void);
-DLLEXPORT void xpbeep(double freq, DWORD duration);
-DLLEXPORT BOOL xp_play_sample(const unsigned char *sample, size_t sample_size, BOOL background);
-DLLEXPORT void xptone_complete(void);
-DLLEXPORT BOOL xptone(double freq, DWORD duration, enum WAVE_SHAPE);
-#ifdef __unix__
-DLLEXPORT void unix_beep(int freq, int dur);
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/xpdev/xpdatetime.c b/xpdev/xpdatetime.c
deleted file mode 100644
index e27df4019f034d8cb8565666c0e2fc27d7062222..0000000000000000000000000000000000000000
--- a/xpdev/xpdatetime.c
+++ /dev/null
@@ -1,457 +0,0 @@
-/* xpdatetime.c */
-
-/* Cross-platform (and eXtra Precision) date/time functions */
-
-/* $Id: xpdatetime.c,v 1.13 2015/11/25 07:27:07 sbbs Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <string.h>		/* memset */
-#include "datewrap.h"	/* sane_mktime */
-#include "xpdatetime.h"	/* xpDateTime_t */
-
-/**************************************/
-/* Cross-platform date/time functions */
-/**************************************/
-
-xpDateTime_t xpDateTime_create(unsigned year, unsigned month, unsigned day
-							  ,unsigned hour, unsigned minute, float second
-							  ,xpTimeZone_t zone)
-{
-	xpDateTime_t	xpDateTime;
-
-	xpDateTime.date.year	= year;
-	xpDateTime.date.month	= month;
-	xpDateTime.date.day		= day;
-	xpDateTime.time.hour	= hour;
-	xpDateTime.time.minute	= minute;
-	xpDateTime.time.second	= second;
-	xpDateTime.zone			= zone;
-
-	return xpDateTime;
-}
-
-xpDateTime_t xpDateTime_now(void)
-{
-#if defined(_WIN32)
-	SYSTEMTIME systime;
-
-	GetLocalTime(&systime);
-	return(xpDateTime_create(systime.wYear,systime.wMonth,systime.wDay
-		,systime.wHour,systime.wMinute,(float)systime.wSecond+(systime.wMilliseconds*0.001F)
-		,xpTimeZone_local()));
-#else	/* !Win32 (e.g. Unix) */
-	struct tm tm;
-	struct timeval tv;
-	time_t	t;
-
-	gettimeofday(&tv, NULL);
-	t=tv.tv_sec;
-	localtime_r(&t,&tm);
-
-	return xpDateTime_create(1900+tm.tm_year,1+tm.tm_mon,tm.tm_mday
-		,tm.tm_hour,tm.tm_min,(float)tm.tm_sec+(tv.tv_usec*0.00001)
-		,xpTimeZone_local());
-#endif
-}
-
-/* Return local timezone offset (in minutes) */
-xpTimeZone_t xpTimeZone_local(void)
-{
-#if defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__DARWIN__) || defined(__linux__)
-	struct tm tm;
-	time_t t=time(NULL);
-
-	localtime_r(&t, &tm);
-	return(tm.tm_gmtoff/60);
-#elif defined(_WIN32)
-	TIME_ZONE_INFORMATION	tz;
-	DWORD					tzRet;
-
-	/*****************************/
-	/* Get Time-zone information */
-	/*****************************/
-    memset(&tz,0,sizeof(tz));
-	tzRet=GetTimeZoneInformation(&tz);
-	switch(tzRet) {
-		case TIME_ZONE_ID_DAYLIGHT:
-			tz.Bias += tz.DaylightBias;
-			break;
-		case TIME_ZONE_ID_STANDARD:
-			tz.Bias += tz.StandardBias;
-			break;
-	}
-
-	return -tz.Bias;
-#else
-
-#if defined(__BORLANDC__) || defined(__CYGWIN__)
-	#define timezone _timezone
-#endif
-
-	/* Converts (_)timezone from seconds west of UTC to minutes east of UTC */
-	/* Adjust for DST, assuming adjustment is always 60 minutes <sigh> */
-	return -((timezone/60) - (daylight*60));
-#endif
-}
-
-/* TODO: Supports local timezone and UTC only, currently */
-time_t xpDateTime_to_time(xpDateTime_t xpDateTime)
-{
-	struct tm tm;
-
-	ZERO_VAR(tm);
-
-	if(xpDateTime.date.year==0)
-		return(INVALID_TIME);
-
-	tm.tm_year	= xpDateTime.date.year;
-	tm.tm_mon	= xpDateTime.date.month;
-	tm.tm_mday	= xpDateTime.date.day;
-
-	tm.tm_hour	= xpDateTime.time.hour;
-	tm.tm_min	= xpDateTime.time.minute;
-	tm.tm_sec	= (int)xpDateTime.time.second;
-
-	if(xpDateTime.zone == xpTimeZone_UTC)
-		return sane_timegm(&tm);
-	if(xpDateTime.zone == xpTimeZone_LOCAL || xpDateTime.zone == xpTimeZone_local())
-		return sane_mktime(&tm);
-	return INVALID_TIME;
-}
-
-/* This version ignores the timezone in xpDateTime and always uses mktime() */
-time_t xpDateTime_to_localtime(xpDateTime_t xpDateTime)
-{
-	xpDateTime.zone = xpTimeZone_LOCAL;
-	return xpDateTime_to_time(xpDateTime);
-}
-
-xpDateTime_t time_to_xpDateTime(time_t ti, xpTimeZone_t zone)
-{
-	xpDateTime_t	never;
-	struct tm tm;
-
-	ZERO_VAR(never);
-	ZERO_VAR(tm);
-	if(localtime_r(&ti,&tm)==NULL)
-		return(never);
-
-	return xpDateTime_create(1900+tm.tm_year,1+tm.tm_mon,tm.tm_mday
-		,tm.tm_hour,tm.tm_min,(float)tm.tm_sec
-		,zone==xpTimeZone_LOCAL ? xpTimeZone_local() : zone);
-}
-
-xpDate_t time_to_xpDate(time_t ti)
-{
-	xpDate_t never;
-	struct tm tm;
-
-	ZERO_VAR(never);
-	ZERO_VAR(tm);
-	if(localtime_r(&ti,&tm)==NULL)
-		return never;
-
-	return xpDateTime_create(1900+tm.tm_year,1+tm.tm_mon,tm.tm_mday
-		,tm.tm_hour,tm.tm_min,(float)tm.tm_sec, /* zone: */0).date;
-}
-
-xpDateTime_t gmtime_to_xpDateTime(time_t ti)
-{
-	xpDateTime_t	never;
-	struct tm tm;
-
-	ZERO_VAR(never);
-	ZERO_VAR(tm);
-	if(gmtime_r(&ti,&tm)==NULL)
-		return(never);
-
-	return xpDateTime_create(1900+tm.tm_year,1+tm.tm_mon,tm.tm_mday
-		,tm.tm_hour,tm.tm_min,(float)tm.tm_sec
-		,xpTimeZone_UTC);
-}
-
-/**********************************************/
-/* Decimal-coded ISO-8601 date/time functions */
-/**********************************************/
-
-isoDate_t xpDateTime_to_isoDateTime(xpDateTime_t xpDateTime, isoTime_t* isoTime)
-{
-	if(isoTime!=NULL)
-		*isoTime=0;
-
-	if(xpDateTime.date.year==0)
-		return(0);
-
-	if(isoTime!=NULL)
-		*isoTime=isoTime_create(xpDateTime.time.hour,xpDateTime.time.minute,xpDateTime.time.second);
-
-	return isoDate_create(xpDateTime.date.year,xpDateTime.date.month,xpDateTime.date.day);
-}
-
-xpDateTime_t isoDateTime_to_xpDateTime(isoDate_t date, isoTime_t ti)
-{
-	return xpDateTime_create(isoDate_year(date),isoDate_month(date),isoDate_day(date)
-		,isoTime_hour(ti),isoTime_minute(ti),(float)isoTime_second(ti),xpTimeZone_local());
-}
-
-isoDate_t time_to_isoDateTime(time_t ti, isoTime_t* isoTime)
-{
-	struct tm tm;
-
-	if(isoTime!=NULL)
-		*isoTime=0;
-
-	ZERO_VAR(tm);
-	if(localtime_r(&ti,&tm)==NULL)
-		return(0);
-
-	if(isoTime!=NULL)
-		*isoTime=isoTime_create(tm.tm_hour,tm.tm_min,tm.tm_sec);
-
-	return isoDate_create(1900+tm.tm_year,1+tm.tm_mon,tm.tm_mday);
-}
-
-isoTime_t time_to_isoTime(time_t ti)
-{
-	isoTime_t isoTime;
-	
-	time_to_isoDateTime(ti,&isoTime);
-
-	return isoTime;
-}
-
-isoDate_t gmtime_to_isoDateTime(time_t ti, isoTime_t* isoTime)
-{
-	struct tm tm;
-
-	if(isoTime!=NULL)
-		*isoTime=0;
-
-	ZERO_VAR(tm);
-	if(gmtime_r(&ti,&tm)==NULL)
-		return(0);
-
-	if(isoTime!=NULL)
-		*isoTime=isoTime_create(tm.tm_hour,tm.tm_min,tm.tm_sec);
-
-	return isoDate_create(1900+tm.tm_year,1+tm.tm_mon,tm.tm_mday);
-}
-
-isoTime_t gmtime_to_isoTime(time_t ti)
-{
-	isoTime_t isoTime;
-	
-	gmtime_to_isoDateTime(ti,&isoTime);
-
-	return isoTime;
-}
-
-time_t isoDateTime_to_time(isoDate_t date, isoTime_t ti)
-{
-	struct tm tm;
-
-	ZERO_VAR(tm);
-
-	if(date==0)
-		return(INVALID_TIME);
-
-	tm.tm_year	= isoDate_year(date);
-	tm.tm_mon	= isoDate_month(date);
-	tm.tm_mday	= isoDate_day(date);
-
-	tm.tm_hour	= isoTime_hour(ti);
-	tm.tm_min	= isoTime_minute(ti);
-	tm.tm_sec	= isoTime_second(ti);
-
-	return sane_mktime(&tm);
-}
-
-/****************************************************************************/
-/* Conversion from xpDate/Time/Zone to isoDate/Time/Zone Strings			*/
-/****************************************************************************/
-
-char* xpDate_to_isoDateStr(xpDate_t date, const char* sep, char* str, size_t maxlen)
-{
-	if(sep==NULL)
-		sep="-";
-
-	snprintf(str,maxlen,"%04u%s%02u%s%02u"
-		,date.year	,sep
-		,date.month	,sep
-		,date.day);
-
-	return str;
-}
-
-/* precision	example output
- * -2			"14"
- * -1			"14:02"
- * 0            "14:02:39"
- * 1            "14:02:39.8"
- * 2            "14:02:39.82"
- * 3            "14:02:39.829"
- */
-char* xpTime_to_isoTimeStr(xpTime_t ti, const char* sep, int precision
-								   ,char* str, size_t maxlen)
-{
-	if(sep==NULL)
-		sep=":";
-
-	if(precision < -1)			/* HH */
-		snprintf(str, maxlen, "%02u", ti.hour);
-	else if(precision < 0)		/* HH:MM */
-		snprintf(str, maxlen, "%02u%s%02u"
-			,ti.hour		,sep
-			,ti.minute
-			);
-	else						/* HH:MM:SS[.fract] */
-		snprintf(str, maxlen, "%02u%s%02u%s%0*.*f"
-			,ti.hour		,sep
-			,ti.minute		,sep
-			,precision ? (precision+3) : 2
-			,precision
-			,ti.second
-			);
-
-	return str;
-}
-
-char* xpTimeZone_to_isoTimeZoneStr(xpTimeZone_t zone, const char* sep
-								   ,char *str, size_t maxlen)
-{
-	xpTimeZone_t	tz=zone;
-
-	if(tz==xpTimeZone_UTC)
-		return "Z";
-
-	if(sep==NULL)
-		sep=":";
-
-	if(tz<0)
-		tz=-tz;
-
-	snprintf(str,maxlen,"%c%02u%s%02u"
-		,zone < 0 ? '-':'+'
-		,tz/60
-		,sep
-		,tz%60);
-
-	return str;
-}
-
-char* xpDateTime_to_isoDateTimeStr(xpDateTime_t dt
-								   ,const char* date_sep, const char* datetime_sep, const char* time_sep
-								   ,int precision
-								   ,char* str, size_t maxlen)
-{
-	char			tz_str[16];
-	char			date_str[16];
-	char			time_str[16];
-	
-	if(datetime_sep==NULL)	datetime_sep="T";
-
-	snprintf(str,maxlen,"%s%s%s%s"
-		,xpDate_to_isoDateStr(dt.date, date_sep, date_str, sizeof(date_str))
-		,datetime_sep
-		,xpTime_to_isoTimeStr(dt.time, time_sep, precision, time_str, sizeof(time_str))
-		,xpTimeZone_to_isoTimeZoneStr(dt.zone,time_sep,tz_str,sizeof(tz_str)));
-
-	return str;
-}
-
-/****************************************************************************/
-/* isoDate/Time/Zone String parsing functions								*/
-/****************************************************************************/
-
-BOOL isoTimeZoneStr_parse(const char* str, xpTimeZone_t* zone)
-{
-	unsigned hour=0,minute=0;
-
-	switch(*str) {
-		case 0:		/* local time-zone */
-			*zone = xpTimeZone_local();	
-			return TRUE;	
-		case 'Z':	/* UTC */
-			*zone = xpTimeZone_UTC;		
-			return TRUE;
-		case '+':
-		case '-':	/* "+/- HH[:]MM" */
-			if(sscanf(str+1,"%2u%*s%2u",&hour,&minute)>=1) {
-				*zone = (hour*60) + minute;
-				if(*str=='-')
-					*zone = -(*zone);
-				return TRUE;
-			}
-			break;
-	}
-	return FALSE;
-}
-
-/* TODO: adjust times in 24:xx:xx format */
-xpDateTime_t isoDateTimeStr_parse(const char* str)
-{
-	char zone[16];
-	xpDateTime_t	xpDateTime;
-
-	zone[0]=0;
-	ZERO_VAR(xpDateTime);
-
-	if((sscanf(str,"%4u-%2u-%2uT%2u:%2u:%f%6s"		/* CCYY-MM-DDThh:MM:ss�hhmm */
-		,&xpDateTime.date.year
-		,&xpDateTime.date.month
-		,&xpDateTime.date.day
-		,&xpDateTime.time.hour
-		,&xpDateTime.time.minute
-		,&xpDateTime.time.second
-		,zone)>=2
-	||	sscanf(str,"%4u%2u%2uT%2u%2u%f%6s"			/* CCYYMMDDThhmmss�hhmm */
-		,&xpDateTime.date.year
-		,&xpDateTime.date.month
-		,&xpDateTime.date.day
-		,&xpDateTime.time.hour
-		,&xpDateTime.time.minute
-		,&xpDateTime.time.second
-		,zone)>=4
-	||	sscanf(str,"%4u%2u%2u%2u%2u%f%6s"			/* CCYYMMDDhhmmss�hhmm */
-		,&xpDateTime.date.year
-		,&xpDateTime.date.month
-		,&xpDateTime.date.day
-		,&xpDateTime.time.hour
-		,&xpDateTime.time.minute
-		,&xpDateTime.time.second
-		,zone)>=1
-		) && isoTimeZoneStr_parse(zone,&xpDateTime.zone))
-		return xpDateTime;
-
-	return xpDateTime;
-}
diff --git a/xpdev/xpdatetime.h b/xpdev/xpdatetime.h
deleted file mode 100644
index 74f91c2a76d1f34e0f483c66d197f7d9c1172ae3..0000000000000000000000000000000000000000
--- a/xpdev/xpdatetime.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/* Cross-platform (and eXtra Precision) date/time functions */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _XPDATETIME_H_
-#define _XPDATETIME_H_
-
-#include "gen_defs.h"	/* uint32_t and time_t */
-#include "wrapdll.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/**************************************/
-/* Cross-platform date/time functions */
-/**************************************/
-
-#define INVALID_TIME	(time_t)-1	/* time_t representation of an invalid date/time */
-
-typedef struct {
-	unsigned	year;	/* 0-9999 */
-	unsigned	month;	/* 1-12 */
-	unsigned	day;	/* 1-31 */
-} xpDate_t;
-
-typedef struct {
-	unsigned	hour;	/* 0-23 */
-	unsigned	minute;	/* 0-59 */
-	float		second;	/* 0.0-59.999, supports fractional seconds */
-} xpTime_t;
-
-typedef int xpTimeZone_t;
-#define xpTimeZone_UTC		0
-#define xpTimeZone_LOCAL	1
-
-typedef struct {
-	xpDate_t		date;
-	xpTime_t		time;
-	xpTimeZone_t	zone;	/* minutes +/- UTC */
-} xpDateTime_t;
-
-DLLEXPORT xpDateTime_t	xpDateTime_create(unsigned year, unsigned month, unsigned day
-								   ,unsigned hour, unsigned minute, float second
-								   ,xpTimeZone_t);
-DLLEXPORT xpDateTime_t	xpDateTime_now(void);
-DLLEXPORT time_t		xpDateTime_to_time(xpDateTime_t);
-DLLEXPORT time_t		xpDateTime_to_localtime(xpDateTime_t);
-DLLEXPORT xpDate_t		time_to_xpDate(time_t);
-DLLEXPORT xpDateTime_t	time_to_xpDateTime(time_t, xpTimeZone_t);
-DLLEXPORT xpDateTime_t	gmtime_to_xpDateTime(time_t);
-DLLEXPORT xpTimeZone_t	xpTimeZone_local(void);
-
-/**********************************************/
-/* Decimal-coded ISO-8601 date/time functions */
-/**********************************************/
-
-typedef uint32_t	isoDate_t;	/* CCYYMMDD (decimal) */
-typedef uint32_t	isoTime_t;	/* HHMMSS   (decimal) */
-
-#define			isoDate_create(year,mon,day)	(((year)*10000)+((mon)*100)+(day))
-#define			isoTime_create(hour,min,sec)	(((hour)*10000)+((min)*100)+((unsigned)sec))
-				
-#define			isoDate_year(date)				((date)/10000)
-#define			isoDate_month(date)				(((date)/100)%100)
-#define			isoDate_day(date)				((date)%100)
-												
-#define			isoTime_hour(time)				((time)/10000)
-#define			isoTime_minute(time)			(((time)/100)%100)
-#define			isoTime_second(time)			((time)%100)
-
-DLLEXPORT BOOL			isoTimeZoneStr_parse(const char* str, xpTimeZone_t*);
-DLLEXPORT xpDateTime_t	isoDateTimeStr_parse(const char* str);
-
-/**************************************************************/
-/* Conversion between time_t (local and GMT) and isoDate/Time */
-/**************************************************************/
-DLLEXPORT isoTime_t		time_to_isoTime(time_t);
-DLLEXPORT isoTime_t		gmtime_to_isoTime(time_t);
-DLLEXPORT isoDate_t		time_to_isoDateTime(time_t, isoTime_t*);
-DLLEXPORT isoDate_t		gmtime_to_isoDateTime(time_t, isoTime_t*);
-DLLEXPORT time_t		isoDateTime_to_time(isoDate_t, isoTime_t);
-#define			time_to_isoDate(t)		time_to_isoDateTime(t,NULL)
-#define			gmtime_to_isoDate(t)	gmtime_to_isoDateTime(t,NULL)
-
-/***************************************************/
-/* Conversion between xpDate/Time and isoDate/Time */
-/***************************************************/
-
-#define			xpDate_to_isoDate(date)	isoDate_create((date).year,(date).month,(date).day)
-#define			xpTime_to_isoTime(time)	isoTime_create((time).hour,(time).minute,(unsigned)((time).second))
-
-DLLEXPORT xpDateTime_t	isoDateTime_to_xpDateTime(isoDate_t, isoTime_t);
-DLLEXPORT isoDate_t		xpDateTime_to_isoDateTime(xpDateTime_t, isoTime_t*);
-
-/*****************************************************************/
-/* Conversion from xpDate/Time/Zone to isoDate/Time/Zone Strings */
-/*****************************************************************/
-
-/* NULL sep (separator) values are automatically replaced with ISO-standard separators */
-
-/* precision	example output
- * -2			"14"
- * -1			"14:02"
- * 0            "14:02:39"
- * 1            "14.02:39.8"
- * 2            "14.02:39.82"
- * 3            "14.02:39.829"
- */
-DLLEXPORT char* xpDate_to_isoDateStr(xpDate_t
-						,const char* sep
-						,char* str, size_t maxlen);
-DLLEXPORT char* xpTime_to_isoTimeStr(xpTime_t
-						,const char* sep
-						,int precision
-						,char* str, size_t maxlen);
-DLLEXPORT char* xpTimeZone_to_isoTimeZoneStr(xpTimeZone_t
-						,const char* sep
-						,char *str, size_t maxlen);
-DLLEXPORT char* xpDateTime_to_isoDateTimeStr(xpDateTime_t
-						,const char* date_sep, const char* datetime_sep, const char* time_sep
-						,int precision
-						,char* str, size_t maxlen);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/xpendian.h b/xpdev/xpendian.h
deleted file mode 100644
index fedf80c2508a502233746d7e2e93d698c15f39ad..0000000000000000000000000000000000000000
--- a/xpdev/xpendian.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/* xpendian.h */
-
-/* Macros to convert integer "endianness" */
-
-/* $Id: xpendian.h,v 1.6 2018/07/24 01:13:10 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _XPENDIAN_H
-#define _XPENDIAN_H
-
-/************************/
-/* byte-swapping macros */
-/************************/
-#define BYTE_SWAP_16(x)	((((short)(x)&0xff00)>>8) | (((short)(x)&0x00ff)<<8))
-#define BYTE_SWAP_32(x)	((((long)(x)&0xff000000)>>24) | (((long)(x)&0x00ff0000)>>8) | (((long)(x)&0x0000ff00)<<8) | (((long)(x)&0x000000ff)<<24))
-
-/* these may need to be updated for > 32-bit platforms */
-#define BYTE_SWAP_SHORT(x)	BYTE_SWAP_16(x)
-#define BYTE_SWAP_LONG(x)	BYTE_SWAP_32(x)
-
-/* auto-detect integer size */
-#define BYTE_SWAP_INT(x)	(sizeof(x)==sizeof(short) ? BYTE_SWAP_SHORT(x) : sizeof(x)==sizeof(long) ? BYTE_SWAP_LONG(x) : (x))
-
-/********************************/
-/* Architecture-specific macros */
-/********************************/
-#ifdef __BIG_ENDIAN__	/* e.g. Motorola */
-
-	#define BE_SHORT(x)		(x)
-	#define BE_LONG(x)		(x)
-	#define BE_INT16(x)		(x)
-	#define BE_INT32(x)		(x)
-	#define BE_INT(x)		(x)
-	#define LE_SHORT(x)		BYTE_SWAP_SHORT(x)
-	#define LE_LONG(x)		BYTE_SWAP_LONG(x)
-	#define LE_INT16(x)		BYTE_SWAP_16(x)
-	#define LE_INT32(x)		BYTE_SWAP_32(x)
-	#define LE_INT(x)		BYTE_SWAP_INT(x)
-
-#else	/* Little Endian (e.g. Intel) */
-
-	#define LE_SHORT(x)		(x)
-	#define LE_LONG(x)		(x)
-	#define LE_INT16(x)		(x)
-	#define LE_INT32(x)		(x)
-	#define LE_INT(x)		(x)
-	#define BE_SHORT(x)		BYTE_SWAP_SHORT(x)
-	#define BE_LONG(x)		BYTE_SWAP_LONG(x)
-	#define BE_INT16(x)		BYTE_SWAP_16(x)
-	#define BE_INT32(x)		BYTE_SWAP_32(x)
-	#define BE_INT(x)		BYTE_SWAP_INT(x)
-
-#endif
-
-#endif	/* Don't add anything after this line */
diff --git a/xpdev/xpevent.c b/xpdev/xpevent.c
deleted file mode 100644
index 35e5f42ce9ca1edcb6eeef30d39c9ba871f7d953..0000000000000000000000000000000000000000
--- a/xpdev/xpevent.c
+++ /dev/null
@@ -1,221 +0,0 @@
-/* xpevent.c */
-
-/* *nix emulation of Win32 *Event API */
-
-/* $Id: xpevent.c,v 1.17 2018/07/24 01:13:10 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include <stdio.h>		/* NULL */
-#include <stdlib.h>		/* malloc() */
-#include "xpevent.h"
-#include "genwrap.h"
-
-xpevent_t
-CreateEvent(void *sec, BOOL bManualReset, BOOL bInitialState, void *name)
-{
-	xpevent_t	event;
-
-	event = (xpevent_t)malloc(sizeof(struct xpevent));
-	if (event == NULL) {
-		errno = ENOSPC;
-		return(NULL);
-	}
-	memset(event,0,sizeof(struct xpevent));
-
-	/*
-	 * Initialize
-	 */
-	if (pthread_mutex_init(&event->lock, NULL) != 0) {
-		free(event);
-		errno = ENOSPC;
-		return(NULL);
-	}
-
-	if (pthread_cond_init(&event->gtzero, NULL) != 0) {
-		while(pthread_mutex_destroy(&event->lock)==EBUSY)
-			SLEEP(1);
-		free(event);
-		errno = ENOSPC;
-		return(NULL);
-	}
-
-	event->mreset=bManualReset;
-	event->value=bInitialState;
-	event->nwaiters = 0;
-	event->magic=EVENT_MAGIC;
-
-	return(event);
-}
-
-BOOL
-SetEvent(xpevent_t event)
-{
-	if (event==NULL || (event->magic != EVENT_MAGIC)) {
-		errno = EINVAL;
-		return(FALSE);
-	}
-
-	pthread_mutex_lock(&event->lock);
-
-	event->value=TRUE;
-	if (event->nwaiters > 0) {
-		/*
-		 * We must use pthread_cond_broadcast() rather than
-		 * pthread_cond_signal() in order to assure that the highest
-		 * priority thread is run by the scheduler, since
-		 * pthread_cond_signal() signals waiting threads in FIFO order.
-		 */
-		pthread_cond_broadcast(&event->gtzero);
-	}
-
-	pthread_mutex_unlock(&event->lock);
-
-	return(TRUE);
-}
-
-BOOL
-ResetEvent(xpevent_t event)
-{
-	if (event==NULL || (event->magic != EVENT_MAGIC)) {
-		errno = EINVAL;
-		return(FALSE);
-	}
-
-	pthread_mutex_lock(&event->lock);
-
-	event->value=FALSE;
-
-	pthread_mutex_unlock(&event->lock);
-
-	return(TRUE);
-}
-
-BOOL
-CloseEvent(xpevent_t event)
-{
-	if (event==NULL || (event->magic != EVENT_MAGIC)) {
-		errno = EINVAL;
-		return(FALSE);
-	}
-
-	/* Make sure there are no waiters. */
-	pthread_mutex_lock(&event->lock);
-	if (event->nwaiters > 0) {
-		pthread_mutex_unlock(&event->lock);
-		errno = EBUSY;
-		return(FALSE);
-	}
-
-	pthread_mutex_unlock(&event->lock);
-
-	while(pthread_mutex_destroy(&event->lock)==EBUSY)
-		SLEEP(1);
-	while(pthread_cond_destroy(&event->gtzero)==EBUSY)
-		SLEEP(1);
-	event->magic = 0;
-
-	free(event);
-
-	return(TRUE);
-}
-
-DWORD
-WaitForEvent(xpevent_t event, DWORD ms)
-{
-	DWORD	retval=WAIT_FAILED;
-	struct timespec abstime;
-	struct timeval currtime;
-
-	if (event==NULL || (event->magic != EVENT_MAGIC)) {
-		errno = EINVAL;
-		return(WAIT_FAILED);
-	}
-
-	if(ms && ms!=INFINITE) {
-		gettimeofday(&currtime,NULL);
-		abstime.tv_sec=currtime.tv_sec + ((currtime.tv_usec/1000 + ms)/1000);
-		abstime.tv_nsec=(currtime.tv_usec*1000 + ms*1000000)%1000000000;
-	}
-
-	pthread_mutex_lock(&event->lock);
-
-	if(event->value)
-		retval=WAIT_OBJECT_0;
-
-	while ((!(event->value)) || (event->verify!=NULL && !event->verify(event->cbdata))) {
-		event->nwaiters++;
-		switch(ms) {
-			case 0:
-				if(event->value)
-					retval=WAIT_OBJECT_0;
-				else
-					retval=WAIT_TIMEOUT;
-				event->nwaiters--;
-				goto DONE;
-				break;
-			case INFINITE:
-				retval=pthread_cond_wait(&event->gtzero, &event->lock);
-				if(retval) {
-					errno=retval;
-					retval=WAIT_FAILED;
-					event->nwaiters--;
-					goto DONE;
-				}
-				break;
-			default:
-				retval=pthread_cond_timedwait(&event->gtzero, &event->lock, &abstime);
-				if(retval)  {
-					if(retval==ETIMEDOUT)
-						retval=WAIT_TIMEOUT;
-					else {
-						errno=retval;
-						retval=WAIT_FAILED;
-					}
-					event->nwaiters--;
-					goto DONE;
-				}
-		}
-		event->nwaiters--;
-	}
-
-  DONE:
-
-	if(retval==WAIT_OBJECT_0) {
-		if(!event->mreset)
-			event->value=FALSE;
-	}
-
-	pthread_mutex_unlock(&event->lock);
-
-	return retval;
-}
diff --git a/xpdev/xpevent.h b/xpdev/xpevent.h
deleted file mode 100644
index 01972b9e6dff9dc0d9f696635de78caaced13efb..0000000000000000000000000000000000000000
--- a/xpdev/xpevent.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* xpevent.h */
-
-/* *nix emulation of Win32 *Event API */
-
-/* $Id: xpevent.h,v 1.6 2018/07/24 01:13:10 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _XPEVENT_H_
-#define _XPEVENT_H_
-
-#include <pthread.h>
-#include "gen_defs.h"
-
-#if defined(__solaris__)
-#include <xpsem.h>	/* u_int32_t */
-#endif
-
-/* Opaque type definition. */
-struct xpevent;
-typedef struct xpevent *xpevent_t;
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-xpevent_t	CreateEvent(void *sec, BOOL bManualReset, BOOL bInitialState, void *name);
-BOOL		SetEvent(xpevent_t event);
-BOOL		ResetEvent(xpevent_t event);
-BOOL		CloseEvent(xpevent_t event);
-DWORD		WaitForEvent(xpevent_t event, DWORD ms);
-#if defined(__cplusplus)
-}
-#endif
-
-struct xpevent {
-#define EVENT_MAGIC       ((u_int32_t) 0x09fa4014)
-        u_int32_t       magic;
-        pthread_mutex_t lock;
-        pthread_cond_t  gtzero;
-        BOOL			value;
-		BOOL			mreset;
-        DWORD			nwaiters;
-		void			*cbdata;
-		BOOL			(*verify)(void *);
-};
-
-#define INFINITE 	((DWORD)(-1))
-enum {
-	 WAIT_OBJECT_0
-	,WAIT_TIMEOUT
-	,WAIT_FAILED
-};
-
-#endif
diff --git a/xpdev/xpmap.c b/xpdev/xpmap.c
deleted file mode 100644
index eaf002fbfaaf1e9d325b89c42364c7ea8d2c5f10..0000000000000000000000000000000000000000
--- a/xpdev/xpmap.c
+++ /dev/null
@@ -1,158 +0,0 @@
-/* mmap() style cross-platform development wrappers */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#include "xpmap.h"
-#include <stdlib.h>	// malloc()
-
-#if defined(__unix__)
-
-#include <unistd.h>	// close()
-#include <fcntl.h>
-#include <sys/mman.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-struct xpmapping* xpmap(const char *filename, enum xpmap_type type)
-{
-	int					fd;
-	void				*addr=NULL;
-	int					oflags;
-	int					mflags;
-	int					mprot;
-	struct stat			sb;
-	struct xpmapping	*ret;
-
-	switch(type) {
-		case XPMAP_READ:
-			oflags=O_RDONLY;
-			mflags=0;
-			mprot=PROT_READ;
-			break;
-		case XPMAP_WRITE:
-			oflags=O_RDWR;
-			mflags=MAP_SHARED;
-			mprot=PROT_READ|PROT_WRITE;
-			break;
-		case XPMAP_COPY:
-			oflags=O_RDWR;
-			mflags=MAP_PRIVATE;
-			mprot=PROT_READ|PROT_WRITE;
-			break;
-	}
-
-	fd=open(filename, oflags);
-	if(fd == -1)
-		return NULL;
-	if(fstat(fd, &sb)==-1) {
-		close(fd);
-		return NULL;
-	}
-	addr=mmap(NULL, sb.st_size, mprot, mflags, fd, 0);
-	if(addr==MAP_FAILED) {
-		close(fd);
-		return NULL;
-	}
-	ret=(struct xpmapping *)malloc(sizeof(struct xpmapping));
-	if(ret==NULL) {
-		munmap(addr, sb.st_size);
-		close(fd);
-		return NULL;
-	}
-	ret->addr=addr;
-	ret->fd=fd;
-	ret->size=sb.st_size;
-	return ret;
-}
-
-void xpunmap(struct xpmapping *map)
-{
-	munmap(map->addr, map->size);
-	close(map->fd);
-	free(map);
-}
-
-#elif defined(_WIN32)
-
-struct xpmapping* xpmap(const char *filename, enum xpmap_type type)
-{
-	HFILE				fd;
-	HANDLE				md;
-	OFSTRUCT			of;
-	UINT				oflags;
-	DWORD				mprot;
-	DWORD				maccess;
-	DWORD				size;
-	void				*addr;
-	struct xpmapping	*ret;
-
-	switch(type) {
-		case XPMAP_READ:
-			oflags=OF_READ|OF_SHARE_DENY_NONE;
-			mprot=PAGE_READONLY;
-			maccess=FILE_MAP_READ;
-			break;
-		case XPMAP_WRITE:
-			oflags=OF_READWRITE|OF_SHARE_DENY_NONE;
-			mprot=PAGE_READWRITE;
-			maccess=FILE_MAP_WRITE;
-			break;
-		case XPMAP_COPY:
-			oflags=OF_READ|OF_SHARE_DENY_NONE;
-			mprot=PAGE_WRITECOPY;
-			maccess=FILE_MAP_COPY;
-			break;
-	}
-
-	fd=OpenFile(filename, &of, oflags);
-	if(fd == HFILE_ERROR)
-		return NULL;
-	if((size=GetFileSize((HANDLE)fd, NULL))==INVALID_FILE_SIZE)
-		return NULL;
-	md=CreateFileMapping((HANDLE)fd, NULL, mprot, 0, size, NULL);
-	if(md==NULL)
-		return NULL;
-	addr=MapViewOfFile(md, maccess, 0, 0, size);
-	ret=(struct xpmapping *)malloc(sizeof(struct xpmapping));
-	if(ret==NULL) {
-		CloseHandle(md);
-		UnmapViewOfFile(addr);
-		return NULL;
-	}
-	ret->addr=addr;
-	ret->fd=(HANDLE)fd;
-	ret->md=md;
-	ret->size=size;
-	return ret;
-}
-
-void xpunmap(struct xpmapping *map)
-{
-	UnmapViewOfFile(map->addr);
-	CloseHandle(map->md);
-	CloseHandle(map->fd);
-	free(map);
-}
-
-#else
-
-	#error "Need mmap wrappers."
-
-#endif
diff --git a/xpdev/xpmap.h b/xpdev/xpmap.h
deleted file mode 100644
index 5f1ffd664c8ba3e16cd09b14b1d394c15da8c148..0000000000000000000000000000000000000000
--- a/xpdev/xpmap.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* mmap() style cross-platform development wrappers */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _XPMAP_H
-#define _XPMAP_H
-
-#include "gen_defs.h"
-#include "wrapdll.h"
-
-enum xpmap_type {
-	XPMAP_READ,
-	XPMAP_WRITE,
-	XPMAP_COPY
-};
-
-#if defined(__unix__)
-
-#include <sys/mman.h>
-struct xpmapping {
-	void	*addr;
-	int		fd;
-	size_t	size;
-};
-
-#elif defined(_WIN32)
-
-struct xpmapping {
-	void		*addr;
-	HANDLE		fd;
-	HANDLE		md;
-	uint64_t	size;
-};
-
-#else
-
-	#error "Need mmap wrappers."
-
-#endif
-
-DLLEXPORT struct xpmapping* xpmap(const char *filename, enum xpmap_type type);
-DLLEXPORT void xpunmap(struct xpmapping *map);
-
-#endif
diff --git a/xpdev/xpprintf.c b/xpdev/xpprintf.c
deleted file mode 100644
index 7f481e9cfee61fe4f56e83174515b03b832cce27..0000000000000000000000000000000000000000
--- a/xpdev/xpprintf.c
+++ /dev/null
@@ -1,1483 +0,0 @@
-/* xpprintf.c */
-// vi: tabstop=4
-
-/* Deuce's vs[n]printf() replacement */
-
-/* $Id: xpprintf.c,v 1.62 2018/04/07 07:21:46 rswindell Exp $ */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * Anonymous FTP access to the most recent released source is available at	*
- * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net	*
- *																			*
- * Anonymous CVS access to the development source and modification history	*
- * is available at cvs.synchro.net:/cvsroot/sbbs, example:					*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login			*
- *     (just hit return, no password is necessary)							*
- * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src		*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * You are encouraged to submit any modifications (preferably in Unix diff	*
- * format) via e-mail to mods@synchro.net									*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#if defined(__linux__) && !defined(_GNU_SOURCE)
-	#define _GNU_SOURCE	// asprintf() on Linux
-#endif
-#include <stdarg.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include "genwrap.h"    /* alloca() */
-
-#include "xpprintf.h"
-#include "gen_defs.h"
-
-#if defined(_MSC_VER) || defined(__MSVCRT__)
-int vasprintf(char **strptr, const char *format, va_list va)
-{
-	va_list	va2;
-	int		ret;
-
-	if (strptr == NULL)
-		return -1;
-	va_copy(va2, va);
-	ret = _vscprintf(format, va);
-	*strptr = (char *)malloc(ret+1);
-	if (*strptr == NULL) {
-		va_end(va2);
-		return -1;
-	}
-	ret = vsprintf(*strptr, format, va2);
-	va_end(va2);
-	return ret;
-}
-
-int asprintf(char **strptr, const char *format, ...)
-{
-	va_list	va;
-	int		ret;
-
-	if (strptr == NULL)
-		return -1;
-	va_start(va, format);
-	ret=vasprintf(strptr, format, va);
-	va_end(va);
-	return ret;
-}
-#endif
-
-/* Maximum length of a format specifier including the % */
-#define MAX_FORMAT_LEN	256
-
-void xp_asprintf_free(char *format)
-{
-	free(format);
-}
-
-int xp_printf_get_type(const char *format)
-{
-	const char	*p;
-	int		modifier=0;
-	int		j;
-	int		correct_type=0;
-
-	if(!*(size_t *)format)
-		return(0);
-	p=format+*(size_t *)format;
-	if(*p!='%')
-		return(0);
-	p++;
-
-	/*
-	 * Skip flags (zero or more)
-	 */
-	j=1;
-	while(j) {
-		switch(*p) {
-			case '#':
-				p++;
-				break;
-			case '-':
-				p++;
-				break;
-			case '+':
-				p++;
-				break;
-			case ' ':
-				p++;
-				break;
-			case '0':
-				p++;
-				break;
-			case '\'':
-				p++;
-				break;
-			default:
-				j=0;
-				break;
-		}
-	}
-	if(*p=='*')
-		return(XP_PRINTF_TYPE_INT);
-	while(*p>= '0' && *p <= '9')
-		p++;
-	if(*p=='.') {
-		p++;
-		if(*p=='*')
-			return(XP_PRINTF_TYPE_INT);
-	}
-	while(*p>= '0' && *p <= '9')
-		p++;
-	switch(*p) {
-		case 'h':
-			modifier='h';
-			p++;
-			if(*p=='h') {
-				p++;
-				modifier+='h'<<8;
-			}
-			break;
-		case 'l':
-			modifier='l';
-			p++;
-			if(*p=='l') {
-				p++;
-				modifier+='l'<<8;
-			}
-			break;
-		case 'j':
-			modifier='j';
-			p++;
-			break;
-		case 't':
-			modifier='t';
-			p++;
-			break;
-		case 'z':
-			modifier='z';
-			p++;
-			break;
-		case 'L':
-			modifier='L';
-			p++;
-			break;
-	}
-	/*
-	 * The next char is now the type... if type is auto, 
-	 * set type to what it SHOULD be
-	 */
-	switch(*p) {
-		/* INT types */
-		case 'd':
-		case 'i':
-			switch(modifier) {
-				case 'h'|'h'<<8:
-					correct_type=XP_PRINTF_TYPE_SCHAR;
-					break;
-				case 'h':
-					correct_type=XP_PRINTF_TYPE_SHORT;
-					break;
-				case 'l':
-					correct_type=XP_PRINTF_TYPE_LONG;
-					break;
-#if defined(XP_PRINTF_TYPE_ULONGLONG)
-				case 'l'|'l'<<8:
-					correct_type=XP_PRINTF_TYPE_LONGLONG;
-					break;
-#endif
-				case 'j':
-					correct_type=XP_PRINTF_TYPE_INTMAX;
-					break;
-				case 't':
-					correct_type=XP_PRINTF_TYPE_PTRDIFF;
-					break;
-				case 'z':
-					/*
-					 * ToDo this is a signed type of same size
-					 * as size_t
-					 */
-					correct_type=XP_PRINTF_TYPE_LONG;
-					break;
-				default:
-					correct_type=XP_PRINTF_TYPE_INT;
-					break;
-			}
-			break;
-		case 'o':
-		case 'u':
-		case 'x':
-		case 'X':
-			switch(modifier) {
-				case 'h'|'h'<<8:
-					correct_type=XP_PRINTF_TYPE_UCHAR;
-					break;
-				case 'h':
-					correct_type=XP_PRINTF_TYPE_USHORT;
-					break;
-				case 'l':
-					correct_type=XP_PRINTF_TYPE_ULONG;
-					break;
-#if defined(XP_PRINTF_TYPE_ULONGLONG)
-				case 'l'|'l'<<8:
-					correct_type=XP_PRINTF_TYPE_ULONGLONG;
-					break;
-#endif
-				case 'j':
-					correct_type=XP_PRINTF_TYPE_UINTMAX;
-					break;
-				case 't':
-					/*
-					 * ToDo this is an unsigned type of same size
-					 * as ptrdiff_t
-					 */
-					correct_type=XP_PRINTF_TYPE_ULONG;
-					break;
-				case 'z':
-					correct_type=XP_PRINTF_TYPE_SIZET;
-					break;
-				default:
-					correct_type=XP_PRINTF_TYPE_UINT;
-					break;
-			}
-			break;
-		case 'a':
-		case 'A':
-		case 'e':
-		case 'E':
-		case 'f':
-		case 'F':
-		case 'g':
-		case 'G':
-			switch(modifier) {
-				case 'L':
-					correct_type=XP_PRINTF_TYPE_LONGDOUBLE;
-					break;
-				case 'l':
-				default:
-					correct_type=XP_PRINTF_TYPE_DOUBLE;
-					break;
-			}
-			break;
-		case 'C':
-			/* ToDo wide chars... not yet supported */
-			correct_type=XP_PRINTF_TYPE_CHAR;
-			break;
-		case 'c':
-			switch(modifier) {
-				case 'l':
-					/* ToDo wide chars... not yet supported */
-				default:
-					correct_type=XP_PRINTF_TYPE_CHAR;
-			}
-			break;
-		case 'S':
-			/* ToDo wide chars... not yet supported */
-			correct_type=XP_PRINTF_TYPE_CHARP;
-			break;
-		case 's':
-			switch(modifier) {
-				case 'l':
-					/* ToDo wide chars... not yet supported */
-				default:
-					correct_type=XP_PRINTF_TYPE_CHARP;
-			}
-			break;
-		case 'p':
-			correct_type=XP_PRINTF_TYPE_VOIDP;
-			break;
-	}
-	return(correct_type);
-}
-
-/*
- * Performs the next replacement in format using the variable
- * specified as the only vararg which is currently the type
- * specified in type (defined in xpprintf.h).
- *
- * Does not currently support the $ argument selector.
- *
- * Currently, the type is not overly useful, but this could be used for
- * automatic type conversions (ie: int to char *).  Right now it just assures
- * that the type passed to sprintf() is the type passed to
- * xp_asprintf_next().
- */
-char* xp_asprintf_next(char *format, int type, ...)
-{
-	va_list vars;
-	char			*p;
-	char			*newbuf;
-	int				i=0,j;
-	unsigned int	ui=0;
-	long int		l=0;
-	unsigned long int	ul=0;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-	long long int	ll=0;
-	unsigned long long int	ull=0;
-#endif
-	double			d=0;
-	long double		ld=0;
-	char*			cp=NULL;
-	void*			pntr=NULL;
-	size_t			s=0;
-	unsigned long	offset=0;
-	unsigned long	offset2=0;
-	size_t			format_len;
-	size_t			this_format_len;
-	char			int_buf[MAX_FORMAT_LEN];
-	char			*entry;
-	char			this_format[MAX_FORMAT_LEN];
-	char			*fmt;
-	int				modifier=0;
-	int				correct_type=0;
-	char			num_str[128];		/* More than enough room for a 256-bit int */
-
-	/*
-	 * Check if we're already done...
-	 */
-	if(!*(size_t *) format)
-		return(format);
-
-	p=format+*(size_t *)format;
-	offset=p-format;
-	format_len=*(size_t *)(format+sizeof(size_t))+sizeof(size_t)*2+1;
-	this_format[0]=0;
-	fmt=this_format;
-	*(fmt++)=*(p++);
-
-	/*
-	 * Skip flags (zero or more)
-	 */
-	j=1;
-	while(j) {
-		switch(*p) {
-			case '#':
-				*(fmt++)=*(p++);
-				break;
-			case '-':
-				*(fmt++)=*(p++);
-				break;
-			case '+':
-				*(fmt++)=*(p++);
-				break;
-			case ' ':
-				*(fmt++)=*(p++);
-				break;
-			case '0':
-				*(fmt++)=*(p++);
-				break;
-			case '\'':
-				*(fmt++)=*(p++);
-				break;
-			default:
-				j=0;
-				break;
-		}
-	}
-
-	/*
-	 * If width is '*' then the argument is an int
-	 * which specifies the width.
-	 */
-	if(*p=='*') {		/* The argument is this width */
-		va_start(vars, type);
-		i=sprintf(int_buf,"%d", va_arg(vars, int));
-		va_end(vars);
-		if(i > 1) {
-			/*
-			 * We must calculate this before we go mucking about
-			 * with format and p
-			 */
-			offset2=p-format;
-			newbuf=(char *)realloc(format, format_len+i-1 /* -1 for the '*' that's already there */);
-			if(newbuf==NULL)
-				return(NULL);
-			format=newbuf;
-			p=format+offset2;
-			/*
-			 * Move trailing end to make space... leaving the * where it
-			 * is so it can be overwritten
-			 */
-			memmove(p+i, p+1, format-p+format_len-1);
-			memcpy(p, int_buf, i);
-			*(size_t *)(format+sizeof(size_t))+=i-1;
-		}
-		else
-			*p=int_buf[0];
-		p=format+offset;
-		*(size_t *)format=p-format;
-		return(format);
-	}
-	/* Skip width */
-	while(*p >= '0' && *p <= '9')
-		*(fmt++)=*(p++);
-	/* Check for precision */
-	if(*p=='.') {
-		*(fmt++)=*(p++);
-		/*
-		 * If the precision is '*' then the argument is an int which
-		 * specifies the precision.
-		 */
-		if(*p=='*') {
-			va_start(vars, type);
-			i=sprintf(int_buf,"%d", va_arg(vars, int));
-			va_end(vars);
-			if(i > 1) {
-				/*
-				 * We must calculate this before we go mucking about
-				 * with format and p
-				 */
-				offset2=p-format;
-				newbuf=(char *)realloc(format, format_len+i-1 /* -1 for the '*' that's already there */);
-				if(newbuf==NULL)
-					return(NULL);
-				format=newbuf;
-				p=format+offset2;
-				/*
-				 * Move trailing end to make space... leaving the * where it
-				 * is so it can be overwritten
-				 */
-				memmove(p+i, p+1, format-p+format_len-1);
-				memcpy(p, int_buf, i);
-				*(size_t *)(format+sizeof(size_t))+=i-1;
-			}
-			else
-				*p=int_buf[0];
-			p=format+offset;
-			*(size_t *)format=p-format;
-			return(format);
-		}
-		/* Skip precision */
-		while(*p >= '0' && *p <= '9')
-			*(fmt++)=*(p++);
-	}
-
-	/* Skip/Translate length modifiers */
-	/*
-	 * ToDo: This could (should?) convert the standard ll modifier
-	 * to the MSVC equivilant (I64 or something?)
-	 * if you do this, the calculations using this_format_len will need
-	 * rewriting.
-	 */
-	switch(*p) {
-		case 'h':
-			modifier='h';
-			*(fmt++)=*(p++);
-			if(*p=='h') {
-				*(fmt++)=*(p++);
-				modifier+='h'<<8;
-			}
-			break;
-		case 'l':
-			modifier='l';
-			*(fmt++)=*(p++);
-			if(*p=='l') {
-				*(fmt++)=*(p++);
-				modifier+='l'<<8;
-			}
-			break;
-		case 'j':
-			modifier='j';
-			*(fmt++)=*(p++);
-			break;
-		case 't':
-			modifier='t';
-			*(fmt++)=*(p++);
-			break;
-		case 'z':
-			modifier='z';
-			*(fmt++)=*(p++);
-			break;
-		case 'L':
-			modifier='L';
-			*(fmt++)=*(p++);
-			break;
-	}
-
-	/*
-	 * The next char is now the type... if type is auto, 
-	 * set type to what it SHOULD be
-	 */
-	if(type==XP_PRINTF_TYPE_AUTO || type & XP_PRINTF_CONVERT) {
-		switch(*p) {
-			/* INT types */
-			case 'd':
-			case 'i':
-				switch(modifier) {
-					case 'h'|'h'<<8:
-						correct_type=XP_PRINTF_TYPE_SCHAR;
-						break;
-					case 'h':
-						correct_type=XP_PRINTF_TYPE_SHORT;
-						break;
-					case 'l':
-						correct_type=XP_PRINTF_TYPE_LONG;
-						break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-					case 'l'|'l'<<8:
-						correct_type=XP_PRINTF_TYPE_LONGLONG;
-						break;
-#endif
-					case 'j':
-						correct_type=XP_PRINTF_TYPE_INTMAX;
-						break;
-					case 't':
-						correct_type=XP_PRINTF_TYPE_PTRDIFF;
-						break;
-					case 'z':
-						/*
-						 * ToDo this is a signed type of same size
-						 * as size_t
-						 */
-						correct_type=XP_PRINTF_TYPE_LONG;
-						break;
-					default:
-						correct_type=XP_PRINTF_TYPE_INT;
-						break;
-				}
-				break;
-			case 'o':
-			case 'u':
-			case 'x':
-			case 'X':
-				switch(modifier) {
-					case 'h'|'h'<<8:
-						correct_type=XP_PRINTF_TYPE_UCHAR;
-						break;
-					case 'h':
-						correct_type=XP_PRINTF_TYPE_USHORT;
-						break;
-					case 'l':
-						correct_type=XP_PRINTF_TYPE_ULONG;
-						break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-					case 'l'|'l'<<8:
-						correct_type=XP_PRINTF_TYPE_ULONGLONG;
-						break;
-#endif
-					case 'j':
-						correct_type=XP_PRINTF_TYPE_UINTMAX;
-						break;
-					case 't':
-						/*
-						 * ToDo this is an unsigned type of same size
-						 * as ptrdiff_t
-						 */
-						correct_type=XP_PRINTF_TYPE_ULONG;
-						break;
-					case 'z':
-						correct_type=XP_PRINTF_TYPE_SIZET;
-						break;
-					default:
-						correct_type=XP_PRINTF_TYPE_UINT;
-						break;
-				}
-				break;
-			case 'a':
-			case 'A':
-			case 'e':
-			case 'E':
-			case 'f':
-			case 'F':
-			case 'g':
-			case 'G':
-				switch(modifier) {
-					case 'L':
-						correct_type=XP_PRINTF_TYPE_LONGDOUBLE;
-						break;
-					case 'l':
-					default:
-						correct_type=XP_PRINTF_TYPE_DOUBLE;
-						break;
-				}
-				break;
-			case 'C':
-				/* ToDo wide chars... not yet supported */
-				correct_type=XP_PRINTF_TYPE_CHAR;
-				break;
-			case 'c':
-				switch(modifier) {
-					case 'l':
-						/* ToDo wide chars... not yet supported */
-					default:
-						correct_type=XP_PRINTF_TYPE_CHAR;
-				}
-				break;
-			case 'S':
-				/* ToDo wide chars... not yet supported */
-				correct_type=XP_PRINTF_TYPE_CHARP;
-				break;
-			case 's':
-				switch(modifier) {
-					case 'l':
-						/* ToDo wide chars... not yet supported */
-					default:
-						correct_type=XP_PRINTF_TYPE_CHARP;
-				}
-				break;
-			case 'p':
-				correct_type=XP_PRINTF_TYPE_VOIDP;
-				break;
-		}
-	}
-	if(type==XP_PRINTF_TYPE_AUTO)
-		type=correct_type;
-
-	/*
-	 * Copy the arg to the passed type.
-	 */
-	va_start(vars, type);
-	switch(type & ~XP_PRINTF_CONVERT) {
-		case XP_PRINTF_TYPE_CHAR:
-		case XP_PRINTF_TYPE_INT:	/* Also includes char and short */
-			i=va_arg(vars, int);
-			break;
-		case XP_PRINTF_TYPE_UINT:	/* Also includes char and short */
-			/*
-			 * ToDo: If it's a %c, and the value is 0, should it output [null]
-			 * or should it terminate the string?
-			 */
-			ui=va_arg(vars, unsigned int);
-			break;
-		case XP_PRINTF_TYPE_LONG:
-			l=va_arg(vars, long);
-			break;
-		case XP_PRINTF_TYPE_ULONG:
-			ul=va_arg(vars, unsigned long int);
-			break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-		case XP_PRINTF_TYPE_LONGLONG:
-			ll=va_arg(vars, long long int);
-			break;
-		case XP_PRINTF_TYPE_ULONGLONG:
-			ull=va_arg(vars, unsigned long long int);
-			break;
-#endif
-		case XP_PRINTF_TYPE_CHARP:
-			cp=va_arg(vars, char*);
-			break;
-		case XP_PRINTF_TYPE_DOUBLE:
-			d=va_arg(vars, double);
-			break;
-		case XP_PRINTF_TYPE_LONGDOUBLE:
-			ld=va_arg(vars, long double);
-			break;
-		case XP_PRINTF_TYPE_VOIDP:
-			pntr=va_arg(vars, void*);
-			break;
-		case XP_PRINTF_TYPE_SIZET:
-			s=va_arg(vars, size_t);
-			break;
-	}
-	va_end(vars);
-
-	if(type & XP_PRINTF_CONVERT) {
-		type=type & ~XP_PRINTF_CONVERT;
-		if(type != correct_type) {
-			switch(correct_type) {
-				case XP_PRINTF_TYPE_CHAR:
-					switch(type) {
-						case XP_PRINTF_TYPE_CHAR:
-						case XP_PRINTF_TYPE_INT:
-							break;
-						case XP_PRINTF_TYPE_UINT:
-							i=ui;
-							break;
-						case XP_PRINTF_TYPE_LONG:
-							i=l;
-							break;
-						case XP_PRINTF_TYPE_ULONG:
-							i=ul;
-							break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-						case XP_PRINTF_TYPE_LONGLONG:
-							i=ll;
-							break;
-						case XP_PRINTF_TYPE_ULONGLONG:
-							i=ull;
-							break;
-#endif
-						case XP_PRINTF_TYPE_CHARP:
-							if(cp)
-								i=*cp;
-							else
-								i=0;
-							break;
-						case XP_PRINTF_TYPE_DOUBLE:
-							i=(int)d;
-							break;
-						case XP_PRINTF_TYPE_LONGDOUBLE:
-							i=(int)ld;
-							break;
-						case XP_PRINTF_TYPE_VOIDP:
-							i=(long)pntr;
-							break;
-						case XP_PRINTF_TYPE_SIZET:
-							i=s;
-							break;
-					}
-					break;
-				case XP_PRINTF_TYPE_INT:
-					switch(type) {
-						case XP_PRINTF_TYPE_CHAR:
-						case XP_PRINTF_TYPE_INT:
-							break;
-						case XP_PRINTF_TYPE_UINT:
-							i=ui;
-							break;
-						case XP_PRINTF_TYPE_LONG:
-							i=l;
-							break;
-						case XP_PRINTF_TYPE_ULONG:
-							i=ul;
-							break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-						case XP_PRINTF_TYPE_LONGLONG:
-							i=ll;
-							break;
-						case XP_PRINTF_TYPE_ULONGLONG:
-							i=ull;
-							break;
-#endif
-						case XP_PRINTF_TYPE_CHARP:
-							i=strtol(cp, NULL, 0);
-							break;
-						case XP_PRINTF_TYPE_DOUBLE:
-							i=(int)d;
-							break;
-						case XP_PRINTF_TYPE_LONGDOUBLE:
-							i=(int)ld;
-							break;
-						case XP_PRINTF_TYPE_VOIDP:
-							i=(long)pntr;
-							break;
-						case XP_PRINTF_TYPE_SIZET:
-							i=s;
-							break;
-					}
-					break;
-				case XP_PRINTF_TYPE_UINT:
-					switch(type) {
-						case XP_PRINTF_TYPE_CHAR:
-						case XP_PRINTF_TYPE_INT:
-							ui=i;
-							break;
-						case XP_PRINTF_TYPE_UINT:
-							break;
-						case XP_PRINTF_TYPE_LONG:
-							ui=l;
-							break;
-						case XP_PRINTF_TYPE_ULONG:
-							ui=ul;
-							break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-						case XP_PRINTF_TYPE_LONGLONG:
-							ui=ll;
-							break;
-						case XP_PRINTF_TYPE_ULONGLONG:
-							ui=ull;
-							break;
-#endif
-						case XP_PRINTF_TYPE_CHARP:
-							ui=strtoul(cp, NULL, 0);
-							break;
-						case XP_PRINTF_TYPE_DOUBLE:
-							ui=(unsigned)d;
-							break;
-						case XP_PRINTF_TYPE_LONGDOUBLE:
-							ui=(unsigned)ld;
-							break;
-						case XP_PRINTF_TYPE_VOIDP:
-							ui=(unsigned long)pntr;
-							break;
-						case XP_PRINTF_TYPE_SIZET:
-							ui=s;
-							break;
-					}
-					break;
-				case XP_PRINTF_TYPE_LONG:
-					switch(type) {
-						case XP_PRINTF_TYPE_CHAR:
-						case XP_PRINTF_TYPE_INT:
-							l=i;
-							break;
-						case XP_PRINTF_TYPE_UINT:
-							l=ui;
-							break;
-						case XP_PRINTF_TYPE_LONG:
-							break;
-						case XP_PRINTF_TYPE_ULONG:
-							l=ul;
-							break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-						case XP_PRINTF_TYPE_LONGLONG:
-							l=ll;
-							break;
-						case XP_PRINTF_TYPE_ULONGLONG:
-							l=ull;
-							break;
-#endif
-						case XP_PRINTF_TYPE_CHARP:
-							l=strtol(cp, NULL, 0);
-							break;
-						case XP_PRINTF_TYPE_DOUBLE:
-							l=(long)d;
-							break;
-						case XP_PRINTF_TYPE_LONGDOUBLE:
-							l=(long)ld;
-							break;
-						case XP_PRINTF_TYPE_VOIDP:
-							l=(long)pntr;
-							break;
-						case XP_PRINTF_TYPE_SIZET:
-							l=s;
-							break;
-					}
-					break;
-				case XP_PRINTF_TYPE_ULONG:
-					switch(type) {
-						case XP_PRINTF_TYPE_CHAR:
-						case XP_PRINTF_TYPE_INT:
-							ul=i;
-							break;
-						case XP_PRINTF_TYPE_UINT:
-							ul=ui;
-							break;
-						case XP_PRINTF_TYPE_LONG:
-							ul=l;
-							break;
-						case XP_PRINTF_TYPE_ULONG:
-							break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-						case XP_PRINTF_TYPE_LONGLONG:
-							ul=ll;
-							break;
-						case XP_PRINTF_TYPE_ULONGLONG:
-							ul=ull;
-							break;
-#endif
-						case XP_PRINTF_TYPE_CHARP:
-							ul=strtoul(cp, NULL, 0);
-							break;
-						case XP_PRINTF_TYPE_DOUBLE:
-							ul=(unsigned long)d;
-							break;
-						case XP_PRINTF_TYPE_LONGDOUBLE:
-							ul=(unsigned long)ld;
-							break;
-						case XP_PRINTF_TYPE_VOIDP:
-							ul=(unsigned long)pntr;
-							break;
-						case XP_PRINTF_TYPE_SIZET:
-							ul=s;
-							break;
-					}
-					break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-				case XP_PRINTF_TYPE_LONGLONG:
-					switch(type) {
-						case XP_PRINTF_TYPE_CHAR:
-						case XP_PRINTF_TYPE_INT:
-							ll=i;
-							break;
-						case XP_PRINTF_TYPE_UINT:
-							ll=ui;
-							break;
-						case XP_PRINTF_TYPE_LONG:
-							ll=l;
-							break;
-						case XP_PRINTF_TYPE_ULONG:
-							ll=ul;
-							break;
-						case XP_PRINTF_TYPE_LONGLONG:
-							break;
-						case XP_PRINTF_TYPE_ULONGLONG:
-							ll=ull;
-							break;
-						case XP_PRINTF_TYPE_CHARP:
-							ll=strtoll(cp, NULL, 0);
-							break;
-						case XP_PRINTF_TYPE_DOUBLE:
-							ll=d;
-							break;
-						case XP_PRINTF_TYPE_LONGDOUBLE:
-							ll=ld;
-							break;
-						case XP_PRINTF_TYPE_VOIDP:
-							ll=(long long)((intptr_t)pntr);
-							break;
-						case XP_PRINTF_TYPE_SIZET:
-							ll=s;
-							break;
-					}
-					break;
-				case XP_PRINTF_TYPE_ULONGLONG:
-					switch(type) {
-						case XP_PRINTF_TYPE_CHAR:
-						case XP_PRINTF_TYPE_INT:
-							ull=i;
-							break;
-						case XP_PRINTF_TYPE_UINT:
-							ull=ui;
-							break;
-						case XP_PRINTF_TYPE_LONG:
-							ull=l;
-							break;
-						case XP_PRINTF_TYPE_ULONG:
-							ull=ul;
-							break;
-						case XP_PRINTF_TYPE_LONGLONG:
-							ull=ll;
-							break;
-						case XP_PRINTF_TYPE_ULONGLONG:
-							break;
-						case XP_PRINTF_TYPE_CHARP:
-							ull=strtoull(cp, NULL, 0);
-							break;
-						case XP_PRINTF_TYPE_DOUBLE:
-							ull=d;
-							break;
-						case XP_PRINTF_TYPE_LONGDOUBLE:
-							ull=ld;
-							break;
-						case XP_PRINTF_TYPE_VOIDP:
-							ull=(unsigned long long int)((uintptr_t)pntr);
-							break;
-						case XP_PRINTF_TYPE_SIZET:
-							ull=s;
-							break;
-					}
-					break;
-#endif
-				case XP_PRINTF_TYPE_CHARP:
-					num_str[0]=0;
-					switch(type) {
-						case XP_PRINTF_TYPE_CHAR:
-						case XP_PRINTF_TYPE_INT:
-							sprintf(num_str, "%d", i);
-							cp=num_str;
-							break;
-						case XP_PRINTF_TYPE_UINT:
-							sprintf(num_str, "%u", i);
-							cp=num_str;
-							break;
-						case XP_PRINTF_TYPE_LONG:
-							sprintf(num_str, "%ld", l);
-							cp=num_str;
-							break;
-						case XP_PRINTF_TYPE_ULONG:
-							sprintf(num_str, "%lu", ul);
-							cp=num_str;
-							break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-						case XP_PRINTF_TYPE_LONGLONG:
-							/* ToDo MSVC doesn't like this */
-							sprintf(num_str, "%lld", ll);
-							cp=num_str;
-							break;
-						case XP_PRINTF_TYPE_ULONGLONG:
-							/* ToDo MSVC doesn't like this */
-							sprintf(num_str, "%llu", ull);
-							cp=num_str;
-							break;
-#endif
-						case XP_PRINTF_TYPE_CHARP:
-							break;
-						case XP_PRINTF_TYPE_DOUBLE:
-							sprintf(num_str, "%f", d);
-							cp=num_str;
-							break;
-						case XP_PRINTF_TYPE_LONGDOUBLE:
-							sprintf(num_str, "%Lf", ld);
-							cp=num_str;
-							break;
-						case XP_PRINTF_TYPE_VOIDP:
-							/* ToDo: Or should this pretend it's a char *? */
-							sprintf(num_str, "%p", pntr);
-							cp=num_str;
-							break;
-						case XP_PRINTF_TYPE_SIZET:
-							sprintf(num_str, "%zu", s);
-							cp=num_str;
-							break;
-					}
-					break;
-				case XP_PRINTF_TYPE_DOUBLE:
-					switch(type) {
-						case XP_PRINTF_TYPE_CHAR:
-						case XP_PRINTF_TYPE_INT:
-							d=i;
-							break;
-						case XP_PRINTF_TYPE_UINT:
-							d=ui;
-							break;
-						case XP_PRINTF_TYPE_LONG:
-							d=l;
-							break;
-						case XP_PRINTF_TYPE_ULONG:
-							d=ul;
-							break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-						case XP_PRINTF_TYPE_LONGLONG:
-							d=ll;
-							break;
-						case XP_PRINTF_TYPE_ULONGLONG:
-							d=ull;
-							break;
-#endif
-						case XP_PRINTF_TYPE_CHARP:
-							d=strtod(cp, NULL);
-							break;
-						case XP_PRINTF_TYPE_DOUBLE:
-							break;
-						case XP_PRINTF_TYPE_LONGDOUBLE:
-							d=ld;
-							break;
-						case XP_PRINTF_TYPE_VOIDP:
-							d=(double)((long int)pntr);
-							break;
-						case XP_PRINTF_TYPE_SIZET:
-							d=s;
-							break;
-					}
-					break;
-				case XP_PRINTF_TYPE_LONGDOUBLE:
-					switch(type) {
-						case XP_PRINTF_TYPE_CHAR:
-						case XP_PRINTF_TYPE_INT:
-							ld=i;
-							break;
-						case XP_PRINTF_TYPE_UINT:
-							ld=ui;
-							break;
-						case XP_PRINTF_TYPE_LONG:
-							ld=l;
-							break;
-						case XP_PRINTF_TYPE_ULONG:
-							ld=ul;
-							break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-						case XP_PRINTF_TYPE_LONGLONG:
-							ld=ll;
-							break;
-						case XP_PRINTF_TYPE_ULONGLONG:
-							ld=ull;
-							break;
-#endif
-						case XP_PRINTF_TYPE_CHARP:
-							/* strtold() isn't ubiquitous yet */
-							ld=strtod(cp, NULL);
-							break;
-						case XP_PRINTF_TYPE_DOUBLE:
-							ld=d;
-							break;
-						case XP_PRINTF_TYPE_LONGDOUBLE:
-							break;
-						case XP_PRINTF_TYPE_VOIDP:
-							ld=(long double)((long int)pntr);
-							break;
-						case XP_PRINTF_TYPE_SIZET:
-							ld=s;
-							break;
-					}
-					break;
-				case XP_PRINTF_TYPE_VOIDP:
-					/* ToDo: this is nasty... */
-					switch(type) {
-						case XP_PRINTF_TYPE_CHAR:
-						case XP_PRINTF_TYPE_INT:
-							pntr=(void *)((intptr_t)i);
-							break;
-						case XP_PRINTF_TYPE_UINT:
-							pntr=(void *)((uintptr_t)ui);
-							break;
-						case XP_PRINTF_TYPE_LONG:
-							pntr=(void *)((intptr_t)l);
-							break;
-						case XP_PRINTF_TYPE_ULONG:
-							pntr=(void *)((uintptr_t)ul);
-							break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-						case XP_PRINTF_TYPE_LONGLONG:
-							pntr=(void *)((intptr_t)ll);
-							break;
-						case XP_PRINTF_TYPE_ULONGLONG:
-							pntr=(void *)((uintptr_t)ull);
-							break;
-#endif
-						case XP_PRINTF_TYPE_CHARP:
-							pntr=(void *)(cp);
-							break;
-						case XP_PRINTF_TYPE_DOUBLE:
-							pntr=(void *)((intptr_t)d);
-							break;
-						case XP_PRINTF_TYPE_LONGDOUBLE:
-							pntr=(void *)((intptr_t)ld);
-							break;
-						case XP_PRINTF_TYPE_VOIDP:
-							break;
-						case XP_PRINTF_TYPE_SIZET:
-							pntr=(void *)((intptr_t)s);
-							break;
-					}
-					break;
-				case XP_PRINTF_TYPE_SIZET:
-					switch(type) {
-						case XP_PRINTF_TYPE_CHAR:
-						case XP_PRINTF_TYPE_INT:
-							s=i;
-							break;
-						case XP_PRINTF_TYPE_UINT:
-							s=ui;
-							break;
-						case XP_PRINTF_TYPE_LONG:
-							s=l;
-							break;
-						case XP_PRINTF_TYPE_ULONG:
-							s=ul;
-							break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-						case XP_PRINTF_TYPE_LONGLONG:
-							s=ll;
-							break;
-						case XP_PRINTF_TYPE_ULONGLONG:
-							s=ull;
-							break;
-#endif
-						case XP_PRINTF_TYPE_CHARP:
-							s=strtol(cp, NULL, 0);	/* was strtoll */
-							break;
-						case XP_PRINTF_TYPE_DOUBLE:
-							s=(size_t)d;
-							break;
-						case XP_PRINTF_TYPE_LONGDOUBLE:
-							s=(size_t)ld;
-							break;
-						case XP_PRINTF_TYPE_VOIDP:
-							s=(size_t)pntr;
-							break;
-						case XP_PRINTF_TYPE_SIZET:
-							break;
-					}
-					break;
-			}
-			type=correct_type;
-		}
-	}
-
-	/* The next char is now the type... check the length required to spore the printf()ed string */
-	*(fmt++)=*p;
-	*fmt=0;
-	entry=NULL;
-	switch(type) {
-		case XP_PRINTF_TYPE_CHAR:	/* Also includes char and short */
-		case XP_PRINTF_TYPE_INT:	/* Also includes char and short */
-			j=asprintf(&entry, this_format, i);
-			break;
-		case XP_PRINTF_TYPE_UINT:	/* Also includes char and short */
-			j=asprintf(&entry, this_format, ui);
-			break;
-		case XP_PRINTF_TYPE_LONG:
-			j=asprintf(&entry, this_format, l);
-			break;
-		case XP_PRINTF_TYPE_ULONG:
-			j=asprintf(&entry, this_format, ul);
-			break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-		case XP_PRINTF_TYPE_LONGLONG:
-			j=asprintf(&entry, this_format, ll);
-			break;
-		case XP_PRINTF_TYPE_ULONGLONG:
-			j=asprintf(&entry, this_format, ull);
-			break;
-#endif
-		case XP_PRINTF_TYPE_CHARP:
-			if(cp==NULL)
-				j=asprintf(&entry, this_format, "<null>");
-			else
-				j=asprintf(&entry, this_format, cp);
-			break;
-		case XP_PRINTF_TYPE_DOUBLE:
-			j=asprintf(&entry, this_format, d);
-			break;
-		case XP_PRINTF_TYPE_LONGDOUBLE:
-			j=asprintf(&entry, this_format, ld);
-			break;
-		case XP_PRINTF_TYPE_VOIDP:
-			j=asprintf(&entry, this_format, pntr);
-			break;
-		case XP_PRINTF_TYPE_SIZET:
-			j=asprintf(&entry, this_format, s);
-			break;
-		default:
-			j = -1;
-			entry = NULL;
-			break;
-	}
-
-	if (j<0) {
-		FREE_AND_NULL(entry);
-		entry = strdup("<error>");
-		j=strlen(entry);
-	}
-
-	this_format_len=strlen(this_format);
-	if(j>=0) {
-		/*
-		 * This isn't necessary if it's already the right size,
-		 * or it's too large... this realloc() should only need to grow
-		 * the string.
-		 */
-		if(format_len < (format_len-this_format_len+j)) {
-			newbuf=(char *)realloc(format, format_len-this_format_len+j);
-			if(newbuf==NULL) {
-				FREE_AND_NULL(entry);
-				return(NULL);
-			}
-			format=newbuf;
-		}
-		/* Move trailing end to make space */
-		memmove(format+offset+j, format+offset+this_format_len, format_len-offset-this_format_len);
-		memcpy(format+offset, entry, j);
-		p=format+offset+j;
-	}
-	else
-		p=format+offset+this_format_len;
-	FREE_AND_NULL(entry);
-
-	*(size_t *)(format+sizeof(size_t))=format_len-this_format_len+j-sizeof(size_t)*2-1;
-
-	/*
-	 * Search for next non-%% separateor and set offset
-	 * to zero if none found for wrappers to know when
-	 * they're done.
-	 */
-	for(; *p; p++) {
-		if(*p=='%') {
-			if(*(p+1) == '%')
-				p++;
-			else
-				break;
-		}
-	}
-	if(!*p)
-		*(size_t *)format=0;
-	else
-		*(size_t *)format=p-format;
-	return(format);
-}
-
-char* xp_asprintf_start(const char *format)
-{
-	char	*ret;
-	char	*p;
-
-	ret=(char *)malloc(strlen(format)+1+((sizeof(size_t)*2)));
-	if(ret==NULL)
-		return(NULL);
-	/* Place current offset at the start of the buffer */
-	strcpy(ret+sizeof(size_t)*2,format);
-	/* Place the current length after the offset */
-	*(size_t *)(ret+sizeof(size_t))=strlen(format);
-
-	/*
-	 * Find the next non %% format, leaving %% as it is
-	 */
-	for(p=ret+sizeof(size_t)*2; *p; p++) {
-		if(*p=='%') {
-			if(*(p+1) == '%')
-				p++;
-			else
-				break;
-		}
-	}
-	if(!*p)
-		*(size_t *)ret=0;
-	else
-		*(size_t *)ret=p-ret;
-	return(ret);
-}
-
-char* xp_asprintf_end(char *format, size_t *lenret)
-{
-	char	*p;
-	size_t	len;
-	size_t	end_len;
-
-	len=*(size_t *)(format+sizeof(size_t));
-	end_len=len;
-	for(p=format+sizeof(size_t)*2; len; p++, len--) {
-		if(*p=='%' && *(p+1)=='%') {
-			memmove(p, p+1, len--);
-			end_len--;
-		}
-	}
-	memmove(format, format+sizeof(size_t)*2, end_len+1);
-	if(lenret)
-		*lenret=end_len;
-	return(format);
-}
-
-char* xp_vasprintf(const char *format, va_list va)
-{
-	char	*working;
-	char	*next;
-	int		type;
-
-	next=xp_asprintf_start(format);
-	if(next==NULL)
-		return(NULL);
-	working=next;
-	while(*(size_t *)working) {
-		type=xp_printf_get_type(working);
-		switch(type) {
-			case 0:
-				free(working);
-				return(NULL);
-			case XP_PRINTF_TYPE_CHAR:
-			case XP_PRINTF_TYPE_INT:	/* Also includes char and short */
-				next=xp_asprintf_next(working, type, va_arg(va, int));
-				break;
-			case XP_PRINTF_TYPE_UINT:	/* Also includes char and short */
-				next=xp_asprintf_next(working, type, va_arg(va, unsigned int));
-				break;
-			case XP_PRINTF_TYPE_LONG:
-				next=xp_asprintf_next(working, type, va_arg(va, long));
-				break;
-			case XP_PRINTF_TYPE_ULONG:
-				next=xp_asprintf_next(working, type, va_arg(va, unsigned long));
-				break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-			case XP_PRINTF_TYPE_LONGLONG:
-				next=xp_asprintf_next(working, type, va_arg(va, long long));
-				break;
-			case XP_PRINTF_TYPE_ULONGLONG:
-				next=xp_asprintf_next(working, type, va_arg(va, unsigned long long));
-				break;
-#endif
-			case XP_PRINTF_TYPE_CHARP:
-				next=xp_asprintf_next(working, type, va_arg(va, char *));
-				break;
-			case XP_PRINTF_TYPE_DOUBLE:
-				next=xp_asprintf_next(working, type, va_arg(va, double));
-				break;
-			case XP_PRINTF_TYPE_LONGDOUBLE:
-				next=xp_asprintf_next(working, type, va_arg(va, long double));
-				break;
-			case XP_PRINTF_TYPE_VOIDP:
-				next=xp_asprintf_next(working, type, va_arg(va, void *));
-				break;
-			case XP_PRINTF_TYPE_SIZET:
-				next=xp_asprintf_next(working, type, va_arg(va, size_t));
-				break;
-		}
-		if(next==NULL) {
-			free(working);
-			return(NULL);
-		}
-		working=next;
-	}
-	next=xp_asprintf_end(working, NULL);
-	if(next==NULL) {
-		free(working);
-		return(NULL);
-	}
-	return(next);
-}
-
-char* xp_asprintf(const char *format, ...)
-{
-	char	*ret;
-	va_list	va;
-
-	va_start(va, format);
-	ret=xp_vasprintf(format, va);
-	va_end(va);
-	return(ret);
-}
-
-#if defined(XP_PRINTF_TEST)
-
-int main(int argc, char *argv[])
-{
-	char	*format;
-	char	*p;
-	int	i,j;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-	long long L;
-#endif
-	long l;
-	char *cp;
-	double d;
-	float f;
-	long double D;
-
-	p=xp_asprintf("%%%%%*.*f %% %%%ss %cs %*.*lu",3,3,123.123456789,"%llutesting%",32,3,3,123);
-	printf("%s\n",p);
-	free(p);
-	if(argc < 2)
-		return(1);
-
-	format=argv[1];
-	format=xp_asprintf_start(format);
-	for(j=2; j<argc; j++) {
-		switch(argv[j][0]) {
-			case 'f':
-				f=(float)atof(argv[j]+1);
-				p=xp_asprintf_next(format,XP_PRINTF_CONVERT|XP_PRINTF_TYPE_FLOAT,f);
-				break;
-			case 'd':
-				d=atof(argv[j]+1);
-				p=xp_asprintf_next(format,XP_PRINTF_CONVERT|XP_PRINTF_TYPE_DOUBLE,d);
-				break;
-			case 'D':
-				/* Don't know of a thing that converts a string to a long double */
-				D=atof(argv[j]+1);
-				p=xp_asprintf_next(format,XP_PRINTF_CONVERT|XP_PRINTF_TYPE_LONGDOUBLE,D);
-				break;
-			case 'i':
-				i=atoi(argv[j]+1);
-				p=xp_asprintf_next(format,XP_PRINTF_CONVERT|XP_PRINTF_TYPE_INT,i);
-				break;
-			case 'l':
-				l=atol(argv[j]+1);
-				p=xp_asprintf_next(format,XP_PRINTF_CONVERT|XP_PRINTF_TYPE_LONG,l);
-				break;
-#if defined(XP_PRINTF_TYPE_LONGLONG)
-			case 'L':
-				L=strtoll(argv[j]+1, NULL, 10);
-				p=xp_asprintf_next(format,XP_PRINTF_CONVERT|XP_PRINTF_TYPE_LONGLONG,L);
-				break;
-#endif
-			case 's':
-				cp=argv[j]+1;
-				p=xp_asprintf_next(format,XP_PRINTF_CONVERT|XP_PRINTF_TYPE_CHARP,cp);
-				break;
-		}
-		if(p==NULL) {
-			printf("Failed converting on item after %s\n",format);
-			return(1);
-		}
-		format=p;
-	}
-	p=xp_asprintf_end(format, NULL);
-	printf("At end, value is: '%s'\n",p);
-	free(p);
-}
-
-#endif
diff --git a/xpdev/xpprintf.h b/xpdev/xpprintf.h
deleted file mode 100644
index 940c68ec4136b3220aba817e606914e1390e382b..0000000000000000000000000000000000000000
--- a/xpdev/xpprintf.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* Deuce's vs[n]printf() replacement */
-
-/****************************************************************************
- * @format.tab-size 4		(Plain Text/Source Code File Header)			*
- * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
- *																			*
- * Copyright Rob Swindell - http://www.synchro.net/copyright.html			*
- *																			*
- * This library is free software; you can redistribute it and/or			*
- * modify it under the terms of the GNU Lesser General Public License		*
- * as published by the Free Software Foundation; either version 2			*
- * of the License, or (at your option) any later version.					*
- * See the GNU Lesser General Public License for more details: lgpl.txt or	*
- * http://www.fsf.org/copyleft/lesser.html									*
- *																			*
- * For Synchronet coding style and modification guidelines, see				*
- * http://www.synchro.net/source.html										*
- *																			*
- * Note: If this box doesn't appear square, then you need to fix your tabs.	*
- ****************************************************************************/
-
-#ifndef _XPPRINTF_H_
-#define _XPPRINTF_H_
-
-#include <stdarg.h>
-#include "wrapdll.h"
-
-/* Supported printf argument types */
-#define XP_PRINTF_TYPE_AUTO			0
-#define XP_PRINTF_TYPE_INT			1
-#define XP_PRINTF_TYPE_UINT			2
-#define XP_PRINTF_TYPE_CHAR			3		/* Assumes a signed char */
-#define XP_PRINTF_TYPE_SCHAR		XP_PRINTF_TYPE_INT
-#define XP_PRINTF_TYPE_UCHAR		XP_PRINTF_TYPE_UINT
-#define XP_PRINTF_TYPE_SHORT		XP_PRINTF_TYPE_INT
-#define XP_PRINTF_TYPE_USHORT		XP_PRINTF_TYPE_UINT
-#define XP_PRINTF_TYPE_LONG			4
-#define XP_PRINTF_TYPE_ULONG		5
-#if !defined(_MSC_VER) && !defined(__BORLANDC__)
-	#define XP_PRINTF_TYPE_LONGLONG		6
-	#define XP_PRINTF_TYPE_ULONGLONG	7
-#endif
-#define XP_PRINTF_TYPE_CHARP		8
-#define XP_PRINTF_TYPE_DOUBLE		9
-#define XP_PRINTF_TYPE_FLOAT		XP_PRINTF_TYPE_DOUBLE	/* Floats are promoted to doubles */
-#define XP_PRINTF_TYPE_LONGDOUBLE	10
-#define XP_PRINTF_TYPE_VOIDP		11
-#define XP_PRINTF_TYPE_INTMAX		12	/* Not currently implemented */
-#define XP_PRINTF_TYPE_UINTMAX		13	/* Not currently implemented */
-#define XP_PRINTF_TYPE_PTRDIFF		14	/* Not currently implemented */
-#define XP_PRINTF_TYPE_SIZET		15
-
-#define XP_PRINTF_CONVERT		(1<<31)	/* OR with type to request a conversion - Not implemented */
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-DLLEXPORT void xp_asprintf_free(char *format);
-DLLEXPORT char* xp_asprintf_start(const char *format);
-DLLEXPORT char* xp_asprintf_next(char *format, int type, ...);
-DLLEXPORT char* xp_asprintf_end(char *format, size_t *endlen);
-DLLEXPORT char* xp_asprintf(const char *format, ...);
-DLLEXPORT char* xp_vasprintf(const char *format, va_list va);
-DLLEXPORT int xp_printf_get_type(const char *format);
-#if defined(_MSC_VER) || defined(__MSVCRT__) || defined(__BORLANDC__)
-DLLEXPORT int vasprintf(char **strptr, const char *format, va_list va);
-DLLEXPORT int asprintf(char **strptr, const char *format, ...);
-#endif
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/xpdev/xpsem.c b/xpdev/xpsem.c
deleted file mode 100644
index 2c63ce7a683155a922f73e2b7b60a40e79639ddd..0000000000000000000000000000000000000000
--- a/xpdev/xpsem.c
+++ /dev/null
@@ -1,295 +0,0 @@
-/*
- * $Id: xpsem.c,v 1.13 2012/01/26 01:44:02 deuce Exp $
- *
- * Copyright (C) 2000 Jason Evans <jasone@freebsd.org>.
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice(s), this list of conditions and the following disclaimer as
- *    the first lines of this file unmodified other than the possible
- *    addition of one or more copyright notices.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice(s), this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/libc_r/uthread/uthread_sem.c,v 1.3.2.1 2000/07/18 02:05:57 jasone Exp $
- */
-
-#include <errno.h>
-#include "xpsem.h"
-#include <pthread.h>
-#include <sys/time.h>
-#include <stdlib.h>
-#include "gen_defs.h"
-#include "genwrap.h"
-
-int
-xp_sem_init(xp_sem_t *sem, int pshared, unsigned int value)
-{
-	int	retval;
-
-	/*
-	 * Range check the arguments.
-	 */
-	if (pshared != 0) {
-		/*
-		 * The user wants a semaphore that can be shared among
-		 * processes, which this implementation can't do.  Sounds like a
-		 * permissions problem to me (yeah right).
-		 */
-		errno = EPERM;
-		retval = -1;
-		goto RETURN;
-	}
-
-	if (value > XP_SEM_VALUE_MAX) {
-		errno = EINVAL;
-		retval = -1;
-		goto RETURN;
-	}
-
-	*sem = (xp_sem_t)malloc(sizeof(struct xp_sem));
-	if (*sem == NULL) {
-		errno = ENOSPC;
-		retval = -1;
-		goto RETURN;
-	}
-
-	/*
-	 * Initialize the semaphore.
-	 */
-	if (pthread_mutex_init(&(*sem)->lock, NULL) != 0) {
-		free(*sem);
-		errno = ENOSPC;
-		retval = -1;
-		goto RETURN;
-	}
-
-	if (pthread_cond_init(&(*sem)->gtzero, NULL) != 0) {
-		while(pthread_mutex_destroy(&(*sem)->lock)==EBUSY)
-			SLEEP(1);
-		free(*sem);
-		errno = ENOSPC;
-		retval = -1;
-		goto RETURN;
-	}
-	
-	(*sem)->count = (uint32_t)value;
-	(*sem)->nwaiters = 0;
-	(*sem)->magic = XP_SEM_MAGIC;
-
-	retval = 0;
-  RETURN:
-	return retval;
-}
-
-int
-xp_sem_destroy(xp_sem_t *sem)
-{
-	int	retval;
-	
-	_SEM_CHECK_VALIDITY(sem);
-
-	/* Make sure there are no waiters. */
-	pthread_mutex_lock(&(*sem)->lock);
-	if ((*sem)->nwaiters > 0) {
-		pthread_mutex_unlock(&(*sem)->lock);
-		errno = EBUSY;
-		retval = -1;
-		goto RETURN;
-	}
-	pthread_mutex_unlock(&(*sem)->lock);
-	
-	while(pthread_mutex_destroy(&(*sem)->lock)==EBUSY)
-		SLEEP(1);
-	while(pthread_cond_destroy(&(*sem)->gtzero)==EBUSY)
-		SLEEP(1);
-	(*sem)->magic = 0;
-
-	free(*sem);
-
-	retval = 0;
-  RETURN:
-	return retval;
-}
-
-xp_sem_t *
-xp_sem_open(const char *name, int oflag, ...)
-{
-	errno = ENOSYS;
-	return XP_SEM_FAILED;
-}
-
-int
-xp_sem_close(xp_sem_t *sem)
-{
-	errno = ENOSYS;
-	return -1;
-}
-
-int
-xp_sem_unlink(const char *name)
-{
-	errno = ENOSYS;
-	return -1;
-}
-
-int
-xp_sem_wait(xp_sem_t *sem)
-{
-	int	retval;
-
-	_SEM_CHECK_VALIDITY(sem);
-
-	pthread_mutex_lock(&(*sem)->lock);
-
-	while ((*sem)->count == 0) {
-		(*sem)->nwaiters++;
-		pthread_cond_wait(&(*sem)->gtzero, &(*sem)->lock);
-		(*sem)->nwaiters--;
-	}
-	(*sem)->count--;
-
-	pthread_mutex_unlock(&(*sem)->lock);
-
-	retval = 0;
-  RETURN:
-
-	return retval;
-}
-
-int
-xp_sem_trywait(xp_sem_t *sem)
-{
-	int	retval;
-
-	_SEM_CHECK_VALIDITY(sem);
-
-	pthread_mutex_lock(&(*sem)->lock);
-
-	if ((*sem)->count > 0) {
-		(*sem)->count--;
-		retval = 0;
-	} else {
-		errno = EAGAIN;
-		retval = -1;
-	}
-	
-	pthread_mutex_unlock(&(*sem)->lock);
-
-  RETURN:
-	return retval;
-}
-
-int
-xp_sem_post(xp_sem_t *sem)
-{
-	int	retval;
-
-	_SEM_CHECK_VALIDITY(sem);
-
-	pthread_mutex_lock(&(*sem)->lock);
-
-	(*sem)->count++;
-	if ((*sem)->nwaiters > 0) {
-		/*
-		 * We must use pthread_cond_broadcast() rather than
-		 * pthread_cond_signal() in order to assure that the highest
-		 * priority thread is run by the scheduler, since
-		 * pthread_cond_signal() signals waiting threads in FIFO order.
-		 */
-		pthread_cond_broadcast(&(*sem)->gtzero);
-	}
-
-	pthread_mutex_unlock(&(*sem)->lock);
-
-	retval = 0;
-  RETURN:
-	return retval;
-}
-
-int
-xp_sem_getvalue(xp_sem_t *sem, int *sval)
-{
-	int	retval;
-
-	_SEM_CHECK_VALIDITY(sem);
-
-	pthread_mutex_lock(&(*sem)->lock);
-	*sval = (int)(*sem)->count;
-	pthread_mutex_unlock(&(*sem)->lock);
-
-	retval = 0;
-  RETURN:
-	return retval;
-}
-
-int
-xp_sem_setvalue(xp_sem_t *sem, int sval)
-{
-	int	retval;
-
-	_SEM_CHECK_VALIDITY(sem);
-
-	pthread_mutex_lock(&(*sem)->lock);
-	(*sem)->count=(uint32_t)sval;
-	if (((*sem)->nwaiters > 0) && sval) {
-		/*
-		 * We must use pthread_cond_broadcast() rather than
-		 * pthread_cond_signal() in order to assure that the highest
-		 * priority thread is run by the scheduler, since
-		 * pthread_cond_signal() signals waiting threads in FIFO order.
-		 */
-		pthread_cond_broadcast(&(*sem)->gtzero);
-	}
-	pthread_mutex_unlock(&(*sem)->lock);
-
-	retval = 0;
-  RETURN:
-	return retval;
-}
-
-int
-xp_sem_timedwait(xp_sem_t *sem, const struct timespec *abs_timeout)
-{
-	int	retval=0;
-
-	_SEM_CHECK_VALIDITY(sem);
-
-	pthread_mutex_lock(&(*sem)->lock);
-
-	while ((*sem)->count == 0) {
-		(*sem)->nwaiters++;
-		retval=pthread_cond_timedwait(&(*sem)->gtzero, &(*sem)->lock, abs_timeout);
-		(*sem)->nwaiters--;
-		if(retval)  {
-			errno=retval;
-			retval=-1;
-			break;
-		}
-	}
-	if(retval==0)
-		(*sem)->count--;
-
-	pthread_mutex_unlock(&(*sem)->lock);
-
-  RETURN:
-
-	return retval;
-}
diff --git a/xpdev/xpsem.h b/xpdev/xpsem.h
deleted file mode 100644
index 1caa83c011577916a3026dd64b8c1b369b210f61..0000000000000000000000000000000000000000
--- a/xpdev/xpsem.h
+++ /dev/null
@@ -1,121 +0,0 @@
-#ifndef _XPSEM_H_
-#define _XPSEM_H_
-
-/*
- * $Id: xpsem.h,v 1.10 2012/01/26 01:44:02 deuce Exp $
- *
- * semaphore.h: POSIX 1003.1b semaphores
-*/
-
-/*-
- * Copyright (c) 1996, 1997
- *	HD Associates, Inc.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *	This product includes software developed by HD Associates, Inc
- * 4. Neither the name of the author nor the names of any co-contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY HD ASSOCIATES AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL HD ASSOCIATES OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/sys/posix4/semaphore.h,v 1.6 2000/01/20 07:55:42 jasone Exp $
- */
-
-#include <limits.h>
-
-#include <sys/types.h>
-#include <fcntl.h>
-#include <pthread.h>
-#include <inttypes.h>
-
-/* Opaque type definition. */
-struct xp_sem;
-typedef struct xp_sem *xp_sem_t;
-
-#define XP_SEM_FAILED	((xp_sem_t *)0)
-#define XP_SEM_VALUE_MAX	UINT_MAX
-
-#if defined(__solaris__)
-typedef unsigned int	uint32_t;
-#endif
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-int	 xp_sem_init (xp_sem_t *, int, unsigned int);
-int	 xp_sem_destroy (xp_sem_t *);
-xp_sem_t	*xp_sem_open (const char *, int, ...);
-int	 xp_sem_close (xp_sem_t *);
-int	 xp_sem_unlink (const char *);
-int	 xp_sem_wait (xp_sem_t *);
-int	 xp_sem_trywait (xp_sem_t *);
-int	 xp_sem_post (xp_sem_t *);
-int	 xp_sem_getvalue (xp_sem_t *, int *);
-int	 xp_sem_setvalue (xp_sem_t *, int);
-int  xp_sem_timedwait (xp_sem_t *sem, const struct timespec *abs_timeout);
-#if defined(__cplusplus)
-}
-#endif
-
-/*
-* $Id: xpsem.h,v 1.10 2012/01/26 01:44:02 deuce Exp $
-*/
-
-/* Begin thread_private.h kluge */
-/*
- * These come out of (or should go into) thread_private.h - rather than have 
- * to copy (or symlink) the files from the source tree these definitions are 
- * inlined here.  Obviously these go away when this module is part of libc.
-*/
-
-struct xp_sem {
-#define XP_SEM_MAGIC       ((uint32_t) 0x09fa4012)
-        uint32_t       magic;
-        pthread_mutex_t lock;
-        pthread_cond_t  gtzero;
-        uint32_t       count;
-        uint32_t       nwaiters;
-};
-
-extern pthread_once_t _thread_init_once;
-extern int _threads_initialized;
-extern void  _thread_init (void);
-#define THREAD_INIT() \
-	(void) pthread_once(&_thread_init_once, _thread_init)
-#define THREAD_SAFE() \
-	(_threads_initialized != 0)
-
-#define _SEM_CHECK_VALIDITY(sem)		\
-	if (sem==NULL || (*(sem))->magic != XP_SEM_MAGIC) {	\
-		errno = EINVAL;			\
-		retval = -1;			\
-		goto RETURN;			\
-	}
-
-struct pthread_rwlockattr {
-        int             pshared;
-	};
-
-/* End thread_private.h kluge */
-
-#endif /* _XPSEM_H_ */
diff --git a/xpdev/xptime.c b/xpdev/xptime.c
deleted file mode 100644
index faa51a666aa233b0aed2887d3fe50948bacf68fc..0000000000000000000000000000000000000000
--- a/xpdev/xptime.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/* $Id: xptime.c,v 1.4 2018/02/14 20:44:00 deuce Exp $ */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <string.h>
-#ifndef __unix__
-#include <dos.h>
-#endif
-#include <ctype.h>
-#define USE_SNPRINTF	/* we don't need safe_snprintf for this project */
-#include "genwrap.h"
-#include "datewrap.h"
-#include "xpdatetime.h"
-
-int main(int argc, char **argv)
-{
-	char			str[256];
-	char			revision[16];
-	time_t			t;
-	struct tm*		tp;
-	struct tm		tm;
-	int				argn=1;
-	xpDateTime_t	xpDateTime;
-
-	printf("\n");
-	DESCRIBE_COMPILER(str);
-	sscanf("$Revision: 1.4 $", "%*s %s", revision);
-
-	printf("Rev %s Built " __DATE__ " " __TIME__ " with %s\n\n", revision, str);
-
-	if(argc<2)
-		printf("usage: xptime [-z] <date_str || time_t>\n\n");
-
-	if(argc>1 && stricmp(argv[1],"-z")==0)	{ /* zulu/GMT/UTC timezone */
-		printf("Setting timezone to Zulu/GMT/UTC\n\n");
-		putenv("TZ=UTC0");
-		argn++;
-	}
-	tzset();
-
-	if((t=checktime())!=0L)
-		printf("!time() result diverges from standard by: %ld seconds\n\n",t);
-
-	printf("Current timezone: %d\n", xpTimeZone_local());
-	printf("\n");
-
-	if(argc>argn && strlen(argv[argn]) > 10) {
-		xpDateTime=isoDateTimeStr_parse(argv[argn]);
-		t=xpDateTime_to_time(xpDateTime);
-		printf("Using specified date and time:\n");
-	} else if(argc>argn) {
-		printf("Using specified time_t value:\n");
-		t=strtoul(argv[argn],NULL,0);
-		xpDateTime=time_to_xpDateTime(t,xpTimeZone_LOCAL);
-	} else {
-		printf("Using current time:\n");
-		xpDateTime=xpDateTime_now();
-		t=time(NULL);
-	}
-	printf("%-8s %-10ld  (0x%08lX)    ISO %s\n"
-		,"time_t"
-		,(long)t, (long)t
-		,xpDateTime_to_isoDateTimeStr(xpDateTime
-			,NULL, " ", NULL
-			,/* precision: */3
-			, str, sizeof(str)));
-	{
-		const char* fmt="%-8s %.24s    ISO %s\n";
-
-		if((tp=localtime_r(&t, &tm))==NULL)
-			printf("localtime() failure\n");
-		else
-			printf(fmt
-				,"local"
-				,asctime(tp)
-				,xpDateTime_to_isoDateTimeStr(
-					time_to_xpDateTime(t, xpTimeZone_LOCAL)
-					,NULL, " ", NULL
-					,/*precision: */0
-					,str, sizeof(str))
-				);
-		if((tp=gmtime_r(&t, &tm))==NULL)
-			printf("gmtime() failure\n");
-		else
-			printf(fmt
-				,"GMT"
-				,asctime(tp)
-				,xpDateTime_to_isoDateTimeStr(
-					gmtime_to_xpDateTime(t)
-					,NULL, " ", NULL
-					,/*precision: */0
-					,str, sizeof(str))
-				);
-	}
-
-	return(0);
-}