moved common files back to src root
authorDiederick Niehorster <dcnieho@gmail.com>
Sun, 11 Mar 2012 14:59:56 +0000 (14:59 +0000)
committerDiederick Niehorster <dcnieho@gmail.com>
Sun, 11 Mar 2012 14:59:56 +0000 (14:59 +0000)
renamed (a bunch of) the freeglut_ prefixes to fg_
did the necessary edits of the source files (I hope)

git-svn-id: svn+ssh://svn.code.sf.net/p/freeglut/code/trunk/freeglut/freeglut@1111 7f0cb862-5218-0410-a997-914c9d46530a

84 files changed:
src/Common/freeglut_callbacks.c [deleted file]
src/Common/freeglut_cursor.c [deleted file]
src/Common/freeglut_display.c [deleted file]
src/Common/freeglut_ext.c [deleted file]
src/Common/freeglut_font.c [deleted file]
src/Common/freeglut_font_data.c [deleted file]
src/Common/freeglut_gamemode.c [deleted file]
src/Common/freeglut_geometry.c [deleted file]
src/Common/freeglut_init.c [deleted file]
src/Common/freeglut_input_devices.c [deleted file]
src/Common/freeglut_internal.h [deleted file]
src/Common/freeglut_joystick.c [deleted file]
src/Common/freeglut_main.c [deleted file]
src/Common/freeglut_menu.c [deleted file]
src/Common/freeglut_misc.c [deleted file]
src/Common/freeglut_overlay.c [deleted file]
src/Common/freeglut_spaceball.c [deleted file]
src/Common/freeglut_state.c [deleted file]
src/Common/freeglut_stroke_mono_roman.c [deleted file]
src/Common/freeglut_stroke_roman.c [deleted file]
src/Common/freeglut_structure.c [deleted file]
src/Common/freeglut_teapot.c [deleted file]
src/Common/freeglut_teapot_data.h [deleted file]
src/Common/freeglut_videoresize.c [deleted file]
src/Common/freeglut_window.c [deleted file]
src/Common/freeglutdll.def [deleted file]
src/Common/xparsegeometry_repl.c [deleted file]
src/Common/xparsegeometry_repl.h [deleted file]
src/fg_callbacks.c [new file with mode: 0644]
src/fg_cursor.c [new file with mode: 0644]
src/fg_display.c [new file with mode: 0644]
src/fg_ext.c [new file with mode: 0644]
src/fg_font.c [new file with mode: 0644]
src/fg_font_data.c [new file with mode: 0644]
src/fg_gamemode.c [new file with mode: 0644]
src/fg_geometry.c [new file with mode: 0644]
src/fg_init.c [new file with mode: 0644]
src/fg_input_devices.c [new file with mode: 0644]
src/fg_internal.h [new file with mode: 0644]
src/fg_joystick.c [new file with mode: 0644]
src/fg_main.c [new file with mode: 0644]
src/fg_menu.c [new file with mode: 0644]
src/fg_misc.c [new file with mode: 0644]
src/fg_overlay.c [new file with mode: 0644]
src/fg_spaceball.c [new file with mode: 0644]
src/fg_state.c [new file with mode: 0644]
src/fg_stroke_mono_roman.c [new file with mode: 0644]
src/fg_stroke_roman.c [new file with mode: 0644]
src/fg_structure.c [new file with mode: 0644]
src/fg_teapot.c [new file with mode: 0644]
src/fg_teapot_data.h [new file with mode: 0644]
src/fg_videoresize.c [new file with mode: 0644]
src/fg_window.c [new file with mode: 0644]
src/freeglutdll.def [new file with mode: 0644]
src/mswin/freeglut_cursor_mswin.c
src/mswin/freeglut_display_mswin.c
src/mswin/freeglut_ext_mswin.c
src/mswin/freeglut_gamemode_mswin.c
src/mswin/freeglut_init_mswin.c
src/mswin/freeglut_input_devices_mswin.c
src/mswin/freeglut_joystick_mswin.c
src/mswin/freeglut_main_mswin.c
src/mswin/freeglut_menu_mswin.c
src/mswin/freeglut_spaceball_mswin.c
src/mswin/freeglut_state_mswin.c
src/mswin/freeglut_structure_mswin.c
src/mswin/freeglut_window_mswin.c
src/util/xparsegeometry_repl.c [new file with mode: 0644]
src/util/xparsegeometry_repl.h [new file with mode: 0644]
src/x11/freeglut_cursor_x11.c
src/x11/freeglut_display_x11.c
src/x11/freeglut_ext_x11.c
src/x11/freeglut_gamemode_x11.c
src/x11/freeglut_glutfont_definitions_x11.c
src/x11/freeglut_init_x11.c
src/x11/freeglut_input_devices_x11.c
src/x11/freeglut_joystick_x11.c
src/x11/freeglut_main_x11.c
src/x11/freeglut_menu_x11.c
src/x11/freeglut_spaceball_x11.c
src/x11/freeglut_state_x11.c
src/x11/freeglut_structure_x11.c
src/x11/freeglut_window_x11.c
src/x11/freeglut_xinput_x11.c

diff --git a/src/Common/freeglut_callbacks.c b/src/Common/freeglut_callbacks.c
deleted file mode 100644 (file)
index a40f7da..0000000
+++ /dev/null
@@ -1,412 +0,0 @@
-/*
- * freeglut_callbacks.c
- *
- * The callbacks setting methods.
- *
- * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
- * Written by Pawel W. Olszta, <olszta@sourceforge.net>
- * Creation date: Fri Dec 3 1999
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#include <GL/freeglut.h>
-#include "freeglut_internal.h"
-
-/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
-
-/*
- * All of the callbacks setting methods can be generalized to this:
- */
-#define SET_CALLBACK(a)                                         \
-do                                                              \
-{                                                               \
-    if( fgStructure.CurrentWindow == NULL )                     \
-        return;                                                 \
-    SET_WCB( ( *( fgStructure.CurrentWindow ) ), a, callback ); \
-} while( 0 )
-
-/*
- * Sets the Display callback for the current window
- */
-void FGAPIENTRY glutDisplayFunc( void (* callback)( void ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutDisplayFunc" );
-    if( !callback )
-        fgError( "Fatal error in program.  NULL display callback not "
-                 "permitted in GLUT 3.0+ or freeglut 2.0.1+" );
-    SET_CALLBACK( Display );
-}
-
-/*
- * Sets the Reshape callback for the current window
- */
-void FGAPIENTRY glutReshapeFunc( void (* callback)( int, int ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutReshapeFunc" );
-    SET_CALLBACK( Reshape );
-}
-
-/*
- * Sets the Keyboard callback for the current window
- */
-void FGAPIENTRY glutKeyboardFunc( void (* callback)
-                                  ( unsigned char, int, int ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutKeyboardFunc" );
-    SET_CALLBACK( Keyboard );
-}
-
-/*
- * Sets the Special callback for the current window
- */
-void FGAPIENTRY glutSpecialFunc( void (* callback)( int, int, int ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSpecialFunc" );
-    SET_CALLBACK( Special );
-}
-
-/*
- * Sets the global idle callback
- */
-void FGAPIENTRY glutIdleFunc( void (* callback)( void ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutIdleFunc" );
-    fgState.IdleCallback = callback;
-}
-
-/*
- * Sets the Timer callback for the current window
- */
-void FGAPIENTRY glutTimerFunc( unsigned int timeOut, void (* callback)( int ),
-                               int timerID )
-{
-    SFG_Timer *timer, *node;
-
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutTimerFunc" );
-
-    if( (timer = fgState.FreeTimers.Last) )
-    {
-        fgListRemove( &fgState.FreeTimers, &timer->Node );
-    }
-    else
-    {
-        if( ! (timer = malloc(sizeof(SFG_Timer))) )
-            fgError( "Fatal error: "
-                     "Memory allocation failure in glutTimerFunc()" );
-    }
-
-    timer->Callback  = callback;
-    timer->ID        = timerID;
-    timer->TriggerTime = fgElapsedTime() + timeOut;
-
-    for( node = fgState.Timers.First; node; node = node->Node.Next )
-    {
-        if( node->TriggerTime > timer->TriggerTime )
-            break;
-    }
-
-    fgListInsert( &fgState.Timers, &node->Node, &timer->Node );
-}
-
-/*
- * Sets the Visibility callback for the current window.
- */
-static void fghVisibility( int status )
-{
-    int glut_status = GLUT_VISIBLE;
-
-    FREEGLUT_INTERNAL_ERROR_EXIT_IF_NOT_INITIALISED ( "Visibility Callback" );
-    freeglut_return_if_fail( fgStructure.CurrentWindow );
-
-    if( ( GLUT_HIDDEN == status )  || ( GLUT_FULLY_COVERED == status ) )
-        glut_status = GLUT_NOT_VISIBLE;
-    INVOKE_WCB( *( fgStructure.CurrentWindow ), Visibility, ( glut_status ) );
-}
-
-void FGAPIENTRY glutVisibilityFunc( void (* callback)( int ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutVisibilityFunc" );
-    SET_CALLBACK( Visibility );
-
-    if( callback )
-        glutWindowStatusFunc( fghVisibility );
-    else
-        glutWindowStatusFunc( NULL );
-}
-
-/*
- * Sets the keyboard key release callback for the current window
- */
-void FGAPIENTRY glutKeyboardUpFunc( void (* callback)
-                                    ( unsigned char, int, int ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutKeyboardUpFunc" );
-    SET_CALLBACK( KeyboardUp );
-}
-
-/*
- * Sets the special key release callback for the current window
- */
-void FGAPIENTRY glutSpecialUpFunc( void (* callback)( int, int, int ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSpecialUpFunc" );
-    SET_CALLBACK( SpecialUp );
-}
-
-/*
- * Sets the joystick callback and polling rate for the current window
- */
-void FGAPIENTRY glutJoystickFunc( void (* callback)
-                                  ( unsigned int, int, int, int ),
-                                  int pollInterval )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutJoystickFunc" );
-    fgInitialiseJoysticks ();
-
-    if ( ( ( fgStructure.CurrentWindow->State.JoystickPollRate < 0 ) ||
-           !FETCH_WCB(*fgStructure.CurrentWindow,Joystick) ) &&  /* Joystick callback was disabled */
-         ( callback && ( pollInterval >= 0 ) ) )               /* but is now enabled */
-        ++fgState.NumActiveJoysticks;
-    else if ( ( ( fgStructure.CurrentWindow->State.JoystickPollRate >= 0 ) &&
-                FETCH_WCB(*fgStructure.CurrentWindow,Joystick) ) &&  /* Joystick callback was enabled */
-              ( !callback || ( pollInterval < 0 ) ) )              /* but is now disabled */
-        --fgState.NumActiveJoysticks;
-
-    SET_CALLBACK( Joystick );
-    fgStructure.CurrentWindow->State.JoystickPollRate = pollInterval;
-
-    fgStructure.CurrentWindow->State.JoystickLastPoll =
-        fgElapsedTime() - fgStructure.CurrentWindow->State.JoystickPollRate;
-
-    if( fgStructure.CurrentWindow->State.JoystickLastPoll < 0 )
-        fgStructure.CurrentWindow->State.JoystickLastPoll = 0;
-}
-
-/*
- * Sets the mouse callback for the current window
- */
-void FGAPIENTRY glutMouseFunc( void (* callback)( int, int, int, int ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutMouseFunc" );
-    SET_CALLBACK( Mouse );
-}
-
-/*
- * Sets the mouse wheel callback for the current window
- */
-void FGAPIENTRY glutMouseWheelFunc( void (* callback)( int, int, int, int ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutMouseWheelFunc" );
-    SET_CALLBACK( MouseWheel );
-}
-
-/*
- * Sets the mouse motion callback for the current window (one or more buttons
- * are pressed)
- */
-void FGAPIENTRY glutMotionFunc( void (* callback)( int, int ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutMotionFunc" );
-    SET_CALLBACK( Motion );
-}
-
-/*
- * Sets the passive mouse motion callback for the current window (no mouse
- * buttons are pressed)
- */
-void FGAPIENTRY glutPassiveMotionFunc( void (* callback)( int, int ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutPassiveMotionFunc" );
-    SET_CALLBACK( Passive );
-}
-
-/*
- * Window mouse entry/leave callback
- */
-void FGAPIENTRY glutEntryFunc( void (* callback)( int ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutEntryFunc" );
-    SET_CALLBACK( Entry );
-}
-
-/*
- * Window destruction callbacks
- */
-void FGAPIENTRY glutCloseFunc( void (* callback)( void ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutCloseFunc" );
-    SET_CALLBACK( Destroy );
-}
-
-void FGAPIENTRY glutWMCloseFunc( void (* callback)( void ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWMCloseFunc" );
-    glutCloseFunc( callback );
-}
-
-/* A. Donev: Destruction callback for menus */
-void FGAPIENTRY glutMenuDestroyFunc( void (* callback)( void ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutMenuDestroyFunc" );
-    if( fgStructure.CurrentMenu )
-        fgStructure.CurrentMenu->Destroy = callback;
-}
-
-/*
- * Deprecated version of glutMenuStatusFunc callback setting method
- */
-void FGAPIENTRY glutMenuStateFunc( void (* callback)( int ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutMenuStateFunc" );
-    fgState.MenuStateCallback = callback;
-}
-
-/*
- * Sets the global menu status callback for the current window
- */
-void FGAPIENTRY glutMenuStatusFunc( void (* callback)( int, int, int ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutMenuStatusFunc" );
-    fgState.MenuStatusCallback = callback;
-}
-
-/*
- * Sets the overlay display callback for the current window
- */
-void FGAPIENTRY glutOverlayDisplayFunc( void (* callback)( void ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutOverlayDisplayFunc" );
-    SET_CALLBACK( OverlayDisplay );
-}
-
-/*
- * Sets the window status callback for the current window
- */
-void FGAPIENTRY glutWindowStatusFunc( void (* callback)( int ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWindowStatusFunc" );
-    SET_CALLBACK( WindowStatus );
-}
-
-/*
- * Sets the spaceball motion callback for the current window
- */
-void FGAPIENTRY glutSpaceballMotionFunc( void (* callback)( int, int, int ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSpaceballMotionFunc" );
-    fgInitialiseSpaceball();
-
-    SET_CALLBACK( SpaceMotion );
-}
-
-/*
- * Sets the spaceball rotate callback for the current window
- */
-void FGAPIENTRY glutSpaceballRotateFunc( void (* callback)( int, int, int ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSpaceballRotateFunc" );
-    fgInitialiseSpaceball();
-
-    SET_CALLBACK( SpaceRotation );
-}
-
-/*
- * Sets the spaceball button callback for the current window
- */
-void FGAPIENTRY glutSpaceballButtonFunc( void (* callback)( int, int ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSpaceballButtonFunc" );
-    fgInitialiseSpaceball();
-
-    SET_CALLBACK( SpaceButton );
-}
-
-/*
- * Sets the button box callback for the current window
- */
-void FGAPIENTRY glutButtonBoxFunc( void (* callback)( int, int ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutButtonBoxFunc" );
-    SET_CALLBACK( ButtonBox );
-}
-
-/*
- * Sets the dials box callback for the current window
- */
-void FGAPIENTRY glutDialsFunc( void (* callback)( int, int ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutDialsFunc" );
-    SET_CALLBACK( Dials );
-}
-
-/*
- * Sets the tablet motion callback for the current window
- */
-void FGAPIENTRY glutTabletMotionFunc( void (* callback)( int, int ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutTabletMotionFunc" );
-    SET_CALLBACK( TabletMotion );
-}
-
-/*
- * Sets the tablet buttons callback for the current window
- */
-void FGAPIENTRY glutTabletButtonFunc( void (* callback)( int, int, int, int ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutTabletButtonFunc" );
-    SET_CALLBACK( TabletButton );
-}
-
-/*
- * Sets the multi-pointer entry callback for the current window
- */
-void FGAPIENTRY glutMultiEntryFunc( void (* callback)(int, int ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutMultiEntryFunc" );
-    SET_CALLBACK( MultiEntry );
-}
-
-/*
- * Sets the multi-pointer button callback for the current window
- */
-void FGAPIENTRY glutMultiButtonFunc( void (* callback)(int, int, int, int, int ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutMultiButtonFunc" );
-    SET_CALLBACK( MultiButton );
-}
-
-/*
- * Sets the multi-pointer motion callback for the current window
- */
-void FGAPIENTRY glutMultiMotionFunc( void (* callback)(int, int, int ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutMultiMotionFunc" );
-    SET_CALLBACK( MultiMotion );
-}
-
-/*
- * Sets the multi-pointer passive motion callback for the current window
- */
-void FGAPIENTRY glutMultiPassiveFunc( void (* callback)(int, int, int ) )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutMultiPassiveFunc" );
-    SET_CALLBACK( MultiPassive );
-}
-
-/*** END OF FILE ***/
diff --git a/src/Common/freeglut_cursor.c b/src/Common/freeglut_cursor.c
deleted file mode 100644 (file)
index b9254c1..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * freeglut_cursor.c
- *
- * The mouse cursor related stuff.
- *
- * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
- * Written by Pawel W. Olszta, <olszta@sourceforge.net>
- * Creation date: Thu Dec 16 1999
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#include <GL/freeglut.h>
-#include "freeglut_internal.h"
-
-/*
- * TODO BEFORE THE STABLE RELEASE:
- *  glutSetCursor()     -- Win32 mappings are incomplete.
- *
- * It would be good to use custom mouse cursor shapes, and introduce
- * an option to display them using glBitmap() and/or texture mapping,
- * apart from the windowing system version.
- */
-
-/* -- PRIVATE FUNCTIONS --------------------------------------------------- */
-
-extern void fgPlatformSetCursor ( SFG_Window *window, int cursorID );
-extern void fgPlatformWarpPointer ( int x, int y );
-
-
-
-/* -- INTERNAL FUNCTIONS ---------------------------------------------------- */
-void fgSetCursor ( SFG_Window *window, int cursorID )
-{
-    fgPlatformSetCursor ( window, cursorID );
-}
-
-
-/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
-
-/*
- * Set the cursor image to be used for the current window
- */
-void FGAPIENTRY glutSetCursor( int cursorID )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSetCursor" );
-    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutSetCursor" );
-
-    fgPlatformSetCursor ( fgStructure.CurrentWindow, cursorID );
-    fgStructure.CurrentWindow->State.Cursor = cursorID;
-}
-
-/*
- * Moves the mouse pointer to given window coordinates
- */
-void FGAPIENTRY glutWarpPointer( int x, int y )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWarpPointer" );
-    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutWarpPointer" );
-
-    fgPlatformWarpPointer ( x, y );
-}
-
-/*** END OF FILE ***/
diff --git a/src/Common/freeglut_display.c b/src/Common/freeglut_display.c
deleted file mode 100644 (file)
index 6421be4..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * freeglut_display.c
- *
- * Display message posting, context buffer swapping.
- *
- * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
- * Written by Pawel W. Olszta, <olszta@sourceforge.net>
- * Creation date: Fri Dec 3 1999
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#include <GL/freeglut.h>
-#include "freeglut_internal.h"
-
-
-/* Function prototypes */
-extern void fgPlatformGlutSwapBuffers( SFG_PlatformDisplay *pDisplayPtr, SFG_Window* CurrentWindow );
-
-
-/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
-
-/*
- * Marks the current window to have the redisplay performed when possible...
- */
-void FGAPIENTRY glutPostRedisplay( void )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutPostRedisplay" );
-    if ( ! fgStructure.CurrentWindow )
-       {
-      fgError ( " ERROR:  Function <%s> called"
-                " with no current window defined.", "glutPostRedisplay" ) ;
-       }
-
-    fgStructure.CurrentWindow->State.Redisplay = GL_TRUE;
-}
-
-/*
- * Swaps the buffers for the current window (if any)
- */
-void FGAPIENTRY glutSwapBuffers( void )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSwapBuffers" );
-    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutSwapBuffers" );
-
-    /*
-     * "glXSwapBuffers" already performs an implicit call to "glFlush". What
-     * about "SwapBuffers"?
-     */
-    glFlush( );
-    if( ! fgStructure.CurrentWindow->Window.DoubleBuffered )
-        return;
-
-    fgPlatformGlutSwapBuffers( &fgDisplay.pDisplay, fgStructure.CurrentWindow );
-
-    /* GLUT_FPS env var support */
-    if( fgState.FPSInterval )
-    {
-        GLint t = glutGet( GLUT_ELAPSED_TIME );
-        fgState.SwapCount++;
-        if( fgState.SwapTime == 0 )
-            fgState.SwapTime = t;
-        else if( t - fgState.SwapTime > fgState.FPSInterval )
-        {
-            float time = 0.001f * ( t - fgState.SwapTime );
-            float fps = ( float )fgState.SwapCount / time;
-            fprintf( stderr,
-                     "freeglut: %d frames in %.2f seconds = %.2f FPS\n",
-                     fgState.SwapCount, time, fps );
-            fgState.SwapTime = t;
-            fgState.SwapCount = 0;
-        }
-    }
-}
-
-/*
- * Mark appropriate window to be displayed
- */
-void FGAPIENTRY glutPostWindowRedisplay( int windowID )
-{
-    SFG_Window* window;
-
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutPostWindowRedisplay" );
-    window = fgWindowByID( windowID );
-    freeglut_return_if_fail( window );
-    window->State.Redisplay = GL_TRUE;
-}
-
-/*** END OF FILE ***/
diff --git a/src/Common/freeglut_ext.c b/src/Common/freeglut_ext.c
deleted file mode 100644 (file)
index f7b4f2e..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- * freeglut_ext.c
- *
- * Functions related to OpenGL extensions.
- *
- * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
- * Written by Pawel W. Olszta, <olszta@sourceforge.net>
- * Creation date: Thu Dec 9 1999
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#define GLX_GLXEXT_PROTOTYPES
-#include <GL/freeglut.h>
-#include "freeglut_internal.h"
-
-extern SFG_Proc fgPlatformGetProcAddress( const char *procName );
-extern GLUTproc fgPlatformGetGLUTProcAddress( const char *procName );
-
-static GLUTproc fghGetGLUTProcAddress( const char* procName )
-{
-    /* optimization: quick initial check */
-    if( strncmp( procName, "glut", 4 ) != 0 )
-        return NULL;
-
-#define CHECK_NAME(x) if( strcmp( procName, #x ) == 0) return (GLUTproc)x;
-    CHECK_NAME(glutInit);
-    CHECK_NAME(glutInitDisplayMode);
-    CHECK_NAME(glutInitDisplayString);
-    CHECK_NAME(glutInitWindowPosition);
-    CHECK_NAME(glutInitWindowSize);
-    CHECK_NAME(glutMainLoop);
-    CHECK_NAME(glutExit);
-    CHECK_NAME(glutCreateWindow);
-    CHECK_NAME(glutCreateSubWindow);
-    CHECK_NAME(glutDestroyWindow);
-    CHECK_NAME(glutPostRedisplay);
-    CHECK_NAME(glutPostWindowRedisplay);
-    CHECK_NAME(glutSwapBuffers);
-    CHECK_NAME(glutGetWindow);
-    CHECK_NAME(glutSetWindow);
-    CHECK_NAME(glutSetWindowTitle);
-    CHECK_NAME(glutSetIconTitle);
-    CHECK_NAME(glutPositionWindow);
-    CHECK_NAME(glutReshapeWindow);
-    CHECK_NAME(glutPopWindow);
-    CHECK_NAME(glutPushWindow);
-    CHECK_NAME(glutIconifyWindow);
-    CHECK_NAME(glutShowWindow);
-    CHECK_NAME(glutHideWindow);
-    CHECK_NAME(glutFullScreen);
-    CHECK_NAME(glutSetCursor);
-    CHECK_NAME(glutWarpPointer);
-    CHECK_NAME(glutEstablishOverlay);
-    CHECK_NAME(glutRemoveOverlay);
-    CHECK_NAME(glutUseLayer);
-    CHECK_NAME(glutPostOverlayRedisplay);
-    CHECK_NAME(glutPostWindowOverlayRedisplay);
-    CHECK_NAME(glutShowOverlay);
-    CHECK_NAME(glutHideOverlay);
-    CHECK_NAME(glutCreateMenu);
-    CHECK_NAME(glutDestroyMenu);
-    CHECK_NAME(glutGetMenu);
-    CHECK_NAME(glutSetMenu);
-    CHECK_NAME(glutAddMenuEntry);
-    CHECK_NAME(glutAddSubMenu);
-    CHECK_NAME(glutChangeToMenuEntry);
-    CHECK_NAME(glutChangeToSubMenu);
-    CHECK_NAME(glutRemoveMenuItem);
-    CHECK_NAME(glutAttachMenu);
-    CHECK_NAME(glutDetachMenu);
-    CHECK_NAME(glutDisplayFunc);
-    CHECK_NAME(glutReshapeFunc);
-    CHECK_NAME(glutKeyboardFunc);
-    CHECK_NAME(glutMouseFunc);
-    CHECK_NAME(glutMultiEntryFunc);
-    CHECK_NAME(glutMultiMotionFunc);
-    CHECK_NAME(glutMultiButtonFunc);
-    CHECK_NAME(glutMultiPassiveFunc);
-    CHECK_NAME(glutMotionFunc);
-    CHECK_NAME(glutPassiveMotionFunc);
-    CHECK_NAME(glutEntryFunc);
-    CHECK_NAME(glutVisibilityFunc);
-    CHECK_NAME(glutIdleFunc);
-    CHECK_NAME(glutTimerFunc);
-    CHECK_NAME(glutMenuStateFunc);
-    CHECK_NAME(glutSpecialFunc);
-    CHECK_NAME(glutSpaceballMotionFunc);
-    CHECK_NAME(glutSpaceballRotateFunc);
-    CHECK_NAME(glutSpaceballButtonFunc);
-    CHECK_NAME(glutButtonBoxFunc);
-    CHECK_NAME(glutDialsFunc);
-    CHECK_NAME(glutTabletMotionFunc);
-    CHECK_NAME(glutTabletButtonFunc);
-    CHECK_NAME(glutMenuStatusFunc);
-    CHECK_NAME(glutOverlayDisplayFunc);
-    CHECK_NAME(glutWindowStatusFunc);
-    CHECK_NAME(glutKeyboardUpFunc);
-    CHECK_NAME(glutSpecialUpFunc);
-    CHECK_NAME(glutSetColor);
-    CHECK_NAME(glutGetColor);
-    CHECK_NAME(glutCopyColormap);
-    CHECK_NAME(glutGet);
-    CHECK_NAME(glutDeviceGet);
-    CHECK_NAME(glutExtensionSupported);
-    CHECK_NAME(glutGetModifiers);
-    CHECK_NAME(glutLayerGet);
-    CHECK_NAME(glutBitmapCharacter);
-    CHECK_NAME(glutBitmapWidth);
-    CHECK_NAME(glutStrokeCharacter);
-    CHECK_NAME(glutStrokeWidth);
-    CHECK_NAME(glutBitmapLength);
-    CHECK_NAME(glutStrokeLength);
-    CHECK_NAME(glutWireSphere);
-    CHECK_NAME(glutSolidSphere);
-    CHECK_NAME(glutWireCone);
-    CHECK_NAME(glutSolidCone);
-    CHECK_NAME(glutWireCube);
-    CHECK_NAME(glutSolidCube);
-    CHECK_NAME(glutWireTorus);
-    CHECK_NAME(glutSolidTorus);
-    CHECK_NAME(glutWireDodecahedron);
-    CHECK_NAME(glutSolidDodecahedron);
-    CHECK_NAME(glutWireTeapot);
-    CHECK_NAME(glutSolidTeapot);
-    CHECK_NAME(glutWireOctahedron);
-    CHECK_NAME(glutSolidOctahedron);
-    CHECK_NAME(glutWireTetrahedron);
-    CHECK_NAME(glutSolidTetrahedron);
-    CHECK_NAME(glutWireIcosahedron);
-    CHECK_NAME(glutSolidIcosahedron);
-    CHECK_NAME(glutVideoResizeGet);
-    CHECK_NAME(glutSetupVideoResizing);
-    CHECK_NAME(glutStopVideoResizing);
-    CHECK_NAME(glutVideoResize);
-    CHECK_NAME(glutVideoPan);
-    CHECK_NAME(glutReportErrors);
-    CHECK_NAME(glutIgnoreKeyRepeat);
-    CHECK_NAME(glutSetKeyRepeat);
-
-    /* freeglut extensions */
-    CHECK_NAME(glutMainLoopEvent);
-    CHECK_NAME(glutLeaveMainLoop);
-    CHECK_NAME(glutCloseFunc);
-    CHECK_NAME(glutWMCloseFunc);
-    CHECK_NAME(glutMenuDestroyFunc);
-    CHECK_NAME(glutFullScreenToggle);
-    CHECK_NAME(glutLeaveFullScreen);
-    CHECK_NAME(glutSetOption);
-    CHECK_NAME(glutGetModeValues);
-    CHECK_NAME(glutSetWindowData);
-    CHECK_NAME(glutGetWindowData);
-    CHECK_NAME(glutSetMenuData);
-    CHECK_NAME(glutGetMenuData);
-    CHECK_NAME(glutBitmapHeight);
-    CHECK_NAME(glutStrokeHeight);
-    CHECK_NAME(glutBitmapString);
-    CHECK_NAME(glutStrokeString);
-    CHECK_NAME(glutWireRhombicDodecahedron);
-    CHECK_NAME(glutSolidRhombicDodecahedron);
-    CHECK_NAME(glutWireSierpinskiSponge);
-    CHECK_NAME(glutSolidSierpinskiSponge);
-    CHECK_NAME(glutWireCylinder);
-    CHECK_NAME(glutSolidCylinder);
-    CHECK_NAME(glutGetProcAddress);
-    CHECK_NAME(glutMouseWheelFunc);
-    CHECK_NAME(glutJoystickGetNumAxes);
-    CHECK_NAME(glutJoystickGetNumButtons);
-    CHECK_NAME(glutJoystickNotWorking);
-    CHECK_NAME(glutJoystickGetDeadBand);
-    CHECK_NAME(glutJoystickSetDeadBand);
-    CHECK_NAME(glutJoystickGetSaturation);
-    CHECK_NAME(glutJoystickSetSaturation);
-    CHECK_NAME(glutJoystickSetMinRange);
-    CHECK_NAME(glutJoystickSetMaxRange);
-    CHECK_NAME(glutJoystickSetCenter);
-    CHECK_NAME(glutJoystickGetMinRange);
-    CHECK_NAME(glutJoystickGetMaxRange);
-    CHECK_NAME(glutJoystickGetCenter);
-    CHECK_NAME(glutInitContextVersion);
-    CHECK_NAME(glutInitContextFlags);
-    CHECK_NAME(glutInitContextProfile);
-    CHECK_NAME(glutInitErrorFunc);
-    CHECK_NAME(glutInitWarningFunc);
-#undef CHECK_NAME
-
-    return NULL;
-}
-
-
-
-GLUTproc FGAPIENTRY
-glutGetProcAddress( const char *procName )
-{
-    GLUTproc p;
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutGetProcAddress" );
-
-    /* Try GLUT functions first, then core GL functions */
-    p = fghGetGLUTProcAddress( procName );
-
-       /* Some GLUT functions are platform-specific: */
-       if ( !p )
-      p = fgPlatformGetGLUTProcAddress( procName );
-
-    return ( p != NULL ) ? p : fgPlatformGetProcAddress( procName );
-}
diff --git a/src/Common/freeglut_font.c b/src/Common/freeglut_font.c
deleted file mode 100644 (file)
index e956d5b..0000000
+++ /dev/null
@@ -1,384 +0,0 @@
-/*
- * freeglut_font.c
- *
- * Bitmap and stroke fonts displaying.
- *
- * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
- * Written by Pawel W. Olszta, <olszta@sourceforge.net>
- * Creation date: Thu Dec 16 1999
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#include <GL/freeglut.h>
-#include "freeglut_internal.h"
-
-/*
- * TODO BEFORE THE STABLE RELEASE:
- *
- *  Test things out ...
- */
-
-/* -- IMPORT DECLARATIONS -------------------------------------------------- */
-
-/*
- * These are the font faces defined in freeglut_font_data.c file:
- */
-extern SFG_Font fgFontFixed8x13;
-extern SFG_Font fgFontFixed9x15;
-extern SFG_Font fgFontHelvetica10;
-extern SFG_Font fgFontHelvetica12;
-extern SFG_Font fgFontHelvetica18;
-extern SFG_Font fgFontTimesRoman10;
-extern SFG_Font fgFontTimesRoman24;
-extern SFG_StrokeFont fgStrokeRoman;
-extern SFG_StrokeFont fgStrokeMonoRoman;
-
-
-/* -- PRIVATE FUNCTIONS ---------------------------------------------------- */
-
-/*
- * Matches a font ID with a SFG_Font structure pointer.
- * This was changed to match the GLUT header style.
- */
-static SFG_Font* fghFontByID( void* font )
-{
-    if( font == GLUT_BITMAP_8_BY_13        )
-        return &fgFontFixed8x13;
-    if( font == GLUT_BITMAP_9_BY_15        )
-        return &fgFontFixed9x15;
-    if( font == GLUT_BITMAP_HELVETICA_10   )
-        return &fgFontHelvetica10;
-    if( font == GLUT_BITMAP_HELVETICA_12   )
-        return &fgFontHelvetica12;
-    if( font == GLUT_BITMAP_HELVETICA_18   )
-        return &fgFontHelvetica18;
-    if( font == GLUT_BITMAP_TIMES_ROMAN_10 )
-        return &fgFontTimesRoman10;
-    if( font == GLUT_BITMAP_TIMES_ROMAN_24 )
-        return &fgFontTimesRoman24;
-
-    fgWarning( "font 0x%08x not found", font );
-    return 0;
-}
-
-/*
- * Matches a font ID with a SFG_StrokeFont structure pointer.
- * This was changed to match the GLUT header style.
- */
-static SFG_StrokeFont* fghStrokeByID( void* font )
-{
-    if( font == GLUT_STROKE_ROMAN      )
-        return &fgStrokeRoman;
-    if( font == GLUT_STROKE_MONO_ROMAN )
-        return &fgStrokeMonoRoman;
-
-    fgWarning( "stroke font 0x%08x not found", font );
-    return 0;
-}
-
-
-/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
-
-/*
- * Draw a bitmap character
- */
-void FGAPIENTRY glutBitmapCharacter( void* fontID, int character )
-{
-    const GLubyte* face;
-    SFG_Font* font;
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutBitmapCharacter" );
-    font = fghFontByID( fontID );
-    freeglut_return_if_fail( ( character >= 1 )&&( character < 256 ) );
-    freeglut_return_if_fail( font );
-
-    /*
-     * Find the character we want to draw (???)
-     */
-    face = font->Characters[ character ];
-
-    glPushClientAttrib( GL_CLIENT_PIXEL_STORE_BIT );
-    glPixelStorei( GL_UNPACK_SWAP_BYTES,  GL_FALSE );
-    glPixelStorei( GL_UNPACK_LSB_FIRST,   GL_FALSE );
-    glPixelStorei( GL_UNPACK_ROW_LENGTH,  0        );
-    glPixelStorei( GL_UNPACK_SKIP_ROWS,   0        );
-    glPixelStorei( GL_UNPACK_SKIP_PIXELS, 0        );
-    glPixelStorei( GL_UNPACK_ALIGNMENT,   1        );
-    glBitmap(
-        face[ 0 ], font->Height,      /* The bitmap's width and height  */
-        font->xorig, font->yorig,     /* The origin in the font glyph   */
-        ( float )( face[ 0 ] ), 0.0,  /* The raster advance -- inc. x,y */
-        ( face + 1 )                  /* The packed bitmap data...      */
-    );
-    glPopClientAttrib( );
-}
-
-void FGAPIENTRY glutBitmapString( void* fontID, const unsigned char *string )
-{
-    unsigned char c;
-    float x = 0.0f ;
-    SFG_Font* font;
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutBitmapString" );
-    font = fghFontByID( fontID );
-    freeglut_return_if_fail( font );
-    if ( !string || ! *string )
-        return;
-
-    glPushClientAttrib( GL_CLIENT_PIXEL_STORE_BIT );
-    glPixelStorei( GL_UNPACK_SWAP_BYTES,  GL_FALSE );
-    glPixelStorei( GL_UNPACK_LSB_FIRST,   GL_FALSE );
-    glPixelStorei( GL_UNPACK_ROW_LENGTH,  0        );
-    glPixelStorei( GL_UNPACK_SKIP_ROWS,   0        );
-    glPixelStorei( GL_UNPACK_SKIP_PIXELS, 0        );
-    glPixelStorei( GL_UNPACK_ALIGNMENT,   1        );
-
-    /*
-     * Step through the string, drawing each character.
-     * A newline will simply translate the next character's insertion
-     * point back to the start of the line and down one line.
-     */
-    while( ( c = *string++) )
-        if( c == '\n' )
-        {
-            glBitmap ( 0, 0, 0, 0, -x, (float) -font->Height, NULL );
-            x = 0.0f;
-        }
-        else  /* Not an EOL, draw the bitmap character */
-        {
-            const GLubyte* face = font->Characters[ c ];
-
-            glBitmap(
-                face[ 0 ], font->Height,     /* Bitmap's width and height    */
-                font->xorig, font->yorig,    /* The origin in the font glyph */
-                ( float )( face[ 0 ] ), 0.0, /* The raster advance; inc. x,y */
-                ( face + 1 )                 /* The packed bitmap data...    */
-            );
-
-            x += ( float )( face[ 0 ] );
-        }
-
-    glPopClientAttrib( );
-}
-
-/*
- * Returns the width in pixels of a font's character
- */
-int FGAPIENTRY glutBitmapWidth( void* fontID, int character )
-{
-    SFG_Font* font;
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutBitmapWidth" );
-    font = fghFontByID( fontID );
-    freeglut_return_val_if_fail( character > 0 && character < 256, 0 );
-    freeglut_return_val_if_fail( font, 0 );
-    return *( font->Characters[ character ] );
-}
-
-/*
- * Return the width of a string drawn using a bitmap font
- */
-int FGAPIENTRY glutBitmapLength( void* fontID, const unsigned char* string )
-{
-    unsigned char c;
-    int length = 0, this_line_length = 0;
-    SFG_Font* font;
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutBitmapLength" );
-    font = fghFontByID( fontID );
-    freeglut_return_val_if_fail( font, 0 );
-    if ( !string || ! *string )
-        return 0;
-
-    while( ( c = *string++) )
-    {
-        if( c != '\n' )/* Not an EOL, increment length of line */
-            this_line_length += *( font->Characters[ c ]);
-        else  /* EOL; reset the length of this line */
-        {
-            if( length < this_line_length )
-                length = this_line_length;
-            this_line_length = 0;
-        }
-    }
-    if ( length < this_line_length )
-        length = this_line_length;
-
-    return length;
-}
-
-/*
- * Returns the height of a bitmap font
- */
-int FGAPIENTRY glutBitmapHeight( void* fontID )
-{
-    SFG_Font* font;
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutBitmapHeight" );
-    font = fghFontByID( fontID );
-    freeglut_return_val_if_fail( font, 0 );
-    return font->Height;
-}
-
-/*
- * Draw a stroke character
- */
-void FGAPIENTRY glutStrokeCharacter( void* fontID, int character )
-{
-    const SFG_StrokeChar *schar;
-    const SFG_StrokeStrip *strip;
-    int i, j;
-    SFG_StrokeFont* font;
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutStrokeCharacter" );
-    font = fghStrokeByID( fontID );
-    freeglut_return_if_fail( character >= 0 );
-    freeglut_return_if_fail( character < font->Quantity );
-    freeglut_return_if_fail( font );
-
-    schar = font->Characters[ character ];
-    freeglut_return_if_fail( schar );
-    strip = schar->Strips;
-
-    for( i = 0; i < schar->Number; i++, strip++ )
-    {
-        glBegin( GL_LINE_STRIP );
-        for( j = 0; j < strip->Number; j++ )
-            glVertex2f( strip->Vertices[ j ].X, strip->Vertices[ j ].Y );
-        glEnd( );
-                               glBegin( GL_POINTS );
-        for( j = 0; j < strip->Number; j++ )
-            glVertex2f( strip->Vertices[ j ].X, strip->Vertices[ j ].Y );
-                               glEnd( );
-    }
-    glTranslatef( schar->Right, 0.0, 0.0 );
-}
-
-void FGAPIENTRY glutStrokeString( void* fontID, const unsigned char *string )
-{
-    unsigned char c;
-    int i, j;
-    float length = 0.0;
-    SFG_StrokeFont* font;
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutStrokeString" );
-    font = fghStrokeByID( fontID );
-    freeglut_return_if_fail( font );
-    if ( !string || ! *string )
-        return;
-
-    /*
-     * Step through the string, drawing each character.
-     * A newline will simply translate the next character's insertion
-     * point back to the start of the line and down one line.
-     */
-    while( ( c = *string++) )
-        if( c < font->Quantity )
-        {
-            if( c == '\n' )
-            {
-                glTranslatef ( -length, -( float )( font->Height ), 0.0 );
-                length = 0.0;
-            }
-            else  /* Not an EOL, draw the bitmap character */
-            {
-                const SFG_StrokeChar *schar = font->Characters[ c ];
-                if( schar )
-                {
-                    const SFG_StrokeStrip *strip = schar->Strips;
-
-                    for( i = 0; i < schar->Number; i++, strip++ )
-                    {
-                        glBegin( GL_LINE_STRIP );
-                        for( j = 0; j < strip->Number; j++ )
-                            glVertex2f( strip->Vertices[ j ].X,
-                                        strip->Vertices[ j ].Y);
-
-                        glEnd( );
-                    }
-
-                    length += schar->Right;
-                    glTranslatef( schar->Right, 0.0, 0.0 );
-                }
-            }
-        }
-}
-
-/*
- * Return the width in pixels of a stroke character
- */
-int FGAPIENTRY glutStrokeWidth( void* fontID, int character )
-{
-    const SFG_StrokeChar *schar;
-    SFG_StrokeFont* font;
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutStrokeWidth" );
-    font = fghStrokeByID( fontID );
-    freeglut_return_val_if_fail( ( character >= 0 ) &&
-                                 ( character < font->Quantity ),
-                                 0
-    );
-    freeglut_return_val_if_fail( font, 0 );
-    schar = font->Characters[ character ];
-    freeglut_return_val_if_fail( schar, 0 );
-
-    return ( int )( schar->Right + 0.5 );
-}
-
-/*
- * Return the width of a string drawn using a stroke font
- */
-int FGAPIENTRY glutStrokeLength( void* fontID, const unsigned char* string )
-{
-    unsigned char c;
-    float length = 0.0;
-    float this_line_length = 0.0;
-    SFG_StrokeFont* font;
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutStrokeLength" );
-    font = fghStrokeByID( fontID );
-    freeglut_return_val_if_fail( font, 0 );
-    if ( !string || ! *string )
-        return 0;
-
-    while( ( c = *string++) )
-        if( c < font->Quantity )
-        {
-            if( c == '\n' ) /* EOL; reset the length of this line */
-            {
-                if( length < this_line_length )
-                    length = this_line_length;
-                this_line_length = 0.0;
-            }
-            else  /* Not an EOL, increment the length of this line */
-            {
-                const SFG_StrokeChar *schar = font->Characters[ c ];
-                if( schar )
-                    this_line_length += schar->Right;
-            }
-        }
-    if( length < this_line_length )
-        length = this_line_length;
-    return( int )( length + 0.5 );
-}
-
-/*
- * Returns the height of a stroke font
- */
-GLfloat FGAPIENTRY glutStrokeHeight( void* fontID )
-{
-    SFG_StrokeFont* font;
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutStrokeHeight" );
-    font = fghStrokeByID( fontID );
-    freeglut_return_val_if_fail( font, 0.0 );
-    return font->Height;
-}
-
-/*** END OF FILE ***/
diff --git a/src/Common/freeglut_font_data.c b/src/Common/freeglut_font_data.c
deleted file mode 100644 (file)
index 35dfc79..0000000
+++ /dev/null
@@ -1,2020 +0,0 @@
-/*
-    \file  og_font_data.c
-    \brief Bitmapped font data for OpenGLUT fonts.
-*/
-
-/*
- * This file has been automatically generated by the 
- * genfonts utility.
- *
- * The legal status of this file is a bit vague.  The font glyphs
- * themselves come from XFree86 v4.3.0 (as of this writing), and as
- * part of the X server may be subject to the XFree86 copyrights.
- * The original freeglut fonts were extracted by a utility written
- * by Pawel W. Olszta (see below) and the generated fonts contained
- * his copyright exclusively.  Steve Baker asserts that Pawel
- * assigned intellectual property rights to Steve Baker.  Steve
- * Baker also asserts that fonts cannot be copyrighted.  He has
- * neither stripped the copyright from the freeglut fonts nor
- * formally retitled anything in his name.  Since that time, the
- * OpenGLUT project has branched from freeglut, and has made
- * necessary modifications to Pawel's ``genfonts'' utility.
- * To that extent, OpenGLUT may have some title to this file.
- * What is fairly clear is that the font data is licensed under
- * the XFree86 license (which is variously termed ``XFree'' and
- * ``MIT'' by the freeglut project).  It is believed that all
- * title holders wish this file to be as useful as possible, and
- * that either the ``XFree'' or ``MIT'' license works.
- *
- * Portions copyright (c) 2004, the OpenGLUT project contributors.
- * OpenGLUT branched from freeglut in February, 2004.
- *
- * Copyright (c) 1999-2000 by Pawel W. Olszta
- * Written by Pawel W. Olszta, <olszta@sourceforge.net>
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Sotware.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#include <GL/freeglut.h>
-#include "freeglut_internal.h"
-
-/*
- * The following bitmapped fonts are defined in this file:
- * 
- * 1. fgFontFixed8x13
- *       -misc-fixed-medium-r-normal--13-120-75-75-C-80-iso8859-1
- * 2. fgFontFixed9x15
- *       -misc-fixed-medium-r-normal--15-140-75-75-C-90-iso8859-1
- * 3. fgFontHelvetica10
- *       -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
- * 4. fgFontHelvetica12
- *       -adobe-helvetica-medium-r-normal--12-120-75-75-p-67-iso8859-1
- * 5. fgFontHelvetica18
- *       -adobe-helvetica-medium-r-normal--18-180-75-75-p-98-iso8859-1
- * 6. fgFontTimesRoman10
- *       -adobe-times-medium-r-normal--10-100-75-75-p-54-iso8859-1
- * 7. fgFontTimesRoman24
- *       -adobe-times-medium-r-normal--24-240-75-75-p-124-iso8859-1
- */
-
-static const GLubyte Fixed8x13_Character_000[] = {  8,  0,  0,  0,170,  0,130,  0,130,  0,130,  0,170,  0,  0};
-static const GLubyte Fixed8x13_Character_001[] = {  8,  0,  0,  0,  0, 16, 56,124,254,124, 56, 16,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_002[] = {  8,  0,170, 85,170, 85,170, 85,170, 85,170, 85,170, 85,170};
-static const GLubyte Fixed8x13_Character_003[] = {  8,  0,  0,  0,  4,  4,  4,  4,174,160,224,160,160,  0,  0};
-static const GLubyte Fixed8x13_Character_004[] = {  8,  0,  0,  0,  8,  8, 12,  8,142,128,192,128,224,  0,  0};
-static const GLubyte Fixed8x13_Character_005[] = {  8,  0,  0,  0, 10, 10, 12, 10,108,128,128,128, 96,  0,  0};
-static const GLubyte Fixed8x13_Character_006[] = {  8,  0,  0,  0,  8,  8, 12,  8,238,128,128,128,128,  0,  0};
-static const GLubyte Fixed8x13_Character_007[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0, 24, 36, 36, 24,  0,  0};
-static const GLubyte Fixed8x13_Character_008[] = {  8,  0,  0,  0,  0,124,  0, 16, 16,124, 16, 16,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_009[] = {  8,  0,  0,  0, 14,  8,  8,  8,168,160,160,160,192,  0,  0};
-static const GLubyte Fixed8x13_Character_010[] = {  8,  0,  0,  0,  4,  4,  4,  4, 46, 80, 80,136,136,  0,  0};
-static const GLubyte Fixed8x13_Character_011[] = {  8,  0,  0,  0,  0,  0,  0,  0,240, 16, 16, 16, 16, 16, 16};
-static const GLubyte Fixed8x13_Character_012[] = {  8,  0, 16, 16, 16, 16, 16, 16,240,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_013[] = {  8,  0, 16, 16, 16, 16, 16, 16, 31,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_014[] = {  8,  0,  0,  0,  0,  0,  0,  0, 31, 16, 16, 16, 16, 16, 16};
-static const GLubyte Fixed8x13_Character_015[] = {  8,  0, 16, 16, 16, 16, 16, 16,255, 16, 16, 16, 16, 16, 16};
-static const GLubyte Fixed8x13_Character_016[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,255};
-static const GLubyte Fixed8x13_Character_017[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,255,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_018[] = {  8,  0,  0,  0,  0,  0,  0,  0,255,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_019[] = {  8,  0,  0,  0,  0,255,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_020[] = {  8,  0,255,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_021[] = {  8,  0, 16, 16, 16, 16, 16, 16, 31, 16, 16, 16, 16, 16, 16};
-static const GLubyte Fixed8x13_Character_022[] = {  8,  0, 16, 16, 16, 16, 16, 16,240, 16, 16, 16, 16, 16, 16};
-static const GLubyte Fixed8x13_Character_023[] = {  8,  0,  0,  0,  0,  0,  0,  0,255, 16, 16, 16, 16, 16, 16};
-static const GLubyte Fixed8x13_Character_024[] = {  8,  0, 16, 16, 16, 16, 16, 16,255,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_025[] = {  8,  0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16};
-static const GLubyte Fixed8x13_Character_026[] = {  8,  0,  0,  0,254,  0, 14, 48,192, 48, 14,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_027[] = {  8,  0,  0,  0,254,  0,224, 24,  6, 24,224,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_028[] = {  8,  0,  0,  0, 68, 68, 68, 68, 68,254,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_029[] = {  8,  0,  0,  0, 32, 32,126, 16,  8,126,  4,  4,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_030[] = {  8,  0,  0,  0,220, 98, 32, 32, 32,112, 32, 34, 28,  0,  0};
-static const GLubyte Fixed8x13_Character_031[] = {  8,  0,  0,  0,  0,  0,  0,  0, 24,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_032[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_033[] = {  8,  0,  0,  0, 16,  0, 16, 16, 16, 16, 16, 16, 16,  0,  0};
-static const GLubyte Fixed8x13_Character_034[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0, 36, 36, 36,  0,  0};
-static const GLubyte Fixed8x13_Character_035[] = {  8,  0,  0,  0,  0, 36, 36,126, 36,126, 36, 36,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_036[] = {  8,  0,  0,  0, 16,120, 20, 20, 56, 80, 80, 60, 16,  0,  0};
-static const GLubyte Fixed8x13_Character_037[] = {  8,  0,  0,  0, 68, 42, 36, 16,  8,  8, 36, 82, 34,  0,  0};
-static const GLubyte Fixed8x13_Character_038[] = {  8,  0,  0,  0, 58, 68, 74, 48, 72, 72, 48,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_039[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64, 48, 56,  0,  0};
-static const GLubyte Fixed8x13_Character_040[] = {  8,  0,  0,  0,  4,  8,  8, 16, 16, 16,  8,  8,  4,  0,  0};
-static const GLubyte Fixed8x13_Character_041[] = {  8,  0,  0,  0, 32, 16, 16,  8,  8,  8, 16, 16, 32,  0,  0};
-static const GLubyte Fixed8x13_Character_042[] = {  8,  0,  0,  0,  0,  0, 36, 24,126, 24, 36,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_043[] = {  8,  0,  0,  0,  0,  0, 16, 16,124, 16, 16,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_044[] = {  8,  0,  0, 64, 48, 56,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_045[] = {  8,  0,  0,  0,  0,  0,  0,  0,126,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_046[] = {  8,  0,  0, 16, 56, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_047[] = {  8,  0,  0,  0,128,128, 64, 32, 16,  8,  4,  2,  2,  0,  0};
-static const GLubyte Fixed8x13_Character_048[] = {  8,  0,  0,  0, 24, 36, 66, 66, 66, 66, 66, 36, 24,  0,  0};
-static const GLubyte Fixed8x13_Character_049[] = {  8,  0,  0,  0,124, 16, 16, 16, 16, 16, 80, 48, 16,  0,  0};
-static const GLubyte Fixed8x13_Character_050[] = {  8,  0,  0,  0,126, 64, 32, 24,  4,  2, 66, 66, 60,  0,  0};
-static const GLubyte Fixed8x13_Character_051[] = {  8,  0,  0,  0, 60, 66,  2,  2, 28,  8,  4,  2,126,  0,  0};
-static const GLubyte Fixed8x13_Character_052[] = {  8,  0,  0,  0,  4,  4,126, 68, 68, 36, 20, 12,  4,  0,  0};
-static const GLubyte Fixed8x13_Character_053[] = {  8,  0,  0,  0, 60, 66,  2,  2, 98, 92, 64, 64,126,  0,  0};
-static const GLubyte Fixed8x13_Character_054[] = {  8,  0,  0,  0, 60, 66, 66, 98, 92, 64, 64, 32, 28,  0,  0};
-static const GLubyte Fixed8x13_Character_055[] = {  8,  0,  0,  0, 32, 32, 16, 16,  8,  8,  4,  2,126,  0,  0};
-static const GLubyte Fixed8x13_Character_056[] = {  8,  0,  0,  0, 60, 66, 66, 66, 60, 66, 66, 66, 60,  0,  0};
-static const GLubyte Fixed8x13_Character_057[] = {  8,  0,  0,  0, 56,  4,  2,  2, 58, 70, 66, 66, 60,  0,  0};
-static const GLubyte Fixed8x13_Character_058[] = {  8,  0,  0, 16, 56, 16,  0,  0, 16, 56, 16,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_059[] = {  8,  0,  0, 64, 48, 56,  0,  0, 16, 56, 16,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_060[] = {  8,  0,  0,  0,  2,  4,  8, 16, 32, 16,  8,  4,  2,  0,  0};
-static const GLubyte Fixed8x13_Character_061[] = {  8,  0,  0,  0,  0,  0,126,  0,  0,126,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_062[] = {  8,  0,  0,  0, 64, 32, 16,  8,  4,  8, 16, 32, 64,  0,  0};
-static const GLubyte Fixed8x13_Character_063[] = {  8,  0,  0,  0,  8,  0,  8,  8,  4,  2, 66, 66, 60,  0,  0};
-static const GLubyte Fixed8x13_Character_064[] = {  8,  0,  0,  0, 60, 64, 74, 86, 82, 78, 66, 66, 60,  0,  0};
-static const GLubyte Fixed8x13_Character_065[] = {  8,  0,  0,  0, 66, 66, 66,126, 66, 66, 66, 36, 24,  0,  0};
-static const GLubyte Fixed8x13_Character_066[] = {  8,  0,  0,  0,252, 66, 66, 66,124, 66, 66, 66,252,  0,  0};
-static const GLubyte Fixed8x13_Character_067[] = {  8,  0,  0,  0, 60, 66, 64, 64, 64, 64, 64, 66, 60,  0,  0};
-static const GLubyte Fixed8x13_Character_068[] = {  8,  0,  0,  0,252, 66, 66, 66, 66, 66, 66, 66,252,  0,  0};
-static const GLubyte Fixed8x13_Character_069[] = {  8,  0,  0,  0,126, 64, 64, 64,120, 64, 64, 64,126,  0,  0};
-static const GLubyte Fixed8x13_Character_070[] = {  8,  0,  0,  0, 64, 64, 64, 64,120, 64, 64, 64,126,  0,  0};
-static const GLubyte Fixed8x13_Character_071[] = {  8,  0,  0,  0, 58, 70, 66, 78, 64, 64, 64, 66, 60,  0,  0};
-static const GLubyte Fixed8x13_Character_072[] = {  8,  0,  0,  0, 66, 66, 66, 66,126, 66, 66, 66, 66,  0,  0};
-static const GLubyte Fixed8x13_Character_073[] = {  8,  0,  0,  0,124, 16, 16, 16, 16, 16, 16, 16,124,  0,  0};
-static const GLubyte Fixed8x13_Character_074[] = {  8,  0,  0,  0, 56, 68,  4,  4,  4,  4,  4,  4, 31,  0,  0};
-static const GLubyte Fixed8x13_Character_075[] = {  8,  0,  0,  0, 66, 68, 72, 80, 96, 80, 72, 68, 66,  0,  0};
-static const GLubyte Fixed8x13_Character_076[] = {  8,  0,  0,  0,126, 64, 64, 64, 64, 64, 64, 64, 64,  0,  0};
-static const GLubyte Fixed8x13_Character_077[] = {  8,  0,  0,  0,130,130,130,146,146,170,198,130,130,  0,  0};
-static const GLubyte Fixed8x13_Character_078[] = {  8,  0,  0,  0, 66, 66, 66, 70, 74, 82, 98, 66, 66,  0,  0};
-static const GLubyte Fixed8x13_Character_079[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 66, 60,  0,  0};
-static const GLubyte Fixed8x13_Character_080[] = {  8,  0,  0,  0, 64, 64, 64, 64,124, 66, 66, 66,124,  0,  0};
-static const GLubyte Fixed8x13_Character_081[] = {  8,  0,  0,  2, 60, 74, 82, 66, 66, 66, 66, 66, 60,  0,  0};
-static const GLubyte Fixed8x13_Character_082[] = {  8,  0,  0,  0, 66, 68, 72, 80,124, 66, 66, 66,124,  0,  0};
-static const GLubyte Fixed8x13_Character_083[] = {  8,  0,  0,  0, 60, 66,  2,  2, 60, 64, 64, 66, 60,  0,  0};
-static const GLubyte Fixed8x13_Character_084[] = {  8,  0,  0,  0, 16, 16, 16, 16, 16, 16, 16, 16,254,  0,  0};
-static const GLubyte Fixed8x13_Character_085[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 66, 66,  0,  0};
-static const GLubyte Fixed8x13_Character_086[] = {  8,  0,  0,  0, 16, 40, 40, 40, 68, 68, 68,130,130,  0,  0};
-static const GLubyte Fixed8x13_Character_087[] = {  8,  0,  0,  0, 68,170,146,146,146,130,130,130,130,  0,  0};
-static const GLubyte Fixed8x13_Character_088[] = {  8,  0,  0,  0,130,130, 68, 40, 16, 40, 68,130,130,  0,  0};
-static const GLubyte Fixed8x13_Character_089[] = {  8,  0,  0,  0, 16, 16, 16, 16, 16, 40, 68,130,130,  0,  0};
-static const GLubyte Fixed8x13_Character_090[] = {  8,  0,  0,  0,126, 64, 64, 32, 16,  8,  4,  2,126,  0,  0};
-static const GLubyte Fixed8x13_Character_091[] = {  8,  0,  0,  0, 60, 32, 32, 32, 32, 32, 32, 32, 60,  0,  0};
-static const GLubyte Fixed8x13_Character_092[] = {  8,  0,  0,  0,  2,  2,  4,  8, 16, 32, 64,128,128,  0,  0};
-static const GLubyte Fixed8x13_Character_093[] = {  8,  0,  0,  0,120,  8,  8,  8,  8,  8,  8,  8,120,  0,  0};
-static const GLubyte Fixed8x13_Character_094[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 40, 16,  0,  0};
-static const GLubyte Fixed8x13_Character_095[] = {  8,  0,  0,254,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_096[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4, 24, 56,  0,  0};
-static const GLubyte Fixed8x13_Character_097[] = {  8,  0,  0,  0, 58, 70, 66, 62,  2, 60,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_098[] = {  8,  0,  0,  0, 92, 98, 66, 66, 98, 92, 64, 64, 64,  0,  0};
-static const GLubyte Fixed8x13_Character_099[] = {  8,  0,  0,  0, 60, 66, 64, 64, 66, 60,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_100[] = {  8,  0,  0,  0, 58, 70, 66, 66, 70, 58,  2,  2,  2,  0,  0};
-static const GLubyte Fixed8x13_Character_101[] = {  8,  0,  0,  0, 60, 66, 64,126, 66, 60,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_102[] = {  8,  0,  0,  0, 32, 32, 32, 32,124, 32, 32, 34, 28,  0,  0};
-static const GLubyte Fixed8x13_Character_103[] = {  8,  0, 60, 66, 60, 64, 56, 68, 68, 58,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_104[] = {  8,  0,  0,  0, 66, 66, 66, 66, 98, 92, 64, 64, 64,  0,  0};
-static const GLubyte Fixed8x13_Character_105[] = {  8,  0,  0,  0,124, 16, 16, 16, 16, 48,  0, 16,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_106[] = {  8,  0, 56, 68, 68,  4,  4,  4,  4, 12,  0,  4,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_107[] = {  8,  0,  0,  0, 66, 68, 72,112, 72, 68, 64, 64, 64,  0,  0};
-static const GLubyte Fixed8x13_Character_108[] = {  8,  0,  0,  0,124, 16, 16, 16, 16, 16, 16, 16, 48,  0,  0};
-static const GLubyte Fixed8x13_Character_109[] = {  8,  0,  0,  0,130,146,146,146,146,236,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_110[] = {  8,  0,  0,  0, 66, 66, 66, 66, 98, 92,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_111[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 60,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_112[] = {  8,  0, 64, 64, 64, 92, 98, 66, 98, 92,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_113[] = {  8,  0,  2,  2,  2, 58, 70, 66, 70, 58,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_114[] = {  8,  0,  0,  0, 32, 32, 32, 32, 34, 92,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_115[] = {  8,  0,  0,  0, 60, 66, 12, 48, 66, 60,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_116[] = {  8,  0,  0,  0, 28, 34, 32, 32, 32,124, 32, 32,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_117[] = {  8,  0,  0,  0, 58, 68, 68, 68, 68, 68,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_118[] = {  8,  0,  0,  0, 16, 40, 40, 68, 68, 68,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_119[] = {  8,  0,  0,  0, 68,170,146,146,130,130,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_120[] = {  8,  0,  0,  0, 66, 36, 24, 24, 36, 66,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_121[] = {  8,  0, 60, 66,  2, 58, 70, 66, 66, 66,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_122[] = {  8,  0,  0,  0,126, 32, 16,  8,  4,126,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_123[] = {  8,  0,  0,  0, 14, 16, 16,  8, 48,  8, 16, 16, 14,  0,  0};
-static const GLubyte Fixed8x13_Character_124[] = {  8,  0,  0,  0, 16, 16, 16, 16, 16, 16, 16, 16, 16,  0,  0};
-static const GLubyte Fixed8x13_Character_125[] = {  8,  0,  0,  0,112,  8,  8, 16, 12, 16,  8,  8,112,  0,  0};
-static const GLubyte Fixed8x13_Character_126[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0, 72, 84, 36,  0,  0};
-static const GLubyte Fixed8x13_Character_127[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_128[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_129[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_130[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_131[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_132[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_133[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_134[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_135[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_136[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_137[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_138[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_139[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_140[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_141[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_142[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_143[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_144[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_145[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_146[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_147[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_148[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_149[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_150[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_151[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_152[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_153[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_154[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_155[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_156[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_157[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_158[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_159[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_160[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_161[] = {  8,  0,  0,  0, 16, 16, 16, 16, 16, 16, 16,  0, 16,  0,  0};
-static const GLubyte Fixed8x13_Character_162[] = {  8,  0,  0,  0,  0, 16, 56, 84, 80, 80, 84, 56, 16,  0,  0};
-static const GLubyte Fixed8x13_Character_163[] = {  8,  0,  0,  0,220, 98, 32, 32, 32,112, 32, 34, 28,  0,  0};
-static const GLubyte Fixed8x13_Character_164[] = {  8,  0,  0,  0,  0, 66, 60, 36, 36, 60, 66,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_165[] = {  8,  0,  0,  0, 16, 16,124, 16,124, 40, 68,130,130,  0,  0};
-static const GLubyte Fixed8x13_Character_166[] = {  8,  0,  0,  0, 16, 16, 16, 16,  0, 16, 16, 16, 16,  0,  0};
-static const GLubyte Fixed8x13_Character_167[] = {  8,  0,  0,  0, 24, 36,  4, 24, 36, 36, 24, 32, 36, 24,  0};
-static const GLubyte Fixed8x13_Character_168[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,108,  0,  0};
-static const GLubyte Fixed8x13_Character_169[] = {  8,  0,  0,  0,  0, 56, 68,146,170,162,170,146, 68, 56,  0};
-static const GLubyte Fixed8x13_Character_170[] = {  8,  0,  0,  0,  0,  0,124,  0, 60, 68, 60,  4, 56,  0,  0};
-static const GLubyte Fixed8x13_Character_171[] = {  8,  0,  0,  0,  0, 18, 36, 72,144, 72, 36, 18,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_172[] = {  8,  0,  0,  0,  0,  2,  2,  2,126,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_173[] = {  8,  0,  0,  0,  0,  0,  0,  0, 60,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_174[] = {  8,  0,  0,  0,  0, 56, 68,170,178,170,170,146, 68, 56,  0};
-static const GLubyte Fixed8x13_Character_175[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126,  0,  0};
-static const GLubyte Fixed8x13_Character_176[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0, 24, 36, 36, 24,  0,  0};
-static const GLubyte Fixed8x13_Character_177[] = {  8,  0,  0,  0,  0,124,  0, 16, 16,124, 16, 16,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_178[] = {  8,  0,  0,  0,  0,  0,  0,  0,120, 64, 48,  8, 72, 48,  0};
-static const GLubyte Fixed8x13_Character_179[] = {  8,  0,  0,  0,  0,  0,  0,  0, 48, 72,  8, 16, 72, 48,  0};
-static const GLubyte Fixed8x13_Character_180[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  8,  0};
-static const GLubyte Fixed8x13_Character_181[] = {  8,  0,  0, 64, 90,102, 66, 66, 66, 66,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_182[] = {  8,  0,  0,  0, 20, 20, 20, 20, 52,116,116,116, 62,  0,  0};
-static const GLubyte Fixed8x13_Character_183[] = {  8,  0,  0,  0,  0,  0,  0,  0, 24,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_184[] = {  8,  0, 24,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_185[] = {  8,  0,  0,  0,  0,  0,  0,  0,112, 32, 32, 32, 96, 32,  0};
-static const GLubyte Fixed8x13_Character_186[] = {  8,  0,  0,  0,  0,  0,  0,120,  0, 48, 72, 72, 48,  0,  0};
-static const GLubyte Fixed8x13_Character_187[] = {  8,  0,  0,  0,  0,144, 72, 36, 18, 36, 72,144,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_188[] = {  8,  0,  0,  0,  6, 26, 18, 10,230, 66, 64, 64,192, 64,  0};
-static const GLubyte Fixed8x13_Character_189[] = {  8,  0,  0,  0, 30, 16, 12,  2,242, 76, 64, 64,192, 64,  0};
-static const GLubyte Fixed8x13_Character_190[] = {  8,  0,  0,  0,  6, 26, 18, 10,102,146, 16, 32,144, 96,  0};
-static const GLubyte Fixed8x13_Character_191[] = {  8,  0,  0,  0, 60, 66, 66, 64, 32, 16, 16,  0, 16,  0,  0};
-static const GLubyte Fixed8x13_Character_192[] = {  8,  0,  0,  0, 66, 66,126, 66, 66, 36, 24,  0,  8, 16,  0};
-static const GLubyte Fixed8x13_Character_193[] = {  8,  0,  0,  0, 66, 66,126, 66, 66, 36, 24,  0, 16,  8,  0};
-static const GLubyte Fixed8x13_Character_194[] = {  8,  0,  0,  0, 66, 66,126, 66, 66, 36, 24,  0, 36, 24,  0};
-static const GLubyte Fixed8x13_Character_195[] = {  8,  0,  0,  0, 66, 66,126, 66, 66, 36, 24,  0, 76, 50,  0};
-static const GLubyte Fixed8x13_Character_196[] = {  8,  0,  0,  0, 66, 66,126, 66, 66, 36, 24,  0, 36, 36,  0};
-static const GLubyte Fixed8x13_Character_197[] = {  8,  0,  0,  0, 66, 66,126, 66, 66, 36, 24, 24, 36, 24,  0};
-static const GLubyte Fixed8x13_Character_198[] = {  8,  0,  0,  0,158,144,144,240,156,144,144,144,110,  0,  0};
-static const GLubyte Fixed8x13_Character_199[] = {  8,  0, 16,  8, 60, 66, 64, 64, 64, 64, 64, 66, 60,  0,  0};
-static const GLubyte Fixed8x13_Character_200[] = {  8,  0,  0,  0,126, 64, 64,120, 64, 64,126,  0,  8, 16,  0};
-static const GLubyte Fixed8x13_Character_201[] = {  8,  0,  0,  0,126, 64, 64,120, 64, 64,126,  0, 16,  8,  0};
-static const GLubyte Fixed8x13_Character_202[] = {  8,  0,  0,  0,126, 64, 64,120, 64, 64,126,  0, 36, 24,  0};
-static const GLubyte Fixed8x13_Character_203[] = {  8,  0,  0,  0,126, 64, 64,120, 64, 64,126,  0, 36, 36,  0};
-static const GLubyte Fixed8x13_Character_204[] = {  8,  0,  0,  0,124, 16, 16, 16, 16, 16,124,  0, 16, 32,  0};
-static const GLubyte Fixed8x13_Character_205[] = {  8,  0,  0,  0,124, 16, 16, 16, 16, 16,124,  0, 16,  8,  0};
-static const GLubyte Fixed8x13_Character_206[] = {  8,  0,  0,  0,124, 16, 16, 16, 16, 16,124,  0, 36, 24,  0};
-static const GLubyte Fixed8x13_Character_207[] = {  8,  0,  0,  0,124, 16, 16, 16, 16, 16,124,  0, 40, 40,  0};
-static const GLubyte Fixed8x13_Character_208[] = {  8,  0,  0,  0,120, 68, 66, 66,226, 66, 66, 68,120,  0,  0};
-static const GLubyte Fixed8x13_Character_209[] = {  8,  0,  0,  0,130,134,138,146,162,194,130,  0,152,100,  0};
-static const GLubyte Fixed8x13_Character_210[] = {  8,  0,  0,  0,124,130,130,130,130,130,124,  0, 16, 32,  0};
-static const GLubyte Fixed8x13_Character_211[] = {  8,  0,  0,  0,124,130,130,130,130,130,124,  0, 16,  8,  0};
-static const GLubyte Fixed8x13_Character_212[] = {  8,  0,  0,  0,124,130,130,130,130,130,124,  0, 36, 24,  0};
-static const GLubyte Fixed8x13_Character_213[] = {  8,  0,  0,  0,124,130,130,130,130,130,124,  0,152,100,  0};
-static const GLubyte Fixed8x13_Character_214[] = {  8,  0,  0,  0,124,130,130,130,130,130,124,  0, 40, 40,  0};
-static const GLubyte Fixed8x13_Character_215[] = {  8,  0,  0,  0,  0, 66, 36, 24, 24, 36, 66,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_216[] = {  8,  0,  0, 64, 60, 98, 82, 82, 82, 74, 74, 70, 60,  2,  0};
-static const GLubyte Fixed8x13_Character_217[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66,  0,  8, 16,  0};
-static const GLubyte Fixed8x13_Character_218[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66,  0, 16,  8,  0};
-static const GLubyte Fixed8x13_Character_219[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66,  0, 36, 24,  0};
-static const GLubyte Fixed8x13_Character_220[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66,  0, 36, 36,  0};
-static const GLubyte Fixed8x13_Character_221[] = {  8,  0,  0,  0, 16, 16, 16, 16, 40, 68, 68,  0, 16,  8,  0};
-static const GLubyte Fixed8x13_Character_222[] = {  8,  0,  0,  0, 64, 64, 64,124, 66, 66, 66,124, 64,  0,  0};
-static const GLubyte Fixed8x13_Character_223[] = {  8,  0,  0,  0, 92, 66, 66, 76, 80, 72, 68, 68, 56,  0,  0};
-static const GLubyte Fixed8x13_Character_224[] = {  8,  0,  0,  0, 58, 70, 66, 62,  2, 60,  0,  0,  8, 16,  0};
-static const GLubyte Fixed8x13_Character_225[] = {  8,  0,  0,  0, 58, 70, 66, 62,  2, 60,  0,  0,  8,  4,  0};
-static const GLubyte Fixed8x13_Character_226[] = {  8,  0,  0,  0, 58, 70, 66, 62,  2, 60,  0,  0, 36, 24,  0};
-static const GLubyte Fixed8x13_Character_227[] = {  8,  0,  0,  0, 58, 70, 66, 62,  2, 60,  0,  0, 76, 50,  0};
-static const GLubyte Fixed8x13_Character_228[] = {  8,  0,  0,  0, 58, 70, 66, 62,  2, 60,  0,  0, 36, 36,  0};
-static const GLubyte Fixed8x13_Character_229[] = {  8,  0,  0,  0, 58, 70, 66, 62,  2, 60,  0, 24, 36, 24,  0};
-static const GLubyte Fixed8x13_Character_230[] = {  8,  0,  0,  0,108,146,144,124, 18,108,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_231[] = {  8,  0, 16,  8, 60, 66, 64, 64, 66, 60,  0,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_232[] = {  8,  0,  0,  0, 60, 66, 64,126, 66, 60,  0,  0,  8, 16,  0};
-static const GLubyte Fixed8x13_Character_233[] = {  8,  0,  0,  0, 60, 66, 64,126, 66, 60,  0,  0, 16,  8,  0};
-static const GLubyte Fixed8x13_Character_234[] = {  8,  0,  0,  0, 60, 66, 64,126, 66, 60,  0,  0, 36, 24,  0};
-static const GLubyte Fixed8x13_Character_235[] = {  8,  0,  0,  0, 60, 66, 64,126, 66, 60,  0,  0, 36, 36,  0};
-static const GLubyte Fixed8x13_Character_236[] = {  8,  0,  0,  0,124, 16, 16, 16, 16, 48,  0,  0, 16, 32,  0};
-static const GLubyte Fixed8x13_Character_237[] = {  8,  0,  0,  0,124, 16, 16, 16, 16, 48,  0,  0, 32, 16,  0};
-static const GLubyte Fixed8x13_Character_238[] = {  8,  0,  0,  0,124, 16, 16, 16, 16, 48,  0,  0, 72, 48,  0};
-static const GLubyte Fixed8x13_Character_239[] = {  8,  0,  0,  0,124, 16, 16, 16, 16, 48,  0,  0, 40, 40,  0};
-static const GLubyte Fixed8x13_Character_240[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 60,  4, 40, 24, 36,  0};
-static const GLubyte Fixed8x13_Character_241[] = {  8,  0,  0,  0, 66, 66, 66, 66, 98, 92,  0,  0, 76, 50,  0};
-static const GLubyte Fixed8x13_Character_242[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 60,  0,  0, 16, 32,  0};
-static const GLubyte Fixed8x13_Character_243[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 60,  0,  0, 16,  8,  0};
-static const GLubyte Fixed8x13_Character_244[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 60,  0,  0, 36, 24,  0};
-static const GLubyte Fixed8x13_Character_245[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 60,  0,  0, 76, 50,  0};
-static const GLubyte Fixed8x13_Character_246[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 60,  0,  0, 36, 36,  0};
-static const GLubyte Fixed8x13_Character_247[] = {  8,  0,  0,  0,  0, 16, 16,  0,124,  0, 16, 16,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_248[] = {  8,  0,  0, 64, 60, 98, 82, 74, 70, 60,  2,  0,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_249[] = {  8,  0,  0,  0, 58, 68, 68, 68, 68, 68,  0,  0, 16, 32,  0};
-static const GLubyte Fixed8x13_Character_250[] = {  8,  0,  0,  0, 58, 68, 68, 68, 68, 68,  0,  0, 16,  8,  0};
-static const GLubyte Fixed8x13_Character_251[] = {  8,  0,  0,  0, 58, 68, 68, 68, 68, 68,  0,  0, 36, 24,  0};
-static const GLubyte Fixed8x13_Character_252[] = {  8,  0,  0,  0, 58, 68, 68, 68, 68, 68,  0,  0, 40, 40,  0};
-static const GLubyte Fixed8x13_Character_253[] = {  8,  0, 60, 66,  2, 58, 70, 66, 66, 66,  0,  0, 16,  8,  0};
-static const GLubyte Fixed8x13_Character_254[] = {  8,  0, 64, 64, 92, 98, 66, 66, 98, 92, 64, 64,  0,  0,  0};
-static const GLubyte Fixed8x13_Character_255[] = {  8,  0, 60, 66,  2, 58, 70, 66, 66, 66,  0,  0, 36, 36,  0};
-
-/* The font characters mapping: */
-static const GLubyte* Fixed8x13_Character_Map[] = {Fixed8x13_Character_000,Fixed8x13_Character_001,Fixed8x13_Character_002,Fixed8x13_Character_003,Fixed8x13_Character_004,Fixed8x13_Character_005,Fixed8x13_Character_006,Fixed8x13_Character_007,Fixed8x13_Character_008,Fixed8x13_Character_009,Fixed8x13_Character_010,Fixed8x13_Character_011,Fixed8x13_Character_012,Fixed8x13_Character_013,Fixed8x13_Character_014,Fixed8x13_Character_015,
-                                                   Fixed8x13_Character_016,Fixed8x13_Character_017,Fixed8x13_Character_018,Fixed8x13_Character_019,Fixed8x13_Character_020,Fixed8x13_Character_021,Fixed8x13_Character_022,Fixed8x13_Character_023,Fixed8x13_Character_024,Fixed8x13_Character_025,Fixed8x13_Character_026,Fixed8x13_Character_027,Fixed8x13_Character_028,Fixed8x13_Character_029,Fixed8x13_Character_030,Fixed8x13_Character_031,
-                                                   Fixed8x13_Character_032,Fixed8x13_Character_033,Fixed8x13_Character_034,Fixed8x13_Character_035,Fixed8x13_Character_036,Fixed8x13_Character_037,Fixed8x13_Character_038,Fixed8x13_Character_039,Fixed8x13_Character_040,Fixed8x13_Character_041,Fixed8x13_Character_042,Fixed8x13_Character_043,Fixed8x13_Character_044,Fixed8x13_Character_045,Fixed8x13_Character_046,Fixed8x13_Character_047,
-                                                   Fixed8x13_Character_048,Fixed8x13_Character_049,Fixed8x13_Character_050,Fixed8x13_Character_051,Fixed8x13_Character_052,Fixed8x13_Character_053,Fixed8x13_Character_054,Fixed8x13_Character_055,Fixed8x13_Character_056,Fixed8x13_Character_057,Fixed8x13_Character_058,Fixed8x13_Character_059,Fixed8x13_Character_060,Fixed8x13_Character_061,Fixed8x13_Character_062,Fixed8x13_Character_063,
-                                                   Fixed8x13_Character_064,Fixed8x13_Character_065,Fixed8x13_Character_066,Fixed8x13_Character_067,Fixed8x13_Character_068,Fixed8x13_Character_069,Fixed8x13_Character_070,Fixed8x13_Character_071,Fixed8x13_Character_072,Fixed8x13_Character_073,Fixed8x13_Character_074,Fixed8x13_Character_075,Fixed8x13_Character_076,Fixed8x13_Character_077,Fixed8x13_Character_078,Fixed8x13_Character_079,
-                                                   Fixed8x13_Character_080,Fixed8x13_Character_081,Fixed8x13_Character_082,Fixed8x13_Character_083,Fixed8x13_Character_084,Fixed8x13_Character_085,Fixed8x13_Character_086,Fixed8x13_Character_087,Fixed8x13_Character_088,Fixed8x13_Character_089,Fixed8x13_Character_090,Fixed8x13_Character_091,Fixed8x13_Character_092,Fixed8x13_Character_093,Fixed8x13_Character_094,Fixed8x13_Character_095,
-                                                   Fixed8x13_Character_096,Fixed8x13_Character_097,Fixed8x13_Character_098,Fixed8x13_Character_099,Fixed8x13_Character_100,Fixed8x13_Character_101,Fixed8x13_Character_102,Fixed8x13_Character_103,Fixed8x13_Character_104,Fixed8x13_Character_105,Fixed8x13_Character_106,Fixed8x13_Character_107,Fixed8x13_Character_108,Fixed8x13_Character_109,Fixed8x13_Character_110,Fixed8x13_Character_111,
-                                                   Fixed8x13_Character_112,Fixed8x13_Character_113,Fixed8x13_Character_114,Fixed8x13_Character_115,Fixed8x13_Character_116,Fixed8x13_Character_117,Fixed8x13_Character_118,Fixed8x13_Character_119,Fixed8x13_Character_120,Fixed8x13_Character_121,Fixed8x13_Character_122,Fixed8x13_Character_123,Fixed8x13_Character_124,Fixed8x13_Character_125,Fixed8x13_Character_126,Fixed8x13_Character_032,
-                                                   Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,
-                                                   Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,
-                                                   Fixed8x13_Character_160,Fixed8x13_Character_161,Fixed8x13_Character_162,Fixed8x13_Character_163,Fixed8x13_Character_164,Fixed8x13_Character_165,Fixed8x13_Character_166,Fixed8x13_Character_167,Fixed8x13_Character_168,Fixed8x13_Character_169,Fixed8x13_Character_170,Fixed8x13_Character_171,Fixed8x13_Character_172,Fixed8x13_Character_173,Fixed8x13_Character_174,Fixed8x13_Character_175,
-                                                   Fixed8x13_Character_176,Fixed8x13_Character_177,Fixed8x13_Character_178,Fixed8x13_Character_179,Fixed8x13_Character_180,Fixed8x13_Character_181,Fixed8x13_Character_182,Fixed8x13_Character_183,Fixed8x13_Character_184,Fixed8x13_Character_185,Fixed8x13_Character_186,Fixed8x13_Character_187,Fixed8x13_Character_188,Fixed8x13_Character_189,Fixed8x13_Character_190,Fixed8x13_Character_191,
-                                                   Fixed8x13_Character_192,Fixed8x13_Character_193,Fixed8x13_Character_194,Fixed8x13_Character_195,Fixed8x13_Character_196,Fixed8x13_Character_197,Fixed8x13_Character_198,Fixed8x13_Character_199,Fixed8x13_Character_200,Fixed8x13_Character_201,Fixed8x13_Character_202,Fixed8x13_Character_203,Fixed8x13_Character_204,Fixed8x13_Character_205,Fixed8x13_Character_206,Fixed8x13_Character_207,
-                                                   Fixed8x13_Character_208,Fixed8x13_Character_209,Fixed8x13_Character_210,Fixed8x13_Character_211,Fixed8x13_Character_212,Fixed8x13_Character_213,Fixed8x13_Character_214,Fixed8x13_Character_215,Fixed8x13_Character_216,Fixed8x13_Character_217,Fixed8x13_Character_218,Fixed8x13_Character_219,Fixed8x13_Character_220,Fixed8x13_Character_221,Fixed8x13_Character_222,Fixed8x13_Character_223,
-                                                   Fixed8x13_Character_224,Fixed8x13_Character_225,Fixed8x13_Character_226,Fixed8x13_Character_227,Fixed8x13_Character_228,Fixed8x13_Character_229,Fixed8x13_Character_230,Fixed8x13_Character_231,Fixed8x13_Character_232,Fixed8x13_Character_233,Fixed8x13_Character_234,Fixed8x13_Character_235,Fixed8x13_Character_236,Fixed8x13_Character_237,Fixed8x13_Character_238,Fixed8x13_Character_239,
-                                                   Fixed8x13_Character_240,Fixed8x13_Character_241,Fixed8x13_Character_242,Fixed8x13_Character_243,Fixed8x13_Character_244,Fixed8x13_Character_245,Fixed8x13_Character_246,Fixed8x13_Character_247,Fixed8x13_Character_248,Fixed8x13_Character_249,Fixed8x13_Character_250,Fixed8x13_Character_251,Fixed8x13_Character_252,Fixed8x13_Character_253,Fixed8x13_Character_254,Fixed8x13_Character_255,NULL};
-
-/* The font structure: */
-const SFG_Font fgFontFixed8x13 = { "-misc-fixed-medium-r-normal--13-120-75-75-C-80-iso8859-1", 256, 14, Fixed8x13_Character_Map, 0, 3 };
-
-static const GLubyte Fixed9x15_Character_000[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_001[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0, 28,  0, 62,  0,127,  0,255,128,127,  0, 62,  0, 28,  0,  8,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_002[] = {  9,  0,  0,170,128, 85,  0,170,128, 85,  0,170,128, 85,  0,170,128, 85,  0,170,128, 85,  0,170,128, 85,  0,170,128, 85,  0,170,128};
-static const GLubyte Fixed9x15_Character_003[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  4,  0,  4,  0,  4,  0, 31,  0,  0,  0, 72,  0, 72,  0,120,  0, 72,  0, 72,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_004[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0,  8,  0, 14,  0, 72,  0, 79,  0, 64,  0,112,  0, 64,  0,120,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_005[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  9,  0,  9,  0, 14,  0,  9,  0, 14,  0,  0,  0, 56,  0, 64,  0, 64,  0, 64,  0, 56,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_006[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0, 14,  0,  8,  0, 15,  0,  0,  0,120,  0, 64,  0, 64,  0, 64,  0, 64,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_007[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0, 18,  0, 18,  0, 12,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_008[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,  0,  0,  0,  8,  0,  8,  0,  8,  0,127,  0,  8,  0,  8,  0,  8,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_009[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0,  8,  0,  8,  0,  8,  0,  8,  0,  0,  0, 68,  0, 76,  0, 84,  0,100,  0, 68,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_010[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  4,  0,  4,  0,  4,  0, 31,  0,  0,  0, 16,  0, 40,  0, 40,  0, 68,  0, 68,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_011[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,248,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0};
-static const GLubyte Fixed9x15_Character_012[] = {  9,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,248,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_013[] = {  9,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 15,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_014[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,128,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0};
-static const GLubyte Fixed9x15_Character_015[] = {  9,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,255,128,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0};
-static const GLubyte Fixed9x15_Character_016[] = {  9,  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,255,128};
-static const GLubyte Fixed9x15_Character_017[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,255,128,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_018[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,255,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_019[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,255,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_020[] = {  9,  0,  0,255,128,  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};
-static const GLubyte Fixed9x15_Character_021[] = {  9,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 15,128,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0};
-static const GLubyte Fixed9x15_Character_022[] = {  9,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,248,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0};
-static const GLubyte Fixed9x15_Character_023[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,255,128,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0};
-static const GLubyte Fixed9x15_Character_024[] = {  9,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,255,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_025[] = {  9,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0};
-static const GLubyte Fixed9x15_Character_026[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,  0,  0,  0,  3,  0, 28,  0, 96,  0, 28,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_027[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,  0,  0,  0, 96,  0, 28,  0,  3,  0, 28,  0, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_028[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 34,  0, 34,  0, 34,  0, 34,  0, 34,  0, 34,  0,127,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_029[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0, 16,  0,127,  0,  8,  0,127,  0,  4,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_030[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 46,  0, 81,  0, 48,  0, 16,  0, 16,  0,124,  0, 16,  0, 16,  0, 17,  0, 14,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_031[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_032[] = {  9,  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};
-static const GLubyte Fixed9x15_Character_033[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0,  0,  0,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_034[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 18,  0, 18,  0, 18,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_035[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 36,  0, 36,  0,126,  0, 36,  0, 36,  0,126,  0, 36,  0, 36,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_036[] = {  9,  0,  0,  0,  0,  0,  0,  8,  0, 62,  0, 73,  0,  9,  0,  9,  0, 10,  0, 28,  0, 40,  0, 72,  0, 73,  0, 62,  0,  8,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_037[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 66,  0, 37,  0, 37,  0, 18,  0,  8,  0,  8,  0, 36,  0, 82,  0, 82,  0, 33,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_038[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 49,  0, 74,  0, 68,  0, 74,  0, 49,  0, 48,  0, 72,  0, 72,  0, 72,  0, 48,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_039[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  8,  0,  4,  0,  6,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_040[] = {  9,  0,  0,  0,  0,  0,  0,  4,  0,  8,  0,  8,  0, 16,  0, 16,  0, 16,  0, 16,  0, 16,  0, 16,  0,  8,  0,  8,  0,  4,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_041[] = {  9,  0,  0,  0,  0,  0,  0, 16,  0,  8,  0,  8,  0,  4,  0,  4,  0,  4,  0,  4,  0,  4,  0,  4,  0,  8,  0,  8,  0, 16,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_042[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0, 73,  0, 42,  0, 28,  0, 42,  0, 73,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_043[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0,  8,  0,127,  0,  8,  0,  8,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_044[] = {  9,  0,  0,  8,  0,  4,  0,  4,  0, 12,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_045[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_046[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_047[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0, 32,  0, 32,  0, 16,  0,  8,  0,  8,  0,  4,  0,  2,  0,  2,  0,  1,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_048[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 28,  0, 34,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 34,  0, 28,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_049[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,127,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 72,  0, 40,  0, 24,  0,  8,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_050[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,127,  0, 64,  0, 32,  0, 16,  0,  8,  0,  4,  0,  2,  0, 65,  0, 65,  0, 62,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_051[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0,  1,  0,  1,  0,  1,  0, 14,  0,  4,  0,  2,  0,  1,  0,127,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_052[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  2,  0,  2,  0,127,  0, 66,  0, 34,  0, 18,  0, 10,  0,  6,  0,  2,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_053[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0,  1,  0,  1,  0,  1,  0, 97,  0, 94,  0, 64,  0, 64,  0,127,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_054[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 97,  0, 94,  0, 64,  0, 64,  0, 32,  0, 30,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_055[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0, 32,  0, 16,  0, 16,  0,  8,  0,  4,  0,  2,  0,  1,  0,  1,  0,127,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_056[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 28,  0, 34,  0, 65,  0, 65,  0, 34,  0, 28,  0, 34,  0, 65,  0, 34,  0, 28,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_057[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 60,  0,  2,  0,  1,  0,  1,  0, 61,  0, 67,  0, 65,  0, 65,  0, 65,  0, 62,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_058[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0, 12,  0,  0,  0,  0,  0,  0,  0, 12,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_059[] = {  9,  0,  0,  8,  0,  4,  0,  4,  0, 12,  0, 12,  0,  0,  0,  0,  0,  0,  0, 12,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_060[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  4,  0,  8,  0, 16,  0, 32,  0, 32,  0, 16,  0,  8,  0,  4,  0,  2,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_061[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,  0,  0,  0,  0,  0,127,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_062[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0, 16,  0,  8,  0,  4,  0,  2,  0,  2,  0,  4,  0,  8,  0, 16,  0, 32,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_063[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  8,  0,  8,  0,  4,  0,  2,  0,  1,  0, 65,  0, 65,  0, 62,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_064[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 64,  0, 64,  0, 77,  0, 83,  0, 81,  0, 79,  0, 65,  0, 65,  0, 62,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_065[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0,127,  0, 65,  0, 65,  0, 65,  0, 34,  0, 20,  0,  8,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_066[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,126,  0, 33,  0, 33,  0, 33,  0, 33,  0,126,  0, 33,  0, 33,  0, 33,  0,126,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_067[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 64,  0, 64,  0, 64,  0, 64,  0, 64,  0, 64,  0, 65,  0, 62,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_068[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,126,  0, 33,  0, 33,  0, 33,  0, 33,  0, 33,  0, 33,  0, 33,  0, 33,  0,126,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_069[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,127,  0, 32,  0, 32,  0, 32,  0, 32,  0, 60,  0, 32,  0, 32,  0, 32,  0,127,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_070[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0, 32,  0, 32,  0, 32,  0, 32,  0, 60,  0, 32,  0, 32,  0, 32,  0,127,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_071[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 71,  0, 64,  0, 64,  0, 64,  0, 65,  0, 62,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_072[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0,127,  0, 65,  0, 65,  0, 65,  0, 65,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_073[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 62,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_074[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 60,  0, 66,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0, 15,128,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_075[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 66,  0, 68,  0, 72,  0, 80,  0,112,  0, 72,  0, 68,  0, 66,  0, 65,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_076[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,127,  0, 64,  0, 64,  0, 64,  0, 64,  0, 64,  0, 64,  0, 64,  0, 64,  0, 64,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_077[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0, 73,  0, 73,  0, 85,  0, 85,  0, 99,  0, 65,  0, 65,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_078[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0, 67,  0, 69,  0, 73,  0, 81,  0, 97,  0, 65,  0, 65,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_079[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 62,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_080[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0, 64,  0, 64,  0, 64,  0, 64,  0,126,  0, 65,  0, 65,  0, 65,  0,126,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_081[] = {  9,  0,  0,  0,  0,  3,  0,  4,  0, 62,  0, 73,  0, 81,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 62,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_082[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 66,  0, 68,  0, 72,  0,126,  0, 65,  0, 65,  0, 65,  0,126,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_083[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0,  1,  0,  6,  0, 56,  0, 64,  0, 65,  0, 65,  0, 62,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_084[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,127,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_085[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_086[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0, 20,  0, 20,  0, 20,  0, 34,  0, 34,  0, 34,  0, 65,  0, 65,  0, 65,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_087[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 34,  0, 85,  0, 73,  0, 73,  0, 73,  0, 73,  0, 65,  0, 65,  0, 65,  0, 65,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_088[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 34,  0, 20,  0,  8,  0,  8,  0, 20,  0, 34,  0, 65,  0, 65,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_089[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 20,  0, 34,  0, 65,  0, 65,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_090[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,127,  0, 64,  0, 64,  0, 32,  0, 16,  0,  8,  0,  4,  0,  2,  0,  1,  0,127,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_091[] = {  9,  0,  0,  0,  0,  0,  0, 30,  0, 16,  0, 16,  0, 16,  0, 16,  0, 16,  0, 16,  0, 16,  0, 16,  0, 16,  0, 16,  0, 30,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_092[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  2,  0,  2,  0,  4,  0,  8,  0,  8,  0, 16,  0, 32,  0, 32,  0, 64,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_093[] = {  9,  0,  0,  0,  0,  0,  0, 60,  0,  4,  0,  4,  0,  4,  0,  4,  0,  4,  0,  4,  0,  4,  0,  4,  0,  4,  0,  4,  0, 60,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_094[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 34,  0, 20,  0,  8,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_095[] = {  9,  0,  0,  0,  0,  0,  0,255,  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};
-static const GLubyte Fixed9x15_Character_096[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  8,  0, 16,  0, 48,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_097[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 61,  0, 67,  0, 65,  0, 63,  0,  1,  0,  1,  0, 62,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_098[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 94,  0, 97,  0, 65,  0, 65,  0, 65,  0, 97,  0, 94,  0, 64,  0, 64,  0, 64,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_099[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 64,  0, 64,  0, 64,  0, 65,  0, 62,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_100[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 61,  0, 67,  0, 65,  0, 65,  0, 65,  0, 67,  0, 61,  0,  1,  0,  1,  0,  1,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_101[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 64,  0, 64,  0,127,  0, 65,  0, 65,  0, 62,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_102[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0, 16,  0, 16,  0, 16,  0,124,  0, 16,  0, 16,  0, 17,  0, 17,  0, 14,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_103[] = {  9,  0,  0, 62,  0, 65,  0, 65,  0, 62,  0, 64,  0, 60,  0, 66,  0, 66,  0, 66,  0, 61,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_104[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 97,  0, 94,  0, 64,  0, 64,  0, 64,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_105[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 56,  0,  0,  0,  0,  0, 24,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_106[] = {  9,  0,  0, 60,  0, 66,  0, 66,  0, 66,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0, 14,  0,  0,  0,  0,  0,  6,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_107[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 70,  0, 88,  0, 96,  0, 88,  0, 70,  0, 65,  0, 64,  0, 64,  0, 64,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_108[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 56,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_109[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 73,  0, 73,  0, 73,  0, 73,  0, 73,  0,118,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_110[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 97,  0, 94,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_111[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 62,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_112[] = {  9,  0,  0, 64,  0, 64,  0, 64,  0, 94,  0, 97,  0, 65,  0, 65,  0, 65,  0, 97,  0, 94,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_113[] = {  9,  0,  0,  1,  0,  1,  0,  1,  0, 61,  0, 67,  0, 65,  0, 65,  0, 65,  0, 67,  0, 61,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_114[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0, 32,  0, 32,  0, 32,  0, 33,  0, 49,  0, 78,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_115[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0,  1,  0, 62,  0, 64,  0, 65,  0, 62,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_116[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 14,  0, 17,  0, 16,  0, 16,  0, 16,  0, 16,  0,126,  0, 16,  0, 16,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_117[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 61,  0, 66,  0, 66,  0, 66,  0, 66,  0, 66,  0, 66,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_118[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0, 20,  0, 20,  0, 34,  0, 34,  0, 65,  0, 65,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_119[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 34,  0, 85,  0, 73,  0, 73,  0, 73,  0, 65,  0, 65,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_120[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 34,  0, 20,  0,  8,  0, 20,  0, 34,  0, 65,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_121[] = {  9,  0,  0, 60,  0, 66,  0,  2,  0, 58,  0, 70,  0, 66,  0, 66,  0, 66,  0, 66,  0, 66,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_122[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,127,  0, 32,  0, 16,  0,  8,  0,  4,  0,  2,  0,127,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_123[] = {  9,  0,  0,  0,  0,  0,  0,  7,  0,  8,  0,  8,  0,  8,  0,  4,  0, 24,  0, 24,  0,  4,  0,  8,  0,  8,  0,  8,  0,  7,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_124[] = {  9,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_125[] = {  9,  0,  0,  0,  0,  0,  0,112,  0,  8,  0,  8,  0,  8,  0, 16,  0, 12,  0, 12,  0, 16,  0,  8,  0,  8,  0,  8,  0,112,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_126[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 70,  0, 73,  0, 49,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_127[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_128[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_129[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_130[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_131[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_132[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_133[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_134[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_135[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_136[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_137[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_138[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_139[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_140[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_141[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_142[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_143[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_144[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_145[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_146[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_147[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_148[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_149[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_150[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_151[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_152[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_153[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_154[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_155[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_156[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_157[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_158[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_159[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_160[] = {  9,  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};
-static const GLubyte Fixed9x15_Character_161[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  0,  0,  0,  0,  8,  0,  8,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_162[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0, 60,  0, 82,  0, 80,  0, 72,  0, 74,  0, 60,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_163[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 46,  0, 81,  0, 48,  0, 16,  0, 16,  0,124,  0, 16,  0, 16,  0, 17,  0, 14,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_164[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 62,  0, 34,  0, 34,  0, 62,  0, 65,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_165[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0,  8,  0, 62,  0,  8,  0, 62,  0, 20,  0, 34,  0, 65,  0, 65,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_166[] = {  9,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_167[] = {  9,  0,  0,  0,  0,  0,  0, 24,  0, 36,  0,  4,  0, 24,  0, 36,  0, 36,  0, 36,  0, 24,  0, 32,  0, 36,  0, 24,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_168[] = {  9,  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, 34,  0, 34,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_169[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 60,  0, 66,  0,153,  0,165,  0,161,  0,165,  0,153,  0, 66,  0, 60,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_170[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,124,  0,  0,  0, 60,  0, 72,  0, 56,  0, 72,  0, 48,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_171[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  9,  0, 18,  0, 36,  0, 72,  0, 72,  0, 36,  0, 18,  0,  9,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_172[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  2,  0,  2,  0,126,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_173[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_174[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 60,  0, 66,  0,165,  0,169,  0,185,  0,165,  0,185,  0, 66,  0, 60,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_175[] = {  9,  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,126,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_176[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0, 18,  0, 18,  0, 12,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_177[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,  0,  0,  0,  8,  0,  8,  0,  8,  0,127,  0,  8,  0,  8,  0,  8,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_178[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,120,  0, 64,  0, 48,  0,  8,  0, 72,  0, 48,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_179[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48,  0, 72,  0,  8,  0, 16,  0, 72,  0, 48,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_180[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  8,  0,  4,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_181[] = {  9,  0,  0,  0,  0, 64,  0, 64,  0, 93,  0, 99,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_182[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  5,  0,  5,  0,  5,  0,  5,  0,  5,  0, 61,  0, 69,  0, 69,  0, 69,  0, 63,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_183[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_184[] = {  9,  0,  0, 24,  0, 36,  0, 12,  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};
-static const GLubyte Fixed9x15_Character_185[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,112,  0, 32,  0, 32,  0, 32,  0, 96,  0, 32,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_186[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,124,  0,  0,  0, 56,  0, 68,  0, 68,  0, 56,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_187[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 72,  0, 36,  0, 18,  0,  9,  0,  9,  0, 18,  0, 36,  0, 72,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_188[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  3,  0, 13,  0,  9,  0,  5,  0,115,  0, 33,  0, 32,  0, 32,  0, 96,  0, 32,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_189[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0,  8,  0,  6,  0,  1,  0,121,  0, 38,  0, 32,  0, 32,  0, 96,  0, 32,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_190[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  3,  0, 13,  0,  9,  0,  5,  0, 51,  0, 73,  0,  8,  0, 16,  0, 72,  0, 48,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_191[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 64,  0, 32,  0, 16,  0,  8,  0,  8,  0,  0,  0,  8,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_192[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0,127,  0, 65,  0, 65,  0, 34,  0, 28,  0,  0,  0,  8,  0, 16,  0, 32,  0};
-static const GLubyte Fixed9x15_Character_193[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0,127,  0, 65,  0, 65,  0, 34,  0, 28,  0,  0,  0,  8,  0,  4,  0,  2,  0};
-static const GLubyte Fixed9x15_Character_194[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0,127,  0, 65,  0, 65,  0, 34,  0, 28,  0,  0,  0, 34,  0, 20,  0,  8,  0};
-static const GLubyte Fixed9x15_Character_195[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0,127,  0, 65,  0, 65,  0, 34,  0, 28,  0,  0,  0, 78,  0, 49,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_196[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0,127,  0, 65,  0, 65,  0, 34,  0, 28,  0,  0,  0, 34,  0, 34,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_197[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0,127,  0, 65,  0, 65,  0, 34,  0, 20,  0, 28,  0, 34,  0, 28,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_198[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 79,  0, 72,  0, 72,  0, 72,  0,126,  0, 72,  0, 72,  0, 72,  0, 72,  0, 55,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_199[] = {  9,  0,  0, 24,  0, 36,  0, 12,  0, 62,  0, 65,  0, 64,  0, 64,  0, 64,  0, 64,  0, 64,  0, 64,  0, 65,  0, 62,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_200[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,127,  0, 32,  0, 32,  0, 32,  0, 60,  0, 32,  0, 32,  0,127,  0,  0,  0,  8,  0, 16,  0, 32,  0};
-static const GLubyte Fixed9x15_Character_201[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,127,  0, 32,  0, 32,  0, 32,  0, 60,  0, 32,  0, 32,  0,127,  0,  0,  0,  8,  0,  4,  0,  2,  0};
-static const GLubyte Fixed9x15_Character_202[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,127,  0, 32,  0, 32,  0, 32,  0, 60,  0, 32,  0, 32,  0,127,  0,  0,  0, 34,  0, 20,  0,  8,  0};
-static const GLubyte Fixed9x15_Character_203[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,127,  0, 32,  0, 32,  0, 32,  0, 60,  0, 32,  0, 32,  0,127,  0,  0,  0, 34,  0, 34,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_204[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 62,  0,  0,  0,  8,  0, 16,  0, 32,  0};
-static const GLubyte Fixed9x15_Character_205[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 62,  0,  0,  0,  8,  0,  4,  0,  2,  0};
-static const GLubyte Fixed9x15_Character_206[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 62,  0,  0,  0, 34,  0, 20,  0,  8,  0};
-static const GLubyte Fixed9x15_Character_207[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 62,  0,  0,  0, 34,  0, 34,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_208[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,124,  0, 33,  0, 33,  0, 33,  0, 33,  0,225,  0, 33,  0, 33,  0, 33,  0,124,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_209[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 67,  0, 69,  0, 73,  0, 73,  0, 81,  0, 97,  0, 65,  0,  0,  0, 78,  0, 49,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_210[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 62,  0,  0,  0,  8,  0, 16,  0, 32,  0};
-static const GLubyte Fixed9x15_Character_211[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 62,  0,  0,  0,  8,  0,  4,  0,  2,  0};
-static const GLubyte Fixed9x15_Character_212[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 62,  0,  0,  0, 34,  0, 20,  0,  8,  0};
-static const GLubyte Fixed9x15_Character_213[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 62,  0,  0,  0, 78,  0, 49,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_214[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 62,  0,  0,  0, 34,  0, 34,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_215[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 34,  0, 20,  0,  8,  0, 20,  0, 34,  0, 65,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_216[] = {  9,  0,  0,  0,  0,  0,  0, 64,  0, 62,  0, 97,  0, 81,  0, 81,  0, 73,  0, 73,  0, 69,  0, 69,  0, 67,  0, 62,  0,  1,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_217[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0,  0,  0,  8,  0, 16,  0, 32,  0};
-static const GLubyte Fixed9x15_Character_218[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0,  0,  0,  8,  0,  4,  0,  2,  0};
-static const GLubyte Fixed9x15_Character_219[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0,  0,  0, 34,  0, 20,  0,  8,  0};
-static const GLubyte Fixed9x15_Character_220[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0,  0,  0, 34,  0, 34,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_221[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0, 20,  0, 34,  0, 65,  0, 65,  0,  0,  0,  8,  0,  4,  0,  2,  0};
-static const GLubyte Fixed9x15_Character_222[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0, 64,  0, 64,  0,126,  0, 65,  0, 65,  0, 65,  0,126,  0, 64,  0, 64,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_223[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 44,  0, 34,  0, 34,  0, 34,  0, 36,  0,104,  0, 36,  0, 34,  0, 34,  0, 28,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_224[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 61,  0, 67,  0, 65,  0, 63,  0,  1,  0,  1,  0, 62,  0,  0,  0,  4,  0,  8,  0, 16,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_225[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 61,  0, 67,  0, 65,  0, 63,  0,  1,  0,  1,  0, 62,  0,  0,  0,  8,  0,  4,  0,  2,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_226[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 61,  0, 67,  0, 65,  0, 63,  0,  1,  0,  1,  0, 62,  0,  0,  0, 34,  0, 20,  0,  8,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_227[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 61,  0, 67,  0, 65,  0, 63,  0,  1,  0,  1,  0, 62,  0,  0,  0, 38,  0, 25,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_228[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 61,  0, 67,  0, 65,  0, 63,  0,  1,  0,  1,  0, 62,  0,  0,  0, 34,  0, 34,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_229[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 61,  0, 67,  0, 65,  0, 63,  0,  1,  0,  1,  0, 62,  0,  0,  0, 12,  0, 18,  0, 12,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_230[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 55,  0, 73,  0, 72,  0, 62,  0,  9,  0, 73,  0, 54,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_231[] = {  9,  0,  0, 24,  0, 36,  0, 12,  0, 62,  0, 65,  0, 64,  0, 64,  0, 64,  0, 65,  0, 62,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_232[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 64,  0, 64,  0,127,  0, 65,  0, 65,  0, 62,  0,  0,  0,  8,  0, 16,  0, 32,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_233[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 64,  0, 64,  0,127,  0, 65,  0, 65,  0, 62,  0,  0,  0,  8,  0,  4,  0,  2,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_234[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 64,  0, 64,  0,127,  0, 65,  0, 65,  0, 62,  0,  0,  0, 34,  0, 20,  0,  8,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_235[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 64,  0, 64,  0,127,  0, 65,  0, 65,  0, 62,  0,  0,  0, 34,  0, 34,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_236[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 56,  0,  0,  0,  8,  0, 16,  0, 32,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_237[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 56,  0,  0,  0, 16,  0,  8,  0,  4,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_238[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 56,  0,  0,  0, 68,  0, 40,  0, 16,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_239[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 56,  0,  0,  0, 36,  0, 36,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_240[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 62,  0,  4,  0, 40,  0, 24,  0, 36,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_241[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 97,  0, 94,  0,  0,  0, 78,  0, 49,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_242[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 62,  0,  0,  0,  8,  0, 16,  0, 32,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_243[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 62,  0,  0,  0,  8,  0,  4,  0,  2,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_244[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 62,  0,  0,  0, 34,  0, 20,  0,  8,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_245[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 62,  0,  0,  0, 78,  0, 49,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_246[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 62,  0,  0,  0, 34,  0, 34,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_247[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0, 28,  0,  8,  0,  0,  0,127,  0,  0,  0,  8,  0, 28,  0,  8,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_248[] = {  9,  0,  0,  0,  0,  0,  0, 64,  0, 62,  0, 81,  0, 81,  0, 73,  0, 69,  0, 69,  0, 62,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_249[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 61,  0, 66,  0, 66,  0, 66,  0, 66,  0, 66,  0, 66,  0,  0,  0,  8,  0, 16,  0, 32,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_250[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 61,  0, 66,  0, 66,  0, 66,  0, 66,  0, 66,  0, 66,  0,  0,  0,  8,  0,  4,  0,  2,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_251[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 61,  0, 66,  0, 66,  0, 66,  0, 66,  0, 66,  0, 66,  0,  0,  0, 34,  0, 20,  0,  8,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_252[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 61,  0, 66,  0, 66,  0, 66,  0, 66,  0, 66,  0, 66,  0,  0,  0, 36,  0, 36,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_253[] = {  9,  0,  0, 60,  0, 66,  0,  2,  0, 58,  0, 70,  0, 66,  0, 66,  0, 66,  0, 66,  0, 66,  0,  0,  0, 16,  0,  8,  0,  4,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_254[] = {  9,  0,  0, 64,  0, 64,  0, 64,  0, 94,  0, 97,  0, 65,  0, 65,  0, 97,  0, 94,  0, 64,  0, 64,  0, 64,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Fixed9x15_Character_255[] = {  9,  0,  0, 60,  0, 66,  0,  2,  0, 58,  0, 70,  0, 66,  0, 66,  0, 66,  0, 66,  0, 66,  0,  0,  0, 36,  0, 36,  0,  0,  0,  0,  0};
-
-/* The font characters mapping: */
-static const GLubyte* Fixed9x15_Character_Map[] = {Fixed9x15_Character_000,Fixed9x15_Character_001,Fixed9x15_Character_002,Fixed9x15_Character_003,Fixed9x15_Character_004,Fixed9x15_Character_005,Fixed9x15_Character_006,Fixed9x15_Character_007,Fixed9x15_Character_008,Fixed9x15_Character_009,Fixed9x15_Character_010,Fixed9x15_Character_011,Fixed9x15_Character_012,Fixed9x15_Character_013,Fixed9x15_Character_014,Fixed9x15_Character_015,
-                                                   Fixed9x15_Character_016,Fixed9x15_Character_017,Fixed9x15_Character_018,Fixed9x15_Character_019,Fixed9x15_Character_020,Fixed9x15_Character_021,Fixed9x15_Character_022,Fixed9x15_Character_023,Fixed9x15_Character_024,Fixed9x15_Character_025,Fixed9x15_Character_026,Fixed9x15_Character_027,Fixed9x15_Character_028,Fixed9x15_Character_029,Fixed9x15_Character_030,Fixed9x15_Character_031,
-                                                   Fixed9x15_Character_032,Fixed9x15_Character_033,Fixed9x15_Character_034,Fixed9x15_Character_035,Fixed9x15_Character_036,Fixed9x15_Character_037,Fixed9x15_Character_038,Fixed9x15_Character_039,Fixed9x15_Character_040,Fixed9x15_Character_041,Fixed9x15_Character_042,Fixed9x15_Character_043,Fixed9x15_Character_044,Fixed9x15_Character_045,Fixed9x15_Character_046,Fixed9x15_Character_047,
-                                                   Fixed9x15_Character_048,Fixed9x15_Character_049,Fixed9x15_Character_050,Fixed9x15_Character_051,Fixed9x15_Character_052,Fixed9x15_Character_053,Fixed9x15_Character_054,Fixed9x15_Character_055,Fixed9x15_Character_056,Fixed9x15_Character_057,Fixed9x15_Character_058,Fixed9x15_Character_059,Fixed9x15_Character_060,Fixed9x15_Character_061,Fixed9x15_Character_062,Fixed9x15_Character_063,
-                                                   Fixed9x15_Character_064,Fixed9x15_Character_065,Fixed9x15_Character_066,Fixed9x15_Character_067,Fixed9x15_Character_068,Fixed9x15_Character_069,Fixed9x15_Character_070,Fixed9x15_Character_071,Fixed9x15_Character_072,Fixed9x15_Character_073,Fixed9x15_Character_074,Fixed9x15_Character_075,Fixed9x15_Character_076,Fixed9x15_Character_077,Fixed9x15_Character_078,Fixed9x15_Character_079,
-                                                   Fixed9x15_Character_080,Fixed9x15_Character_081,Fixed9x15_Character_082,Fixed9x15_Character_083,Fixed9x15_Character_084,Fixed9x15_Character_085,Fixed9x15_Character_086,Fixed9x15_Character_087,Fixed9x15_Character_088,Fixed9x15_Character_089,Fixed9x15_Character_090,Fixed9x15_Character_091,Fixed9x15_Character_092,Fixed9x15_Character_093,Fixed9x15_Character_094,Fixed9x15_Character_095,
-                                                   Fixed9x15_Character_096,Fixed9x15_Character_097,Fixed9x15_Character_098,Fixed9x15_Character_099,Fixed9x15_Character_100,Fixed9x15_Character_101,Fixed9x15_Character_102,Fixed9x15_Character_103,Fixed9x15_Character_104,Fixed9x15_Character_105,Fixed9x15_Character_106,Fixed9x15_Character_107,Fixed9x15_Character_108,Fixed9x15_Character_109,Fixed9x15_Character_110,Fixed9x15_Character_111,
-                                                   Fixed9x15_Character_112,Fixed9x15_Character_113,Fixed9x15_Character_114,Fixed9x15_Character_115,Fixed9x15_Character_116,Fixed9x15_Character_117,Fixed9x15_Character_118,Fixed9x15_Character_119,Fixed9x15_Character_120,Fixed9x15_Character_121,Fixed9x15_Character_122,Fixed9x15_Character_123,Fixed9x15_Character_124,Fixed9x15_Character_125,Fixed9x15_Character_126,Fixed9x15_Character_032,
-                                                   Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,
-                                                   Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,
-                                                   Fixed9x15_Character_160,Fixed9x15_Character_161,Fixed9x15_Character_162,Fixed9x15_Character_163,Fixed9x15_Character_164,Fixed9x15_Character_165,Fixed9x15_Character_166,Fixed9x15_Character_167,Fixed9x15_Character_168,Fixed9x15_Character_169,Fixed9x15_Character_170,Fixed9x15_Character_171,Fixed9x15_Character_172,Fixed9x15_Character_173,Fixed9x15_Character_174,Fixed9x15_Character_175,
-                                                   Fixed9x15_Character_176,Fixed9x15_Character_177,Fixed9x15_Character_178,Fixed9x15_Character_179,Fixed9x15_Character_180,Fixed9x15_Character_181,Fixed9x15_Character_182,Fixed9x15_Character_183,Fixed9x15_Character_184,Fixed9x15_Character_185,Fixed9x15_Character_186,Fixed9x15_Character_187,Fixed9x15_Character_188,Fixed9x15_Character_189,Fixed9x15_Character_190,Fixed9x15_Character_191,
-                                                   Fixed9x15_Character_192,Fixed9x15_Character_193,Fixed9x15_Character_194,Fixed9x15_Character_195,Fixed9x15_Character_196,Fixed9x15_Character_197,Fixed9x15_Character_198,Fixed9x15_Character_199,Fixed9x15_Character_200,Fixed9x15_Character_201,Fixed9x15_Character_202,Fixed9x15_Character_203,Fixed9x15_Character_204,Fixed9x15_Character_205,Fixed9x15_Character_206,Fixed9x15_Character_207,
-                                                   Fixed9x15_Character_208,Fixed9x15_Character_209,Fixed9x15_Character_210,Fixed9x15_Character_211,Fixed9x15_Character_212,Fixed9x15_Character_213,Fixed9x15_Character_214,Fixed9x15_Character_215,Fixed9x15_Character_216,Fixed9x15_Character_217,Fixed9x15_Character_218,Fixed9x15_Character_219,Fixed9x15_Character_220,Fixed9x15_Character_221,Fixed9x15_Character_222,Fixed9x15_Character_223,
-                                                   Fixed9x15_Character_224,Fixed9x15_Character_225,Fixed9x15_Character_226,Fixed9x15_Character_227,Fixed9x15_Character_228,Fixed9x15_Character_229,Fixed9x15_Character_230,Fixed9x15_Character_231,Fixed9x15_Character_232,Fixed9x15_Character_233,Fixed9x15_Character_234,Fixed9x15_Character_235,Fixed9x15_Character_236,Fixed9x15_Character_237,Fixed9x15_Character_238,Fixed9x15_Character_239,
-                                                   Fixed9x15_Character_240,Fixed9x15_Character_241,Fixed9x15_Character_242,Fixed9x15_Character_243,Fixed9x15_Character_244,Fixed9x15_Character_245,Fixed9x15_Character_246,Fixed9x15_Character_247,Fixed9x15_Character_248,Fixed9x15_Character_249,Fixed9x15_Character_250,Fixed9x15_Character_251,Fixed9x15_Character_252,Fixed9x15_Character_253,Fixed9x15_Character_254,Fixed9x15_Character_255,NULL};
-
-/* The font structure: */
-const SFG_Font fgFontFixed9x15 = { "-misc-fixed-medium-r-normal--15-140-75-75-C-90-iso8859-1", 256, 16, Fixed9x15_Character_Map, 0, 4 };
-
-static const GLubyte Helvetica10_Character_000[] = {  8,  0,  0,  0, 84,  0, 68,  0, 68,  0, 84,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_001[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_002[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_003[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_004[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_005[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_006[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_007[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_008[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_009[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_010[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_011[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_012[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_013[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_014[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_015[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_016[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_017[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_018[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_019[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_020[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_021[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_022[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_023[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_024[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_025[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_026[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_027[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_028[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_029[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_030[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_031[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_032[] = {  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_033[] = {  3,  0,  0,  0, 64,  0, 64, 64, 64, 64, 64, 64,  0,  0,  0};
-static const GLubyte Helvetica10_Character_034[] = {  4,  0,  0,  0,  0,  0,  0,  0,  0,  0, 80, 80,  0,  0,  0};
-static const GLubyte Helvetica10_Character_035[] = {  6,  0,  0,  0, 80, 80,248, 40,124, 40, 40,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_036[] = {  6,  0,  0, 32,112,168, 40,112,160,168,112, 32,  0,  0,  0};
-static const GLubyte Helvetica10_Character_037[] = {  9,  0,  0,  0,  0,  0,  0, 38,  0, 41,  0, 22,  0, 16,  0,  8,  0,104,  0,148,  0,100,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_038[] = {  8,  0,  0,  0, 50, 76, 76, 82, 48, 40, 40, 16,  0,  0,  0};
-static const GLubyte Helvetica10_Character_039[] = {  3,  0,  0,  0,  0,  0,  0,  0,  0, 64, 32, 32,  0,  0,  0};
-static const GLubyte Helvetica10_Character_040[] = {  4,  0, 32, 64, 64,128,128,128,128, 64, 64, 32,  0,  0,  0};
-static const GLubyte Helvetica10_Character_041[] = {  4,  0, 64, 32, 32, 16, 16, 16, 16, 32, 32, 64,  0,  0,  0};
-static const GLubyte Helvetica10_Character_042[] = {  4,  0,  0,  0,  0,  0,  0,  0,  0,160, 64,160,  0,  0,  0};
-static const GLubyte Helvetica10_Character_043[] = {  6,  0,  0,  0,  0, 32, 32,248, 32, 32,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_044[] = {  3,  0,128, 64, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_045[] = {  7,  0,  0,  0,  0,  0,  0,124,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_046[] = {  3,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_047[] = {  3,  0,  0,  0,128,128, 64, 64, 64, 64, 32, 32,  0,  0,  0};
-static const GLubyte Helvetica10_Character_048[] = {  6,  0,  0,  0,112,136,136,136,136,136,136,112,  0,  0,  0};
-static const GLubyte Helvetica10_Character_049[] = {  6,  0,  0,  0, 32, 32, 32, 32, 32, 32, 96, 32,  0,  0,  0};
-static const GLubyte Helvetica10_Character_050[] = {  6,  0,  0,  0,248,128, 64, 48,  8,  8,136,112,  0,  0,  0};
-static const GLubyte Helvetica10_Character_051[] = {  6,  0,  0,  0,112,136,  8,  8, 48,  8,136,112,  0,  0,  0};
-static const GLubyte Helvetica10_Character_052[] = {  6,  0,  0,  0, 16, 16,248,144, 80, 80, 48, 16,  0,  0,  0};
-static const GLubyte Helvetica10_Character_053[] = {  6,  0,  0,  0,112,136,  8,  8,240,128,128,248,  0,  0,  0};
-static const GLubyte Helvetica10_Character_054[] = {  6,  0,  0,  0,112,136,136,200,176,128,136,112,  0,  0,  0};
-static const GLubyte Helvetica10_Character_055[] = {  6,  0,  0,  0, 64, 64, 32, 32, 16, 16,  8,248,  0,  0,  0};
-static const GLubyte Helvetica10_Character_056[] = {  6,  0,  0,  0,112,136,136,136,112,136,136,112,  0,  0,  0};
-static const GLubyte Helvetica10_Character_057[] = {  6,  0,  0,  0,112,136,  8,104,152,136,136,112,  0,  0,  0};
-static const GLubyte Helvetica10_Character_058[] = {  3,  0,  0,  0, 64,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_059[] = {  3,  0,128, 64, 64,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_060[] = {  6,  0,  0,  0,  0, 16, 32, 64, 32, 16,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_061[] = {  5,  0,  0,  0,  0,  0,240,  0,240,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_062[] = {  6,  0,  0,  0,  0, 64, 32, 16, 32, 64,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_063[] = {  6,  0,  0,  0, 32,  0, 32, 32, 16,  8, 72, 48,  0,  0,  0};
-static const GLubyte Helvetica10_Character_064[] = { 11,  0,  0, 62,  0, 64,  0,155,  0,164,128,164,128,162, 64,146, 64, 77, 64, 32,128, 31,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_065[] = {  7,  0,  0,  0,130,130,124, 68, 40, 40, 16, 16,  0,  0,  0};
-static const GLubyte Helvetica10_Character_066[] = {  7,  0,  0,  0,120, 68, 68, 68,120, 68, 68,120,  0,  0,  0};
-static const GLubyte Helvetica10_Character_067[] = {  8,  0,  0,  0, 60, 66, 64, 64, 64, 64, 66, 60,  0,  0,  0};
-static const GLubyte Helvetica10_Character_068[] = {  8,  0,  0,  0,120, 68, 66, 66, 66, 66, 68,120,  0,  0,  0};
-static const GLubyte Helvetica10_Character_069[] = {  7,  0,  0,  0,124, 64, 64, 64,124, 64, 64,124,  0,  0,  0};
-static const GLubyte Helvetica10_Character_070[] = {  6,  0,  0,  0, 64, 64, 64, 64,120, 64, 64,124,  0,  0,  0};
-static const GLubyte Helvetica10_Character_071[] = {  8,  0,  0,  0, 58, 70, 66, 70, 64, 64, 66, 60,  0,  0,  0};
-static const GLubyte Helvetica10_Character_072[] = {  8,  0,  0,  0, 66, 66, 66, 66,126, 66, 66, 66,  0,  0,  0};
-static const GLubyte Helvetica10_Character_073[] = {  3,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64, 64,  0,  0,  0};
-static const GLubyte Helvetica10_Character_074[] = {  5,  0,  0,  0, 96,144, 16, 16, 16, 16, 16, 16,  0,  0,  0};
-static const GLubyte Helvetica10_Character_075[] = {  7,  0,  0,  0, 68, 68, 72, 72,112, 80, 72, 68,  0,  0,  0};
-static const GLubyte Helvetica10_Character_076[] = {  6,  0,  0,  0,120, 64, 64, 64, 64, 64, 64, 64,  0,  0,  0};
-static const GLubyte Helvetica10_Character_077[] = {  9,  0,  0,  0,  0,  0,  0, 73,  0, 73,  0, 73,  0, 85,  0, 85,  0, 99,  0, 99,  0, 65,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_078[] = {  8,  0,  0,  0, 70, 70, 74, 74, 82, 82, 98, 98,  0,  0,  0};
-static const GLubyte Helvetica10_Character_079[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 60,  0,  0,  0};
-static const GLubyte Helvetica10_Character_080[] = {  7,  0,  0,  0, 64, 64, 64, 64,120, 68, 68,120,  0,  0,  0};
-static const GLubyte Helvetica10_Character_081[] = {  8,  0,  0,  1, 62, 70, 74, 66, 66, 66, 66, 60,  0,  0,  0};
-static const GLubyte Helvetica10_Character_082[] = {  7,  0,  0,  0, 68, 68, 68, 68,120, 68, 68,120,  0,  0,  0};
-static const GLubyte Helvetica10_Character_083[] = {  7,  0,  0,  0, 56, 68, 68,  4, 56, 64, 68, 56,  0,  0,  0};
-static const GLubyte Helvetica10_Character_084[] = {  5,  0,  0,  0, 32, 32, 32, 32, 32, 32, 32,248,  0,  0,  0};
-static const GLubyte Helvetica10_Character_085[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 66,  0,  0,  0};
-static const GLubyte Helvetica10_Character_086[] = {  7,  0,  0,  0, 16, 40, 40, 68, 68, 68,130,130,  0,  0,  0};
-static const GLubyte Helvetica10_Character_087[] = {  9,  0,  0,  0,  0,  0,  0, 34,  0, 34,  0, 34,  0, 85,  0, 73,  0, 73,  0,136,128,136,128,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_088[] = {  7,  0,  0,  0, 68, 68, 40, 40, 16, 40, 68, 68,  0,  0,  0};
-static const GLubyte Helvetica10_Character_089[] = {  7,  0,  0,  0, 16, 16, 16, 40, 40, 68, 68,130,  0,  0,  0};
-static const GLubyte Helvetica10_Character_090[] = {  7,  0,  0,  0,124, 64, 32, 16, 16,  8,  4,124,  0,  0,  0};
-static const GLubyte Helvetica10_Character_091[] = {  3,  0, 96, 64, 64, 64, 64, 64, 64, 64, 64, 96,  0,  0,  0};
-static const GLubyte Helvetica10_Character_092[] = {  3,  0,  0,  0, 32, 32, 64, 64, 64, 64,128,128,  0,  0,  0};
-static const GLubyte Helvetica10_Character_093[] = {  3,  0,192, 64, 64, 64, 64, 64, 64, 64, 64,192,  0,  0,  0};
-static const GLubyte Helvetica10_Character_094[] = {  6,  0,  0,  0,  0,  0,  0,136, 80, 80, 32, 32,  0,  0,  0};
-static const GLubyte Helvetica10_Character_095[] = {  6,  0,252,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_096[] = {  3,  0,  0,  0,  0,  0,  0,  0,  0, 63, 64, 32,  0,  0,  0};
-static const GLubyte Helvetica10_Character_097[] = {  5,  0,  0,  0,104,144,144,112, 16,224,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_098[] = {  6,  0,  0,  0,176,200,136,136,200,176,128,128,  0,  0,  0};
-static const GLubyte Helvetica10_Character_099[] = {  5,  0,  0,  0, 96,144,128,128,144, 96,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_100[] = {  6,  0,  0,  0,104,152,136,136,152,104,  8,  8,  0,  0,  0};
-static const GLubyte Helvetica10_Character_101[] = {  5,  0,  0,  0, 96,144,128,240,144, 96,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_102[] = {  4,  0,  0,  0, 64, 64, 64, 64, 64,224, 64, 48,  0,  0,  0};
-static const GLubyte Helvetica10_Character_103[] = {  6,  0,112,  8,104,152,136,136,152,104,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_104[] = {  6,  0,  0,  0,136,136,136,136,200,176,128,128,  0,  0,  0};
-static const GLubyte Helvetica10_Character_105[] = {  2,  0,  0,  0,128,128,128,128,128,128,  0,128,  0,  0,  0};
-static const GLubyte Helvetica10_Character_106[] = {  2,  0,  0,128,128,128,128,128,128,128,  0,128,  0,  0,  0};
-static const GLubyte Helvetica10_Character_107[] = {  5,  0,  0,  0,144,144,160,192,160,144,128,128,  0,  0,  0};
-static const GLubyte Helvetica10_Character_108[] = {  2,  0,  0,  0,128,128,128,128,128,128,128,128,  0,  0,  0};
-static const GLubyte Helvetica10_Character_109[] = {  8,  0,  0,  0,146,146,146,146,146,236,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_110[] = {  6,  0,  0,  0,136,136,136,136,200,176,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_111[] = {  6,  0,  0,  0,112,136,136,136,136,112,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_112[] = {  6,  0,128,128,176,200,136,136,200,176,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_113[] = {  6,  0,  8,  8,104,152,136,136,152,104,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_114[] = {  4,  0,  0,  0,128,128,128,128,192,160,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_115[] = {  5,  0,  0,  0, 96,144, 16, 96,144, 96,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_116[] = {  4,  0,  0,  0, 96, 64, 64, 64, 64,224, 64, 64,  0,  0,  0};
-static const GLubyte Helvetica10_Character_117[] = {  5,  0,  0,  0,112,144,144,144,144,144,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_118[] = {  6,  0,  0,  0, 32, 32, 80, 80,136,136,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_119[] = {  8,  0,  0,  0, 40, 40, 84, 84,146,146,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_120[] = {  6,  0,  0,  0,136,136, 80, 32, 80,136,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_121[] = {  5,  0,128, 64, 64, 96,160,160,144,144,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_122[] = {  5,  0,  0,  0,240,128, 64, 32, 16,240,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_123[] = {  3,  0, 32, 64, 64, 64, 64,128, 64, 64, 64, 32,  0,  0,  0};
-static const GLubyte Helvetica10_Character_124[] = {  3,  0, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  0,  0,  0};
-static const GLubyte Helvetica10_Character_125[] = {  3,  0,128, 64, 64, 64, 64, 32, 64, 64, 64,128,  0,  0,  0};
-static const GLubyte Helvetica10_Character_126[] = {  7,  0,  0,  0,  0,  0,  0,152,100,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_127[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_128[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_129[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_130[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_131[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_132[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_133[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_134[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_135[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_136[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_137[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_138[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_139[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_140[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_141[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_142[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_143[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_144[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_145[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_146[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_147[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_148[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_149[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_150[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_151[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_152[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_153[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_154[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_155[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_156[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_157[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_158[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_159[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_160[] = {  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_161[] = {  3,  0, 64, 64, 64, 64, 64, 64,  0, 64,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_162[] = {  6,  0,  0, 64,112,168,160,160,168,112, 16,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_163[] = {  6,  0,  0,  0,176, 72, 64, 64,224, 64, 72, 48,  0,  0,  0};
-static const GLubyte Helvetica10_Character_164[] = {  5,  0,  0,  0,  0,144, 96,144,144, 96,144,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_165[] = {  6,  0,  0,  0, 32,248, 32,248, 80, 80,136,136,  0,  0,  0};
-static const GLubyte Helvetica10_Character_166[] = {  3,  0, 64, 64, 64, 64,  0,  0, 64, 64, 64, 64,  0,  0,  0};
-static const GLubyte Helvetica10_Character_167[] = {  6,  0,112,136, 24,112,200,152,112,192,136,112,  0,  0,  0};
-static const GLubyte Helvetica10_Character_168[] = {  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,160,  0,  0,  0};
-static const GLubyte Helvetica10_Character_169[] = {  9,  0,  0,  0,  0,  0,  0, 28,  0, 34,  0, 77,  0, 81,  0, 77,  0, 34,  0, 28,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_170[] = {  4,  0,  0,  0,  0,  0,  0,224,  0,160, 32,224,  0,  0,  0};
-static const GLubyte Helvetica10_Character_171[] = {  6,  0,  0,  0, 40, 80,160, 80, 40,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_172[] = {  7,  0,  0,  0,  0,  0,  4,  4,124,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_173[] = {  4,  0,  0,  0,  0,  0,  0,224,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_174[] = {  9,  0,  0,  0,  0,  0,  0, 28,  0, 34,  0, 85,  0, 89,  0, 93,  0, 34,  0, 28,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_175[] = {  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,224,  0,  0,  0};
-static const GLubyte Helvetica10_Character_176[] = {  4,  0,  0,  0,  0,  0,  0, 96,144,144, 96,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_177[] = {  6,  0,  0,  0,248,  0, 32, 32,248, 32, 32,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_178[] = {  3,  0,  0,  0,  0,  0,  0,224, 64,160, 96,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_179[] = {  3,  0,  0,  0,  0,  0,  0,192, 32, 64,224,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_180[] = {  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 64,  0,  0,  0};
-static const GLubyte Helvetica10_Character_181[] = {  5,  0,128,128,240,144,144,144,144,144,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_182[] = {  6,  0, 40, 40, 40, 40, 40,104,232,232,232,124,  0,  0,  0};
-static const GLubyte Helvetica10_Character_183[] = {  3,  0,  0,  0,  0,  0,  0,192,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_184[] = {  3,  0,192, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_185[] = {  3,  0,  0,  0,  0,  0,  0, 64, 64,192, 64,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_186[] = {  4,  0,  0,  0,  0,  0,  0,224,  0,224,160,224,  0,  0,  0};
-static const GLubyte Helvetica10_Character_187[] = {  6,  0,  0,  0,160, 80, 40, 80,160,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_188[] = {  9,  0,  0,  0,  0,  0,  0, 33,  0, 23,128, 19,  0,  9,  0, 72,  0, 68,  0,196,  0, 66,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_189[] = {  9,  0,  0,  0,  0,  0,  0, 39,  0, 18,  0, 21,  0, 11,  0, 72,  0, 68,  0,196,  0, 66,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_190[] = {  9,  0,  0,  0,  0,  0,  0, 33,  0, 23,128, 19,  0,  9,  0,200,  0, 36,  0, 68,  0,226,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_191[] = {  6,  0, 48, 72, 64, 32, 16, 16,  0, 16,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_192[] = {  7,  0,  0,  0,130,130,124, 68, 40, 40, 16, 16,  0, 16, 32};
-static const GLubyte Helvetica10_Character_193[] = {  7,  0,  0,  0,130,130,124, 68, 40, 40, 16, 16,  0, 16,  8};
-static const GLubyte Helvetica10_Character_194[] = {  7,  0,  0,  0,130,130,124, 68, 40, 40, 16, 16,  0, 40, 16};
-static const GLubyte Helvetica10_Character_195[] = {  7,  0,  0,  0,130,130,124, 68, 40, 40, 16, 16,  0, 40, 20};
-static const GLubyte Helvetica10_Character_196[] = {  7,  0,  0,  0,130,130,124, 68, 40, 40, 16, 16,  0, 40,  0};
-static const GLubyte Helvetica10_Character_197[] = {  7,  0,  0,  0,130,130,124, 68, 40, 40, 16, 16, 16, 40, 16};
-static const GLubyte Helvetica10_Character_198[] = { 10,  0,  0,  0,  0,  0,  0,143,128,136,  0,120,  0, 72,  0, 47,128, 40,  0, 24,  0, 31,128,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_199[] = {  8,  0, 24,  8, 60, 66, 64, 64, 64, 64, 66, 60,  0,  0,  0};
-static const GLubyte Helvetica10_Character_200[] = {  7,  0,  0,  0,124, 64, 64, 64,124, 64, 64,124,  0, 16, 32};
-static const GLubyte Helvetica10_Character_201[] = {  7,  0,  0,  0,124, 64, 64, 64,124, 64, 64,124,  0, 16,  8};
-static const GLubyte Helvetica10_Character_202[] = {  7,  0,  0,  0,124, 64, 64,124, 64, 64, 64,124,  0, 40, 16};
-static const GLubyte Helvetica10_Character_203[] = {  7,  0,  0,  0,124, 64, 64, 64,124, 64, 64,124,  0, 40,  0};
-static const GLubyte Helvetica10_Character_204[] = {  3,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64, 64,  0, 64,128};
-static const GLubyte Helvetica10_Character_205[] = {  3,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64, 64,  0, 64, 32};
-static const GLubyte Helvetica10_Character_206[] = {  3,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64, 64,  0,160, 64};
-static const GLubyte Helvetica10_Character_207[] = {  3,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64, 64,  0,160,  0};
-static const GLubyte Helvetica10_Character_208[] = {  8,  0,  0,  0,120, 68, 66, 66,242, 66, 68,120,  0,  0,  0};
-static const GLubyte Helvetica10_Character_209[] = {  8,  0,  0,  0, 70, 70, 74, 74, 82, 82, 98, 98,  0, 40, 20};
-static const GLubyte Helvetica10_Character_210[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 60,  0,  8, 16};
-static const GLubyte Helvetica10_Character_211[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 60,  0,  8,  4};
-static const GLubyte Helvetica10_Character_212[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 60,  0, 20,  8};
-static const GLubyte Helvetica10_Character_213[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 60,  0, 40, 20};
-static const GLubyte Helvetica10_Character_214[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 60,  0, 36,  0};
-static const GLubyte Helvetica10_Character_215[] = {  6,  0,  0,  0,  0,136, 80, 32, 80,136,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_216[] = {  8,  0,  0, 64, 60, 98, 82, 82, 74, 74, 70, 60,  2,  0,  0};
-static const GLubyte Helvetica10_Character_217[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 66,  0,  8, 16};
-static const GLubyte Helvetica10_Character_218[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 66,  0, 16,  8};
-static const GLubyte Helvetica10_Character_219[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 66,  0, 20,  8};
-static const GLubyte Helvetica10_Character_220[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 66,  0, 36,  0};
-static const GLubyte Helvetica10_Character_221[] = {  7,  0,  0,  0, 16, 16, 16, 40, 40, 68, 68,130,  0, 16,  8};
-static const GLubyte Helvetica10_Character_222[] = {  7,  0,  0,  0, 64, 64,120, 68, 68,120, 64, 64,  0,  0,  0};
-static const GLubyte Helvetica10_Character_223[] = {  5,  0,  0,  0,160,144,144,144,160,144,144, 96,  0,  0,  0};
-static const GLubyte Helvetica10_Character_224[] = {  5,  0,  0,  0,104,144,144,112, 16,224,  0, 32, 64,  0,  0};
-static const GLubyte Helvetica10_Character_225[] = {  5,  0,  0,  0,104,144,144,112, 16,224,  0, 32, 16,  0,  0};
-static const GLubyte Helvetica10_Character_226[] = {  5,  0,  0,  0,104,144,144,112, 16,224,  0, 80, 32,  0,  0};
-static const GLubyte Helvetica10_Character_227[] = {  5,  0,  0,  0,104,144,144,112, 16,224,  0,160, 80,  0,  0};
-static const GLubyte Helvetica10_Character_228[] = {  5,  0,  0,  0,104,144,144,112, 16,224,  0, 80,  0,  0,  0};
-static const GLubyte Helvetica10_Character_229[] = {  5,  0,  0,  0,104,144,144,112, 16,224, 32, 80, 32,  0,  0};
-static const GLubyte Helvetica10_Character_230[] = {  8,  0,  0,  0,108,146,144,126, 18,236,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_231[] = {  5,  0, 96, 32, 96,144,128,128,144, 96,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_232[] = {  5,  0,  0,  0, 96,144,128,240,144, 96,  0, 32, 64,  0,  0};
-static const GLubyte Helvetica10_Character_233[] = {  5,  0,  0,  0, 96,144,128,240,144, 96,  0, 64, 32,  0,  0};
-static const GLubyte Helvetica10_Character_234[] = {  5,  0,  0,  0, 96,144,128,240,144, 96,  0, 80, 32,  0,  0};
-static const GLubyte Helvetica10_Character_235[] = {  5,  0,  0,  0, 96,144,128,240,144, 96,  0, 80,  0,  0,  0};
-static const GLubyte Helvetica10_Character_236[] = {  2,  0,  0,  0,128,128,128,128,128,128,  0,128,  0,  0,  0};
-static const GLubyte Helvetica10_Character_237[] = {  2,  0,  0,  0,128,128,128,128,128,128,  0,128, 64,  0,  0};
-static const GLubyte Helvetica10_Character_238[] = {  2,  0,  0,  0,128,128,128,128,128,128,  0, 64,128,  0,  0};
-static const GLubyte Helvetica10_Character_239[] = {  2,  0,  0,  0, 64, 64, 64, 64, 64, 64,  0,160,  0,  0,  0};
-static const GLubyte Helvetica10_Character_240[] = {  6,  0,  0,  0,112,136,136,136,136,120,144, 96, 80,  0,  0};
-static const GLubyte Helvetica10_Character_241[] = {  5,  0,  0,  0,144,144,144,144,144,224,  0,160, 80,  0,  0};
-static const GLubyte Helvetica10_Character_242[] = {  6,  0,  0,  0,112,136,136,136,136,112,  0, 32, 64,  0,  0};
-static const GLubyte Helvetica10_Character_243[] = {  6,  0,  0,  0,112,136,136,136,136,112,  0, 32, 16,  0,  0};
-static const GLubyte Helvetica10_Character_244[] = {  6,  0,  0,  0,112,136,136,136,136,112,  0, 80, 32,  0,  0};
-static const GLubyte Helvetica10_Character_245[] = {  6,  0,  0,  0,112,136,136,136,136,112,  0, 80, 40,  0,  0};
-static const GLubyte Helvetica10_Character_246[] = {  6,  0,  0,  0,112,136,136,136,136,112,  0, 80,  0,  0,  0};
-static const GLubyte Helvetica10_Character_247[] = {  6,  0,  0,  0,  0, 32,  0,248,  0, 32,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_248[] = {  6,  0,  0,  0,112,136,200,168,152,116,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica10_Character_249[] = {  5,  0,  0,  0,112,144,144,144,144,144,  0, 32, 64,  0,  0};
-static const GLubyte Helvetica10_Character_250[] = {  5,  0,  0,  0,112,144,144,144,144,144,  0, 64, 32,  0,  0};
-static const GLubyte Helvetica10_Character_251[] = {  5,  0,  0,  0,112,144,144,144,144,144,  0, 80, 32,  0,  0};
-static const GLubyte Helvetica10_Character_252[] = {  5,  0,  0,  0,112,144,144,144,144,144,  0, 80,  0,  0,  0};
-static const GLubyte Helvetica10_Character_253[] = {  5,  0,128, 64, 64, 96,160,160,144,144,  0, 32, 16,  0,  0};
-static const GLubyte Helvetica10_Character_254[] = {  6,  0,128,128,176,200,136,136,200,176,128,128,  0,  0,  0};
-static const GLubyte Helvetica10_Character_255[] = {  5,  0,128, 64, 64, 96,160,160,144,144,  0, 80,  0,  0,  0};
-
-/* The font characters mapping: */
-static const GLubyte* Helvetica10_Character_Map[] = {Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,
-                                                     Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,
-                                                     Helvetica10_Character_032,Helvetica10_Character_033,Helvetica10_Character_034,Helvetica10_Character_035,Helvetica10_Character_036,Helvetica10_Character_037,Helvetica10_Character_038,Helvetica10_Character_039,Helvetica10_Character_040,Helvetica10_Character_041,Helvetica10_Character_042,Helvetica10_Character_043,Helvetica10_Character_044,Helvetica10_Character_045,Helvetica10_Character_046,Helvetica10_Character_047,
-                                                     Helvetica10_Character_048,Helvetica10_Character_049,Helvetica10_Character_050,Helvetica10_Character_051,Helvetica10_Character_052,Helvetica10_Character_053,Helvetica10_Character_054,Helvetica10_Character_055,Helvetica10_Character_056,Helvetica10_Character_057,Helvetica10_Character_058,Helvetica10_Character_059,Helvetica10_Character_060,Helvetica10_Character_061,Helvetica10_Character_062,Helvetica10_Character_063,
-                                                     Helvetica10_Character_064,Helvetica10_Character_065,Helvetica10_Character_066,Helvetica10_Character_067,Helvetica10_Character_068,Helvetica10_Character_069,Helvetica10_Character_070,Helvetica10_Character_071,Helvetica10_Character_072,Helvetica10_Character_073,Helvetica10_Character_074,Helvetica10_Character_075,Helvetica10_Character_076,Helvetica10_Character_077,Helvetica10_Character_078,Helvetica10_Character_079,
-                                                     Helvetica10_Character_080,Helvetica10_Character_081,Helvetica10_Character_082,Helvetica10_Character_083,Helvetica10_Character_084,Helvetica10_Character_085,Helvetica10_Character_086,Helvetica10_Character_087,Helvetica10_Character_088,Helvetica10_Character_089,Helvetica10_Character_090,Helvetica10_Character_091,Helvetica10_Character_092,Helvetica10_Character_093,Helvetica10_Character_094,Helvetica10_Character_095,
-                                                     Helvetica10_Character_096,Helvetica10_Character_097,Helvetica10_Character_098,Helvetica10_Character_099,Helvetica10_Character_100,Helvetica10_Character_101,Helvetica10_Character_102,Helvetica10_Character_103,Helvetica10_Character_104,Helvetica10_Character_105,Helvetica10_Character_106,Helvetica10_Character_107,Helvetica10_Character_108,Helvetica10_Character_109,Helvetica10_Character_110,Helvetica10_Character_111,
-                                                     Helvetica10_Character_112,Helvetica10_Character_113,Helvetica10_Character_114,Helvetica10_Character_115,Helvetica10_Character_116,Helvetica10_Character_117,Helvetica10_Character_118,Helvetica10_Character_119,Helvetica10_Character_120,Helvetica10_Character_121,Helvetica10_Character_122,Helvetica10_Character_123,Helvetica10_Character_124,Helvetica10_Character_125,Helvetica10_Character_126,Helvetica10_Character_032,
-                                                     Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,
-                                                     Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,
-                                                     Helvetica10_Character_160,Helvetica10_Character_161,Helvetica10_Character_162,Helvetica10_Character_163,Helvetica10_Character_164,Helvetica10_Character_165,Helvetica10_Character_166,Helvetica10_Character_167,Helvetica10_Character_168,Helvetica10_Character_169,Helvetica10_Character_170,Helvetica10_Character_171,Helvetica10_Character_172,Helvetica10_Character_173,Helvetica10_Character_174,Helvetica10_Character_175,
-                                                     Helvetica10_Character_176,Helvetica10_Character_177,Helvetica10_Character_178,Helvetica10_Character_179,Helvetica10_Character_180,Helvetica10_Character_181,Helvetica10_Character_182,Helvetica10_Character_183,Helvetica10_Character_184,Helvetica10_Character_185,Helvetica10_Character_186,Helvetica10_Character_187,Helvetica10_Character_188,Helvetica10_Character_189,Helvetica10_Character_190,Helvetica10_Character_191,
-                                                     Helvetica10_Character_192,Helvetica10_Character_193,Helvetica10_Character_194,Helvetica10_Character_195,Helvetica10_Character_196,Helvetica10_Character_197,Helvetica10_Character_198,Helvetica10_Character_199,Helvetica10_Character_200,Helvetica10_Character_201,Helvetica10_Character_202,Helvetica10_Character_203,Helvetica10_Character_204,Helvetica10_Character_205,Helvetica10_Character_206,Helvetica10_Character_207,
-                                                     Helvetica10_Character_208,Helvetica10_Character_209,Helvetica10_Character_210,Helvetica10_Character_211,Helvetica10_Character_212,Helvetica10_Character_213,Helvetica10_Character_214,Helvetica10_Character_215,Helvetica10_Character_216,Helvetica10_Character_217,Helvetica10_Character_218,Helvetica10_Character_219,Helvetica10_Character_220,Helvetica10_Character_221,Helvetica10_Character_222,Helvetica10_Character_223,
-                                                     Helvetica10_Character_224,Helvetica10_Character_225,Helvetica10_Character_226,Helvetica10_Character_227,Helvetica10_Character_228,Helvetica10_Character_229,Helvetica10_Character_230,Helvetica10_Character_231,Helvetica10_Character_232,Helvetica10_Character_233,Helvetica10_Character_234,Helvetica10_Character_235,Helvetica10_Character_236,Helvetica10_Character_237,Helvetica10_Character_238,Helvetica10_Character_239,
-                                                     Helvetica10_Character_240,Helvetica10_Character_241,Helvetica10_Character_242,Helvetica10_Character_243,Helvetica10_Character_244,Helvetica10_Character_245,Helvetica10_Character_246,Helvetica10_Character_247,Helvetica10_Character_248,Helvetica10_Character_249,Helvetica10_Character_250,Helvetica10_Character_251,Helvetica10_Character_252,Helvetica10_Character_253,Helvetica10_Character_254,Helvetica10_Character_255,NULL};
-
-/* The font structure: */
-const SFG_Font fgFontHelvetica10 = { "-adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1", 256, 14, Helvetica10_Character_Map, 0, 3 };
-
-static const GLubyte Helvetica12_Character_000[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_001[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_002[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_003[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_004[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_005[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_006[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_007[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_008[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_009[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_010[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_011[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_012[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_013[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_014[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_015[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_016[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_017[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_018[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_019[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_020[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_021[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_022[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_023[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_024[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_025[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_026[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_027[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_028[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_029[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_030[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_031[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_032[] = {  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_033[] = {  3,  0,  0,  0,  0, 64,  0, 64, 64, 64, 64, 64, 64, 64,  0,  0,  0};
-static const GLubyte Helvetica12_Character_034[] = {  5,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 80, 80, 80,  0,  0,  0};
-static const GLubyte Helvetica12_Character_035[] = {  7,  0,  0,  0,  0, 80, 80, 80,252, 40,252, 40, 40,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_036[] = {  7,  0,  0,  0, 16, 56, 84, 84, 20, 56, 80, 84, 56, 16,  0,  0,  0};
-static const GLubyte Helvetica12_Character_037[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0, 17,128, 10, 64, 10, 64,  9,128,  4,  0, 52,  0, 74,  0, 74,  0, 49,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_038[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 57,  0, 70,  0, 66,  0, 69,  0, 40,  0, 24,  0, 36,  0, 36,  0, 24,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_039[] = {  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64, 32, 96,  0,  0,  0};
-static const GLubyte Helvetica12_Character_040[] = {  4,  0, 16, 32, 32, 64, 64, 64, 64, 64, 64, 32, 32, 16,  0,  0,  0};
-static const GLubyte Helvetica12_Character_041[] = {  4,  0,128, 64, 64, 32, 32, 32, 32, 32, 32, 64, 64,128,  0,  0,  0};
-static const GLubyte Helvetica12_Character_042[] = {  5,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 80, 32, 80,  0,  0,  0};
-static const GLubyte Helvetica12_Character_043[] = {  7,  0,  0,  0,  0,  0, 16, 16,124, 16, 16,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_044[] = {  4,  0,  0, 64, 32, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_045[] = {  8,  0,  0,  0,  0,  0,  0,  0,124,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_046[] = {  3,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_047[] = {  4,  0,  0,  0,  0,128,128, 64, 64, 64, 32, 32, 16, 16,  0,  0,  0};
-static const GLubyte Helvetica12_Character_048[] = {  7,  0,  0,  0,  0, 56, 68, 68, 68, 68, 68, 68, 68, 56,  0,  0,  0};
-static const GLubyte Helvetica12_Character_049[] = {  7,  0,  0,  0,  0, 16, 16, 16, 16, 16, 16, 16,112, 16,  0,  0,  0};
-static const GLubyte Helvetica12_Character_050[] = {  7,  0,  0,  0,  0,124, 64, 64, 32, 16,  8,  4, 68, 56,  0,  0,  0};
-static const GLubyte Helvetica12_Character_051[] = {  7,  0,  0,  0,  0, 56, 68, 68,  4,  4, 24,  4, 68, 56,  0,  0,  0};
-static const GLubyte Helvetica12_Character_052[] = {  7,  0,  0,  0,  0,  8,  8,252,136, 72, 40, 40, 24,  8,  0,  0,  0};
-static const GLubyte Helvetica12_Character_053[] = {  7,  0,  0,  0,  0, 56, 68, 68,  4,  4,120, 64, 64,124,  0,  0,  0};
-static const GLubyte Helvetica12_Character_054[] = {  7,  0,  0,  0,  0, 56, 68, 68, 68,100, 88, 64, 68, 56,  0,  0,  0};
-static const GLubyte Helvetica12_Character_055[] = {  7,  0,  0,  0,  0, 32, 32, 16, 16, 16,  8,  8,  4,124,  0,  0,  0};
-static const GLubyte Helvetica12_Character_056[] = {  7,  0,  0,  0,  0, 56, 68, 68, 68, 68, 56, 68, 68, 56,  0,  0,  0};
-static const GLubyte Helvetica12_Character_057[] = {  7,  0,  0,  0,  0, 56, 68,  4,  4, 60, 68, 68, 68, 56,  0,  0,  0};
-static const GLubyte Helvetica12_Character_058[] = {  3,  0,  0,  0,  0, 64,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_059[] = {  3,  0,  0,128, 64, 64,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_060[] = {  7,  0,  0,  0,  0,  0, 12, 48,192, 48, 12,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_061[] = {  7,  0,  0,  0,  0,  0,  0,124,  0,124,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_062[] = {  7,  0,  0,  0,  0,  0, 96, 24,  6, 24, 96,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_063[] = {  7,  0,  0,  0,  0, 16,  0, 16, 16,  8,  8, 68, 68, 56,  0,  0,  0};
-static const GLubyte Helvetica12_Character_064[] = { 12,  0,  0,  0,  0,  0,  0, 31,  0, 32,  0, 77,128, 83, 64, 81, 32, 81, 32, 73, 32, 38,160, 48, 64, 15,128,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_065[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0, 62,  0, 34,  0, 34,  0, 20,  0, 20,  0,  8,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_066[] = {  8,  0,  0,  0,  0,124, 66, 66, 66,124, 66, 66, 66,124,  0,  0,  0};
-static const GLubyte Helvetica12_Character_067[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 33,  0, 64,  0, 64,  0, 64,  0, 64,  0, 64,  0, 33,  0, 30,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_068[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,124,  0, 66,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 66,  0,124,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_069[] = {  8,  0,  0,  0,  0,126, 64, 64, 64,126, 64, 64, 64,126,  0,  0,  0};
-static const GLubyte Helvetica12_Character_070[] = {  8,  0,  0,  0,  0, 64, 64, 64, 64,124, 64, 64, 64,126,  0,  0,  0};
-static const GLubyte Helvetica12_Character_071[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 29,  0, 35,  0, 65,  0, 65,  0, 71,  0, 64,  0, 64,  0, 33,  0, 30,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_072[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0, 65,  0,127,  0, 65,  0, 65,  0, 65,  0, 65,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_073[] = {  3,  0,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64, 64, 64,  0,  0,  0};
-static const GLubyte Helvetica12_Character_074[] = {  7,  0,  0,  0,  0, 56, 68, 68,  4,  4,  4,  4,  4,  4,  0,  0,  0};
-static const GLubyte Helvetica12_Character_075[] = {  8,  0,  0,  0,  0, 65, 66, 68, 72,112, 80, 72, 68, 66,  0,  0,  0};
-static const GLubyte Helvetica12_Character_076[] = {  7,  0,  0,  0,  0,124, 64, 64, 64, 64, 64, 64, 64, 64,  0,  0,  0};
-static const GLubyte Helvetica12_Character_077[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0, 68, 64, 68, 64, 74, 64, 74, 64, 81, 64, 81, 64, 96,192, 96,192, 64, 64,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_078[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 67,  0, 69,  0, 69,  0, 73,  0, 81,  0, 81,  0, 97,  0, 65,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_079[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 33,  0, 64,128, 64,128, 64,128, 64,128, 64,128, 33,  0, 30,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_080[] = {  8,  0,  0,  0,  0, 64, 64, 64, 64,124, 66, 66, 66,124,  0,  0,  0};
-static const GLubyte Helvetica12_Character_081[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 30,128, 33,  0, 66,128, 68,128, 64,128, 64,128, 64,128, 33,  0, 30,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_082[] = {  8,  0,  0,  0,  0, 66, 66, 66, 68,124, 66, 66, 66,124,  0,  0,  0};
-static const GLubyte Helvetica12_Character_083[] = {  8,  0,  0,  0,  0, 60, 66, 66,  2, 12, 48, 64, 66, 60,  0,  0,  0};
-static const GLubyte Helvetica12_Character_084[] = {  7,  0,  0,  0,  0, 16, 16, 16, 16, 16, 16, 16, 16,254,  0,  0,  0};
-static const GLubyte Helvetica12_Character_085[] = {  8,  0,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 66, 66,  0,  0,  0};
-static const GLubyte Helvetica12_Character_086[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0, 20,  0, 20,  0, 34,  0, 34,  0, 34,  0, 65,  0, 65,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_087[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0, 17,  0, 17,  0, 17,  0, 42,128, 42,128, 36,128, 68, 64, 68, 64, 68, 64,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_088[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 34,  0, 34,  0, 20,  0,  8,  0, 20,  0, 34,  0, 34,  0, 65,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_089[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0, 20,  0, 34,  0, 34,  0, 65,  0, 65,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_090[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,127,  0, 64,  0, 32,  0, 16,  0,  8,  0,  4,  0,  2,  0,  1,  0,127,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_091[] = {  3,  0, 96, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 96,  0,  0,  0};
-static const GLubyte Helvetica12_Character_092[] = {  4,  0,  0,  0,  0, 16, 16, 32, 32, 32, 64, 64,128,128,  0,  0,  0};
-static const GLubyte Helvetica12_Character_093[] = {  3,  0,192, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,192,  0,  0,  0};
-static const GLubyte Helvetica12_Character_094[] = {  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,136, 80, 32,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_095[] = {  7,  0,  0,254,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_096[] = {  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192,128, 64,  0,  0,  0};
-static const GLubyte Helvetica12_Character_097[] = {  7,  0,  0,  0,  0, 58, 68, 68, 60,  4, 68, 56,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_098[] = {  7,  0,  0,  0,  0, 88,100, 68, 68, 68,100, 88, 64, 64,  0,  0,  0};
-static const GLubyte Helvetica12_Character_099[] = {  7,  0,  0,  0,  0, 56, 68, 64, 64, 64, 68, 56,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_100[] = {  7,  0,  0,  0,  0, 52, 76, 68, 68, 68, 76, 52,  4,  4,  0,  0,  0};
-static const GLubyte Helvetica12_Character_101[] = {  7,  0,  0,  0,  0, 56, 68, 64,124, 68, 68, 56,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_102[] = {  3,  0,  0,  0,  0, 64, 64, 64, 64, 64, 64,224, 64, 48,  0,  0,  0};
-static const GLubyte Helvetica12_Character_103[] = {  7,  0, 56, 68,  4, 52, 76, 68, 68, 68, 76, 52,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_104[] = {  7,  0,  0,  0,  0, 68, 68, 68, 68, 68,100, 88, 64, 64,  0,  0,  0};
-static const GLubyte Helvetica12_Character_105[] = {  3,  0,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64,  0, 64,  0,  0,  0};
-static const GLubyte Helvetica12_Character_106[] = {  3,  0,128, 64, 64, 64, 64, 64, 64, 64, 64, 64,  0, 64,  0,  0,  0};
-static const GLubyte Helvetica12_Character_107[] = {  6,  0,  0,  0,  0, 68, 72, 80, 96, 96, 80, 72, 64, 64,  0,  0,  0};
-static const GLubyte Helvetica12_Character_108[] = {  3,  0,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64, 64, 64,  0,  0,  0};
-static const GLubyte Helvetica12_Character_109[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 73,  0, 73,  0, 73,  0, 73,  0, 73,  0,109,  0, 82,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_110[] = {  7,  0,  0,  0,  0, 68, 68, 68, 68, 68,100, 88,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_111[] = {  7,  0,  0,  0,  0, 56, 68, 68, 68, 68, 68, 56,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_112[] = {  7,  0, 64, 64, 64, 88,100, 68, 68, 68,100, 88,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_113[] = {  7,  0,  4,  4,  4, 52, 76, 68, 68, 68, 76, 52,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_114[] = {  4,  0,  0,  0,  0, 64, 64, 64, 64, 64, 96, 80,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_115[] = {  6,  0,  0,  0,  0, 48, 72,  8, 48, 64, 72, 48,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_116[] = {  3,  0,  0,  0,  0, 96, 64, 64, 64, 64, 64,224, 64, 64,  0,  0,  0};
-static const GLubyte Helvetica12_Character_117[] = {  7,  0,  0,  0,  0, 52, 76, 68, 68, 68, 68, 68,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_118[] = {  7,  0,  0,  0,  0, 16, 16, 40, 40, 68, 68, 68,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_119[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 34,  0, 34,  0, 85,  0, 73,  0, 73,  0,136,128,136,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_120[] = {  6,  0,  0,  0,  0,132,132, 72, 48, 48, 72,132,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_121[] = {  7,  0, 64, 32, 16, 16, 40, 40, 72, 68, 68, 68,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_122[] = {  6,  0,  0,  0,  0,120, 64, 32, 32, 16,  8,120,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_123[] = {  4,  0, 48, 64, 64, 64, 64, 64,128, 64, 64, 64, 64, 48,  0,  0,  0};
-static const GLubyte Helvetica12_Character_124[] = {  3,  0, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  0,  0,  0};
-static const GLubyte Helvetica12_Character_125[] = {  4,  0,192, 32, 32, 32, 32, 32, 16, 32, 32, 32, 32,192,  0,  0,  0};
-static const GLubyte Helvetica12_Character_126[] = {  7,  0,  0,  0,  0,  0,  0,  0,152,100,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_127[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_128[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_129[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_130[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_131[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_132[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_133[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_134[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_135[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_136[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_137[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_138[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_139[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_140[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_141[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_142[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_143[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_144[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_145[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_146[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_147[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_148[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_149[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_150[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_151[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_152[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_153[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_154[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_155[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_156[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_157[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_158[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_159[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_160[] = {  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_161[] = {  3,  0, 64, 64, 64, 64, 64, 64, 64, 64,  0, 64,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_162[] = {  7,  0,  0,  0, 32, 56,100, 80, 80, 80, 84, 56,  8,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_163[] = {  7,  0,  0,  0,  0, 88, 36, 16, 16,120, 32, 32, 36, 24,  0,  0,  0};
-static const GLubyte Helvetica12_Character_164[] = {  7,  0,  0,  0,  0,  0,132,120, 72, 72,120,132,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_165[] = {  7,  0,  0,  0,  0, 16, 16,124, 16,124, 16, 40, 68, 68,  0,  0,  0};
-static const GLubyte Helvetica12_Character_166[] = {  3,  0,  0, 64, 64, 64, 64,  0,  0,  0, 64, 64, 64, 64,  0,  0,  0};
-static const GLubyte Helvetica12_Character_167[] = {  6,  0,112,136,  8, 48, 72,136,136,144, 96,128,136,112,  0,  0,  0};
-static const GLubyte Helvetica12_Character_168[] = {  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,160,  0,  0,  0};
-static const GLubyte Helvetica12_Character_169[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0, 31,  0, 32,128, 78, 64, 81, 64, 80, 64, 81, 64, 78, 64, 32,128, 31,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_170[] = {  5,  0,  0,  0,  0,  0,  0,  0,  0,112,  0, 80, 16,112,  0,  0,  0};
-static const GLubyte Helvetica12_Character_171[] = {  7,  0,  0,  0,  0,  0, 20, 40, 80, 40, 20,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_172[] = {  8,  0,  0,  0,  0,  0,  0,  2,  2,  2,126,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_173[] = {  5,  0,  0,  0,  0,  0,  0,  0,240,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_174[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0, 31,  0, 32,128, 74, 64, 74, 64, 76, 64, 74, 64, 78, 64, 32,128, 31,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_175[] = {  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,240,  0,  0,  0};
-static const GLubyte Helvetica12_Character_176[] = {  5,  0,  0,  0,  0,  0,  0,  0,  0, 96,144,144, 96,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_177[] = {  7,  0,  0,  0,  0,124,  0, 16, 16,124, 16, 16,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_178[] = {  4,  0,  0,  0,  0,  0,  0,  0,240, 64, 32,144, 96,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_179[] = {  4,  0,  0,  0,  0,  0,  0,  0,192, 32, 64, 32,224,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_180[] = {  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 64,  0,  0};
-static const GLubyte Helvetica12_Character_181[] = {  7,  0, 64, 64, 64,116, 76, 68, 68, 68, 68, 68,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_182[] = {  7,  0, 40, 40, 40, 40, 40, 40,104,232,232,232,104, 60,  0,  0,  0};
-static const GLubyte Helvetica12_Character_183[] = {  3,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_184[] = {  3,  0,192, 32, 32, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_185[] = {  4,  0,  0,  0,  0,  0,  0,  0, 32, 32, 32, 96, 32,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_186[] = {  5,  0,  0,  0,  0,  0,  0,  0,  0,112,  0,112, 80,112,  0,  0,  0};
-static const GLubyte Helvetica12_Character_187[] = {  7,  0,  0,  0,  0,  0, 80, 40, 20, 40, 80,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_188[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 39,128, 21,  0, 19,  0, 73,  0, 68,  0, 68,  0,194,  0, 65,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_189[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 71,128, 34,  0, 17,  0, 20,128, 75,  0, 72,  0, 68,  0,194,  0, 65,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_190[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 33,  0, 23,128, 21,  0, 11,  0,201,  0, 36,  0, 68,  0, 34,  0,225,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_191[] = {  7,  0, 56, 68, 68, 32, 32, 16, 16,  0, 16,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_192[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0, 62,  0, 34,  0, 34,  0, 20,  0,  8,  0,  8,  0,  0,  0,  8,  0, 16,  0};
-static const GLubyte Helvetica12_Character_193[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0, 62,  0, 34,  0, 34,  0, 20,  0,  8,  0,  8,  0,  0,  0,  8,  0,  4,  0};
-static const GLubyte Helvetica12_Character_194[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0, 62,  0, 34,  0, 34,  0, 20,  0,  8,  0,  8,  0,  0,  0, 20,  0,  8,  0};
-static const GLubyte Helvetica12_Character_195[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0, 62,  0, 34,  0, 34,  0, 20,  0,  8,  0,  8,  0,  0,  0, 20,  0, 10,  0};
-static const GLubyte Helvetica12_Character_196[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0, 62,  0, 34,  0, 34,  0, 20,  0,  8,  0,  8,  0,  0,  0, 20,  0,  0,  0};
-static const GLubyte Helvetica12_Character_197[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0, 62,  0, 34,  0, 34,  0, 20,  0,  8,  0,  8,  0,  8,  0, 20,  0,  8,  0};
-static const GLubyte Helvetica12_Character_198[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0, 71,192, 68,  0, 68,  0, 60,  0, 39,192, 36,  0, 20,  0, 20,  0, 15,192,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_199[] = {  9,  0,  0, 24,  0,  4,  0,  4,  0, 30,  0, 33,  0, 64,  0, 64,  0, 64,  0, 64,  0, 64,  0, 33,  0, 30,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_200[] = {  8,  0,  0,  0,  0,126, 64, 64, 64,126, 64, 64, 64,126,  0,  8, 16};
-static const GLubyte Helvetica12_Character_201[] = {  8,  0,  0,  0,  0,126, 64, 64, 64,126, 64, 64, 64,126,  0,  8,  4};
-static const GLubyte Helvetica12_Character_202[] = {  8,  0,  0,  0,  0,126, 64, 64, 64,126, 64, 64, 64,126,  0, 20,  8};
-static const GLubyte Helvetica12_Character_203[] = {  8,  0,  0,  0,  0,126, 64, 64, 64,126, 64, 64, 64,126,  0, 20,  0};
-static const GLubyte Helvetica12_Character_204[] = {  3,  0,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64, 64, 64,  0, 64,128};
-static const GLubyte Helvetica12_Character_205[] = {  3,  0,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64, 64, 64,  0, 64, 32};
-static const GLubyte Helvetica12_Character_206[] = {  3,  0,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64, 64, 64,  0,160, 64};
-static const GLubyte Helvetica12_Character_207[] = {  3,  0,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64, 64, 64,  0,160,  0};
-static const GLubyte Helvetica12_Character_208[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,124,  0, 66,  0, 65,  0, 65,  0,241,  0, 65,  0, 65,  0, 66,  0,124,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_209[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 67,  0, 69,  0, 69,  0, 73,  0, 81,  0, 81,  0, 97,  0, 65,  0,  0,  0, 20,  0, 10,  0};
-static const GLubyte Helvetica12_Character_210[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 33,  0, 64,128, 64,128, 64,128, 64,128, 64,128, 33,  0, 30,  0,  0,  0,  4,  0,  8,  0};
-static const GLubyte Helvetica12_Character_211[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 33,  0, 64,128, 64,128, 64,128, 64,128, 64,128, 33,  0, 30,  0,  0,  0,  4,  0,  2,  0};
-static const GLubyte Helvetica12_Character_212[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 33,  0, 64,128, 64,128, 64,128, 64,128, 64,128, 33,  0, 30,  0,  0,  0, 10,  0,  4,  0};
-static const GLubyte Helvetica12_Character_213[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 33,  0, 64,128, 64,128, 64,128, 64,128, 64,128, 33,  0, 30,  0,  0,  0, 20,  0, 10,  0};
-static const GLubyte Helvetica12_Character_214[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 33,  0, 64,128, 64,128, 64,128, 64,128, 64,128, 33,  0, 30,  0,  0,  0, 18,  0,  0,  0};
-static const GLubyte Helvetica12_Character_215[] = {  7,  0,  0,  0,  0,  0, 68, 40, 16, 40, 68,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_216[] = { 10,  0,  0,  0,  0,  0,  0,128,  0, 94,  0, 33,  0, 80,128, 72,128, 68,128, 68,128, 66,128, 33,  0, 30,128,  0, 64,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_217[] = {  8,  0,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 66, 66,  0,  8, 16};
-static const GLubyte Helvetica12_Character_218[] = {  8,  0,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 66, 66,  0,  8,  4};
-static const GLubyte Helvetica12_Character_219[] = {  8,  0,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 66, 66,  0, 20,  8};
-static const GLubyte Helvetica12_Character_220[] = {  8,  0,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 66, 66,  0, 36,  0};
-static const GLubyte Helvetica12_Character_221[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0, 20,  0, 34,  0, 34,  0, 65,  0, 65,  0,  0,  0,  8,  0,  4,  0};
-static const GLubyte Helvetica12_Character_222[] = {  8,  0,  0,  0,  0, 64, 64,124, 66, 66, 66,124, 64, 64,  0,  0,  0};
-static const GLubyte Helvetica12_Character_223[] = {  7,  0,  0,  0,  0, 88, 68, 68, 68, 88, 68, 68, 68, 56,  0,  0,  0};
-static const GLubyte Helvetica12_Character_224[] = {  7,  0,  0,  0,  0, 58, 68, 68, 60,  4, 68, 56,  0,  8, 16,  0,  0};
-static const GLubyte Helvetica12_Character_225[] = {  7,  0,  0,  0,  0, 58, 68, 68, 60,  4, 68, 56,  0, 16,  8,  0,  0};
-static const GLubyte Helvetica12_Character_226[] = {  7,  0,  0,  0,  0, 58, 68, 68, 60,  4, 68, 56,  0, 40, 16,  0,  0};
-static const GLubyte Helvetica12_Character_227[] = {  7,  0,  0,  0,  0, 58, 68, 68, 60,  4, 68, 56,  0, 40, 20,  0,  0};
-static const GLubyte Helvetica12_Character_228[] = {  7,  0,  0,  0,  0, 58, 68, 68, 60,  4, 68, 56,  0, 40,  0,  0,  0};
-static const GLubyte Helvetica12_Character_229[] = {  7,  0,  0,  0,  0, 58, 68, 68, 60,  4, 68, 56, 24, 36, 24,  0,  0};
-static const GLubyte Helvetica12_Character_230[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0, 59,128, 68, 64, 68,  0, 63,192,  4, 64, 68, 64, 59,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_231[] = {  7,  0, 48,  8, 16, 56, 68, 64, 64, 64, 68, 56,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_232[] = {  7,  0,  0,  0,  0, 56, 68, 64,124, 68, 68, 56,  0, 16, 32,  0,  0};
-static const GLubyte Helvetica12_Character_233[] = {  7,  0,  0,  0,  0, 56, 68, 64,124, 68, 68, 56,  0, 16,  8,  0,  0};
-static const GLubyte Helvetica12_Character_234[] = {  7,  0,  0,  0,  0, 56, 68, 64,124, 68, 68, 56,  0, 40, 16,  0,  0};
-static const GLubyte Helvetica12_Character_235[] = {  7,  0,  0,  0,  0, 56, 68, 64,124, 68, 68, 56,  0, 40,  0,  0,  0};
-static const GLubyte Helvetica12_Character_236[] = {  3,  0,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64,  0, 64,128,  0,  0};
-static const GLubyte Helvetica12_Character_237[] = {  3,  0,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64,  0, 64, 32,  0,  0};
-static const GLubyte Helvetica12_Character_238[] = {  3,  0,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64,  0,160, 64,  0,  0};
-static const GLubyte Helvetica12_Character_239[] = {  3,  0,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64,  0,160,  0,  0,  0};
-static const GLubyte Helvetica12_Character_240[] = {  7,  0,  0,  0,  0, 56, 68, 68, 68, 68, 60,  4, 40, 24, 52,  0,  0};
-static const GLubyte Helvetica12_Character_241[] = {  7,  0,  0,  0,  0, 68, 68, 68, 68, 68,100, 88,  0, 40, 20,  0,  0};
-static const GLubyte Helvetica12_Character_242[] = {  7,  0,  0,  0,  0, 56, 68, 68, 68, 68, 68, 56,  0, 16, 32,  0,  0};
-static const GLubyte Helvetica12_Character_243[] = {  7,  0,  0,  0,  0, 56, 68, 68, 68, 68, 68, 56,  0, 16,  8,  0,  0};
-static const GLubyte Helvetica12_Character_244[] = {  7,  0,  0,  0,  0, 56, 68, 68, 68, 68, 68, 56,  0, 40, 16,  0,  0};
-static const GLubyte Helvetica12_Character_245[] = {  7,  0,  0,  0,  0, 56, 68, 68, 68, 68, 68, 56,  0, 40, 20,  0,  0};
-static const GLubyte Helvetica12_Character_246[] = {  7,  0,  0,  0,  0, 56, 68, 68, 68, 68, 68, 56,  0, 40,  0,  0,  0};
-static const GLubyte Helvetica12_Character_247[] = {  7,  0,  0,  0,  0,  0, 16,  0,124,  0, 16,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_248[] = {  7,  0,  0,  0,  0,184, 68,100, 84, 76, 68, 58,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica12_Character_249[] = {  7,  0,  0,  0,  0, 52, 76, 68, 68, 68, 68, 68,  0, 16, 32,  0,  0};
-static const GLubyte Helvetica12_Character_250[] = {  7,  0,  0,  0,  0, 52, 76, 68, 68, 68, 68, 68,  0, 16,  8,  0,  0};
-static const GLubyte Helvetica12_Character_251[] = {  7,  0,  0,  0,  0, 52, 76, 68, 68, 68, 68, 68,  0, 40, 16,  0,  0};
-static const GLubyte Helvetica12_Character_252[] = {  7,  0,  0,  0,  0, 52, 76, 68, 68, 68, 68, 68,  0, 40,  0,  0,  0};
-static const GLubyte Helvetica12_Character_253[] = {  7,  0, 64, 32, 16, 16, 40, 40, 72, 68, 68, 68,  0, 16,  8,  0,  0};
-static const GLubyte Helvetica12_Character_254[] = {  7,  0, 64, 64, 64, 88,100, 68, 68, 68,100, 88, 64, 64,  0,  0,  0};
-static const GLubyte Helvetica12_Character_255[] = {  7,  0, 96, 16, 16, 16, 24, 40, 40, 36, 68, 68,  0, 40,  0,  0,  0};
-
-/* The font characters mapping: */
-static const GLubyte* Helvetica12_Character_Map[] = {Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,
-                                                     Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,
-                                                     Helvetica12_Character_032,Helvetica12_Character_033,Helvetica12_Character_034,Helvetica12_Character_035,Helvetica12_Character_036,Helvetica12_Character_037,Helvetica12_Character_038,Helvetica12_Character_039,Helvetica12_Character_040,Helvetica12_Character_041,Helvetica12_Character_042,Helvetica12_Character_043,Helvetica12_Character_044,Helvetica12_Character_045,Helvetica12_Character_046,Helvetica12_Character_047,
-                                                     Helvetica12_Character_048,Helvetica12_Character_049,Helvetica12_Character_050,Helvetica12_Character_051,Helvetica12_Character_052,Helvetica12_Character_053,Helvetica12_Character_054,Helvetica12_Character_055,Helvetica12_Character_056,Helvetica12_Character_057,Helvetica12_Character_058,Helvetica12_Character_059,Helvetica12_Character_060,Helvetica12_Character_061,Helvetica12_Character_062,Helvetica12_Character_063,
-                                                     Helvetica12_Character_064,Helvetica12_Character_065,Helvetica12_Character_066,Helvetica12_Character_067,Helvetica12_Character_068,Helvetica12_Character_069,Helvetica12_Character_070,Helvetica12_Character_071,Helvetica12_Character_072,Helvetica12_Character_073,Helvetica12_Character_074,Helvetica12_Character_075,Helvetica12_Character_076,Helvetica12_Character_077,Helvetica12_Character_078,Helvetica12_Character_079,
-                                                     Helvetica12_Character_080,Helvetica12_Character_081,Helvetica12_Character_082,Helvetica12_Character_083,Helvetica12_Character_084,Helvetica12_Character_085,Helvetica12_Character_086,Helvetica12_Character_087,Helvetica12_Character_088,Helvetica12_Character_089,Helvetica12_Character_090,Helvetica12_Character_091,Helvetica12_Character_092,Helvetica12_Character_093,Helvetica12_Character_094,Helvetica12_Character_095,
-                                                     Helvetica12_Character_096,Helvetica12_Character_097,Helvetica12_Character_098,Helvetica12_Character_099,Helvetica12_Character_100,Helvetica12_Character_101,Helvetica12_Character_102,Helvetica12_Character_103,Helvetica12_Character_104,Helvetica12_Character_105,Helvetica12_Character_106,Helvetica12_Character_107,Helvetica12_Character_108,Helvetica12_Character_109,Helvetica12_Character_110,Helvetica12_Character_111,
-                                                     Helvetica12_Character_112,Helvetica12_Character_113,Helvetica12_Character_114,Helvetica12_Character_115,Helvetica12_Character_116,Helvetica12_Character_117,Helvetica12_Character_118,Helvetica12_Character_119,Helvetica12_Character_120,Helvetica12_Character_121,Helvetica12_Character_122,Helvetica12_Character_123,Helvetica12_Character_124,Helvetica12_Character_125,Helvetica12_Character_126,Helvetica12_Character_032,
-                                                     Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,
-                                                     Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,
-                                                     Helvetica12_Character_160,Helvetica12_Character_161,Helvetica12_Character_162,Helvetica12_Character_163,Helvetica12_Character_164,Helvetica12_Character_165,Helvetica12_Character_166,Helvetica12_Character_167,Helvetica12_Character_168,Helvetica12_Character_169,Helvetica12_Character_170,Helvetica12_Character_171,Helvetica12_Character_172,Helvetica12_Character_173,Helvetica12_Character_174,Helvetica12_Character_175,
-                                                     Helvetica12_Character_176,Helvetica12_Character_177,Helvetica12_Character_178,Helvetica12_Character_179,Helvetica12_Character_180,Helvetica12_Character_181,Helvetica12_Character_182,Helvetica12_Character_183,Helvetica12_Character_184,Helvetica12_Character_185,Helvetica12_Character_186,Helvetica12_Character_187,Helvetica12_Character_188,Helvetica12_Character_189,Helvetica12_Character_190,Helvetica12_Character_191,
-                                                     Helvetica12_Character_192,Helvetica12_Character_193,Helvetica12_Character_194,Helvetica12_Character_195,Helvetica12_Character_196,Helvetica12_Character_197,Helvetica12_Character_198,Helvetica12_Character_199,Helvetica12_Character_200,Helvetica12_Character_201,Helvetica12_Character_202,Helvetica12_Character_203,Helvetica12_Character_204,Helvetica12_Character_205,Helvetica12_Character_206,Helvetica12_Character_207,
-                                                     Helvetica12_Character_208,Helvetica12_Character_209,Helvetica12_Character_210,Helvetica12_Character_211,Helvetica12_Character_212,Helvetica12_Character_213,Helvetica12_Character_214,Helvetica12_Character_215,Helvetica12_Character_216,Helvetica12_Character_217,Helvetica12_Character_218,Helvetica12_Character_219,Helvetica12_Character_220,Helvetica12_Character_221,Helvetica12_Character_222,Helvetica12_Character_223,
-                                                     Helvetica12_Character_224,Helvetica12_Character_225,Helvetica12_Character_226,Helvetica12_Character_227,Helvetica12_Character_228,Helvetica12_Character_229,Helvetica12_Character_230,Helvetica12_Character_231,Helvetica12_Character_232,Helvetica12_Character_233,Helvetica12_Character_234,Helvetica12_Character_235,Helvetica12_Character_236,Helvetica12_Character_237,Helvetica12_Character_238,Helvetica12_Character_239,
-                                                     Helvetica12_Character_240,Helvetica12_Character_241,Helvetica12_Character_242,Helvetica12_Character_243,Helvetica12_Character_244,Helvetica12_Character_245,Helvetica12_Character_246,Helvetica12_Character_247,Helvetica12_Character_248,Helvetica12_Character_249,Helvetica12_Character_250,Helvetica12_Character_251,Helvetica12_Character_252,Helvetica12_Character_253,Helvetica12_Character_254,Helvetica12_Character_255,NULL};
-
-/* The font structure: */
-const SFG_Font fgFontHelvetica12 = { "-adobe-helvetica-medium-r-normal--12-120-75-75-p-67-iso8859-1", 256, 16, Helvetica12_Character_Map, 0, 4 };
-
-static const GLubyte Helvetica18_Character_000[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0, 64, 16,  0,  0, 64, 16,  0,  0, 64, 16,  0,  0, 64, 16,  0,  0, 64, 16,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_001[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_002[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_003[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_004[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_005[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_006[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_007[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_008[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_009[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_010[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_011[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_012[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_013[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_014[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_015[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_016[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_017[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_018[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_019[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_020[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_021[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_022[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_023[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_024[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_025[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_026[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_027[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_028[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_029[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_030[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_031[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_032[] = {  5,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_033[] = {  6,  0,  0,  0,  0,  0, 48, 48,  0,  0, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_034[] = {  5,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,144,144,216,216,216,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_035[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 36,  0, 36,  0, 36,  0,255,128,255,128, 18,  0, 18,  0, 18,  0,127,192,127,192,  9,  0,  9,  0,  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_036[] = { 10,  0,  0,  0,  0,  0,  0,  4,  0,  4,  0, 31,  0, 63,128,117,192,100,192,  4,192,  7,128, 31,  0, 60,  0,116,  0,100,  0,101,128, 63,128, 31,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_037[] = { 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12, 60, 12,126,  6,102,  6,102,  3,126,  3, 60,  1,128, 61,128,126,192,102,192,102, 96,126, 96, 60, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_038[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30, 56, 63,112,115,224, 97,192, 97,224, 99, 96,119, 96, 62,  0, 30,  0, 51,  0, 51,  0, 63,  0, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_039[] = {  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64, 32, 32, 96, 96,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_040[] = {  6,  0,  8, 24, 48, 48, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 48, 48, 24,  8,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_041[] = {  6,  0, 64, 96, 48, 48, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 48, 48, 96, 64,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_042[] = {  7,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 56, 56,124, 16, 16,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_043[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0, 12,  0, 12,  0, 12,  0,127,128,127,128, 12,  0, 12,  0, 12,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_044[] = {  5,  0,  0, 64, 32, 32, 96, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_045[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,128,127,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_046[] = {  5,  0,  0,  0,  0,  0, 96, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_047[] = {  5,  0,  0,  0,  0,  0,192,192, 64, 64, 96, 96, 32, 32, 48, 48, 16, 16, 24, 24,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_048[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 63,  0, 51,  0, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128, 51,  0, 63,  0, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_049[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0, 62,  0, 62,  0,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_050[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,128,127,128, 96,  0,112,  0, 56,  0, 28,  0, 14,  0,  7,  0,  3,128,  1,128, 97,128,127,  0, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_051[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 63,  0, 99,128, 97,128,  1,128,  3,128, 15,  0, 14,  0,  3,  0, 97,128, 97,128, 63,  0, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_052[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,128,  1,128,  1,128,127,192,127,192, 97,128, 49,128, 25,128, 25,128, 13,128,  7,128,  3,128,  1,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_053[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0,127,  0, 99,128, 97,128,  1,128,  1,128, 99,128,127,  0,126,  0, 96,  0, 96,  0,127,  0,127,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_054[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 63,  0,113,128, 97,128, 97,128, 97,128,127,  0,110,  0, 96,  0, 96,  0, 49,128, 63,128, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_055[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48,  0, 48,  0, 24,  0, 24,  0, 24,  0, 12,  0, 12,  0,  6,  0,  6,  0,  3,  0,  1,128,127,128,127,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_056[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 63,  0,115,128, 97,128, 97,128, 51,  0, 63,  0, 51,  0, 97,128, 97,128,115,128, 63,  0, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_057[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0,127,  0, 99,  0,  1,128,  1,128, 29,128, 63,128, 97,128, 97,128, 97,128, 99,128, 63,  0, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_058[] = {  5,  0,  0,  0,  0,  0, 96, 96,  0,  0,  0,  0,  0,  0, 96, 96,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_059[] = {  5,  0,  0, 64, 32, 32, 96, 96,  0,  0,  0,  0,  0,  0, 96, 96,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_060[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,128,  7,128, 30,  0, 56,  0, 96,  0, 56,  0, 30,  0,  7,128,  1,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_061[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 63,128, 63,128,  0,  0,  0,  0, 63,128, 63,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_062[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,  0,120,  0, 30,  0,  7,  0,  1,128,  7,  0, 30,  0,120,  0, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_063[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24,  0, 24,  0,  0,  0,  0,  0, 24,  0, 24,  0, 24,  0, 28,  0, 14,  0,  7,  0, 99,  0, 99,  0,127,  0, 62,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_064[] = { 18,  0,  0,  0,  0,  0,  0,  3,240,  0, 15,248,  0, 28,  0,  0, 56,  0,  0, 51,184,  0,103,252,  0,102,102,  0,102, 51,  0,102, 51,  0,102, 49,128, 99, 25,128, 51,185,128, 49,217,128, 24,  3,  0, 14,  7,  0,  7,254,  0,  1,248,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_065[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192, 48,192, 48, 96, 96, 96, 96,127,224, 63,192, 48,192, 48,192, 25,128, 25,128, 15,  0, 15,  0,  6,  0,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_066[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,192,127,224, 96,112, 96, 48, 96, 48, 96,112,127,224,127,192, 96,192, 96, 96, 96, 96, 96,224,127,192,127,128,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_067[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,192, 31,240, 56, 56, 48, 24,112,  0, 96,  0, 96,  0, 96,  0, 96,  0,112,  0, 48, 24, 56, 56, 31,240,  7,192,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_068[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,128,127,192, 96,224, 96, 96, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 96, 96,224,127,192,127,128,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_069[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,192,127,192, 96,  0, 96,  0, 96,  0, 96,  0,127,128,127,128, 96,  0, 96,  0, 96,  0, 96,  0,127,192,127,192,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_070[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0,127,128,127,128, 96,  0, 96,  0, 96,  0, 96,  0,127,192,127,192,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_071[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,216, 31,248, 56, 56, 48, 24,112, 24, 96,248, 96,248, 96,  0, 96,  0,112, 24, 48, 24, 56, 56, 31,240,  7,192,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_072[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48,127,240,127,240, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_073[] = {  6,  0,  0,  0,  0,  0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_074[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 63,  0,115,128, 97,128, 97,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_075[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96, 56, 96,112, 96,224, 97,192, 99,128,103,  0,126,  0,124,  0,110,  0,103,  0, 99,128, 97,192, 96,224, 96,112,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_076[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,128,127,128, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_077[] = { 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 97,134, 97,134, 99,198, 98, 70,102,102,102,102,108, 54,108, 54,120, 30,120, 30,112, 14,112, 14, 96,  6, 96,  6,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_078[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96, 48, 96,112, 96,240, 96,240, 97,176, 99, 48, 99, 48,102, 48,102, 48,108, 48,120, 48,120, 48,112, 48, 96, 48,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_079[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,192, 31,240, 56, 56, 48, 24,112, 28, 96, 12, 96, 12, 96, 12, 96, 12,112, 28, 48, 24, 56, 56, 31,240,  7,192,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_080[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0,127,128,127,192, 96,224, 96, 96, 96, 96, 96,224,127,192,127,128,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_081[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24,  7,216, 31,240, 56,120, 48,216,112,220, 96, 12, 96, 12, 96, 12, 96, 12,112, 28, 48, 24, 56, 56, 31,240,  7,192,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_082[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96, 96, 96, 96, 96, 96, 96, 96, 96,192, 96,192,127,128,127,192, 96,224, 96, 96, 96, 96, 96,224,127,192,127,128,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_083[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31,128, 63,224,112,112, 96, 48,  0, 48,  0,112,  1,224, 15,128, 62,  0,112,  0, 96, 48,112,112, 63,224, 15,128,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_084[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,127,224,127,224,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_085[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,128, 63,224, 48, 96, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_086[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  0,  7,128,  7,128, 12,192, 12,192, 12,192, 24, 96, 24, 96, 24, 96, 48, 48, 48, 48, 48, 48, 96, 24, 96, 24,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_087[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12, 12,  0, 12, 12,  0, 14, 28,  0, 26, 22,  0, 27, 54,  0, 27, 54,  0, 51, 51,  0, 51, 51,  0, 49, 35,  0, 49,227,  0, 97,225,128, 96,193,128, 96,193,128, 96,193,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_088[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96, 48,112,112, 48, 96, 56,224, 24,192, 13,128,  7,  0,  7,  0, 13,128, 24,192, 56,224, 48, 96,112,112, 96, 48,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_089[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  7,128, 12,192, 24, 96, 24, 96, 48, 48, 48, 48, 96, 24, 96, 24,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_090[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,224,127,224, 96,  0, 48,  0, 24,  0, 12,  0, 14,  0,  6,  0,  3,  0,  1,128,  0,192,  0, 96,127,224,127,224,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_091[] = {  5,  0,120,120, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,120,120,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_092[] = {  5,  0,  0,  0,  0,  0, 24, 24, 16, 16, 48, 48, 32, 32, 96, 96, 64, 64,192,192,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_093[] = {  5,  0,240,240, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,240,240,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_094[] = {  9,  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, 65,  0, 99,  0, 54,  0, 28,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_095[] = { 10,  0,  0,255,192,255,192,  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};
-static const GLubyte Helvetica18_Character_096[] = {  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96, 96, 64, 64, 32,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_097[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 59,  0,119,  0, 99,  0, 99,  0,115,  0, 63,  0,  7,  0, 99,  0,119,  0, 62,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_098[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,111,  0,127,128,113,128, 96,192, 96,192, 96,192, 96,192,113,128,127,128,111,  0, 96,  0, 96,  0, 96,  0, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_099[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31,  0, 63,128, 49,128, 96,  0, 96,  0, 96,  0, 96,  0, 49,128, 63,128, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_100[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30,192, 63,192, 49,192, 96,192, 96,192, 96,192, 96,192, 49,192, 63,192, 30,192,  0,192,  0,192,  0,192,  0,192,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_101[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 63,128,113,128, 96,  0, 96,  0,127,128, 97,128, 97,128, 63,  0, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_102[] = {  6,  0,  0,  0,  0,  0, 48, 48, 48, 48, 48, 48, 48, 48,252,252, 48, 48, 60, 28,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_103[] = { 11,  0,  0, 14,  0, 63,128, 49,128,  0,192, 30,192, 63,192, 49,192, 96,192, 96,192, 96,192, 96,192, 48,192, 63,192, 30,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_104[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128,113,128,111,128,103,  0, 96,  0, 96,  0, 96,  0, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_105[] = {  4,  0,  0,  0,  0,  0, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,  0,  0, 96, 96,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_106[] = {  4,  0,192,224, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,  0,  0, 96, 96,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_107[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 99,128, 99,  0,103,  0,102,  0,108,  0,124,  0,120,  0,108,  0,102,  0, 99,  0, 96,  0, 96,  0, 96,  0, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_108[] = {  4,  0,  0,  0,  0,  0, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_109[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 99, 24, 99, 24, 99, 24, 99, 24, 99, 24, 99, 24, 99, 24,115,152,111,120,102, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_110[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128,113,128,111,128,103,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_111[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31,  0, 63,128, 49,128, 96,192, 96,192, 96,192, 96,192, 49,128, 63,128, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_112[] = { 11,  0,  0, 96,  0, 96,  0, 96,  0, 96,  0,111,  0,127,128,113,128, 96,192, 96,192, 96,192, 96,192,113,128,127,128,111,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_113[] = { 11,  0,  0,  0,192,  0,192,  0,192,  0,192, 30,192, 63,192, 49,192, 96,192, 96,192, 96,192, 96,192, 49,192, 63,192, 30,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_114[] = {  6,  0,  0,  0,  0,  0, 96, 96, 96, 96, 96, 96, 96,112,108,108,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_115[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 60,  0,126,  0, 99,  0,  3,  0, 31,  0,126,  0, 96,  0, 99,  0, 63,  0, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_116[] = {  6,  0,  0,  0,  0,  0, 24, 56, 48, 48, 48, 48, 48, 48,252,252, 48, 48, 48,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_117[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 57,128,125,128, 99,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_118[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0, 12,  0, 30,  0, 18,  0, 51,  0, 51,  0, 51,  0, 97,128, 97,128, 97,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_119[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,192, 12,192, 28,224, 20,160, 52,176, 51, 48, 51, 48, 99, 24, 99, 24, 99, 24,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_120[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 97,128,115,128, 51,  0, 30,  0, 12,  0, 12,  0, 30,  0, 51,  0,115,128, 97,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_121[] = { 10,  0,  0, 56,  0, 56,  0, 12,  0, 12,  0, 12,  0, 12,  0, 30,  0, 18,  0, 51,  0, 51,  0, 51,  0, 97,128, 97,128, 97,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_122[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,  0,127,  0, 96,  0, 48,  0, 24,  0, 12,  0,  6,  0,  3,  0,127,  0,127,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_123[] = {  6,  0, 12, 24, 48, 48, 48, 48, 48, 48, 96,192, 96, 48, 48, 48, 48, 48, 24, 12,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_124[] = {  4,  0, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_125[] = {  6,  0,192, 96, 48, 48, 48, 48, 48, 48, 24, 12, 24, 48, 48, 48, 48, 48, 96,192,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_126[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,102,  0, 63,  0, 25,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_127[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_128[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_129[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_130[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_131[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_132[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_133[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_134[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_135[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_136[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_137[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_138[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_139[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_140[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_141[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_142[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_143[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_144[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_145[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_146[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_147[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_148[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_149[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_150[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_151[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_152[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_153[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_154[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_155[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_156[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_157[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_158[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_159[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_160[] = {  5,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_161[] = {  6,  0, 48, 48, 48, 48, 48, 48, 48, 48, 16, 16,  0,  0, 48, 48,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_162[] = { 10,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0, 31,  0, 63,128, 53,128,100,  0,100,  0,100,  0,100,  0, 53,128, 63,128, 31,  0,  2,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_163[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,223,  0,255,128, 96,128, 48,  0, 24,  0, 24,  0,126,  0, 48,  0, 96,  0, 97,128, 97,128, 63,  0, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_164[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 97,128,127,128, 51,  0, 51,  0, 51,  0,127,128, 97,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_165[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0, 12,  0, 12,  0, 12,  0,127,128, 12,  0,127,128, 30,  0, 51,  0, 51,  0, 51,  0, 97,128, 97,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_166[] = {  4,  0,  0, 96, 96, 96, 96, 96, 96,  0,  0,  0,  0, 96, 96, 96, 96, 96, 96, 96,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_167[] = { 10,  0,  0, 30,  0, 63,  0, 97,128, 97,128,  3,128,  7,  0, 31,  0, 57,128,113,128, 97,128, 99,128, 55,  0, 62,  0,120,  0, 97,128, 97,128, 63,  0, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_168[] = {  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,216,216,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_169[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,192, 24, 48, 32,  8, 35,136, 68, 68, 72,  4, 72,  4, 72,  4, 68, 68, 35,136, 32,  8, 24, 48,  7,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_170[] = {  7,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,124,  0, 52,108, 36, 28,100, 56,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_171[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  9,  0, 27,  0, 54,  0,108,  0,108,  0, 54,  0, 27,  0,  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_172[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192,  0,192,  0,192,127,192,127,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_173[] = {  7,  0,  0,  0,  0,  0,  0,  0,  0,  0,124,124,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_174[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,192, 24, 48, 32,  8, 36, 40, 68, 68, 68,132, 71,196, 68, 36, 68, 36, 39,200, 32,  8, 24, 48,  7,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_175[] = {  5,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,248,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_176[] = {  7,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 56,108, 68,108, 56,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_177[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,128,127,128,  0,  0, 12,  0, 12,  0, 12,  0,127,128,127,128, 12,  0, 12,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_178[] = {  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,248,248, 96, 48, 24,152,248,112,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_179[] = {  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,112,248,152, 48, 48,152,248,112,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_180[] = {  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192, 96, 48,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_181[] = { 10,  0,  0, 96,  0, 96,  0, 96,  0, 96,  0,109,128,127,128,115,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_182[] = { 10,  0,  0,  9,  0,  9,  0,  9,  0,  9,  0,  9,  0,  9,  0,  9,  0,  9,  0,  9,  0,  9,  0, 25,  0, 57,  0,121,  0,121,  0,121,  0,121,  0, 57,  0, 31,128,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_183[] = {  4,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_184[] = {  5,  0,240,216, 24,112, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_185[] = {  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48, 48, 48, 48, 48,112,112, 48,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_186[] = {  7,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,124,  0, 56,108, 68, 68,108, 56,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_187[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 72,  0,108,  0, 54,  0, 27,  0, 27,  0, 54,  0,108,  0, 72,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_188[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24, 24, 24, 24, 12,252,  6,216,  6,120, 51, 56, 49, 24, 49,136, 48,192, 48,192,112, 96,112, 48, 48, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_189[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24,124, 24,124, 12, 48,  6, 24,  6, 12, 51, 76, 49,124, 49,184, 48,192, 48,192,112, 96,112, 48, 48, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_190[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24, 24, 24, 24, 12,252,  6,216,  6,120,115, 56,249, 24,153,136, 48,192, 48,192,152, 96,248, 48,112, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_191[] = { 10,  0,  0, 62,  0,127,  0, 99,  0, 99,  0,112,  0, 56,  0, 28,  0, 12,  0, 12,  0, 12,  0,  0,  0,  0,  0, 12,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_192[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192, 48,192, 48, 96, 96, 96, 96,127,224, 63,192, 48,192, 48,192, 25,128, 25,128, 15,  0, 15,  0,  6,  0,  6,  0,  0,  0,  6,  0, 12,  0, 24,  0};
-static const GLubyte Helvetica18_Character_193[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192, 48,192, 48, 96, 96, 96, 96,127,224, 63,192, 48,192, 48,192, 25,128, 25,128, 15,  0, 15,  0,  6,  0,  6,  0,  0,  0,  6,  0,  3,  0,  1,128};
-static const GLubyte Helvetica18_Character_194[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192, 48,192, 48, 96, 96, 96, 96,127,224, 63,192, 48,192, 48,192, 25,128, 25,128, 15,  0, 15,  0,  6,  0,  6,  0,  0,  0, 25,128, 15,  0,  6,  0};
-static const GLubyte Helvetica18_Character_195[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192, 48,192, 48, 96, 96, 96, 96,127,224, 63,192, 48,192, 48,192, 25,128, 25,128, 15,  0, 15,  0,  6,  0,  6,  0,  0,  0, 19,  0, 22,128, 12,128};
-static const GLubyte Helvetica18_Character_196[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192, 48,192, 48, 96, 96, 96, 96,127,224, 63,192, 48,192, 48,192, 25,128, 25,128, 15,  0, 15,  0,  6,  0,  6,  0,  0,  0, 25,128, 25,128,  0,  0};
-static const GLubyte Helvetica18_Character_197[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192, 48,192, 48, 96, 96, 96, 96,127,224, 63,192, 48,192, 48,192, 25,128, 25,128, 15,  0, 15,  0,  6,  0,  6,  0, 15,  0, 25,128, 25,128, 15,  0};
-static const GLubyte Helvetica18_Character_198[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,255,128, 96,255,128, 48,192,  0, 48,192,  0, 63,192,  0, 31,192,  0, 24,255,  0, 24,255,  0, 12,192,  0, 12,192,  0,  6,192,  0,  6,192,  0,  3,255,128,  3,255,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_199[] = { 14,  0,  0, 15,  0, 13,128,  1,128,  7,  0,  7,192, 31,240, 56, 56, 48, 24,112,  0, 96,  0, 96,  0, 96,  0, 96,  0,112,  0, 48, 24, 56, 56, 31,240,  7,192,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_200[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,192,127,192, 96,  0, 96,  0, 96,  0, 96,  0,127,128,127,128, 96,  0, 96,  0, 96,  0, 96,  0,127,192,127,192,  0,  0,  6,  0, 12,  0, 24,  0};
-static const GLubyte Helvetica18_Character_201[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,192,127,192, 96,  0, 96,  0, 96,  0, 96,  0,127,128,127,128, 96,  0, 96,  0, 96,  0, 96,  0,127,192,127,192,  0,  0,  6,  0,  3,  0,  1,128};
-static const GLubyte Helvetica18_Character_202[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,192,127,192, 96,  0, 96,  0, 96,  0, 96,  0,127,128,127,128, 96,  0, 96,  0, 96,  0, 96,  0,127,192,127,192,  0,  0, 25,128, 15,  0,  6,  0};
-static const GLubyte Helvetica18_Character_203[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,192,127,192, 96,  0, 96,  0, 96,  0, 96,  0,127,128,127,128, 96,  0, 96,  0, 96,  0, 96,  0,127,192,127,192,  0,  0, 25,128, 25,128,  0,  0};
-static const GLubyte Helvetica18_Character_204[] = {  6,  0,  0,  0,  0,  0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,  0, 48, 96,192};
-static const GLubyte Helvetica18_Character_205[] = {  6,  0,  0,  0,  0,  0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,  0, 48, 24, 12};
-static const GLubyte Helvetica18_Character_206[] = {  6,  0,  0,  0,  0,  0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,  0,204,120, 48};
-static const GLubyte Helvetica18_Character_207[] = {  6,  0,  0,  0,  0,  0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,  0,204,204,  0};
-static const GLubyte Helvetica18_Character_208[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,128,127,192, 96,224, 96, 96, 96, 48, 96, 48,252, 48,252, 48, 96, 48, 96, 48, 96, 96, 96,224,127,192,127,128,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_209[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96, 48, 96,112, 96,240, 96,240, 97,176, 99, 48, 99, 48,102, 48,102, 48,108, 48,108, 48,120, 48,112, 48,112, 48,  0,  0,  9,128, 11, 64,  6, 64};
-static const GLubyte Helvetica18_Character_210[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,192, 31,240, 56, 56, 48, 24,112, 28, 96, 12, 96, 12, 96, 12, 96, 12,112, 28, 48, 24, 56, 56, 31,240,  7,192,  0,  0,  1,128,  3,  0,  6,  0};
-static const GLubyte Helvetica18_Character_211[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,192, 31,240, 56, 56, 48, 24,112, 28, 96, 12, 96, 12, 96, 12, 96, 12,112, 28, 48, 24, 56, 56, 31,240,  7,192,  0,  0,  1,128,  0,192,  0, 96};
-static const GLubyte Helvetica18_Character_212[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,192, 31,240, 56, 56, 48, 24,112, 28, 96, 12, 96, 12, 96, 12, 96, 12,112, 28, 48, 24, 56, 56, 31,240,  7,192,  0,  0,  6, 96,  3,192,  1,128};
-static const GLubyte Helvetica18_Character_213[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,192, 31,240, 56, 56, 48, 24,112, 28, 96, 12, 96, 12, 96, 12, 96, 12,112, 28, 48, 24, 56, 56, 31,240,  7,192,  0,  0,  4,192,  5,160,  3, 32};
-static const GLubyte Helvetica18_Character_214[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,192, 31,240, 56, 56, 48, 24,112, 28, 96, 12, 96, 12, 96, 12, 96, 12,112, 28, 48, 24, 56, 56, 31,240,  7,192,  0,  0,  6,192,  6,192,  0,  0};
-static const GLubyte Helvetica18_Character_215[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192,192, 97,128, 51,  0, 30,  0, 12,  0, 30,  0, 51,  0, 97,128,192,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_216[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,199,192,255,240,120, 56, 56, 24,108, 28,110, 12,103, 12, 99,140, 97,204,112,220, 48,120, 56, 56, 31,252,  7,204,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_217[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,128, 63,224, 48, 96, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48,  0,  0,  3,  0,  6,  0, 12,  0};
-static const GLubyte Helvetica18_Character_218[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,128, 63,224, 48, 96, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48,  0,  0,  6,  0,  3,  0,  1,128};
-static const GLubyte Helvetica18_Character_219[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,128, 63,224, 48, 96, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48,  0,  0, 12,192,  7,128,  3,  0};
-static const GLubyte Helvetica18_Character_220[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,128, 63,224, 48, 96, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48,  0,  0, 12,192, 12,192,  0,  0};
-static const GLubyte Helvetica18_Character_221[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  7,128, 12,192, 24, 96, 24, 96, 48, 48, 48, 48, 96, 24, 96, 24,  0,  0,  3,  0,  1,128,  0,192};
-static const GLubyte Helvetica18_Character_222[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,  0, 96,  0, 96,  0,127,128,127,192, 96,224, 96, 96, 96, 96, 96,224,127,192,127,128, 96,  0, 96,  0, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_223[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,110,  0,111,  0, 99,  0, 99,  0, 99,  0, 99,  0,110,  0,110,  0, 99,  0, 99,  0, 99,  0, 99,  0, 62,  0, 28,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_224[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 59,  0,119,  0, 99,  0, 99,  0,115,  0, 63,  0,  7,  0, 99,  0,119,  0, 62,  0,  0,  0, 12,  0, 24,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_225[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 59,  0,119,  0, 99,  0, 99,  0,115,  0, 63,  0,  7,  0, 99,  0,119,  0, 62,  0,  0,  0, 24,  0, 12,  0,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_226[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 59,  0,119,  0, 99,  0, 99,  0,115,  0, 63,  0,  7,  0, 99,  0,119,  0, 62,  0,  0,  0, 51,  0, 30,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_227[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 59,  0,119,  0, 99,  0, 99,  0,115,  0, 63,  0,  7,  0, 99,  0,119,  0, 62,  0,  0,  0, 38,  0, 45,  0, 25,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_228[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 59,  0,119,  0, 99,  0, 99,  0,115,  0, 63,  0,  7,  0, 99,  0,119,  0, 62,  0,  0,  0, 54,  0, 54,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_229[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 59,  0,119,  0, 99,  0, 99,  0,115,  0, 63,  0,  7,  0, 99,  0,119,  0, 62,  0, 28,  0, 54,  0, 54,  0, 28,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_230[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 58,240,119,252, 99,140, 99,  0,115,  0, 63,252,  7, 12, 99, 12,119,248, 62,240,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_231[] = { 10,  0,  0, 60,  0, 54,  0,  6,  0, 28,  0, 31,  0, 63,128, 49,128, 96,  0, 96,  0, 96,  0, 96,  0, 49,128, 63,128, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_232[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 63,128,113,128, 96,  0, 96,  0,127,128, 97,128, 97,128, 63,  0, 30,  0,  0,  0, 12,  0, 24,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_233[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 63,128,113,128, 96,  0, 96,  0,127,128, 97,128, 97,128, 63,  0, 30,  0,  0,  0, 12,  0,  6,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_234[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 63,128,113,128, 96,  0, 96,  0,127,128, 97,128, 97,128, 63,  0, 30,  0,  0,  0, 51,  0, 30,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_235[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 63,128,113,128, 96,  0, 96,  0,127,128, 97,128, 97,128, 63,  0, 30,  0,  0,  0, 27,  0, 27,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_236[] = {  4,  0,  0,  0,  0,  0, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,  0, 48, 96,192,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_237[] = {  4,  0,  0,  0,  0,  0, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,  0,192, 96, 48,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_238[] = {  4,  0,  0,  0,  0,  0, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,  0,144,240, 96,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_239[] = {  4,  0,  0,  0,  0,  0, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,  0,216,216,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_240[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31,  0, 63,128, 49,128, 96,192, 96,192, 96,192, 96,192, 49,128, 63,128, 31,  0, 38,  0, 28,  0, 27,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_241[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128,113,128,111,128,103,  0,  0,  0, 38,  0, 45,  0, 25,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_242[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31,  0, 63,128, 49,128, 96,192, 96,192, 96,192, 96,192, 49,128, 63,128, 31,  0,  0,  0,  6,  0, 12,  0, 24,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_243[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31,  0, 63,128, 49,128, 96,192, 96,192, 96,192, 96,192, 49,128, 63,128, 31,  0,  0,  0, 12,  0,  6,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_244[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31,  0, 63,128, 49,128, 96,192, 96,192, 96,192, 96,192, 49,128, 63,128, 31,  0,  0,  0, 25,128, 15,  0,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_245[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31,  0, 63,128, 49,128, 96,192, 96,192, 96,192, 96,192, 49,128, 63,128, 31,  0,  0,  0, 19,  0, 22,128, 12,128,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_246[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31,  0, 63,128, 49,128, 96,192, 96,192, 96,192, 96,192, 49,128, 63,128, 31,  0,  0,  0, 27,  0, 27,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_247[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0, 12,  0,  0,  0,127,128,127,128,  0,  0, 12,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_248[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,206,  0,127,128, 49,128,120,192,108,192,102,192, 99,192, 49,128, 63,192, 14, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_249[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 57,128,125,128, 99,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128,  0,  0,  6,  0, 12,  0, 24,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_250[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 57,128,125,128, 99,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128,  0,  0, 12,  0,  6,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_251[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 57,128,125,128, 99,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128,  0,  0, 51,  0, 30,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_252[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 57,128,125,128, 99,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128,  0,  0, 51,  0, 51,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_253[] = { 10,  0,  0, 56,  0, 56,  0, 12,  0, 12,  0, 12,  0, 12,  0, 30,  0, 18,  0, 51,  0, 51,  0, 51,  0, 97,128, 97,128, 97,128,  0,  0, 12,  0,  6,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_254[] = { 11,  0,  0, 96,  0, 96,  0, 96,  0, 96,  0,111,  0,127,128,113,128, 96,192, 96,192, 96,192, 96,192,113,128,127,128,111,  0, 96,  0, 96,  0, 96,  0, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte Helvetica18_Character_255[] = { 10,  0,  0, 56,  0, 56,  0, 12,  0, 12,  0, 12,  0, 12,  0, 30,  0, 18,  0, 51,  0, 51,  0, 51,  0, 97,128, 97,128, 97,128,  0,  0, 51,  0, 51,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-
-/* The font characters mapping: */
-static const GLubyte* Helvetica18_Character_Map[] = {Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,
-                                                     Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,
-                                                     Helvetica18_Character_032,Helvetica18_Character_033,Helvetica18_Character_034,Helvetica18_Character_035,Helvetica18_Character_036,Helvetica18_Character_037,Helvetica18_Character_038,Helvetica18_Character_039,Helvetica18_Character_040,Helvetica18_Character_041,Helvetica18_Character_042,Helvetica18_Character_043,Helvetica18_Character_044,Helvetica18_Character_045,Helvetica18_Character_046,Helvetica18_Character_047,
-                                                     Helvetica18_Character_048,Helvetica18_Character_049,Helvetica18_Character_050,Helvetica18_Character_051,Helvetica18_Character_052,Helvetica18_Character_053,Helvetica18_Character_054,Helvetica18_Character_055,Helvetica18_Character_056,Helvetica18_Character_057,Helvetica18_Character_058,Helvetica18_Character_059,Helvetica18_Character_060,Helvetica18_Character_061,Helvetica18_Character_062,Helvetica18_Character_063,
-                                                     Helvetica18_Character_064,Helvetica18_Character_065,Helvetica18_Character_066,Helvetica18_Character_067,Helvetica18_Character_068,Helvetica18_Character_069,Helvetica18_Character_070,Helvetica18_Character_071,Helvetica18_Character_072,Helvetica18_Character_073,Helvetica18_Character_074,Helvetica18_Character_075,Helvetica18_Character_076,Helvetica18_Character_077,Helvetica18_Character_078,Helvetica18_Character_079,
-                                                     Helvetica18_Character_080,Helvetica18_Character_081,Helvetica18_Character_082,Helvetica18_Character_083,Helvetica18_Character_084,Helvetica18_Character_085,Helvetica18_Character_086,Helvetica18_Character_087,Helvetica18_Character_088,Helvetica18_Character_089,Helvetica18_Character_090,Helvetica18_Character_091,Helvetica18_Character_092,Helvetica18_Character_093,Helvetica18_Character_094,Helvetica18_Character_095,
-                                                     Helvetica18_Character_096,Helvetica18_Character_097,Helvetica18_Character_098,Helvetica18_Character_099,Helvetica18_Character_100,Helvetica18_Character_101,Helvetica18_Character_102,Helvetica18_Character_103,Helvetica18_Character_104,Helvetica18_Character_105,Helvetica18_Character_106,Helvetica18_Character_107,Helvetica18_Character_108,Helvetica18_Character_109,Helvetica18_Character_110,Helvetica18_Character_111,
-                                                     Helvetica18_Character_112,Helvetica18_Character_113,Helvetica18_Character_114,Helvetica18_Character_115,Helvetica18_Character_116,Helvetica18_Character_117,Helvetica18_Character_118,Helvetica18_Character_119,Helvetica18_Character_120,Helvetica18_Character_121,Helvetica18_Character_122,Helvetica18_Character_123,Helvetica18_Character_124,Helvetica18_Character_125,Helvetica18_Character_126,Helvetica18_Character_032,
-                                                     Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,
-                                                     Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,
-                                                     Helvetica18_Character_160,Helvetica18_Character_161,Helvetica18_Character_162,Helvetica18_Character_163,Helvetica18_Character_164,Helvetica18_Character_165,Helvetica18_Character_166,Helvetica18_Character_167,Helvetica18_Character_168,Helvetica18_Character_169,Helvetica18_Character_170,Helvetica18_Character_171,Helvetica18_Character_172,Helvetica18_Character_173,Helvetica18_Character_174,Helvetica18_Character_175,
-                                                     Helvetica18_Character_176,Helvetica18_Character_177,Helvetica18_Character_178,Helvetica18_Character_179,Helvetica18_Character_180,Helvetica18_Character_181,Helvetica18_Character_182,Helvetica18_Character_183,Helvetica18_Character_184,Helvetica18_Character_185,Helvetica18_Character_186,Helvetica18_Character_187,Helvetica18_Character_188,Helvetica18_Character_189,Helvetica18_Character_190,Helvetica18_Character_191,
-                                                     Helvetica18_Character_192,Helvetica18_Character_193,Helvetica18_Character_194,Helvetica18_Character_195,Helvetica18_Character_196,Helvetica18_Character_197,Helvetica18_Character_198,Helvetica18_Character_199,Helvetica18_Character_200,Helvetica18_Character_201,Helvetica18_Character_202,Helvetica18_Character_203,Helvetica18_Character_204,Helvetica18_Character_205,Helvetica18_Character_206,Helvetica18_Character_207,
-                                                     Helvetica18_Character_208,Helvetica18_Character_209,Helvetica18_Character_210,Helvetica18_Character_211,Helvetica18_Character_212,Helvetica18_Character_213,Helvetica18_Character_214,Helvetica18_Character_215,Helvetica18_Character_216,Helvetica18_Character_217,Helvetica18_Character_218,Helvetica18_Character_219,Helvetica18_Character_220,Helvetica18_Character_221,Helvetica18_Character_222,Helvetica18_Character_223,
-                                                     Helvetica18_Character_224,Helvetica18_Character_225,Helvetica18_Character_226,Helvetica18_Character_227,Helvetica18_Character_228,Helvetica18_Character_229,Helvetica18_Character_230,Helvetica18_Character_231,Helvetica18_Character_232,Helvetica18_Character_233,Helvetica18_Character_234,Helvetica18_Character_235,Helvetica18_Character_236,Helvetica18_Character_237,Helvetica18_Character_238,Helvetica18_Character_239,
-                                                     Helvetica18_Character_240,Helvetica18_Character_241,Helvetica18_Character_242,Helvetica18_Character_243,Helvetica18_Character_244,Helvetica18_Character_245,Helvetica18_Character_246,Helvetica18_Character_247,Helvetica18_Character_248,Helvetica18_Character_249,Helvetica18_Character_250,Helvetica18_Character_251,Helvetica18_Character_252,Helvetica18_Character_253,Helvetica18_Character_254,Helvetica18_Character_255,NULL};
-
-/* The font structure: */
-const SFG_Font fgFontHelvetica18 = { "-adobe-helvetica-medium-r-normal--18-180-75-75-p-98-iso8859-1", 256, 23, Helvetica18_Character_Map, 0, 5 };
-
-static const GLubyte TimesRoman10_Character_000[] = {  8,  0,  0,  0,  0,170,  0,130,  0,130,  0,170,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_001[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_002[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_003[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_004[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_005[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_006[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_007[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_008[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_009[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_010[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_011[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_012[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_013[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_014[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_015[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_016[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_017[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_018[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_019[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_020[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_021[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_022[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_023[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_024[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_025[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_026[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_027[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_028[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_029[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_030[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_031[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_032[] = {  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_033[] = {  3,  0,  0,  0,  0, 64,  0, 64, 64, 64, 64, 64,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_034[] = {  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,160,160,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_035[] = {  5,  0,  0,  0,  0, 80, 80,248, 80,248, 80, 80,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_036[] = {  5,  0,  0,  0, 32,224,144, 16, 96,128,144,112, 32,  0,  0};
-static const GLubyte TimesRoman10_Character_037[] = {  8,  0,  0,  0,  0, 68, 42, 42, 86,168,164,126,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_038[] = {  8,  0,  0,  0,  0,118,141,152,116,110, 80, 48,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_039[] = {  3,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,192,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_040[] = {  4,  0,  0, 32, 64, 64,128,128,128, 64, 64, 32,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_041[] = {  4,  0,  0,128, 64, 64, 32, 32, 32, 64, 64,128,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_042[] = {  5,  0,  0,  0,  0,  0,  0,  0,  0,160, 64,160,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_043[] = {  6,  0,  0,  0,  0, 32, 32,248, 32, 32,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_044[] = {  3,  0,  0, 64, 64, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_045[] = {  7,  0,  0,  0,  0,  0,  0,120,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_046[] = {  3,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_047[] = {  3,  0,  0,  0,  0,128,128, 64, 64, 64, 32, 32,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_048[] = {  5,  0,  0,  0,  0, 96,144,144,144,144,144, 96,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_049[] = {  5,  0,  0,  0,  0,112, 32, 32, 32, 32, 96, 32,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_050[] = {  5,  0,  0,  0,  0,240, 64, 32, 32, 16,144, 96,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_051[] = {  5,  0,  0,  0,  0,224, 16, 16, 96, 16,144, 96,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_052[] = {  5,  0,  0,  0,  0, 16, 16,248,144, 80, 48, 16,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_053[] = {  5,  0,  0,  0,  0,224,144, 16, 16,224, 64,112,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_054[] = {  5,  0,  0,  0,  0, 96,144,144,144,224, 64, 48,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_055[] = {  5,  0,  0,  0,  0, 64, 64, 64, 32, 32,144,240,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_056[] = {  5,  0,  0,  0,  0, 96,144,144, 96,144,144, 96,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_057[] = {  5,  0,  0,  0,  0,192, 32,112,144,144,144, 96,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_058[] = {  3,  0,  0,  0,  0, 64,  0,  0,  0, 64,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_059[] = {  3,  0,  0, 64, 64, 64,  0,  0,  0, 64,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_060[] = {  5,  0,  0,  0,  0, 16, 32, 64, 32, 16,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_061[] = {  6,  0,  0,  0,  0,  0,248,  0,248,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_062[] = {  5,  0,  0,  0,  0,128, 64, 32, 64,128,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_063[] = {  4,  0,  0,  0,  0, 64,  0, 64, 64, 32,160,224,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_064[] = {  9,  0,  0,  0,  0, 62,  0, 64,  0,146,  0,173,  0,165,  0,165,  0,157,  0, 66,  0, 60,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_065[] = {  8,  0,  0,  0,  0,238, 68,124, 40, 40, 56, 16,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_066[] = {  6,  0,  0,  0,  0,240, 72, 72,112, 72, 72,240,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_067[] = {  7,  0,  0,  0,  0,120,196,128,128,128,196,124,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_068[] = {  7,  0,  0,  0,  0,248, 76, 68, 68, 68, 76,248,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_069[] = {  6,  0,  0,  0,  0,248, 72, 64,112, 64, 72,248,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_070[] = {  6,  0,  0,  0,  0,224, 64, 64,112, 64, 72,248,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_071[] = {  7,  0,  0,  0,  0,120,196,132,156,128,196,124,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_072[] = {  8,  0,  0,  0,  0,238, 68, 68,124, 68, 68,238,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_073[] = {  4,  0,  0,  0,  0,224, 64, 64, 64, 64, 64,224,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_074[] = {  4,  0,  0,  0,  0,192,160, 32, 32, 32, 32,112,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_075[] = {  7,  0,  0,  0,  0,236, 72, 80, 96, 80, 72,236,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_076[] = {  6,  0,  0,  0,  0,248, 72, 64, 64, 64, 64,224,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_077[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,235,128, 73,  0, 85,  0, 85,  0, 99,  0, 99,  0,227,128,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_078[] = {  8,  0,  0,  0,  0,228, 76, 76, 84, 84,100,238,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_079[] = {  7,  0,  0,  0,  0,120,204,132,132,132,204,120,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_080[] = {  6,  0,  0,  0,  0,224, 64, 64,112, 72, 72,240,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_081[] = {  7,  0,  0, 12, 24,112,204,132,132,132,204,120,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_082[] = {  7,  0,  0,  0,  0,236, 72, 80,112, 72, 72,240,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_083[] = {  5,  0,  0,  0,  0,224,144, 16, 96,192,144,112,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_084[] = {  6,  0,  0,  0,  0,112, 32, 32, 32, 32,168,248,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_085[] = {  8,  0,  0,  0,  0, 56,108, 68, 68, 68, 68,238,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_086[] = {  8,  0,  0,  0,  0, 16, 16, 40, 40,108, 68,238,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_087[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 34,  0, 34,  0, 85,  0, 85,  0,201,128,136,128,221,192,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_088[] = {  8,  0,  0,  0,  0,238, 68, 40, 16, 40, 68,238,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_089[] = {  8,  0,  0,  0,  0, 56, 16, 16, 40, 40, 68,238,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_090[] = {  6,  0,  0,  0,  0,248,136, 64, 32, 16,136,248,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_091[] = {  3,  0,  0,192,128,128,128,128,128,128,128,192,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_092[] = {  3,  0,  0,  0,  0, 32, 32, 64, 64, 64,128,128,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_093[] = {  3,  0,  0,192, 64, 64, 64, 64, 64, 64, 64,192,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_094[] = {  5,  0,  0,  0,  0,  0,  0,  0,  0, 80, 80, 32,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_095[] = {  5,  0,248,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_096[] = {  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192,128,  0,  0};
-static const GLubyte TimesRoman10_Character_097[] = {  4,  0,  0,  0,  0,224,160, 96, 32,192,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_098[] = {  5,  0,  0,  0,  0,224,144,144,144,224,128,128,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_099[] = {  4,  0,  0,  0,  0, 96,128,128,128, 96,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_100[] = {  5,  0,  0,  0,  0,104,144,144,144,112, 16, 48,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_101[] = {  4,  0,  0,  0,  0, 96,128,192,160, 96,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_102[] = {  4,  0,  0,  0,  0,224, 64, 64, 64,224, 64, 48,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_103[] = {  5,  0,  0,224,144, 96, 64,160,160,112,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_104[] = {  5,  0,  0,  0,  0,216,144,144,144,224,128,128,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_105[] = {  3,  0,  0,  0,  0, 64, 64, 64, 64,192,  0, 64,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_106[] = {  3,  0,  0,128, 64, 64, 64, 64, 64,192,  0, 64,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_107[] = {  5,  0,  0,  0,  0,152,144,224,160,144,128,128,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_108[] = {  4,  0,  0,  0,  0,224, 64, 64, 64, 64, 64,192,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_109[] = {  8,  0,  0,  0,  0,219,146,146,146,236,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_110[] = {  5,  0,  0,  0,  0,216,144,144,144,224,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_111[] = {  5,  0,  0,  0,  0, 96,144,144,144, 96,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_112[] = {  5,  0,  0,192,128,224,144,144,144,224,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_113[] = {  5,  0,  0, 56, 16,112,144,144,144,112,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_114[] = {  4,  0,  0,  0,  0,224, 64, 64, 96,160,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_115[] = {  4,  0,  0,  0,  0,224, 32, 96,128,224,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_116[] = {  4,  0,  0,  0,  0, 48, 64, 64, 64,224, 64,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_117[] = {  5,  0,  0,  0,  0,104,144,144,144,144,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_118[] = {  5,  0,  0,  0,  0, 32, 96, 80,144,216,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_119[] = {  8,  0,  0,  0,  0, 40,108, 84,146,219,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_120[] = {  6,  0,  0,  0,  0,216, 80, 32, 80,216,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_121[] = {  5,  0,  0,128,128, 64, 96,160,144,184,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_122[] = {  5,  0,  0,  0,  0,240,144, 64, 32,240,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_123[] = {  4,  0,  0, 32, 64, 64, 64,128, 64, 64, 64, 32,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_124[] = {  2,  0,  0,128,128,128,128,128,128,128,128,128,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_125[] = {  4,  0,  0,128, 64, 64, 64, 32, 64, 64, 64,128,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_126[] = {  7,  0,  0,  0,  0,  0,  0,152,100,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_127[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_128[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_129[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_130[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_131[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_132[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_133[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_134[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_135[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_136[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_137[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_138[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_139[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_140[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_141[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_142[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_143[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_144[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_145[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_146[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_147[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_148[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_149[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_150[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_151[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_152[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_153[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_154[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_155[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_156[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_157[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_158[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_159[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_160[] = {  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_161[] = {  3,  0,  0, 64, 64, 64, 64, 64,  0, 64,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_162[] = {  5,  0,  0,  0,128,224,144,128,144,112, 16,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_163[] = {  5,  0,  0,  0,  0,240,200, 64,224, 64, 80, 48,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_164[] = {  5,  0,  0,  0,  0,  0,136,112, 80, 80,112,136,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_165[] = {  5,  0,  0,  0,  0,112, 32,248, 32,216, 80,136,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_166[] = {  2,  0,  0,  0,  0,128,128,128,  0,128,128,128,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_167[] = {  5,  0,  0,  0,224,144, 32, 80,144,160, 64,144,112,  0,  0};
-static const GLubyte TimesRoman10_Character_168[] = {  5,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 80,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_169[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 28,  0, 34,  0, 77,  0, 81,  0, 77,  0, 34,  0, 28,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_170[] = {  4,  0,  0,  0,  0,  0,  0,224,  0,160, 32,192,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_171[] = {  5,  0,  0,  0,  0,  0, 80,160,160, 80,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_172[] = {  7,  0,  0,  0,  0,  0,  4,  4,124,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_173[] = {  4,  0,  0,  0,  0,  0,  0,224,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_174[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 28,  0, 34,  0, 85,  0, 89,  0, 93,  0, 34,  0, 28,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_175[] = {  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,224,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_176[] = {  4,  0,  0,  0,  0,  0,  0,  0, 96,144,144, 96,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_177[] = {  6,  0,  0,  0,  0,248,  0, 32, 32,248, 32, 32,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_178[] = {  3,  0,  0,  0,  0,  0,  0,  0,224, 64,160, 96,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_179[] = {  3,  0,  0,  0,  0,  0,  0,  0,192, 32, 64,224,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_180[] = {  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 64,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_181[] = {  5,  0,  0,128,128,232,144,144,144,144,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_182[] = {  6,  0,  0, 40, 40, 40, 40,104,232,232,232,124,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_183[] = {  2,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_184[] = {  4,  0,192, 32, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_185[] = {  3,  0,  0,  0,  0,  0,  0,  0,224, 64,192, 64,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_186[] = {  4,  0,  0,  0,  0,  0,  0,224,  0, 64,160, 64,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_187[] = {  5,  0,  0,  0,  0,  0,160, 80, 80,160,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_188[] = {  8,  0,  0,  0,  0, 68, 62, 44,244, 72,200, 68,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_189[] = {  8,  0,  0,  0,  0, 78, 36, 42,246, 72,200, 68,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_190[] = {  8,  0,  0,  0,  0, 68, 62, 44,212, 40, 72,228,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_191[] = {  4,  0,  0,224,160,128, 64, 64,  0, 64,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_192[] = {  8,  0,  0,  0,  0,238, 68,124, 40, 40, 56, 16,  0, 16, 32};
-static const GLubyte TimesRoman10_Character_193[] = {  8,  0,  0,  0,  0,238, 68,124, 40, 40, 56, 16,  0, 16,  8};
-static const GLubyte TimesRoman10_Character_194[] = {  8,  0,  0,  0,  0,238, 68,124, 40, 40, 56, 16,  0, 40, 16};
-static const GLubyte TimesRoman10_Character_195[] = {  8,  0,  0,  0,  0,238, 68,124, 40, 40, 56, 16,  0, 40, 20};
-static const GLubyte TimesRoman10_Character_196[] = {  8,  0,  0,  0,  0,238, 68,124, 40, 40, 56, 16,  0, 40,  0};
-static const GLubyte TimesRoman10_Character_197[] = {  8,  0,  0,  0,  0,238, 68,124, 40, 40, 56, 16, 16, 40, 16};
-static const GLubyte TimesRoman10_Character_198[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,239,  0, 73,  0,120,  0, 46,  0, 40,  0, 57,  0, 31,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_199[] = {  7,  0, 96, 16, 32,120,196,128,128,128,196,124,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_200[] = {  6,  0,  0,  0,  0,248, 72, 64,112, 64, 72,248,  0, 32, 64};
-static const GLubyte TimesRoman10_Character_201[] = {  6,  0,  0,  0,  0,248, 72, 64,112, 64, 72,248,  0, 32, 16};
-static const GLubyte TimesRoman10_Character_202[] = {  6,  0,  0,  0,  0,248, 72, 64,112, 64, 72,248,  0, 80, 32};
-static const GLubyte TimesRoman10_Character_203[] = {  6,  0,  0,  0,  0,248, 72, 64,112, 64, 72,248,  0, 80,  0};
-static const GLubyte TimesRoman10_Character_204[] = {  4,  0,  0,  0,  0,224, 64, 64, 64, 64, 64,224,  0, 64,128};
-static const GLubyte TimesRoman10_Character_205[] = {  4,  0,  0,  0,  0,224, 64, 64, 64, 64, 64,224,  0, 64, 32};
-static const GLubyte TimesRoman10_Character_206[] = {  4,  0,  0,  0,  0,224, 64, 64, 64, 64, 64,224,  0,160, 64};
-static const GLubyte TimesRoman10_Character_207[] = {  4,  0,  0,  0,  0,224, 64, 64, 64, 64, 64,224,  0,160,  0};
-static const GLubyte TimesRoman10_Character_208[] = {  7,  0,  0,  0,  0,248, 76, 68,228, 68, 76,248,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_209[] = {  8,  0,  0,  0,  0,228, 76, 76, 84, 84,100,238,  0, 80, 40};
-static const GLubyte TimesRoman10_Character_210[] = {  7,  0,  0,  0,  0,120,204,132,132,132,204,120,  0, 32, 64};
-static const GLubyte TimesRoman10_Character_211[] = {  7,  0,  0,  0,  0,120,204,132,132,132,204,120,  0, 16,  8};
-static const GLubyte TimesRoman10_Character_212[] = {  7,  0,  0,  0,  0,120,204,132,132,132,204,120,  0, 80, 32};
-static const GLubyte TimesRoman10_Character_213[] = {  7,  0,  0,  0,  0,120,204,132,132,132,204,120,  0, 80, 40};
-static const GLubyte TimesRoman10_Character_214[] = {  7,  0,  0,  0,  0,120,204,132,132,132,204,120,  0, 80,  0};
-static const GLubyte TimesRoman10_Character_215[] = {  6,  0,  0,  0,  0,136, 80, 32, 80,136,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_216[] = {  8,  0,  0,  0,128,124,102, 82, 82, 74,102, 62,  1,  0,  0};
-static const GLubyte TimesRoman10_Character_217[] = {  8,  0,  0,  0,  0, 56,108, 68, 68, 68, 68,238,  0, 16, 32};
-static const GLubyte TimesRoman10_Character_218[] = {  8,  0,  0,  0,  0, 56,108, 68, 68, 68, 68,238,  0, 16,  8};
-static const GLubyte TimesRoman10_Character_219[] = {  8,  0,  0,  0,  0, 56,108, 68, 68, 68, 68,238,  0, 40, 16};
-static const GLubyte TimesRoman10_Character_220[] = {  8,  0,  0,  0,  0, 56,108, 68, 68, 68, 68,238,  0, 40,  0};
-static const GLubyte TimesRoman10_Character_221[] = {  8,  0,  0,  0,  0, 56, 16, 16, 40, 40, 68,238,  0, 16,  8};
-static const GLubyte TimesRoman10_Character_222[] = {  6,  0,  0,  0,  0,224, 64,112, 72,112, 64,224,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_223[] = {  5,  0,  0,  0,  0,224, 80, 80, 96, 80, 80, 32,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_224[] = {  4,  0,  0,  0,  0,224,160, 96, 32,192,  0, 64,128,  0,  0};
-static const GLubyte TimesRoman10_Character_225[] = {  4,  0,  0,  0,  0,224,160, 96, 32,192,  0, 64, 32,  0,  0};
-static const GLubyte TimesRoman10_Character_226[] = {  4,  0,  0,  0,  0,224,160, 96, 32,192,  0,160, 64,  0,  0};
-static const GLubyte TimesRoman10_Character_227[] = {  4,  0,  0,  0,  0,224,160, 96, 32,192,  0,160, 80,  0,  0};
-static const GLubyte TimesRoman10_Character_228[] = {  4,  0,  0,  0,  0,224,160, 96, 32,192,  0,160,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_229[] = {  4,  0,  0,  0,  0,224,160, 96, 32,192, 64,160, 64,  0,  0};
-static const GLubyte TimesRoman10_Character_230[] = {  6,  0,  0,  0,  0,216,160,112, 40,216,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_231[] = {  4,  0,192, 32, 64, 96,128,128,128, 96,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_232[] = {  4,  0,  0,  0,  0, 96,128,192,160, 96,  0, 64,128,  0,  0};
-static const GLubyte TimesRoman10_Character_233[] = {  4,  0,  0,  0,  0, 96,128,192,160, 96,  0, 64, 32,  0,  0};
-static const GLubyte TimesRoman10_Character_234[] = {  4,  0,  0,  0,  0, 96,128,192,160, 96,  0,160, 64,  0,  0};
-static const GLubyte TimesRoman10_Character_235[] = {  4,  0,  0,  0,  0, 96,128,192,160, 96,  0,160,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_236[] = {  4,  0,  0,  0,  0,224, 64, 64, 64,192,  0, 64,128,  0,  0};
-static const GLubyte TimesRoman10_Character_237[] = {  4,  0,  0,  0,  0,224, 64, 64, 64,192,  0, 64, 32,  0,  0};
-static const GLubyte TimesRoman10_Character_238[] = {  4,  0,  0,  0,  0,224, 64, 64, 64,192,  0,160, 64,  0,  0};
-static const GLubyte TimesRoman10_Character_239[] = {  4,  0,  0,  0,  0,224, 64, 64, 64,192,  0,160,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_240[] = {  5,  0,  0,  0,  0, 96,144,144,144,112,160,112, 64,  0,  0};
-static const GLubyte TimesRoman10_Character_241[] = {  5,  0,  0,  0,  0,216,144,144,144,224,  0,160, 80,  0,  0};
-static const GLubyte TimesRoman10_Character_242[] = {  5,  0,  0,  0,  0, 96,144,144,144, 96,  0, 32, 64,  0,  0};
-static const GLubyte TimesRoman10_Character_243[] = {  5,  0,  0,  0,  0, 96,144,144,144, 96,  0, 64, 32,  0,  0};
-static const GLubyte TimesRoman10_Character_244[] = {  5,  0,  0,  0,  0, 96,144,144,144, 96,  0,160, 64,  0,  0};
-static const GLubyte TimesRoman10_Character_245[] = {  5,  0,  0,  0,  0, 96,144,144,144, 96,  0,160, 80,  0,  0};
-static const GLubyte TimesRoman10_Character_246[] = {  5,  0,  0,  0,  0, 96,144,144,144, 96,  0,160,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_247[] = {  6,  0,  0,  0,  0, 32,  0,248,  0, 32,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_248[] = {  5,  0,  0,  0,  0,224,144,144,144,112,  8,  0,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_249[] = {  5,  0,  0,  0,  0,104,144,144,144,144,  0, 32, 64,  0,  0};
-static const GLubyte TimesRoman10_Character_250[] = {  5,  0,  0,  0,  0,104,144,144,144,144,  0, 64, 32,  0,  0};
-static const GLubyte TimesRoman10_Character_251[] = {  5,  0,  0,  0,  0,104,144,144,144,144,  0, 80, 32,  0,  0};
-static const GLubyte TimesRoman10_Character_252[] = {  5,  0,  0,  0,  0,104,144,144,144,144,  0, 80,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_253[] = {  5,  0,  0,128,192, 64, 96,160,144,184,  0, 32, 16,  0,  0};
-static const GLubyte TimesRoman10_Character_254[] = {  5,  0,  0,192,128,224,144,144,144,224,128,128,  0,  0,  0};
-static const GLubyte TimesRoman10_Character_255[] = {  5,  0,  0,128,192, 64, 96,160,144,184,  0,160,  0,  0,  0};
-
-/* The font characters mapping: */
-static const GLubyte* TimesRoman10_Character_Map[] = {TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,
-                                                      TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,
-                                                      TimesRoman10_Character_032,TimesRoman10_Character_033,TimesRoman10_Character_034,TimesRoman10_Character_035,TimesRoman10_Character_036,TimesRoman10_Character_037,TimesRoman10_Character_038,TimesRoman10_Character_039,TimesRoman10_Character_040,TimesRoman10_Character_041,TimesRoman10_Character_042,TimesRoman10_Character_043,TimesRoman10_Character_044,TimesRoman10_Character_045,TimesRoman10_Character_046,TimesRoman10_Character_047,
-                                                      TimesRoman10_Character_048,TimesRoman10_Character_049,TimesRoman10_Character_050,TimesRoman10_Character_051,TimesRoman10_Character_052,TimesRoman10_Character_053,TimesRoman10_Character_054,TimesRoman10_Character_055,TimesRoman10_Character_056,TimesRoman10_Character_057,TimesRoman10_Character_058,TimesRoman10_Character_059,TimesRoman10_Character_060,TimesRoman10_Character_061,TimesRoman10_Character_062,TimesRoman10_Character_063,
-                                                      TimesRoman10_Character_064,TimesRoman10_Character_065,TimesRoman10_Character_066,TimesRoman10_Character_067,TimesRoman10_Character_068,TimesRoman10_Character_069,TimesRoman10_Character_070,TimesRoman10_Character_071,TimesRoman10_Character_072,TimesRoman10_Character_073,TimesRoman10_Character_074,TimesRoman10_Character_075,TimesRoman10_Character_076,TimesRoman10_Character_077,TimesRoman10_Character_078,TimesRoman10_Character_079,
-                                                      TimesRoman10_Character_080,TimesRoman10_Character_081,TimesRoman10_Character_082,TimesRoman10_Character_083,TimesRoman10_Character_084,TimesRoman10_Character_085,TimesRoman10_Character_086,TimesRoman10_Character_087,TimesRoman10_Character_088,TimesRoman10_Character_089,TimesRoman10_Character_090,TimesRoman10_Character_091,TimesRoman10_Character_092,TimesRoman10_Character_093,TimesRoman10_Character_094,TimesRoman10_Character_095,
-                                                      TimesRoman10_Character_096,TimesRoman10_Character_097,TimesRoman10_Character_098,TimesRoman10_Character_099,TimesRoman10_Character_100,TimesRoman10_Character_101,TimesRoman10_Character_102,TimesRoman10_Character_103,TimesRoman10_Character_104,TimesRoman10_Character_105,TimesRoman10_Character_106,TimesRoman10_Character_107,TimesRoman10_Character_108,TimesRoman10_Character_109,TimesRoman10_Character_110,TimesRoman10_Character_111,
-                                                      TimesRoman10_Character_112,TimesRoman10_Character_113,TimesRoman10_Character_114,TimesRoman10_Character_115,TimesRoman10_Character_116,TimesRoman10_Character_117,TimesRoman10_Character_118,TimesRoman10_Character_119,TimesRoman10_Character_120,TimesRoman10_Character_121,TimesRoman10_Character_122,TimesRoman10_Character_123,TimesRoman10_Character_124,TimesRoman10_Character_125,TimesRoman10_Character_126,TimesRoman10_Character_032,
-                                                      TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,
-                                                      TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,
-                                                      TimesRoman10_Character_160,TimesRoman10_Character_161,TimesRoman10_Character_162,TimesRoman10_Character_163,TimesRoman10_Character_164,TimesRoman10_Character_165,TimesRoman10_Character_166,TimesRoman10_Character_167,TimesRoman10_Character_168,TimesRoman10_Character_169,TimesRoman10_Character_170,TimesRoman10_Character_171,TimesRoman10_Character_172,TimesRoman10_Character_173,TimesRoman10_Character_174,TimesRoman10_Character_175,
-                                                      TimesRoman10_Character_176,TimesRoman10_Character_177,TimesRoman10_Character_178,TimesRoman10_Character_179,TimesRoman10_Character_180,TimesRoman10_Character_181,TimesRoman10_Character_182,TimesRoman10_Character_183,TimesRoman10_Character_184,TimesRoman10_Character_185,TimesRoman10_Character_186,TimesRoman10_Character_187,TimesRoman10_Character_188,TimesRoman10_Character_189,TimesRoman10_Character_190,TimesRoman10_Character_191,
-                                                      TimesRoman10_Character_192,TimesRoman10_Character_193,TimesRoman10_Character_194,TimesRoman10_Character_195,TimesRoman10_Character_196,TimesRoman10_Character_197,TimesRoman10_Character_198,TimesRoman10_Character_199,TimesRoman10_Character_200,TimesRoman10_Character_201,TimesRoman10_Character_202,TimesRoman10_Character_203,TimesRoman10_Character_204,TimesRoman10_Character_205,TimesRoman10_Character_206,TimesRoman10_Character_207,
-                                                      TimesRoman10_Character_208,TimesRoman10_Character_209,TimesRoman10_Character_210,TimesRoman10_Character_211,TimesRoman10_Character_212,TimesRoman10_Character_213,TimesRoman10_Character_214,TimesRoman10_Character_215,TimesRoman10_Character_216,TimesRoman10_Character_217,TimesRoman10_Character_218,TimesRoman10_Character_219,TimesRoman10_Character_220,TimesRoman10_Character_221,TimesRoman10_Character_222,TimesRoman10_Character_223,
-                                                      TimesRoman10_Character_224,TimesRoman10_Character_225,TimesRoman10_Character_226,TimesRoman10_Character_227,TimesRoman10_Character_228,TimesRoman10_Character_229,TimesRoman10_Character_230,TimesRoman10_Character_231,TimesRoman10_Character_232,TimesRoman10_Character_233,TimesRoman10_Character_234,TimesRoman10_Character_235,TimesRoman10_Character_236,TimesRoman10_Character_237,TimesRoman10_Character_238,TimesRoman10_Character_239,
-                                                      TimesRoman10_Character_240,TimesRoman10_Character_241,TimesRoman10_Character_242,TimesRoman10_Character_243,TimesRoman10_Character_244,TimesRoman10_Character_245,TimesRoman10_Character_246,TimesRoman10_Character_247,TimesRoman10_Character_248,TimesRoman10_Character_249,TimesRoman10_Character_250,TimesRoman10_Character_251,TimesRoman10_Character_252,TimesRoman10_Character_253,TimesRoman10_Character_254,TimesRoman10_Character_255,NULL};
-
-/* The font structure: */
-const SFG_Font fgFontTimesRoman10 = { "-adobe-times-medium-r-normal--10-100-75-75-p-54-iso8859-1", 256, 14, TimesRoman10_Character_Map, 0, 4 };
-
-static const GLubyte TimesRoman24_Character_000[] = { 19,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0, 64,  0, 64,  0,  0,  0, 64,  0, 64,  0,  0,  0, 64,  0, 64,  0,  0,  0, 64,  0, 64,  0,  0,  0, 64,  0, 64,  0,  0,  0, 64,  0, 64,  0,  0,  0, 64,  0, 64,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_001[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_002[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_003[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_004[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_005[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_006[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_007[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_008[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_009[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_010[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_011[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_012[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_013[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_014[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_015[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_016[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_017[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_018[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_019[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_020[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_021[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_022[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_023[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_024[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_025[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_026[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_027[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_028[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_029[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_030[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_031[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_032[] = {  6,  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};
-static const GLubyte TimesRoman24_Character_033[] = {  8,  0,  0,  0,  0,  0,  0,  0, 24, 24,  0,  0,  0, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_034[] = { 10,  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, 68,  0,102,  0,102,  0,102,  0,102,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_035[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 17,  0, 17,  0, 17,  0, 17,  0, 17,  0,127,224,127,224,  8,128,  8,128,  8,128, 63,240, 63,240,  4, 64,  4, 64,  4, 64,  4, 64,  4, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_036[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  4,  0, 63,  0,229,192,196,192,132, 96,132, 96,  4, 96,  4,224,  7,192,  7,128, 30,  0, 60,  0,116,  0,100,  0,100, 32,100, 96, 52,224, 31,128,  4,  0,  4,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_037[] = { 19,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24, 30,  0, 12, 57,  0,  6, 48,128,  2, 48, 64,  3, 48, 64,  1,152, 64,  0,140,192,  0,199,128, 60, 96,  0,114, 32,  0, 97, 48,  0, 96,152,  0, 96,136,  0, 48,140,  0, 25,254,  0, 15,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_038[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30, 30,  0, 63,191,  0,112,240,128, 96, 96,  0, 96,224,  0, 96,208,  0, 49,144,  0, 27,136,  0, 15, 12,  0,  7, 31,  0,  7,128,  0, 14,192,  0, 12, 96,  0, 12, 32,  0, 12, 32,  0,  6, 96,  0,  3,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_039[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24, 12,  4, 28, 24,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_040[] = {  8,  0,  0,  2,  4,  8, 24, 16, 48, 48, 96, 96, 96, 96, 96, 96, 96, 96, 48, 48, 16, 24,  8,  4,  2,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_041[] = {  8,  0,  0, 64, 32, 16, 24,  8, 12, 12,  6,  6,  6,  6,  6,  6,  6,  6, 12, 12,  8, 24, 16, 32, 64,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_042[] = { 12,  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,  2,  0,  7,  0, 50, 96, 58,224,  7,  0, 58,224, 50, 96,  7,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_043[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,127,248,127,248,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_044[] = {  7,  0,  0,  0,  0, 48, 24,  8, 56, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_045[] = { 14,  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,127,248,127,248,  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};
-static const GLubyte TimesRoman24_Character_046[] = {  6,  0,  0,  0,  0,  0,  0,  0, 48, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_047[] = {  7,  0,  0,  0,  0,192,192,192, 64, 96, 96, 32, 48, 48, 16, 24, 24,  8, 12, 12,  4,  6,  6,  6,  6,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_048[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 25,128, 48,192, 48,192,112,224, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 48,192, 48,192, 25,128, 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_049[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 63,192,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0, 30,  0,  6,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_050[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,192,127,224, 48, 32, 24,  0, 12,  0,  6,  0,  2,  0,  3,  0,  1,128,  1,128,  0,192,  0,192, 64,192, 64,192, 33,192, 63,128, 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_051[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 60,  0,115,  0, 97,128,  0,128,  0,192,  0,192,  0,192,  1,192,  3,128, 15,  0,  6,  0,  3,  0, 65,128, 65,128, 35,128, 63,  0, 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_052[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,128,  1,128,  1,128,  1,128,127,224,127,224, 97,128, 33,128, 49,128, 17,128, 25,128,  9,128, 13,128,  5,128,  3,128,  3,128,  1,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_053[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 63,  0,113,192, 96,192,  0, 96,  0, 96,  0, 96,  0, 96,  0,224,  1,192,  7,192, 63,  0, 60,  0, 48,  0, 16,  0, 16,  0, 15,192, 15,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_054[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 61,192, 48,192,112, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,192,121,192,119,  0, 48,  0, 56,  0, 24,  0, 12,  0,  7,  0,  1,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_055[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0, 12,  0,  6,  0,  6,  0,  6,  0,  2,  0,  3,  0,  3,  0,  1,  0,  1,128,  1,128,  0,128,  0,192, 64,192, 96, 96,127,224, 63,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_056[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 57,192,112,192, 96, 96, 96, 96, 96, 96, 32,224, 48,192, 27,128, 15,  0, 15,  0, 25,128, 48,192, 48,192, 48,192, 25,128, 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_057[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,120,  0, 14,  0,  3,  0,  1,128,  1,192,  0,192, 14,192, 57,224, 48,224, 96, 96, 96, 96, 96, 96, 96, 96, 96,224, 48,192, 59,192, 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_058[] = {  6,  0,  0,  0,  0,  0,  0,  0, 48, 48,  0,  0,  0,  0,  0,  0,  0, 48, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_059[] = {  7,  0,  0,  0,  0, 48, 24,  8, 56, 48,  0,  0,  0,  0,  0,  0,  0, 48, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_060[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48,  0,224,  3,128, 14,  0, 56,  0, 96,  0, 56,  0, 14,  0,  3,128,  0,224,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_061[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,248,127,248,  0,  0,  0,  0,127,248,127,248,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_062[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,  0, 56,  0, 14,  0,  3,128,  0,224,  0, 48,  0,224,  3,128, 14,  0, 56,  0, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_063[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0, 12,  0,  0,  0,  0,  0,  4,  0,  4,  0,  4,  0,  6,  0,  6,  0,  3,  0,  3,128,  1,192, 48,192, 48,192, 32,192, 49,128, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_064[] = { 22,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,252,  0,  3,131,  0,  6,  0,  0, 12,  0,  0, 24,119,128, 24,222,192, 49,142, 96, 49,134, 32, 49,134, 48, 49,134, 16, 49,131, 16, 48,195, 16, 48,227, 16, 56,127, 16, 24, 59, 48, 28,  0, 32, 14,  0, 96,  7,  0,192,  3,195,128,  0,254,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_065[] = { 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,252, 31,128, 48,  6,  0, 16,  6,  0, 16, 12,  0, 24, 12,  0,  8, 12,  0, 15,248,  0, 12, 24,  0,  4, 24,  0,  4, 48,  0,  6, 48,  0,  2, 48,  0,  2, 96,  0,  1, 96,  0,  1,192,  0,  1,192,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_066[] = { 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,240, 24, 60, 24, 12, 24,  6, 24,  6, 24,  6, 24, 12, 24, 28, 31,240, 24, 32, 24, 24, 24, 12, 24, 12, 24, 12, 24, 24, 24, 56,127,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_067[] = { 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,240, 15, 28, 28,  4, 48,  2, 48,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 48,  2, 48,  2, 28,  6, 14, 30,  3,242,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_068[] = { 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,224,  0, 24, 56,  0, 24, 28,  0, 24,  6,  0, 24,  6,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0, 24,  6,  0, 24,  6,  0, 24, 28,  0, 24, 56,  0,127,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_069[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,252, 24, 12, 24,  4, 24,  4, 24,  0, 24,  0, 24, 32, 24, 32, 31,224, 24, 32, 24, 32, 24,  0, 24,  0, 24,  8, 24,  8, 24, 24,127,248,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_070[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24, 16, 24, 16, 31,240, 24, 16, 24, 16, 24,  0, 24,  0, 24,  8, 24,  8, 24, 24,127,248,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_071[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,240,  0, 15, 28,  0, 28, 14,  0, 48,  6,  0, 48,  6,  0, 96,  6,  0, 96,  6,  0, 96, 31,128, 96,  0,  0, 96,  0,  0, 96,  0,  0, 96,  0,  0, 48,  2,  0, 48,  2,  0, 28,  6,  0, 14, 30,  0,  3,242,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_072[] = { 19,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126, 15,192, 24,  3,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0, 31,255,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0,126, 15,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_073[] = {  8,  0,  0,  0,  0,  0,  0,  0,126, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,126,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_074[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 60,  0,102,  0, 99,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0, 15,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_075[] = { 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126, 15,128, 24,  7,  0, 24, 14,  0, 24, 28,  0, 24, 56,  0, 24,112,  0, 24,224,  0, 25,192,  0, 31,128,  0, 31,  0,  0, 25,128,  0, 24,192,  0, 24, 96,  0, 24, 48,  0, 24, 24,  0, 24, 12,  0,126, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_076[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,252, 24, 12, 24,  4, 24,  4, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0,126,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_077[] = { 22,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,124, 16,252, 16, 48, 48, 16, 48, 48, 16,104, 48, 16,104, 48, 16,196, 48, 16,196, 48, 17,132, 48, 17,130, 48, 19,  2, 48, 19,  1, 48, 22,  1, 48, 22,  1, 48, 28,  0,176, 28,  0,176, 24,  0,112,120,  0,124,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_078[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,124,  6,  0, 16, 14,  0, 16, 14,  0, 16, 26,  0, 16, 50,  0, 16, 50,  0, 16, 98,  0, 16,194,  0, 16,194,  0, 17,130,  0, 19,  2,  0, 19,  2,  0, 22,  2,  0, 28,  2,  0, 28,  2,  0, 24,  2,  0,120, 15,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_079[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,240,  0, 14, 28,  0, 28, 14,  0, 48,  3,  0, 48,  3,  0, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 48,  3,  0, 48,  3,  0, 28, 14,  0, 14, 28,  0,  3,240,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_080[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 31,224, 24, 56, 24, 24, 24, 12, 24, 12, 24, 12, 24, 24, 24, 56,127,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_081[] = { 18,  0,  0,  0,  0,  0,  0,  0,  7,128,  0, 28,  0,  0, 56,  0,  0,112,  0,  0,224,  0,  3,240,  0, 14, 28,  0, 28, 14,  0, 48,  3,  0, 48,  3,  0, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 48,  3,  0, 48,  3,  0, 28, 14,  0, 14, 28,  0,  3,240,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_082[] = { 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126, 15, 24, 14, 24, 28, 24, 56, 24, 48, 24, 96, 24,224, 25,192, 31,224, 24, 56, 24, 24, 24, 28, 24, 12, 24, 28, 24, 24, 24, 56,127,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_083[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 79,  0,120,192, 96, 96, 64, 48, 64, 48,  0, 48,  0,112,  1,224,  7,192, 15,  0, 60,  0,112,  0, 96, 32, 96, 32, 96, 96, 49,224, 15, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_084[] = { 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,224,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128, 65,130, 65,130, 97,134,127,254,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_085[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,240,  0, 14, 24,  0, 12,  4,  0, 24,  4,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0,126, 15,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_086[] = { 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,128,  0,  1,128,  0,  1,128,  0,  3,192,  0,  3, 64,  0,  3, 96,  0,  6, 32,  0,  6, 32,  0,  6, 48,  0, 12, 16,  0, 12, 24,  0, 24,  8,  0, 24,  8,  0, 24, 12,  0, 48,  4,  0, 48,  6,  0,252, 31,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_087[] = { 23,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,131,  0,  1,131,  0,  1,131,128,  3,135,128,  3, 70,128,  3, 70,192,  6, 70, 64,  6, 76, 64,  6, 76, 96, 12, 44, 96, 12, 44, 32, 24, 44, 32, 24, 24, 48, 24, 24, 16, 48, 24, 16, 48, 24, 24,252,126,126,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_088[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,252, 15,192, 48,  3,128, 24,  7,  0,  8, 14,  0,  4, 12,  0,  6, 24,  0,  2, 56,  0,  1,112,  0,  0,224,  0,  0,192,  0,  1,192,  0,  3,160,  0,  3, 16,  0,  6,  8,  0, 14, 12,  0, 28,  6,  0,126, 15,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_089[] = { 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,224,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  3,192,  3, 64,  6, 96,  6, 32, 12, 48, 28, 16, 24, 24, 56,  8, 48, 12,252, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_090[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,252,112, 12, 56,  4, 24,  4, 28,  0, 12,  0, 14,  0,  7,  0,  3,  0,  3,128,  1,128,  1,192,  0,224, 64, 96, 64,112, 96, 56,127,248,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_091[] = {  8,  0,  0,  0, 62, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 62,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_092[] = {  7,  0,  0,  0,  0,  0,  0,  0,  6,  6,  4, 12, 12,  8, 24, 24, 16, 48, 48, 32, 96, 96, 64,192,192,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_093[] = {  8,  0,  0,  0,124, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,124,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_094[] = { 11,  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, 64, 64, 96,192, 32,128, 49,128, 17,  0, 27,  0, 10,  0, 14,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_095[] = { 13,  0,  0,  0,  0,255,248,255,248,  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};
-static const GLubyte TimesRoman24_Character_096[] = {  7,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48,112, 64, 96, 48,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_097[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 56,192,125,128, 99,128, 97,128, 97,128, 49,128, 29,128,  7,128,  1,128, 49,128, 51,128, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_098[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 47,  0, 57,192, 48,192, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48,192, 57,192, 55,  0, 48,  0, 48,  0, 48,  0, 48,  0,112,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_099[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 63,128, 56, 64,112,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 32,192, 49,192, 15,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_100[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15, 96, 57,192, 48,192, 96,192, 96,192, 96,192, 96,192, 96,192, 96,192, 48,192, 57,192, 14,192,  0,192,  0,192,  0,192,  0,192,  1,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_101[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 63,128, 56, 64,112,  0, 96,  0, 96,  0, 96,  0,127,192, 96,192, 32,192, 49,128, 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_102[] = {  7,  0,  0,  0,  0,  0,  0,  0,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,254, 48, 48, 48, 22, 14,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_103[] = { 12,  0,  0,  0,  0, 31,128,120,224, 96, 48, 96, 16, 48, 48, 31,224, 63,128, 48,  0, 24,  0, 31,  0, 25,128, 48,192, 48,192, 48,192, 48,192, 25,128, 15,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_104[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,120,240, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 56,224, 55,192, 51,128, 48,  0, 48,  0, 48,  0, 48,  0,112,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_105[] = {  6,  0,  0,  0,  0,  0,  0,  0,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,112,  0,  0,  0, 48, 48,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_106[] = {  6,  0,  0,192,224, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,112,  0,  0,  0, 48, 48,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_107[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,121,240, 48,224, 49,192, 51,128, 55,  0, 54,  0, 60,  0, 52,  0, 50,  0, 51,  0, 49,128, 51,224, 48,  0, 48,  0, 48,  0, 48,  0,112,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_108[] = {  6,  0,  0,  0,  0,  0,  0,  0,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,112,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_109[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,120,241,224, 48, 96,192, 48, 96,192, 48, 96,192, 48, 96,192, 48, 96,192, 48, 96,192, 48, 96,192, 48, 96,192, 56,241,192, 55,207,128,115,135,  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};
-static const GLubyte TimesRoman24_Character_110[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,120,240, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 56,224, 55,192,115,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_111[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 57,192, 48,192, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 48,192, 57,192, 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_112[] = { 12,  0,  0,  0,  0,120,  0, 48,  0, 48,  0, 48,  0, 48,  0, 55,  0, 57,192, 48,192, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48,192, 57,192,119,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_113[] = { 12,  0,  0,  0,  0,  1,224,  0,192,  0,192,  0,192,  0,192, 14,192, 57,192, 48,192, 96,192, 96,192, 96,192, 96,192, 96,192, 96,192, 48,192, 57,192, 14,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_114[] = {  8,  0,  0,  0,  0,  0,  0,  0,120, 48, 48, 48, 48, 48, 48, 48, 48, 59, 55,115,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_115[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,124,  0, 99,  0, 65,128,  1,128,  3,128, 15,  0, 62,  0, 56,  0,112,  0, 97,  0, 51,  0, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_116[] = {  7,  0,  0,  0,  0,  0,  0,  0, 28, 50, 48, 48, 48, 48, 48, 48, 48, 48, 48,254,112, 48, 16,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_117[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 14,112, 31, 96, 56,224, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96,112,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_118[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0, 14,  0, 14,  0, 26,  0, 25,  0, 25,  0, 49,  0, 48,128, 48,128, 96,128, 96,192,241,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_119[] = { 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4, 16,  0, 14, 56,  0, 14, 56,  0, 26, 40,  0, 26,100,  0, 25,100,  0, 49,100,  0, 48,194,  0, 48,194,  0, 96,194,  0, 96,195,  0,241,231,128,  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};
-static const GLubyte TimesRoman24_Character_120[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,120,240, 48, 96, 16,192, 25,192, 13,128,  7,  0,  6,  0, 13,  0, 28,128, 24,192, 48, 96,120,240,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_121[] = { 11,  0,  0,  0,  0,224,  0,240,  0, 24,  0,  8,  0, 12,  0,  4,  0, 14,  0, 14,  0, 26,  0, 25,  0, 25,  0, 49,  0, 48,128, 48,128, 96,128, 96,192,241,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_122[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,128, 97,128, 48,128, 56,  0, 24,  0, 28,  0, 12,  0, 14,  0,  7,  0, 67,  0, 97,128,127,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_123[] = { 10,  0,  0,  0,  0,  3,128,  6,  0, 12,  0, 12,  0, 12,  0, 12,  0, 12,  0, 12,  0,  8,  0, 24,  0, 16,  0, 96,  0, 16,  0, 24,  0,  8,  0, 12,  0, 12,  0, 12,  0, 12,  0, 12,  0,  6,  0,  3,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_124[] = {  6,  0,  0,  0,  0,  0,  0,  0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_125[] = { 10,  0,  0,  0,  0,112,  0, 24,  0, 12,  0, 12,  0, 12,  0, 12,  0, 12,  0, 12,  0,  4,  0,  6,  0,  2,  0,  1,128,  2,  0,  6,  0,  4,  0, 12,  0, 12,  0, 12,  0, 12,  0, 12,  0, 24,  0,112,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_126[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 65,192, 99,224, 62, 48, 28, 16,  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};
-static const GLubyte TimesRoman24_Character_127[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_128[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_129[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_130[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_131[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_132[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_133[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_134[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_135[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_136[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_137[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_138[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_139[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_140[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_141[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_142[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_143[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_144[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_145[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_146[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_147[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_148[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_149[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_150[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_151[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_152[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_153[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_154[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_155[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_156[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_157[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_158[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_159[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_160[] = {  6,  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};
-static const GLubyte TimesRoman24_Character_161[] = {  8,  0,  0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,  0,  0,  0, 12, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_162[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0, 32,  0, 31,  0, 63,128, 56, 64,104,  0,100,  0,100,  0,100,  0, 98,  0, 98,  0, 33,192, 49,192, 15,128,  0,128,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_163[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,115,192, 95, 96, 60, 32, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0,126,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,192, 12,192,  7,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_164[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96, 48,119,112, 63,224, 24,192, 48, 96, 48, 96, 48, 96, 48, 96, 24,192, 63,224,119,112, 96, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_165[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,192,  3,  0,  3,  0,  3,  0,  3,  0, 31,224,  3,  0, 31,224,  3,  0,  7,128, 12,128, 12,192, 24, 64, 24, 96, 48, 32,112, 48,248,124,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_166[] = {  6,  0,  0,  0,  0,  0,  0,  0, 48, 48, 48, 48, 48, 48, 48,  0,  0,  0, 48, 48, 48, 48, 48, 48, 48,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_167[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 14,  0, 25,  0, 24,128,  1,128,  3,128,  7,  0, 14,  0, 29,  0, 56,128, 48,192, 32,192, 33,192, 19,128, 15,  0, 14,  0, 28,  0, 24,  0, 17,128,  9,128,  7,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_168[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,102,102,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_169[] = { 19,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,248,  0, 14, 14,  0, 24,  3,  0, 48,225,128, 35,184,128, 98, 12,192, 70,  0, 64, 68,  0, 64, 68,  0, 64, 68,  0, 64, 70,  0, 64, 98, 12,192, 35,152,128, 48,241,128, 24,  3,  0, 14, 14,  0,  3,248,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_170[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126,  0,118,204,204,124, 12,204,120,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_171[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2, 32,  6, 96, 12,192, 25,128, 51,  0, 51,  0, 25,128, 12,192,  6, 96,  2, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_172[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,127,248,127,248,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_173[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,  0,127,  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};
-static const GLubyte TimesRoman24_Character_174[] = { 19,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,248,  0, 14, 14,  0, 24,  3,  0, 48,  1,128, 35,140,128, 97, 24,192, 65, 16, 64, 65, 32, 64, 65,240, 64, 65, 24, 64, 65,  8, 64, 97,  8,192, 33, 24,128, 51,241,128, 24,  3,  0, 14, 14,  0,  3,248,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_175[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126,126,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_176[] = {  9,  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, 28,  0, 34,  0, 65,  0, 65,  0, 65,  0, 34,  0, 28,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_177[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,248,127,248,  0,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,127,248,127,248,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_178[] = {  7,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,252, 68, 32, 48, 16,  8, 12,140, 76, 56,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_179[] = {  7,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,112,136,140, 12,  8, 48,  8,140, 76, 56,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_180[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32, 24, 14,  6,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_181[] = { 13,  0,  0,  0,  0, 32,  0,112,  0, 96,  0, 32,  0, 32,  0, 46,112, 63, 96, 56,224, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96,112,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_182[] = { 11,  0,  0,  0,  0,  4,128,  4,128,  4,128,  4,128,  4,128,  4,128,  4,128,  4,128,  4,128,  4,128,  4,128, 12,128, 28,128, 60,128, 60,128,124,128,124,128,124,128, 60,128, 60,128, 28,128, 15,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_183[] = {  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_184[] = {  8,  0, 60,102,  6, 30, 24,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_185[] = {  7,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,124, 16, 16, 16, 16, 16, 16, 80, 48, 16,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_186[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126,  0, 60,102,102,102,102,102, 60,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_187[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 34,  0, 51,  0, 25,128, 12,192,  6, 96,  6, 96, 12,192, 25,128, 51,  0, 34,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_188[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24,  2,  0,  8,  2,  0, 12,127,128,  4, 34,  0,  6, 50,  0,  3, 18,  0,  1, 10,  0,125,142,  0, 16,134,  0, 16,194,  0, 16, 96,  0, 16, 32,  0, 16, 48,  0, 16, 16,  0, 80, 24,  0, 48, 12,  0, 16,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_189[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24, 63,  0,  8, 17,  0, 12,  8,  0,  4, 12,  0,  6,  4,  0,  3,  2,  0,  1,  3,  0,125,163,  0, 16,147,  0, 16,206,  0, 16, 96,  0, 16, 32,  0, 16, 48,  0, 16, 16,  0, 80, 24,  0, 48, 12,  0, 16,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_190[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24,  2,  0,  8,  2,  0, 12,127,128,  4, 34,  0,  6, 50,  0,  3, 18,  0,  1, 10,  0,113,142,  0,136,134,  0,140,194,  0, 12, 96,  0,  8, 32,  0, 48, 48,  0,  8, 16,  0,140, 24,  0, 76, 12,  0, 56,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_191[] = { 11,  0,  0,  0,  0, 31,  0, 49,128, 96,128, 97,128, 97,128,112,  0, 56,  0, 24,  0, 28,  0, 12,  0, 12,  0,  4,  0,  4,  0,  0,  0,  0,  0,  6,  0,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_192[] = { 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,252, 31,128, 48,  6,  0, 16,  6,  0, 16, 12,  0, 24, 12,  0,  8, 12,  0, 15,248,  0, 12, 24,  0,  4, 24,  0,  4, 48,  0,  6, 48,  0,  2, 48,  0,  2, 96,  0,  1, 96,  0,  1,192,  0,  1,192,  0,  0,128,  0,  0,  0,  0,  0, 32,  0,  0,192,  0,  3,128,  0,  3,  0,  0};
-static const GLubyte TimesRoman24_Character_193[] = { 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,252, 31,128, 48,  6,  0, 16,  6,  0, 16, 12,  0, 24, 12,  0,  8, 12,  0, 15,248,  0, 12, 24,  0,  4, 24,  0,  4, 48,  0,  6, 48,  0,  2, 48,  0,  2, 96,  0,  1, 96,  0,  1,192,  0,  1,192,  0,  0,128,  0,  0,  0,  0,  1,  0,  0,  0,192,  0,  0,112,  0,  0, 48,  0};
-static const GLubyte TimesRoman24_Character_194[] = { 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,252, 31,128, 48,  6,  0, 16,  6,  0, 16, 12,  0, 24, 12,  0,  8, 12,  0, 15,248,  0, 12, 24,  0,  4, 24,  0,  4, 48,  0,  6, 48,  0,  2, 48,  0,  2, 96,  0,  1, 96,  0,  1,192,  0,  1,192,  0,  0,128,  0,  0,  0,  0,  8, 16,  0,  6, 96,  0,  3,192,  0,  1,128,  0};
-static const GLubyte TimesRoman24_Character_195[] = { 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,252, 31,128, 48,  7,  0, 16,  6,  0, 16, 12,  0, 24, 12,  0,  8, 12,  0, 15,248,  0, 12, 24,  0,  4, 24,  0,  4, 48,  0,  6, 48,  0,  2, 48,  0,  2, 96,  0,  1, 96,  0,  1,192,  0,  1,192,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  4,224,  0,  3,144,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_196[] = { 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,252, 31,128, 48,  6,  0, 16,  6,  0, 16, 12,  0, 24, 12,  0,  8, 12,  0, 15,248,  0, 12, 24,  0,  4, 24,  0,  4, 48,  0,  6, 48,  0,  2, 48,  0,  2, 96,  0,  1, 96,  0,  1,192,  0,  1,192,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  6, 48,  0,  6, 48,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_197[] = { 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,252, 31,128, 48,  6,  0, 16,  6,  0, 16, 12,  0, 24, 12,  0,  8, 12,  0, 15,248,  0, 12, 24,  0,  4, 24,  0,  4, 48,  0,  6, 48,  0,  2, 48,  0,  2, 96,  0,  1, 96,  0,  1,192,  0,  1,192,  0,  0,128,  0,  1,192,  0,  2, 32,  0,  2, 32,  0,  1,192,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_198[] = { 21,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,249,255,240, 48, 96, 48, 16, 96, 16, 16, 96, 16, 24, 96,  0,  8, 96,  0, 15,224,128, 12, 96,128,  4,127,128,  4, 96,128,  6, 96,128,  2, 96,  0,  2, 96,  0,  1, 96, 32,  1, 96, 32,  1,224, 96,  3,255,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_199[] = { 16,  0,  0,  3,192,  6, 96,  0, 96,  1,224,  1,128,  0,128,  3,240, 15, 28, 28,  4, 48,  2, 48,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 48,  2, 48,  2, 28,  6, 14, 30,  3,242,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_200[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,252, 24, 12, 24,  4, 24,  4, 24,  0, 24,  0, 24, 32, 24, 32, 31,224, 24, 32, 24, 32, 24,  0, 24,  0, 24,  8, 24,  8, 24, 24,127,248,  0,  0,  0,128,  3,  0, 14,  0, 12,  0};
-static const GLubyte TimesRoman24_Character_201[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,252, 24, 12, 24,  4, 24,  4, 24,  0, 24,  0, 24, 32, 24, 32, 31,224, 24, 32, 24, 32, 24,  0, 24,  0, 24,  8, 24,  8, 24, 24,127,248,  0,  0,  2,  0,  1,128,  0,224,  0, 96};
-static const GLubyte TimesRoman24_Character_202[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,252, 24, 12, 24,  4, 24,  4, 24,  0, 24,  0, 24, 32, 24, 32, 31,224, 24, 32, 24, 32, 24,  0, 24,  0, 24,  8, 24,  8, 24, 24,127,248,  0,  0,  8, 16,  6, 96,  3,192,  1,128};
-static const GLubyte TimesRoman24_Character_203[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,252, 24, 12, 24,  4, 24,  4, 24,  0, 24,  0, 24, 32, 24, 32, 31,224, 24, 32, 24, 32, 24,  0, 24,  0, 24,  8, 24,  8, 24, 24,127,248,  0,  0,  0,  0, 12,192, 12,192,  0,  0};
-static const GLubyte TimesRoman24_Character_204[] = {  8,  0,  0,  0,  0,  0,  0,  0,126, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,126,  0,  4, 24,112, 96};
-static const GLubyte TimesRoman24_Character_205[] = {  8,  0,  0,  0,  0,  0,  0,  0,126, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,126,  0, 32, 24, 14,  6};
-static const GLubyte TimesRoman24_Character_206[] = {  8,  0,  0,  0,  0,  0,  0,  0, 63, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 63,  0, 64, 51, 30, 12};
-static const GLubyte TimesRoman24_Character_207[] = {  8,  0,  0,  0,  0,  0,  0,  0,126, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,126,  0,  0,102,102,  0};
-static const GLubyte TimesRoman24_Character_208[] = { 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,224,  0, 24, 56,  0, 24, 28,  0, 24,  6,  0, 24,  6,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0,255,  3,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0, 24,  6,  0, 24,  6,  0, 24, 28,  0, 24, 56,  0,127,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_209[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,124,  6,  0, 16, 14,  0, 16, 14,  0, 16, 26,  0, 16, 50,  0, 16, 50,  0, 16, 98,  0, 16,194,  0, 16,194,  0, 17,130,  0, 19,  2,  0, 19,  2,  0, 22,  2,  0, 28,  2,  0, 28,  2,  0, 24,  2,  0,120, 15,128,  0,  0,  0,  0,  0,  0,  2,112,  0,  1,200,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_210[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,240,  0, 14, 28,  0, 28, 14,  0, 48,  3,  0, 48,  3,  0, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 48,  3,  0, 48,  3,  0, 28, 14,  0, 14, 28,  0,  3,240,  0,  0,  0,  0,  0, 32,  0,  0,192,  0,  3,128,  0,  3,  0,  0};
-static const GLubyte TimesRoman24_Character_211[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,240,  0, 14, 28,  0, 28, 14,  0, 48,  3,  0, 48,  3,  0, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 48,  3,  0, 48,  3,  0, 28, 14,  0, 14, 28,  0,  3,240,  0,  0,  0,  0,  0,128,  0,  0, 96,  0,  0, 56,  0,  0, 24,  0};
-static const GLubyte TimesRoman24_Character_212[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,240,  0, 14, 28,  0, 28, 14,  0, 48,  3,  0, 48,  3,  0, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 48,  3,  0, 48,  3,  0, 28, 14,  0, 14, 28,  0,  3,240,  0,  0,  0,  0,  4,  8,  0,  3, 48,  0,  1,224,  0,  0,192,  0};
-static const GLubyte TimesRoman24_Character_213[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,240,  0, 14, 28,  0, 28, 14,  0, 48,  3,  0, 48,  3,  0, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 48,  3,  0, 48,  3,  0, 28, 14,  0, 14, 28,  0,  3,240,  0,  0,  0,  0,  0,  0,  0,  2,112,  0,  1,200,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_214[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,240,  0, 14, 28,  0, 28, 14,  0, 48,  3,  0, 48,  3,  0, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 48,  3,  0, 48,  3,  0, 28, 14,  0, 14, 28,  0,  3,240,  0,  0,  0,  0,  0,  0,  0,  3, 48,  0,  3, 48,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_215[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32, 16, 48, 48, 24, 96, 12,192,  7,128,  3,  0,  7,128, 12,192, 24, 96, 48, 48, 32, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_216[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0, 19,240,  0, 14, 28,  0, 28, 14,  0, 52,  3,  0, 50,  3,  0, 97,  1,128, 97,  1,128, 96,129,128, 96,129,128, 96, 65,128, 96, 65,128, 96, 33,128, 48, 35,  0, 48, 19,  0, 28, 14,  0, 14, 28,  0,  3,242,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_217[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,240,  0, 14, 24,  0, 12,  4,  0, 24,  4,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0,126, 15,128,  0,  0,  0,  0, 32,  0,  0,192,  0,  3,128,  0,  3,  0,  0};
-static const GLubyte TimesRoman24_Character_218[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,240,  0, 14, 24,  0, 12,  4,  0, 24,  4,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0,126, 15,128,  0,  0,  0,  0,128,  0,  0, 96,  0,  0, 56,  0,  0, 24,  0};
-static const GLubyte TimesRoman24_Character_219[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,240,  0, 14, 24,  0, 12,  4,  0, 24,  4,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0,126, 15,128,  0,  0,  0,  4,  8,  0,  3, 48,  0,  1,224,  0,  0,192,  0};
-static const GLubyte TimesRoman24_Character_220[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,240,  0, 14, 24,  0, 12,  4,  0, 24,  4,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0,126, 15,128,  0,  0,  0,  0,  0,  0,  3, 24,  0,  3, 24,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_221[] = { 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,224,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  3,192,  3, 64,  6, 96,  6, 32, 12, 48, 28, 16, 24, 24, 56,  8, 48, 12,252, 63,  0,  0,  1,  0,  0,192,  0,112,  0, 48};
-static const GLubyte TimesRoman24_Character_222[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126,  0, 24,  0, 24,  0, 24,  0, 31,224, 24, 56, 24, 24, 24, 12, 24, 12, 24, 12, 24, 24, 24, 56, 31,224, 24,  0, 24,  0, 24,  0,126,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_223[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,115,128, 54, 64, 54, 96, 48, 96, 48, 96, 48,224, 48,192, 49,192, 51,128, 54,  0, 49,128, 48,192, 48,192, 48,192, 48,192, 25,128, 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_224[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 56,192,125,128, 99,128, 97,128, 97,128, 49,128, 29,128,  7,128,  1,128, 49,128, 51,128, 31,  0,  0,  0,  2,  0, 12,  0, 56,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_225[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 56,192,125,128, 99,128, 97,128, 97,128, 49,128, 29,128,  7,128,  1,128, 49,128, 51,128, 31,  0,  0,  0,  8,  0,  6,  0,  3,128,  1,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_226[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 56,192,125,128, 99,128, 97,128, 97,128, 49,128, 29,128,  7,128,  1,128, 49,128, 51,128, 31,  0,  0,  0, 33,  0, 18,  0, 30,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_227[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 56,192,125,128, 99,128, 97,128, 97,128, 49,128, 29,128,  7,128,  1,128, 49,128, 51,128, 31,  0,  0,  0,  0,  0, 46,  0, 29,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_228[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 56,192,125,128, 99,128, 97,128, 97,128, 49,128, 29,128,  7,128,  1,128, 49,128, 51,128, 31,  0,  0,  0,  0,  0, 51,  0, 51,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_229[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 56,192,125,128, 99,128, 97,128, 97,128, 49,128, 29,128,  7,128,  1,128, 49,128, 51,128, 31,  0,  0,  0, 14,  0, 17,  0, 17,  0, 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_230[] = { 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 56,120,125,252, 99,194, 97,128, 97,128, 49,128, 29,128,  7,254,  1,134, 49,134, 51,204, 30,120,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_231[] = { 11,  0,  0, 30,  0, 51,  0,  3,  0, 15,  0, 12,  0,  4,  0, 15,  0, 63,128, 56, 64,112,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 32,192, 49,192, 15,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_232[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 63,128, 56, 64,112,  0, 96,  0, 96,  0, 96,  0,127,192, 96,192, 32,192, 49,128, 15,  0,  0,  0,  2,  0, 12,  0, 56,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_233[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 63,128, 56, 64,112,  0, 96,  0, 96,  0, 96,  0,127,192, 96,192, 32,192, 49,128, 15,  0,  0,  0,  8,  0,  6,  0,  3,128,  1,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_234[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 63,128, 56, 64,112,  0, 96,  0, 96,  0, 96,  0,127,192, 96,192, 32,192, 49,128, 15,  0,  0,  0, 16,128,  9,  0, 15,  0,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_235[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 63,128, 56, 64,112,  0, 96,  0, 96,  0, 96,  0,127,192, 96,192, 32,192, 49,128, 15,  0,  0,  0,  0,  0, 25,128, 25,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_236[] = {  6,  0,  0,  0,  0,  0,  0,  0,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,112,  0,  8, 48,224,192,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_237[] = {  6,  0,  0,  0,  0,  0,  0,  0,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,112,  0, 64, 48, 28, 12,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_238[] = {  6,  0,  0,  0,  0,  0,  0,  0,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,112,  0,132, 72,120, 48,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_239[] = {  6,  0,  0,  0,  0,  0,  0,  0,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,112,  0,  0,204,204,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_240[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 57,192, 48,192, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 48,192, 57,192, 15,128, 99,  0, 30,  0, 15,  0, 56,192, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_241[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,120,240, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 56,224, 55,192,115,128,  0,  0,  0,  0, 19,128, 14, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_242[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 57,192, 48,192, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 48,192, 57,192, 15,  0,  0,  0,  1,  0,  6,  0, 28,  0, 24,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_243[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 57,192, 48,192, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 48,192, 57,192, 15,  0,  0,  0,  4,  0,  3,  0,  1,192,  0,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_244[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 57,192, 48,192, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 48,192, 57,192, 15,  0,  0,  0, 16,128,  9,  0, 15,  0,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_245[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 57,192, 48,192, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 48,192, 57,192, 15,  0,  0,  0,  0,  0, 19,128, 14, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_246[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 57,192, 48,192, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 48,192, 57,192, 15,  0,  0,  0,  0,  0, 25,128, 25,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_247[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  0,  3,  0,  0,  0,  0,  0,127,248,127,248,  0,  0,  0,  0,  3,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_248[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,  0,111,  0, 57,192, 56,192,104, 96,108, 96,100, 96,102, 96, 98, 96, 99, 96, 49,192, 57,192, 15, 96,  0, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_249[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 14,112, 31, 96, 56,224, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96,112,224,  0,  0,  1,  0,  6,  0, 28,  0, 24,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_250[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 14,112, 31, 96, 56,224, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96,112,224,  0,  0,  4,  0,  3,  0,  1,192,  0,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_251[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 14,112, 31, 96, 56,224, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96,112,224,  0,  0, 16,128,  9,  0, 15,  0,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_252[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 14,112, 31, 96, 56,224, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96,112,224,  0,  0,  0,  0, 25,128, 25,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_253[] = { 11,  0,  0,  0,  0,224,  0,240,  0, 24,  0,  8,  0, 12,  0,  4,  0, 14,  0, 14,  0, 26,  0, 25,  0, 25,  0, 49,  0, 48,128, 48,128, 96,128, 96,192,241,224,  0,  0,  8,  0,  6,  0,  3,128,  1,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_254[] = { 12,  0,  0,  0,  0,120,  0, 48,  0, 48,  0, 48,  0, 48,  0, 55,  0, 57,192, 48,192, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48,192, 57,192, 55,  0, 48,  0, 48,  0, 48,  0, 48,  0,112,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-static const GLubyte TimesRoman24_Character_255[] = { 11,  0,  0,  0,  0,224,  0,240,  0, 24,  0,  8,  0, 12,  0,  4,  0, 14,  0, 14,  0, 26,  0, 25,  0, 25,  0, 49,  0, 48,128, 48,128, 96,128, 96,192,241,224,  0,  0,  0,  0, 51,  0, 51,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
-
-/* The font characters mapping: */
-static const GLubyte* TimesRoman24_Character_Map[] = {TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,
-                                                      TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,
-                                                      TimesRoman24_Character_032,TimesRoman24_Character_033,TimesRoman24_Character_034,TimesRoman24_Character_035,TimesRoman24_Character_036,TimesRoman24_Character_037,TimesRoman24_Character_038,TimesRoman24_Character_039,TimesRoman24_Character_040,TimesRoman24_Character_041,TimesRoman24_Character_042,TimesRoman24_Character_043,TimesRoman24_Character_044,TimesRoman24_Character_045,TimesRoman24_Character_046,TimesRoman24_Character_047,
-                                                      TimesRoman24_Character_048,TimesRoman24_Character_049,TimesRoman24_Character_050,TimesRoman24_Character_051,TimesRoman24_Character_052,TimesRoman24_Character_053,TimesRoman24_Character_054,TimesRoman24_Character_055,TimesRoman24_Character_056,TimesRoman24_Character_057,TimesRoman24_Character_058,TimesRoman24_Character_059,TimesRoman24_Character_060,TimesRoman24_Character_061,TimesRoman24_Character_062,TimesRoman24_Character_063,
-                                                      TimesRoman24_Character_064,TimesRoman24_Character_065,TimesRoman24_Character_066,TimesRoman24_Character_067,TimesRoman24_Character_068,TimesRoman24_Character_069,TimesRoman24_Character_070,TimesRoman24_Character_071,TimesRoman24_Character_072,TimesRoman24_Character_073,TimesRoman24_Character_074,TimesRoman24_Character_075,TimesRoman24_Character_076,TimesRoman24_Character_077,TimesRoman24_Character_078,TimesRoman24_Character_079,
-                                                      TimesRoman24_Character_080,TimesRoman24_Character_081,TimesRoman24_Character_082,TimesRoman24_Character_083,TimesRoman24_Character_084,TimesRoman24_Character_085,TimesRoman24_Character_086,TimesRoman24_Character_087,TimesRoman24_Character_088,TimesRoman24_Character_089,TimesRoman24_Character_090,TimesRoman24_Character_091,TimesRoman24_Character_092,TimesRoman24_Character_093,TimesRoman24_Character_094,TimesRoman24_Character_095,
-                                                      TimesRoman24_Character_096,TimesRoman24_Character_097,TimesRoman24_Character_098,TimesRoman24_Character_099,TimesRoman24_Character_100,TimesRoman24_Character_101,TimesRoman24_Character_102,TimesRoman24_Character_103,TimesRoman24_Character_104,TimesRoman24_Character_105,TimesRoman24_Character_106,TimesRoman24_Character_107,TimesRoman24_Character_108,TimesRoman24_Character_109,TimesRoman24_Character_110,TimesRoman24_Character_111,
-                                                      TimesRoman24_Character_112,TimesRoman24_Character_113,TimesRoman24_Character_114,TimesRoman24_Character_115,TimesRoman24_Character_116,TimesRoman24_Character_117,TimesRoman24_Character_118,TimesRoman24_Character_119,TimesRoman24_Character_120,TimesRoman24_Character_121,TimesRoman24_Character_122,TimesRoman24_Character_123,TimesRoman24_Character_124,TimesRoman24_Character_125,TimesRoman24_Character_126,TimesRoman24_Character_032,
-                                                      TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,
-                                                      TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,
-                                                      TimesRoman24_Character_160,TimesRoman24_Character_161,TimesRoman24_Character_162,TimesRoman24_Character_163,TimesRoman24_Character_164,TimesRoman24_Character_165,TimesRoman24_Character_166,TimesRoman24_Character_167,TimesRoman24_Character_168,TimesRoman24_Character_169,TimesRoman24_Character_170,TimesRoman24_Character_171,TimesRoman24_Character_172,TimesRoman24_Character_173,TimesRoman24_Character_174,TimesRoman24_Character_175,
-                                                      TimesRoman24_Character_176,TimesRoman24_Character_177,TimesRoman24_Character_178,TimesRoman24_Character_179,TimesRoman24_Character_180,TimesRoman24_Character_181,TimesRoman24_Character_182,TimesRoman24_Character_183,TimesRoman24_Character_184,TimesRoman24_Character_185,TimesRoman24_Character_186,TimesRoman24_Character_187,TimesRoman24_Character_188,TimesRoman24_Character_189,TimesRoman24_Character_190,TimesRoman24_Character_191,
-                                                      TimesRoman24_Character_192,TimesRoman24_Character_193,TimesRoman24_Character_194,TimesRoman24_Character_195,TimesRoman24_Character_196,TimesRoman24_Character_197,TimesRoman24_Character_198,TimesRoman24_Character_199,TimesRoman24_Character_200,TimesRoman24_Character_201,TimesRoman24_Character_202,TimesRoman24_Character_203,TimesRoman24_Character_204,TimesRoman24_Character_205,TimesRoman24_Character_206,TimesRoman24_Character_207,
-                                                      TimesRoman24_Character_208,TimesRoman24_Character_209,TimesRoman24_Character_210,TimesRoman24_Character_211,TimesRoman24_Character_212,TimesRoman24_Character_213,TimesRoman24_Character_214,TimesRoman24_Character_215,TimesRoman24_Character_216,TimesRoman24_Character_217,TimesRoman24_Character_218,TimesRoman24_Character_219,TimesRoman24_Character_220,TimesRoman24_Character_221,TimesRoman24_Character_222,TimesRoman24_Character_223,
-                                                      TimesRoman24_Character_224,TimesRoman24_Character_225,TimesRoman24_Character_226,TimesRoman24_Character_227,TimesRoman24_Character_228,TimesRoman24_Character_229,TimesRoman24_Character_230,TimesRoman24_Character_231,TimesRoman24_Character_232,TimesRoman24_Character_233,TimesRoman24_Character_234,TimesRoman24_Character_235,TimesRoman24_Character_236,TimesRoman24_Character_237,TimesRoman24_Character_238,TimesRoman24_Character_239,
-                                                      TimesRoman24_Character_240,TimesRoman24_Character_241,TimesRoman24_Character_242,TimesRoman24_Character_243,TimesRoman24_Character_244,TimesRoman24_Character_245,TimesRoman24_Character_246,TimesRoman24_Character_247,TimesRoman24_Character_248,TimesRoman24_Character_249,TimesRoman24_Character_250,TimesRoman24_Character_251,TimesRoman24_Character_252,TimesRoman24_Character_253,TimesRoman24_Character_254,TimesRoman24_Character_255,NULL};
-
-/* The font structure: */
-const SFG_Font fgFontTimesRoman24 = { "-adobe-times-medium-r-normal--24-240-75-75-p-124-iso8859-1", 256, 29, TimesRoman24_Character_Map, 0, 7 };
-
diff --git a/src/Common/freeglut_gamemode.c b/src/Common/freeglut_gamemode.c
deleted file mode 100644 (file)
index d9b71f8..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * freeglut_gamemode.c
- *
- * The game mode handling code.
- *
- * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
- * Written by Pawel W. Olszta, <olszta@sourceforge.net>
- * Creation date: Thu Dec 16 1999
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#include <GL/freeglut.h>
-#include "freeglut_internal.h"
-
-/*
- * TODO BEFORE THE STABLE RELEASE:
- *
- *  glutGameModeString()    -- missing
- *  glutEnterGameMode()     -- X11 version
- *  glutLeaveGameMode()     -- is that correct?
- *  glutGameModeGet()       -- is that correct?
- */
-
-
-/* -- PRIVATE FUNCTIONS ---------------------------------------------------- */
-extern void fgPlatformRememberState( void );
-extern void fgPlatformRestoreState( void );
-extern GLboolean fgPlatformChangeDisplayMode( GLboolean haveToTest );
-extern void fgPlatformEnterGameMode( void );
-extern void fgPlatformLeaveGameMode( void );
-
-
-/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
-
-/*
- * Sets the game mode display string
- */
-void FGAPIENTRY glutGameModeString( const char* string )
-{
-    int width = -1, height = -1, depth = -1, refresh = -1;
-
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutGameModeString" );
-
-    /*
-     * This one seems a bit easier than glutInitDisplayString. The bad thing
-     * about it that I was unable to find the game mode string definition, so
-     * that I assumed it is: "[width]x[height]:[depth]@[refresh rate]", which
-     * appears in all GLUT game mode programs I have seen to date.
-     */
-    if( sscanf( string, "%ix%i:%i@%i", &width, &height, &depth, &refresh ) !=
-        4 )
-        if( sscanf( string, "%ix%i:%i", &width, &height, &depth ) != 3 )
-            if( sscanf( string, "%ix%i@%i", &width, &height, &refresh ) != 3 )
-                if( sscanf( string, "%ix%i", &width, &height ) != 2 )
-                    if( sscanf( string, ":%i@%i", &depth, &refresh ) != 2 )
-                        if( sscanf( string, ":%i", &depth ) != 1 )
-                            if( sscanf( string, "@%i", &refresh ) != 1 )
-                                fgWarning(
-                                    "unable to parse game mode string `%s'",
-                                    string
-                                );
-
-    /* All values not specified are now set to -1, which means those
-     * aspects of the current display mode are not changed in
-     * fgPlatformChangeDisplayMode() above.
-     */
-    fgState.GameModeSize.X  = width;
-    fgState.GameModeSize.Y  = height;
-    fgState.GameModeDepth   = depth;
-    fgState.GameModeRefresh = refresh;
-}
-
-
-
-/*
- * Enters the game mode
- */
-int FGAPIENTRY glutEnterGameMode( void )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutEnterGameMode" );
-
-    if( fgStructure.GameModeWindow )
-        fgAddToWindowDestroyList( fgStructure.GameModeWindow );
-    else
-        fgPlatformRememberState( );
-
-    if( ! fgPlatformChangeDisplayMode( GL_FALSE ) )
-    {
-        fgWarning( "failed to change screen settings" );
-        return 0;
-    }
-
-    fgStructure.GameModeWindow = fgCreateWindow(
-        NULL, "FREEGLUT", GL_TRUE, 0, 0,
-        GL_TRUE, fgState.GameModeSize.X, fgState.GameModeSize.Y,
-        GL_TRUE, GL_FALSE
-    );
-
-    fgStructure.GameModeWindow->State.Width  = fgState.GameModeSize.X;
-    fgStructure.GameModeWindow->State.Height = fgState.GameModeSize.Y;
-    fgStructure.GameModeWindow->State.NeedToResize = GL_TRUE;
-
-    fgPlatformEnterGameMode();
-
-    return fgStructure.GameModeWindow->ID;
-}
-
-/*
- * Leaves the game mode
- */
-void FGAPIENTRY glutLeaveGameMode( void )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutLeaveGameMode" );
-
-    freeglut_return_if_fail( fgStructure.GameModeWindow );
-
-    fgAddToWindowDestroyList( fgStructure.GameModeWindow );
-    fgStructure.GameModeWindow = NULL;
-
-    fgPlatformLeaveGameMode();
-
-    fgPlatformRestoreState();
-}
-
-/*
- * Returns information concerning the freeglut game mode
- */
-int FGAPIENTRY glutGameModeGet( GLenum eWhat )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutGameModeGet" );
-
-    switch( eWhat )
-    {
-    case GLUT_GAME_MODE_ACTIVE:
-        return !!fgStructure.GameModeWindow;
-
-    case GLUT_GAME_MODE_POSSIBLE:
-        return fgPlatformChangeDisplayMode( GL_TRUE );
-
-    case GLUT_GAME_MODE_WIDTH:
-        return fgState.GameModeSize.X;
-
-    case GLUT_GAME_MODE_HEIGHT:
-        return fgState.GameModeSize.Y;
-
-    case GLUT_GAME_MODE_PIXEL_DEPTH:
-        return fgState.GameModeDepth;
-
-    case GLUT_GAME_MODE_REFRESH_RATE:
-        return fgState.GameModeRefresh;
-
-    case GLUT_GAME_MODE_DISPLAY_CHANGED:
-        /*
-         * This is true if the game mode has been activated successfully..
-         */
-        return !!fgStructure.GameModeWindow;
-    }
-
-    fgWarning( "Unknown gamemode get: %d", eWhat );
-    return -1;
-}
-
-/*** END OF FILE ***/
diff --git a/src/Common/freeglut_geometry.c b/src/Common/freeglut_geometry.c
deleted file mode 100644 (file)
index 0f9f5c5..0000000
+++ /dev/null
@@ -1,1215 +0,0 @@
-/*
- * freeglut_geometry.c
- *
- * Freeglut geometry rendering methods.
- *
- * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
- * Written by Pawel W. Olszta, <olszta@sourceforge.net>
- * Creation date: Fri Dec 3 1999
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#include <GL/freeglut.h>
-#include "freeglut_internal.h"
-
-/*
- * TODO BEFORE THE STABLE RELEASE:
- *
- * Following functions have been contributed by Andreas Umbach.
- *
- *      glutWireCube()          -- looks OK
- *      glutSolidCube()         -- OK
- *
- * Those functions have been implemented by John Fay.
- *
- *      glutWireTorus()         -- looks OK
- *      glutSolidTorus()        -- looks OK
- *      glutWireDodecahedron()  -- looks OK
- *      glutSolidDodecahedron() -- looks OK
- *      glutWireOctahedron()    -- looks OK
- *      glutSolidOctahedron()   -- looks OK
- *      glutWireTetrahedron()   -- looks OK
- *      glutSolidTetrahedron()  -- looks OK
- *      glutWireIcosahedron()   -- looks OK
- *      glutSolidIcosahedron()  -- looks OK
- *
- *  The Following functions have been updated by Nigel Stewart, based
- *  on FreeGLUT 2.0.0 implementations:
- *
- *      glutWireSphere()        -- looks OK
- *      glutSolidSphere()       -- looks OK
- *      glutWireCone()          -- looks OK
- *      glutSolidCone()         -- looks OK
- */
-
-
-/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
-
-/*
- * Draws a wireframed cube. Code contributed by Andreas Umbach <marvin@dataway.ch>
- */
-void FGAPIENTRY glutWireCube( GLdouble dSize )
-{
-    double size = dSize * 0.5;
-
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWireCube" );
-
-#   define V(a,b,c) glVertex3d( a size, b size, c size );
-#   define N(a,b,c) glNormal3d( a, b, c );
-
-    /* PWO: I dared to convert the code to use macros... */
-    glBegin( GL_LINE_LOOP ); N( 1.0, 0.0, 0.0); V(+,-,+); V(+,-,-); V(+,+,-); V(+,+,+); glEnd();
-    glBegin( GL_LINE_LOOP ); N( 0.0, 1.0, 0.0); V(+,+,+); V(+,+,-); V(-,+,-); V(-,+,+); glEnd();
-    glBegin( GL_LINE_LOOP ); N( 0.0, 0.0, 1.0); V(+,+,+); V(-,+,+); V(-,-,+); V(+,-,+); glEnd();
-    glBegin( GL_LINE_LOOP ); N(-1.0, 0.0, 0.0); V(-,-,+); V(-,+,+); V(-,+,-); V(-,-,-); glEnd();
-    glBegin( GL_LINE_LOOP ); N( 0.0,-1.0, 0.0); V(-,-,+); V(-,-,-); V(+,-,-); V(+,-,+); glEnd();
-    glBegin( GL_LINE_LOOP ); N( 0.0, 0.0,-1.0); V(-,-,-); V(-,+,-); V(+,+,-); V(+,-,-); glEnd();
-
-#   undef V
-#   undef N
-}
-
-/*
- * Draws a solid cube. Code contributed by Andreas Umbach <marvin@dataway.ch>
- */
-void FGAPIENTRY glutSolidCube( GLdouble dSize )
-{
-    double size = dSize * 0.5;
-
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSolidCube" );
-
-#   define V(a,b,c) glVertex3d( a size, b size, c size );
-#   define N(a,b,c) glNormal3d( a, b, c );
-
-    /* PWO: Again, I dared to convert the code to use macros... */
-    glBegin( GL_QUADS );
-        N( 1.0, 0.0, 0.0); V(+,-,+); V(+,-,-); V(+,+,-); V(+,+,+);
-        N( 0.0, 1.0, 0.0); V(+,+,+); V(+,+,-); V(-,+,-); V(-,+,+);
-        N( 0.0, 0.0, 1.0); V(+,+,+); V(-,+,+); V(-,-,+); V(+,-,+);
-        N(-1.0, 0.0, 0.0); V(-,-,+); V(-,+,+); V(-,+,-); V(-,-,-);
-        N( 0.0,-1.0, 0.0); V(-,-,+); V(-,-,-); V(+,-,-); V(+,-,+);
-        N( 0.0, 0.0,-1.0); V(-,-,-); V(-,+,-); V(+,+,-); V(+,-,-);
-    glEnd();
-
-#   undef V
-#   undef N
-}
-
-/*
- * Compute lookup table of cos and sin values forming a cirle
- *
- * Notes:
- *    It is the responsibility of the caller to free these tables
- *    The size of the table is (n+1) to form a connected loop
- *    The last entry is exactly the same as the first
- *    The sign of n can be flipped to get the reverse loop
- */
-
-static void fghCircleTable(double **sint,double **cost,const int n)
-{
-    int i;
-
-    /* Table size, the sign of n flips the circle direction */
-
-    const int size = abs(n);
-
-    /* Determine the angle between samples */
-
-    const double angle = 2*M_PI/(double)( ( n == 0 ) ? 1 : n );
-
-    /* Allocate memory for n samples, plus duplicate of first entry at the end */
-
-    *sint = (double *) calloc(sizeof(double), size+1);
-    *cost = (double *) calloc(sizeof(double), size+1);
-
-    /* Bail out if memory allocation fails, fgError never returns */
-
-    if (!(*sint) || !(*cost))
-    {
-        free(*sint);
-        free(*cost);
-        fgError("Failed to allocate memory in fghCircleTable");
-    }
-
-    /* Compute cos and sin around the circle */
-
-    (*sint)[0] = 0.0;
-    (*cost)[0] = 1.0;
-
-    for (i=1; i<size; i++)
-    {
-        (*sint)[i] = sin(angle*i);
-        (*cost)[i] = cos(angle*i);
-    }
-
-    /* Last sample is duplicate of the first */
-
-    (*sint)[size] = (*sint)[0];
-    (*cost)[size] = (*cost)[0];
-}
-
-/*
- * Draws a solid sphere
- */
-void FGAPIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks)
-{
-    int i,j;
-
-    /* Adjust z and radius as stacks are drawn. */
-
-    double z0,z1;
-    double r0,r1;
-
-    /* Pre-computed circle */
-
-    double *sint1,*cost1;
-    double *sint2,*cost2;
-
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSolidSphere" );
-
-    fghCircleTable(&sint1,&cost1,-slices);
-    fghCircleTable(&sint2,&cost2,stacks*2);
-
-    /* The top stack is covered with a triangle fan */
-
-    z0 = 1.0;
-    z1 = cost2[(stacks>0)?1:0];
-    r0 = 0.0;
-    r1 = sint2[(stacks>0)?1:0];
-
-    glBegin(GL_TRIANGLE_FAN);
-
-        glNormal3d(0,0,1);
-        glVertex3d(0,0,radius);
-
-        for (j=slices; j>=0; j--)
-        {
-            glNormal3d(cost1[j]*r1,        sint1[j]*r1,        z1       );
-            glVertex3d(cost1[j]*r1*radius, sint1[j]*r1*radius, z1*radius);
-        }
-
-    glEnd();
-
-    /* Cover each stack with a quad strip, except the top and bottom stacks */
-
-    for( i=1; i<stacks-1; i++ )
-    {
-        z0 = z1; z1 = cost2[i+1];
-        r0 = r1; r1 = sint2[i+1];
-
-        glBegin(GL_QUAD_STRIP);
-
-            for(j=0; j<=slices; j++)
-            {
-                glNormal3d(cost1[j]*r1,        sint1[j]*r1,        z1       );
-                glVertex3d(cost1[j]*r1*radius, sint1[j]*r1*radius, z1*radius);
-                glNormal3d(cost1[j]*r0,        sint1[j]*r0,        z0       );
-                glVertex3d(cost1[j]*r0*radius, sint1[j]*r0*radius, z0*radius);
-            }
-
-        glEnd();
-    }
-
-    /* The bottom stack is covered with a triangle fan */
-
-    z0 = z1;
-    r0 = r1;
-
-    glBegin(GL_TRIANGLE_FAN);
-
-        glNormal3d(0,0,-1);
-        glVertex3d(0,0,-radius);
-
-        for (j=0; j<=slices; j++)
-        {
-            glNormal3d(cost1[j]*r0,        sint1[j]*r0,        z0       );
-            glVertex3d(cost1[j]*r0*radius, sint1[j]*r0*radius, z0*radius);
-        }
-
-    glEnd();
-
-    /* Release sin and cos tables */
-
-    free(sint1);
-    free(cost1);
-    free(sint2);
-    free(cost2);
-}
-
-/*
- * Draws a wire sphere
- */
-void FGAPIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks)
-{
-    int i,j;
-
-    /* Adjust z and radius as stacks and slices are drawn. */
-
-    double r;
-    double x,y,z;
-
-    /* Pre-computed circle */
-
-    double *sint1,*cost1;
-    double *sint2,*cost2;
-
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWireSphere" );
-
-    fghCircleTable(&sint1,&cost1,-slices  );
-    fghCircleTable(&sint2,&cost2, stacks*2);
-
-    /* Draw a line loop for each stack */
-
-    for (i=1; i<stacks; i++)
-    {
-        z = cost2[i];
-        r = sint2[i];
-
-        glBegin(GL_LINE_LOOP);
-
-            for(j=0; j<=slices; j++)
-            {
-                x = cost1[j];
-                y = sint1[j];
-
-                glNormal3d(x,y,z);
-                glVertex3d(x*r*radius,y*r*radius,z*radius);
-            }
-
-        glEnd();
-    }
-
-    /* Draw a line loop for each slice */
-
-    for (i=0; i<slices; i++)
-    {
-        glBegin(GL_LINE_STRIP);
-
-            for(j=0; j<=stacks; j++)
-            {
-                x = cost1[i]*sint2[j];
-                y = sint1[i]*sint2[j];
-                z = cost2[j];
-
-                glNormal3d(x,y,z);
-                glVertex3d(x*radius,y*radius,z*radius);
-            }
-
-        glEnd();
-    }
-
-    /* Release sin and cos tables */
-
-    free(sint1);
-    free(cost1);
-    free(sint2);
-    free(cost2);
-}
-
-/*
- * Draws a solid cone
- */
-void FGAPIENTRY glutSolidCone( GLdouble base, GLdouble height, GLint slices, GLint stacks )
-{
-    int i,j;
-
-    /* Step in z and radius as stacks are drawn. */
-
-    double z0,z1;
-    double r0,r1;
-
-    const double zStep = height / ( ( stacks > 0 ) ? stacks : 1 );
-    const double rStep = base / ( ( stacks > 0 ) ? stacks : 1 );
-
-    /* Scaling factors for vertex normals */
-
-    const double cosn = ( height / sqrt ( height * height + base * base ));
-    const double sinn = ( base   / sqrt ( height * height + base * base ));
-
-    /* Pre-computed circle */
-
-    double *sint,*cost;
-
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSolidCone" );
-
-    fghCircleTable(&sint,&cost,-slices);
-
-    /* Cover the circular base with a triangle fan... */
-
-    z0 = 0.0;
-    z1 = zStep;
-
-    r0 = base;
-    r1 = r0 - rStep;
-
-    glBegin(GL_TRIANGLE_FAN);
-
-        glNormal3d(0.0,0.0,-1.0);
-        glVertex3d(0.0,0.0, z0 );
-
-        for (j=0; j<=slices; j++)
-            glVertex3d(cost[j]*r0, sint[j]*r0, z0);
-
-    glEnd();
-
-    /* Cover each stack with a quad strip, except the top stack */
-
-    for( i=0; i<stacks-1; i++ )
-    {
-        glBegin(GL_QUAD_STRIP);
-
-            for(j=0; j<=slices; j++)
-            {
-                glNormal3d(cost[j]*cosn, sint[j]*cosn, sinn);
-                glVertex3d(cost[j]*r0,   sint[j]*r0,   z0  );
-                glVertex3d(cost[j]*r1,   sint[j]*r1,   z1  );
-            }
-
-            z0 = z1; z1 += zStep;
-            r0 = r1; r1 -= rStep;
-
-        glEnd();
-    }
-
-    /* The top stack is covered with individual triangles */
-
-    glBegin(GL_TRIANGLES);
-
-        glNormal3d(cost[0]*sinn, sint[0]*sinn, cosn);
-
-        for (j=0; j<slices; j++)
-        {
-            glVertex3d(cost[j+0]*r0,   sint[j+0]*r0,   z0    );
-            glVertex3d(0,              0,              height);
-            glNormal3d(cost[j+1]*sinn, sint[j+1]*sinn, cosn  );
-            glVertex3d(cost[j+1]*r0,   sint[j+1]*r0,   z0    );
-        }
-
-    glEnd();
-
-    /* Release sin and cos tables */
-
-    free(sint);
-    free(cost);
-}
-
-/*
- * Draws a wire cone
- */
-void FGAPIENTRY glutWireCone( GLdouble base, GLdouble height, GLint slices, GLint stacks)
-{
-    int i,j;
-
-    /* Step in z and radius as stacks are drawn. */
-
-    double z = 0.0;
-    double r = base;
-
-    const double zStep = height / ( ( stacks > 0 ) ? stacks : 1 );
-    const double rStep = base / ( ( stacks > 0 ) ? stacks : 1 );
-
-    /* Scaling factors for vertex normals */
-
-    const double cosn = ( height / sqrt ( height * height + base * base ));
-    const double sinn = ( base   / sqrt ( height * height + base * base ));
-
-    /* Pre-computed circle */
-
-    double *sint,*cost;
-
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWireCone" );
-
-    fghCircleTable(&sint,&cost,-slices);
-
-    /* Draw the stacks... */
-
-    for (i=0; i<stacks; i++)
-    {
-        glBegin(GL_LINE_LOOP);
-
-            for( j=0; j<slices; j++ )
-            {
-                glNormal3d(cost[j]*sinn, sint[j]*sinn, cosn);
-                glVertex3d(cost[j]*r,    sint[j]*r,    z   );
-            }
-
-        glEnd();
-
-        z += zStep;
-        r -= rStep;
-    }
-
-    /* Draw the slices */
-
-    r = base;
-
-    glBegin(GL_LINES);
-
-        for (j=0; j<slices; j++)
-        {
-            glNormal3d(cost[j]*sinn, sint[j]*sinn, cosn  );
-            glVertex3d(cost[j]*r,    sint[j]*r,    0.0   );
-            glVertex3d(0.0,          0.0,          height);
-        }
-
-    glEnd();
-
-    /* Release sin and cos tables */
-
-    free(sint);
-    free(cost);
-}
-
-
-/*
- * Draws a solid cylinder
- */
-void FGAPIENTRY glutSolidCylinder(GLdouble radius, GLdouble height, GLint slices, GLint stacks)
-{
-    int i,j;
-
-    /* Step in z and radius as stacks are drawn. */
-
-    double z0,z1;
-    const double zStep = height / ( ( stacks > 0 ) ? stacks : 1 );
-
-    /* Pre-computed circle */
-
-    double *sint,*cost;
-
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSolidCylinder" );
-
-    fghCircleTable(&sint,&cost,-slices);
-
-    /* Cover the base and top */
-
-    glBegin(GL_TRIANGLE_FAN);
-        glNormal3d(0.0, 0.0, -1.0 );
-        glVertex3d(0.0, 0.0,  0.0 );
-        for (j=0; j<=slices; j++)
-          glVertex3d(cost[j]*radius, sint[j]*radius, 0.0);
-    glEnd();
-
-    glBegin(GL_TRIANGLE_FAN);
-        glNormal3d(0.0, 0.0, 1.0   );
-        glVertex3d(0.0, 0.0, height);
-        for (j=slices; j>=0; j--)
-          glVertex3d(cost[j]*radius, sint[j]*radius, height);
-    glEnd();
-
-    /* Do the stacks */
-
-    z0 = 0.0;
-    z1 = zStep;
-
-    for (i=1; i<=stacks; i++)
-    {
-        if (i==stacks)
-            z1 = height;
-
-        glBegin(GL_QUAD_STRIP);
-            for (j=0; j<=slices; j++ )
-            {
-                glNormal3d(cost[j],        sint[j],        0.0 );
-                glVertex3d(cost[j]*radius, sint[j]*radius, z0  );
-                glVertex3d(cost[j]*radius, sint[j]*radius, z1  );
-            }
-        glEnd();
-
-        z0 = z1; z1 += zStep;
-    }
-
-    /* Release sin and cos tables */
-
-    free(sint);
-    free(cost);
-}
-
-/*
- * Draws a wire cylinder
- */
-void FGAPIENTRY glutWireCylinder(GLdouble radius, GLdouble height, GLint slices, GLint stacks)
-{
-    int i,j;
-
-    /* Step in z and radius as stacks are drawn. */
-
-          double z = 0.0;
-    const double zStep = height / ( ( stacks > 0 ) ? stacks : 1 );
-
-    /* Pre-computed circle */
-
-    double *sint,*cost;
-
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWireCylinder" );
-
-    fghCircleTable(&sint,&cost,-slices);
-
-    /* Draw the stacks... */
-
-    for (i=0; i<=stacks; i++)
-    {
-        if (i==stacks)
-            z = height;
-
-        glBegin(GL_LINE_LOOP);
-
-            for( j=0; j<slices; j++ )
-            {
-                glNormal3d(cost[j],        sint[j],        0.0);
-                glVertex3d(cost[j]*radius, sint[j]*radius, z  );
-            }
-
-        glEnd();
-
-        z += zStep;
-    }
-
-    /* Draw the slices */
-
-    glBegin(GL_LINES);
-
-        for (j=0; j<slices; j++)
-        {
-            glNormal3d(cost[j],        sint[j],        0.0   );
-            glVertex3d(cost[j]*radius, sint[j]*radius, 0.0   );
-            glVertex3d(cost[j]*radius, sint[j]*radius, height);
-        }
-
-    glEnd();
-
-    /* Release sin and cos tables */
-
-    free(sint);
-    free(cost);
-}
-
-/*
- * Draws a wire torus
- */
-void FGAPIENTRY glutWireTorus( GLdouble dInnerRadius, GLdouble dOuterRadius, GLint nSides, GLint nRings )
-{
-  double  iradius = dInnerRadius, oradius = dOuterRadius, phi, psi, dpsi, dphi;
-  double *vertex, *normal;
-  int    i, j;
-  double spsi, cpsi, sphi, cphi ;
-
-  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWireTorus" );
-
-  if ( nSides < 1 ) nSides = 1;
-  if ( nRings < 1 ) nRings = 1;
-
-  /* Allocate the vertices array */
-  vertex = (double *)calloc( sizeof(double), 3 * nSides * nRings );
-  normal = (double *)calloc( sizeof(double), 3 * nSides * nRings );
-
-  glPushMatrix();
-
-  dpsi =  2.0 * M_PI / (double)nRings ;
-  dphi = -2.0 * M_PI / (double)nSides ;
-  psi  = 0.0;
-
-  for( j=0; j<nRings; j++ )
-  {
-    cpsi = cos ( psi ) ;
-    spsi = sin ( psi ) ;
-    phi = 0.0;
-
-    for( i=0; i<nSides; i++ )
-    {
-      int offset = 3 * ( j * nSides + i ) ;
-      cphi = cos ( phi ) ;
-      sphi = sin ( phi ) ;
-      *(vertex + offset + 0) = cpsi * ( oradius + cphi * iradius ) ;
-      *(vertex + offset + 1) = spsi * ( oradius + cphi * iradius ) ;
-      *(vertex + offset + 2) =                    sphi * iradius  ;
-      *(normal + offset + 0) = cpsi * cphi ;
-      *(normal + offset + 1) = spsi * cphi ;
-      *(normal + offset + 2) =        sphi ;
-      phi += dphi;
-    }
-
-    psi += dpsi;
-  }
-
-  for( i=0; i<nSides; i++ )
-  {
-    glBegin( GL_LINE_LOOP );
-
-    for( j=0; j<nRings; j++ )
-    {
-      int offset = 3 * ( j * nSides + i ) ;
-      glNormal3dv( normal + offset );
-      glVertex3dv( vertex + offset );
-    }
-
-    glEnd();
-  }
-
-  for( j=0; j<nRings; j++ )
-  {
-    glBegin(GL_LINE_LOOP);
-
-    for( i=0; i<nSides; i++ )
-    {
-      int offset = 3 * ( j * nSides + i ) ;
-      glNormal3dv( normal + offset );
-      glVertex3dv( vertex + offset );
-    }
-
-    glEnd();
-  }
-
-  free ( vertex ) ;
-  free ( normal ) ;
-  glPopMatrix();
-}
-
-/*
- * Draws a solid torus
- */
-void FGAPIENTRY glutSolidTorus( GLdouble dInnerRadius, GLdouble dOuterRadius, GLint nSides, GLint nRings )
-{
-  double  iradius = dInnerRadius, oradius = dOuterRadius, phi, psi, dpsi, dphi;
-  double *vertex, *normal;
-  int    i, j;
-  double spsi, cpsi, sphi, cphi ;
-
-  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSolidTorus" );
-
-  if ( nSides < 1 ) nSides = 1;
-  if ( nRings < 1 ) nRings = 1;
-
-  /* Increment the number of sides and rings to allow for one more point than surface */
-  nSides ++ ;
-  nRings ++ ;
-
-  /* Allocate the vertices array */
-  vertex = (double *)calloc( sizeof(double), 3 * nSides * nRings );
-  normal = (double *)calloc( sizeof(double), 3 * nSides * nRings );
-
-  glPushMatrix();
-
-  dpsi =  2.0 * M_PI / (double)(nRings - 1) ;
-  dphi = -2.0 * M_PI / (double)(nSides - 1) ;
-  psi  = 0.0;
-
-  for( j=0; j<nRings; j++ )
-  {
-    cpsi = cos ( psi ) ;
-    spsi = sin ( psi ) ;
-    phi = 0.0;
-
-    for( i=0; i<nSides; i++ )
-    {
-      int offset = 3 * ( j * nSides + i ) ;
-      cphi = cos ( phi ) ;
-      sphi = sin ( phi ) ;
-      *(vertex + offset + 0) = cpsi * ( oradius + cphi * iradius ) ;
-      *(vertex + offset + 1) = spsi * ( oradius + cphi * iradius ) ;
-      *(vertex + offset + 2) =                    sphi * iradius  ;
-      *(normal + offset + 0) = cpsi * cphi ;
-      *(normal + offset + 1) = spsi * cphi ;
-      *(normal + offset + 2) =        sphi ;
-      phi += dphi;
-    }
-
-    psi += dpsi;
-  }
-
-    glBegin( GL_QUADS );
-  for( i=0; i<nSides-1; i++ )
-  {
-    for( j=0; j<nRings-1; j++ )
-    {
-      int offset = 3 * ( j * nSides + i ) ;
-      glNormal3dv( normal + offset );
-      glVertex3dv( vertex + offset );
-      glNormal3dv( normal + offset + 3 );
-      glVertex3dv( vertex + offset + 3 );
-      glNormal3dv( normal + offset + 3 * nSides + 3 );
-      glVertex3dv( vertex + offset + 3 * nSides + 3 );
-      glNormal3dv( normal + offset + 3 * nSides );
-      glVertex3dv( vertex + offset + 3 * nSides );
-    }
-  }
-
-  glEnd();
-
-  free ( vertex ) ;
-  free ( normal ) ;
-  glPopMatrix();
-}
-
-/*
- *
- */
-void FGAPIENTRY glutWireDodecahedron( void )
-{
-  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWireDodecahedron" );
-
-  /* Magic Numbers:  It is possible to create a dodecahedron by attaching two pentagons to each face of
-   * of a cube.  The coordinates of the points are:
-   *   (+-x,0, z); (+-1, 1, 1); (0, z, x )
-   * where x = (-1 + sqrt(5))/2, z = (1 + sqrt(5))/2  or
-   *       x = 0.61803398875 and z = 1.61803398875.
-   */
-  glBegin ( GL_LINE_LOOP ) ;
-  glNormal3d (  0.0,  0.525731112119,  0.850650808354 ) ; glVertex3d (  0.0,  1.61803398875,  0.61803398875 ) ; glVertex3d ( -1.0,  1.0,  1.0 ) ; glVertex3d ( -0.61803398875, 0.0,  1.61803398875 ) ; glVertex3d (  0.61803398875, 0.0,  1.61803398875 ) ; glVertex3d (  1.0,  1.0,  1.0 ) ;
-  glEnd () ;
-  glBegin ( GL_LINE_LOOP ) ;
-  glNormal3d (  0.0,  0.525731112119, -0.850650808354 ) ; glVertex3d (  0.0,  1.61803398875, -0.61803398875 ) ; glVertex3d (  1.0,  1.0, -1.0 ) ; glVertex3d (  0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( -0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( -1.0,  1.0, -1.0 ) ;
-  glEnd () ;
-  glBegin ( GL_LINE_LOOP ) ;
-  glNormal3d (  0.0, -0.525731112119,  0.850650808354 ) ; glVertex3d (  0.0, -1.61803398875,  0.61803398875 ) ; glVertex3d (  1.0, -1.0,  1.0 ) ; glVertex3d (  0.61803398875, 0.0,  1.61803398875 ) ; glVertex3d ( -0.61803398875, 0.0,  1.61803398875 ) ; glVertex3d ( -1.0, -1.0,  1.0 ) ;
-  glEnd () ;
-  glBegin ( GL_LINE_LOOP ) ;
-  glNormal3d (  0.0, -0.525731112119, -0.850650808354 ) ; glVertex3d (  0.0, -1.61803398875, -0.61803398875 ) ; glVertex3d ( -1.0, -1.0, -1.0 ) ; glVertex3d ( -0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d (  0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d (  1.0, -1.0, -1.0 ) ;
-  glEnd () ;
-
-  glBegin ( GL_LINE_LOOP ) ;
-  glNormal3d (  0.850650808354,  0.0,  0.525731112119 ) ; glVertex3d (  0.61803398875,  0.0,  1.61803398875 ) ; glVertex3d (  1.0, -1.0,  1.0 ) ; glVertex3d (  1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d (  1.61803398875,  0.61803398875, 0.0 ) ; glVertex3d (  1.0,  1.0,  1.0 ) ;
-  glEnd () ;
-  glBegin ( GL_LINE_LOOP ) ;
-  glNormal3d ( -0.850650808354,  0.0,  0.525731112119 ) ; glVertex3d ( -0.61803398875,  0.0,  1.61803398875 ) ; glVertex3d ( -1.0,  1.0,  1.0 ) ; glVertex3d ( -1.61803398875,  0.61803398875, 0.0 ) ; glVertex3d ( -1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( -1.0, -1.0,  1.0 ) ;
-  glEnd () ;
-  glBegin ( GL_LINE_LOOP ) ;
-  glNormal3d (  0.850650808354,  0.0, -0.525731112119 ) ; glVertex3d (  0.61803398875,  0.0, -1.61803398875 ) ; glVertex3d (  1.0,  1.0, -1.0 ) ; glVertex3d (  1.61803398875,  0.61803398875, 0.0 ) ; glVertex3d (  1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d (  1.0, -1.0, -1.0 ) ;
-  glEnd () ;
-  glBegin ( GL_LINE_LOOP ) ;
-  glNormal3d ( -0.850650808354,  0.0, -0.525731112119 ) ; glVertex3d ( -0.61803398875,  0.0, -1.61803398875 ) ; glVertex3d ( -1.0, -1.0, -1.0 ) ; glVertex3d ( -1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( -1.61803398875,  0.61803398875, 0.0 ) ; glVertex3d ( -1.0,  1.0, -1.0 ) ;
-  glEnd () ;
-
-  glBegin ( GL_LINE_LOOP ) ;
-  glNormal3d (  0.525731112119,  0.850650808354,  0.0 ) ; glVertex3d (  1.61803398875,  0.61803398875,  0.0 ) ; glVertex3d (  1.0,  1.0, -1.0 ) ; glVertex3d ( 0.0,  1.61803398875, -0.61803398875 ) ; glVertex3d ( 0.0,  1.61803398875,  0.61803398875 ) ; glVertex3d (  1.0,  1.0,  1.0 ) ;
-  glEnd () ;
-  glBegin ( GL_LINE_LOOP ) ;
-  glNormal3d (  0.525731112119, -0.850650808354,  0.0 ) ; glVertex3d (  1.61803398875, -0.61803398875,  0.0 ) ; glVertex3d (  1.0, -1.0,  1.0 ) ; glVertex3d ( 0.0, -1.61803398875,  0.61803398875 ) ; glVertex3d ( 0.0, -1.61803398875, -0.61803398875 ) ; glVertex3d (  1.0, -1.0, -1.0 ) ;
-  glEnd () ;
-  glBegin ( GL_LINE_LOOP ) ;
-  glNormal3d ( -0.525731112119,  0.850650808354,  0.0 ) ; glVertex3d ( -1.61803398875,  0.61803398875,  0.0 ) ; glVertex3d ( -1.0,  1.0,  1.0 ) ; glVertex3d ( 0.0,  1.61803398875,  0.61803398875 ) ; glVertex3d ( 0.0,  1.61803398875, -0.61803398875 ) ; glVertex3d ( -1.0,  1.0, -1.0 ) ;
-  glEnd () ;
-  glBegin ( GL_LINE_LOOP ) ;
-  glNormal3d ( -0.525731112119, -0.850650808354,  0.0 ) ; glVertex3d ( -1.61803398875, -0.61803398875,  0.0 ) ; glVertex3d ( -1.0, -1.0, -1.0 ) ; glVertex3d ( 0.0, -1.61803398875, -0.61803398875 ) ; glVertex3d ( 0.0, -1.61803398875,  0.61803398875 ) ; glVertex3d ( -1.0, -1.0,  1.0 ) ;
-  glEnd () ;
-}
-
-/*
- *
- */
-void FGAPIENTRY glutSolidDodecahedron( void )
-{
-  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSolidDodecahedron" );
-
-  /* Magic Numbers:  It is possible to create a dodecahedron by attaching two pentagons to each face of
-   * of a cube.  The coordinates of the points are:
-   *   (+-x,0, z); (+-1, 1, 1); (0, z, x )
-   * where x = (-1 + sqrt(5))/2, z = (1 + sqrt(5))/2 or
-   *       x = 0.61803398875 and z = 1.61803398875.
-   */
-  glBegin ( GL_POLYGON ) ;
-  glNormal3d (  0.0,  0.525731112119,  0.850650808354 ) ; glVertex3d (  0.0,  1.61803398875,  0.61803398875 ) ; glVertex3d ( -1.0,  1.0,  1.0 ) ; glVertex3d ( -0.61803398875, 0.0,  1.61803398875 ) ; glVertex3d (  0.61803398875, 0.0,  1.61803398875 ) ; glVertex3d (  1.0,  1.0,  1.0 ) ;
-  glEnd () ;
-  glBegin ( GL_POLYGON ) ;
-  glNormal3d (  0.0,  0.525731112119, -0.850650808354 ) ; glVertex3d (  0.0,  1.61803398875, -0.61803398875 ) ; glVertex3d (  1.0,  1.0, -1.0 ) ; glVertex3d (  0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( -0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( -1.0,  1.0, -1.0 ) ;
-  glEnd () ;
-  glBegin ( GL_POLYGON ) ;
-  glNormal3d (  0.0, -0.525731112119,  0.850650808354 ) ; glVertex3d (  0.0, -1.61803398875,  0.61803398875 ) ; glVertex3d (  1.0, -1.0,  1.0 ) ; glVertex3d (  0.61803398875, 0.0,  1.61803398875 ) ; glVertex3d ( -0.61803398875, 0.0,  1.61803398875 ) ; glVertex3d ( -1.0, -1.0,  1.0 ) ;
-  glEnd () ;
-  glBegin ( GL_POLYGON ) ;
-  glNormal3d (  0.0, -0.525731112119, -0.850650808354 ) ; glVertex3d (  0.0, -1.61803398875, -0.61803398875 ) ; glVertex3d ( -1.0, -1.0, -1.0 ) ; glVertex3d ( -0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d (  0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d (  1.0, -1.0, -1.0 ) ;
-  glEnd () ;
-
-  glBegin ( GL_POLYGON ) ;
-  glNormal3d (  0.850650808354,  0.0,  0.525731112119 ) ; glVertex3d (  0.61803398875,  0.0,  1.61803398875 ) ; glVertex3d (  1.0, -1.0,  1.0 ) ; glVertex3d (  1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d (  1.61803398875,  0.61803398875, 0.0 ) ; glVertex3d (  1.0,  1.0,  1.0 ) ;
-  glEnd () ;
-  glBegin ( GL_POLYGON ) ;
-  glNormal3d ( -0.850650808354,  0.0,  0.525731112119 ) ; glVertex3d ( -0.61803398875,  0.0,  1.61803398875 ) ; glVertex3d ( -1.0,  1.0,  1.0 ) ; glVertex3d ( -1.61803398875,  0.61803398875, 0.0 ) ; glVertex3d ( -1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( -1.0, -1.0,  1.0 ) ;
-  glEnd () ;
-  glBegin ( GL_POLYGON ) ;
-  glNormal3d (  0.850650808354,  0.0, -0.525731112119 ) ; glVertex3d (  0.61803398875,  0.0, -1.61803398875 ) ; glVertex3d (  1.0,  1.0, -1.0 ) ; glVertex3d (  1.61803398875,  0.61803398875, 0.0 ) ; glVertex3d (  1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d (  1.0, -1.0, -1.0 ) ;
-  glEnd () ;
-  glBegin ( GL_POLYGON ) ;
-  glNormal3d ( -0.850650808354,  0.0, -0.525731112119 ) ; glVertex3d ( -0.61803398875,  0.0, -1.61803398875 ) ; glVertex3d ( -1.0, -1.0, -1.0 ) ; glVertex3d ( -1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( -1.61803398875,  0.61803398875, 0.0 ) ; glVertex3d ( -1.0,  1.0, -1.0 ) ;
-  glEnd () ;
-
-  glBegin ( GL_POLYGON ) ;
-  glNormal3d (  0.525731112119,  0.850650808354,  0.0 ) ; glVertex3d (  1.61803398875,  0.61803398875,  0.0 ) ; glVertex3d (  1.0,  1.0, -1.0 ) ; glVertex3d ( 0.0,  1.61803398875, -0.61803398875 ) ; glVertex3d ( 0.0,  1.61803398875,  0.61803398875 ) ; glVertex3d (  1.0,  1.0,  1.0 ) ;
-  glEnd () ;
-  glBegin ( GL_POLYGON ) ;
-  glNormal3d (  0.525731112119, -0.850650808354,  0.0 ) ; glVertex3d (  1.61803398875, -0.61803398875,  0.0 ) ; glVertex3d (  1.0, -1.0,  1.0 ) ; glVertex3d ( 0.0, -1.61803398875,  0.61803398875 ) ; glVertex3d ( 0.0, -1.61803398875, -0.61803398875 ) ; glVertex3d (  1.0, -1.0, -1.0 ) ;
-  glEnd () ;
-  glBegin ( GL_POLYGON ) ;
-  glNormal3d ( -0.525731112119,  0.850650808354,  0.0 ) ; glVertex3d ( -1.61803398875,  0.61803398875,  0.0 ) ; glVertex3d ( -1.0,  1.0,  1.0 ) ; glVertex3d ( 0.0,  1.61803398875,  0.61803398875 ) ; glVertex3d ( 0.0,  1.61803398875, -0.61803398875 ) ; glVertex3d ( -1.0,  1.0, -1.0 ) ;
-  glEnd () ;
-  glBegin ( GL_POLYGON ) ;
-  glNormal3d ( -0.525731112119, -0.850650808354,  0.0 ) ; glVertex3d ( -1.61803398875, -0.61803398875,  0.0 ) ; glVertex3d ( -1.0, -1.0, -1.0 ) ; glVertex3d ( 0.0, -1.61803398875, -0.61803398875 ) ; glVertex3d ( 0.0, -1.61803398875,  0.61803398875 ) ; glVertex3d ( -1.0, -1.0,  1.0 ) ;
-  glEnd () ;
-}
-
-/*
- *
- */
-void FGAPIENTRY glutWireOctahedron( void )
-{
-  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWireOctahedron" );
-
-#define RADIUS    1.0f
-  glBegin( GL_LINE_LOOP );
-    glNormal3d( 0.577350269189, 0.577350269189, 0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, RADIUS, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS );
-    glNormal3d( 0.577350269189, 0.577350269189,-0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS ); glVertex3d( 0.0, RADIUS, 0.0 );
-    glNormal3d( 0.577350269189,-0.577350269189, 0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS ); glVertex3d( 0.0,-RADIUS, 0.0 );
-    glNormal3d( 0.577350269189,-0.577350269189,-0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0,-RADIUS, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS );
-    glNormal3d(-0.577350269189, 0.577350269189, 0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS ); glVertex3d( 0.0, RADIUS, 0.0 );
-    glNormal3d(-0.577350269189, 0.577350269189,-0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, RADIUS, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS );
-    glNormal3d(-0.577350269189,-0.577350269189, 0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0,-RADIUS, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS );
-    glNormal3d(-0.577350269189,-0.577350269189,-0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS ); glVertex3d( 0.0,-RADIUS, 0.0 );
-  glEnd();
-#undef RADIUS
-}
-
-/*
- *
- */
-void FGAPIENTRY glutSolidOctahedron( void )
-{
-  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSolidOctahedron" );
-
-#define RADIUS    1.0f
-  glBegin( GL_TRIANGLES );
-    glNormal3d( 0.577350269189, 0.577350269189, 0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, RADIUS, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS );
-    glNormal3d( 0.577350269189, 0.577350269189,-0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS ); glVertex3d( 0.0, RADIUS, 0.0 );
-    glNormal3d( 0.577350269189,-0.577350269189, 0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS ); glVertex3d( 0.0,-RADIUS, 0.0 );
-    glNormal3d( 0.577350269189,-0.577350269189,-0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0,-RADIUS, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS );
-    glNormal3d(-0.577350269189, 0.577350269189, 0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS ); glVertex3d( 0.0, RADIUS, 0.0 );
-    glNormal3d(-0.577350269189, 0.577350269189,-0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, RADIUS, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS );
-    glNormal3d(-0.577350269189,-0.577350269189, 0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0,-RADIUS, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS );
-    glNormal3d(-0.577350269189,-0.577350269189,-0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS ); glVertex3d( 0.0,-RADIUS, 0.0 );
-  glEnd();
-#undef RADIUS
-}
-
-/* Magic Numbers:  r0 = ( 1, 0, 0 )
- *                 r1 = ( -1/3, 2 sqrt(2) / 3, 0 )
- *                 r2 = ( -1/3, -sqrt(2) / 3, sqrt(6) / 3 )
- *                 r3 = ( -1/3, -sqrt(2) / 3, -sqrt(6) / 3 )
- * |r0| = |r1| = |r2| = |r3| = 1
- * Distance between any two points is 2 sqrt(6) / 3
- *
- * Normals:  The unit normals are simply the negative of the coordinates of the point not on the surface.
- */
-
-#define NUM_TETR_FACES     4
-
-static GLdouble tet_r[4][3] = { {             1.0,             0.0,             0.0 },
-                                { -0.333333333333,  0.942809041582,             0.0 },
-                                { -0.333333333333, -0.471404520791,  0.816496580928 },
-                                { -0.333333333333, -0.471404520791, -0.816496580928 } } ;
-
-static GLint tet_i[4][3] =  /* Vertex indices */
-{
-  { 1, 3, 2 }, { 0, 2, 3 }, { 0, 3, 1 }, { 0, 1, 2 }
-} ;
-
-/*
- *
- */
-void FGAPIENTRY glutWireTetrahedron( void )
-{
-  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWireTetrahedron" );
-
-  glBegin( GL_LINE_LOOP ) ;
-    glNormal3d ( -tet_r[0][0], -tet_r[0][1], -tet_r[0][2] ) ; glVertex3dv ( tet_r[1] ) ; glVertex3dv ( tet_r[3] ) ; glVertex3dv ( tet_r[2] ) ;
-    glNormal3d ( -tet_r[1][0], -tet_r[1][1], -tet_r[1][2] ) ; glVertex3dv ( tet_r[0] ) ; glVertex3dv ( tet_r[2] ) ; glVertex3dv ( tet_r[3] ) ;
-    glNormal3d ( -tet_r[2][0], -tet_r[2][1], -tet_r[2][2] ) ; glVertex3dv ( tet_r[0] ) ; glVertex3dv ( tet_r[3] ) ; glVertex3dv ( tet_r[1] ) ;
-    glNormal3d ( -tet_r[3][0], -tet_r[3][1], -tet_r[3][2] ) ; glVertex3dv ( tet_r[0] ) ; glVertex3dv ( tet_r[1] ) ; glVertex3dv ( tet_r[2] ) ;
-  glEnd() ;
-}
-
-/*
- *
- */
-void FGAPIENTRY glutSolidTetrahedron( void )
-{
-  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSolidTetrahedron" );
-
-  glBegin( GL_TRIANGLES ) ;
-    glNormal3d ( -tet_r[0][0], -tet_r[0][1], -tet_r[0][2] ) ; glVertex3dv ( tet_r[1] ) ; glVertex3dv ( tet_r[3] ) ; glVertex3dv ( tet_r[2] ) ;
-    glNormal3d ( -tet_r[1][0], -tet_r[1][1], -tet_r[1][2] ) ; glVertex3dv ( tet_r[0] ) ; glVertex3dv ( tet_r[2] ) ; glVertex3dv ( tet_r[3] ) ;
-    glNormal3d ( -tet_r[2][0], -tet_r[2][1], -tet_r[2][2] ) ; glVertex3dv ( tet_r[0] ) ; glVertex3dv ( tet_r[3] ) ; glVertex3dv ( tet_r[1] ) ;
-    glNormal3d ( -tet_r[3][0], -tet_r[3][1], -tet_r[3][2] ) ; glVertex3dv ( tet_r[0] ) ; glVertex3dv ( tet_r[1] ) ; glVertex3dv ( tet_r[2] ) ;
-  glEnd() ;
-}
-
-/*
- *
- */
-static double icos_r[12][3] = {
-    {  1.0,             0.0,             0.0            },
-    {  0.447213595500,  0.894427191000,  0.0            },
-    {  0.447213595500,  0.276393202252,  0.850650808354 },
-    {  0.447213595500, -0.723606797748,  0.525731112119 },
-    {  0.447213595500, -0.723606797748, -0.525731112119 },
-    {  0.447213595500,  0.276393202252, -0.850650808354 },
-    { -0.447213595500, -0.894427191000,  0.0 },
-    { -0.447213595500, -0.276393202252,  0.850650808354 },
-    { -0.447213595500,  0.723606797748,  0.525731112119 },
-    { -0.447213595500,  0.723606797748, -0.525731112119 },
-    { -0.447213595500, -0.276393202252, -0.850650808354 },
-    { -1.0,             0.0,             0.0            }
-};
-
-static int icos_v [20][3] = {
-    {  0,  1,  2 },
-    {  0,  2,  3 },
-    {  0,  3,  4 },
-    {  0,  4,  5 },
-    {  0,  5,  1 },
-    {  1,  8,  2 },
-    {  2,  7,  3 },
-    {  3,  6,  4 },
-    {  4, 10,  5 },
-    {  5,  9,  1 },
-    {  1,  9,  8 },
-    {  2,  8,  7 },
-    {  3,  7,  6 },
-    {  4,  6, 10 },
-    {  5, 10,  9 },
-    { 11,  9, 10 },
-    { 11,  8,  9 },
-    { 11,  7,  8 },
-    { 11,  6,  7 },
-    { 11, 10,  6 }
-};
-
-void FGAPIENTRY glutWireIcosahedron( void )
-{
-  int i ;
-
-  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWireIcosahedron" );
-
-  for ( i = 0; i < 20; i++ )
-  {
-    double normal[3] ;
-    normal[0] = ( icos_r[icos_v[i][1]][1] - icos_r[icos_v[i][0]][1] ) * ( icos_r[icos_v[i][2]][2] - icos_r[icos_v[i][0]][2] ) - ( icos_r[icos_v[i][1]][2] - icos_r[icos_v[i][0]][2] ) * ( icos_r[icos_v[i][2]][1] - icos_r[icos_v[i][0]][1] ) ;
-    normal[1] = ( icos_r[icos_v[i][1]][2] - icos_r[icos_v[i][0]][2] ) * ( icos_r[icos_v[i][2]][0] - icos_r[icos_v[i][0]][0] ) - ( icos_r[icos_v[i][1]][0] - icos_r[icos_v[i][0]][0] ) * ( icos_r[icos_v[i][2]][2] - icos_r[icos_v[i][0]][2] ) ;
-    normal[2] = ( icos_r[icos_v[i][1]][0] - icos_r[icos_v[i][0]][0] ) * ( icos_r[icos_v[i][2]][1] - icos_r[icos_v[i][0]][1] ) - ( icos_r[icos_v[i][1]][1] - icos_r[icos_v[i][0]][1] ) * ( icos_r[icos_v[i][2]][0] - icos_r[icos_v[i][0]][0] ) ;
-    glBegin ( GL_LINE_LOOP ) ;
-      glNormal3dv ( normal ) ;
-      glVertex3dv ( icos_r[icos_v[i][0]] ) ;
-      glVertex3dv ( icos_r[icos_v[i][1]] ) ;
-      glVertex3dv ( icos_r[icos_v[i][2]] ) ;
-    glEnd () ;
-  }
-}
-
-/*
- *
- */
-void FGAPIENTRY glutSolidIcosahedron( void )
-{
-  int i ;
-
-  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSolidIcosahedron" );
-
-  glBegin ( GL_TRIANGLES ) ;
-  for ( i = 0; i < 20; i++ )
-  {
-    double normal[3] ;
-    normal[0] = ( icos_r[icos_v[i][1]][1] - icos_r[icos_v[i][0]][1] ) * ( icos_r[icos_v[i][2]][2] - icos_r[icos_v[i][0]][2] ) - ( icos_r[icos_v[i][1]][2] - icos_r[icos_v[i][0]][2] ) * ( icos_r[icos_v[i][2]][1] - icos_r[icos_v[i][0]][1] ) ;
-    normal[1] = ( icos_r[icos_v[i][1]][2] - icos_r[icos_v[i][0]][2] ) * ( icos_r[icos_v[i][2]][0] - icos_r[icos_v[i][0]][0] ) - ( icos_r[icos_v[i][1]][0] - icos_r[icos_v[i][0]][0] ) * ( icos_r[icos_v[i][2]][2] - icos_r[icos_v[i][0]][2] ) ;
-    normal[2] = ( icos_r[icos_v[i][1]][0] - icos_r[icos_v[i][0]][0] ) * ( icos_r[icos_v[i][2]][1] - icos_r[icos_v[i][0]][1] ) - ( icos_r[icos_v[i][1]][1] - icos_r[icos_v[i][0]][1] ) * ( icos_r[icos_v[i][2]][0] - icos_r[icos_v[i][0]][0] ) ;
-      glNormal3dv ( normal ) ;
-      glVertex3dv ( icos_r[icos_v[i][0]] ) ;
-      glVertex3dv ( icos_r[icos_v[i][1]] ) ;
-      glVertex3dv ( icos_r[icos_v[i][2]] ) ;
-  }
-
-  glEnd () ;
-}
-
-/*
- *
- */
-static double rdod_r[14][3] = {
-    {  0.0,             0.0,             1.0 },
-    {  0.707106781187,  0.000000000000,  0.5 },
-    {  0.000000000000,  0.707106781187,  0.5 },
-    { -0.707106781187,  0.000000000000,  0.5 },
-    {  0.000000000000, -0.707106781187,  0.5 },
-    {  0.707106781187,  0.707106781187,  0.0 },
-    { -0.707106781187,  0.707106781187,  0.0 },
-    { -0.707106781187, -0.707106781187,  0.0 },
-    {  0.707106781187, -0.707106781187,  0.0 },
-    {  0.707106781187,  0.000000000000, -0.5 },
-    {  0.000000000000,  0.707106781187, -0.5 },
-    { -0.707106781187,  0.000000000000, -0.5 },
-    {  0.000000000000, -0.707106781187, -0.5 },
-    {  0.0,             0.0,            -1.0 }
-} ;
-
-static int rdod_v [12][4] = {
-    { 0,  1,  5,  2 },
-    { 0,  2,  6,  3 },
-    { 0,  3,  7,  4 },
-    { 0,  4,  8,  1 },
-    { 5, 10,  6,  2 },
-    { 6, 11,  7,  3 },
-    { 7, 12,  8,  4 },
-    { 8,  9,  5,  1 },
-    { 5,  9, 13, 10 },
-    { 6, 10, 13, 11 },
-    { 7, 11, 13, 12 },
-    { 8, 12, 13,  9 }
-};
-
-static double rdod_n[12][3] = {
-    {  0.353553390594,  0.353553390594,  0.5 },
-    { -0.353553390594,  0.353553390594,  0.5 },
-    { -0.353553390594, -0.353553390594,  0.5 },
-    {  0.353553390594, -0.353553390594,  0.5 },
-    {  0.000000000000,  1.000000000000,  0.0 },
-    { -1.000000000000,  0.000000000000,  0.0 },
-    {  0.000000000000, -1.000000000000,  0.0 },
-    {  1.000000000000,  0.000000000000,  0.0 },
-    {  0.353553390594,  0.353553390594, -0.5 },
-    { -0.353553390594,  0.353553390594, -0.5 },
-    { -0.353553390594, -0.353553390594, -0.5 },
-    {  0.353553390594, -0.353553390594, -0.5 }
-};
-
-void FGAPIENTRY glutWireRhombicDodecahedron( void )
-{
-  int i ;
-
-  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWireRhombicDodecahedron" );
-
-  for ( i = 0; i < 12; i++ )
-  {
-    glBegin ( GL_LINE_LOOP ) ;
-      glNormal3dv ( rdod_n[i] ) ;
-      glVertex3dv ( rdod_r[rdod_v[i][0]] ) ;
-      glVertex3dv ( rdod_r[rdod_v[i][1]] ) ;
-      glVertex3dv ( rdod_r[rdod_v[i][2]] ) ;
-      glVertex3dv ( rdod_r[rdod_v[i][3]] ) ;
-    glEnd () ;
-  }
-}
-
-/*
- *
- */
-void FGAPIENTRY glutSolidRhombicDodecahedron( void )
-{
-  int i ;
-
-  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSolidRhombicDodecahedron" );
-
-  glBegin ( GL_QUADS ) ;
-  for ( i = 0; i < 12; i++ )
-  {
-      glNormal3dv ( rdod_n[i] ) ;
-      glVertex3dv ( rdod_r[rdod_v[i][0]] ) ;
-      glVertex3dv ( rdod_r[rdod_v[i][1]] ) ;
-      glVertex3dv ( rdod_r[rdod_v[i][2]] ) ;
-      glVertex3dv ( rdod_r[rdod_v[i][3]] ) ;
-  }
-
-  glEnd () ;
-}
-
-void FGAPIENTRY glutWireSierpinskiSponge ( int num_levels, GLdouble offset[3], GLdouble scale )
-{
-  int i, j ;
-
-  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWireSierpinskiSponge" );
-
-  if ( num_levels == 0 )
-  {
-
-    for ( i = 0 ; i < NUM_TETR_FACES ; i++ )
-    {
-      glBegin ( GL_LINE_LOOP ) ;
-      glNormal3d ( -tet_r[i][0], -tet_r[i][1], -tet_r[i][2] ) ;
-      for ( j = 0; j < 3; j++ )
-      {
-        double x = offset[0] + scale * tet_r[tet_i[i][j]][0] ;
-        double y = offset[1] + scale * tet_r[tet_i[i][j]][1] ;
-        double z = offset[2] + scale * tet_r[tet_i[i][j]][2] ;
-        glVertex3d ( x, y, z ) ;
-      }
-
-      glEnd () ;
-    }
-  }
-  else if ( num_levels > 0 )
-  {
-    GLdouble local_offset[3] ;  /* Use a local variable to avoid buildup of roundoff errors */
-    num_levels -- ;
-    scale /= 2.0 ;
-    for ( i = 0 ; i < NUM_TETR_FACES ; i++ )
-    {
-      local_offset[0] = offset[0] + scale * tet_r[i][0] ;
-      local_offset[1] = offset[1] + scale * tet_r[i][1] ;
-      local_offset[2] = offset[2] + scale * tet_r[i][2] ;
-      glutWireSierpinskiSponge ( num_levels, local_offset, scale ) ;
-    }
-  }
-}
-
-void FGAPIENTRY glutSolidSierpinskiSponge ( int num_levels, GLdouble offset[3], GLdouble scale )
-{
-  int i, j ;
-
-  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSolidSierpinskiSponge" );
-
-  if ( num_levels == 0 )
-  {
-    glBegin ( GL_TRIANGLES ) ;
-
-    for ( i = 0 ; i < NUM_TETR_FACES ; i++ )
-    {
-      glNormal3d ( -tet_r[i][0], -tet_r[i][1], -tet_r[i][2] ) ;
-      for ( j = 0; j < 3; j++ )
-      {
-        double x = offset[0] + scale * tet_r[tet_i[i][j]][0] ;
-        double y = offset[1] + scale * tet_r[tet_i[i][j]][1] ;
-        double z = offset[2] + scale * tet_r[tet_i[i][j]][2] ;
-        glVertex3d ( x, y, z ) ;
-      }
-    }
-
-    glEnd () ;
-  }
-  else if ( num_levels > 0 )
-  {
-    GLdouble local_offset[3] ;  /* Use a local variable to avoid buildup of roundoff errors */
-    num_levels -- ;
-    scale /= 2.0 ;
-    for ( i = 0 ; i < NUM_TETR_FACES ; i++ )
-    {
-      local_offset[0] = offset[0] + scale * tet_r[i][0] ;
-      local_offset[1] = offset[1] + scale * tet_r[i][1] ;
-      local_offset[2] = offset[2] + scale * tet_r[i][2] ;
-      glutSolidSierpinskiSponge ( num_levels, local_offset, scale ) ;
-    }
-  }
-}
-
-/*** END OF FILE ***/
diff --git a/src/Common/freeglut_init.c b/src/Common/freeglut_init.c
deleted file mode 100644 (file)
index bb0c097..0000000
+++ /dev/null
@@ -1,685 +0,0 @@
-/*
- * freeglut_init.c
- *
- * Various freeglut initialization functions.
- *
- * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
- * Written by Pawel W. Olszta, <olszta@sourceforge.net>
- * Creation date: Thu Dec 2 1999
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#define FREEGLUT_BUILDING_LIB
-#include <GL/freeglut.h>
-#include "freeglut_internal.h"
-
-/*
- * TODO BEFORE THE STABLE RELEASE:
- *
- *  fgDeinitialize()        -- Win32's OK, X11 needs the OS-specific
- *                             deinitialization done
- *  glutInitDisplayString() -- display mode string parsing
- *
- * Wouldn't it be cool to use gettext() for error messages? I just love
- * bash saying  "nie znaleziono pliku" instead of "file not found" :)
- * Is gettext easily portable?
- */
-
-/* -- GLOBAL VARIABLES ----------------------------------------------------- */
-
-/*
- * A structure pointed by fgDisplay holds all information
- * regarding the display, screen, root window etc.
- */
-SFG_Display fgDisplay;
-
-/*
- * The settings for the current freeglut session
- */
-SFG_State fgState = { { -1, -1, GL_FALSE },  /* Position */
-                      { 300, 300, GL_TRUE }, /* Size */
-                      GLUT_RGBA | GLUT_SINGLE | GLUT_DEPTH,  /* DisplayMode */
-                      GL_FALSE,              /* Initialised */
-                      GLUT_TRY_DIRECT_CONTEXT,  /* DirectContext */
-                      GL_FALSE,              /* ForceIconic */
-                      GL_FALSE,              /* UseCurrentContext */
-                      GL_FALSE,              /* GLDebugSwitch */
-                      GL_FALSE,              /* XSyncSwitch */
-                      GLUT_KEY_REPEAT_ON,    /* KeyRepeat */
-                      INVALID_MODIFIERS,     /* Modifiers */
-                      0,                     /* FPSInterval */
-                      0,                     /* SwapCount */
-                      0,                     /* SwapTime */
-                      0,                     /* Time */
-                      { NULL, NULL },         /* Timers */
-                      { NULL, NULL },         /* FreeTimers */
-                      NULL,                   /* IdleCallback */
-                      0,                      /* ActiveMenus */
-                      NULL,                   /* MenuStateCallback */
-                      NULL,                   /* MenuStatusCallback */
-                      { -1, -1, GL_TRUE },    /* GameModeSize */
-                      -1,                     /* GameModeDepth */
-                      -1,                     /* GameModeRefresh */
-                      GLUT_ACTION_EXIT,       /* ActionOnWindowClose */
-                      GLUT_EXEC_STATE_INIT,   /* ExecState */
-                      NULL,                   /* ProgramName */
-                      GL_FALSE,               /* JoysticksInitialised */
-                      0,                      /* NumActiveJoysticks */
-                      GL_FALSE,               /* InputDevsInitialised */
-                      0,                      /* MouseWheelTicks */
-                      1,                      /* AuxiliaryBufferNumber */
-                      4,                      /* SampleNumber */
-                      1,                      /* MajorVersion */
-                      0,                      /* MinorVersion */
-                      0,                      /* ContextFlags */
-                      0,                      /* ContextProfile */
-                      NULL,                   /* ErrorFunc */
-                      NULL                    /* WarningFunc */
-};
-
-
-/* -- PRIVATE FUNCTIONS ---------------------------------------------------- */
-
-extern void fgPlatformInitialize( const char* displayName );
-extern void fgPlatformDeinitialiseInputDevices ( void );
-extern void fgPlatformCloseDisplay ( void );
-extern void fgPlatformDestroyContext ( SFG_PlatformDisplay pDisplay, SFG_WindowContextType MContext );
-
-
-void fghParseCommandLineArguments ( int* pargc, char** argv, char **pDisplayName, char **pGeometry )
-{
-#ifndef _WIN32_WCE
-    int i, j, argc = *pargc;
-
-    {
-           /* check if GLUT_FPS env var is set */
-        const char *fps = getenv( "GLUT_FPS" );
-
-        if( fps )
-        {
-            int interval;
-            sscanf( fps, "%d", &interval );
-
-            if( interval <= 0 )
-                fgState.FPSInterval = 5000;  /* 5000 millisecond default */
-            else
-                fgState.FPSInterval = interval;
-        }
-    }
-
-    *pDisplayName = getenv( "DISPLAY" );
-
-    for( i = 1; i < argc; i++ )
-    {
-        if( strcmp( argv[ i ], "-display" ) == 0 )
-        {
-            if( ++i >= argc )
-                fgError( "-display parameter must be followed by display name" );
-
-            *pDisplayName = argv[ i ];
-
-            argv[ i - 1 ] = NULL;
-            argv[ i     ] = NULL;
-            ( *pargc ) -= 2;
-        }
-        else if( strcmp( argv[ i ], "-geometry" ) == 0 )
-        {
-            if( ++i >= argc )
-                fgError( "-geometry parameter must be followed by window "
-                         "geometry settings" );
-
-            *pGeometry = argv[ i ];
-
-            argv[ i - 1 ] = NULL;
-            argv[ i     ] = NULL;
-            ( *pargc ) -= 2;
-        }
-        else if( strcmp( argv[ i ], "-direct" ) == 0)
-        {
-            if( fgState.DirectContext == GLUT_FORCE_INDIRECT_CONTEXT )
-                fgError( "parameters ambiguity, -direct and -indirect "
-                    "cannot be both specified" );
-
-            fgState.DirectContext = GLUT_FORCE_DIRECT_CONTEXT;
-            argv[ i ] = NULL;
-            ( *pargc )--;
-        }
-        else if( strcmp( argv[ i ], "-indirect" ) == 0 )
-        {
-            if( fgState.DirectContext == GLUT_FORCE_DIRECT_CONTEXT )
-                fgError( "parameters ambiguity, -direct and -indirect "
-                    "cannot be both specified" );
-
-            fgState.DirectContext = GLUT_FORCE_INDIRECT_CONTEXT;
-            argv[ i ] = NULL;
-            (*pargc)--;
-        }
-        else if( strcmp( argv[ i ], "-iconic" ) == 0 )
-        {
-            fgState.ForceIconic = GL_TRUE;
-            argv[ i ] = NULL;
-            ( *pargc )--;
-        }
-        else if( strcmp( argv[ i ], "-gldebug" ) == 0 )
-        {
-            fgState.GLDebugSwitch = GL_TRUE;
-            argv[ i ] = NULL;
-            ( *pargc )--;
-        }
-        else if( strcmp( argv[ i ], "-sync" ) == 0 )
-        {
-            fgState.XSyncSwitch = GL_TRUE;
-            argv[ i ] = NULL;
-            ( *pargc )--;
-        }
-    }
-
-    /* Compact {argv}. */
-    for( i = j = 1; i < *pargc; i++, j++ )
-    {
-        /* Guaranteed to end because there are "*pargc" arguments left */
-        while ( argv[ j ] == NULL )
-            j++;
-        if ( i != j )
-            argv[ i ] = argv[ j ];
-    }
-
-#endif /* _WIN32_WCE */
-
-}
-
-
-void fghCloseInputDevices ( void )
-{
-    if ( fgState.JoysticksInitialised )
-        fgJoystickClose( );
-
-    if ( fgState.InputDevsInitialised )
-        fgInputDeviceClose( );
-}
-
-
-/*
- * Perform the freeglut deinitialization...
- */
-void fgDeinitialize( void )
-{
-    SFG_Timer *timer;
-
-    if( !fgState.Initialised )
-    {
-        return;
-    }
-
-       /* If we're in game mode, we want to leave game mode */
-    if( fgStructure.GameModeWindow ) {
-        glutLeaveGameMode();
-    }
-
-    /* If there was a menu created, destroy the rendering context */
-    if( fgStructure.MenuContext )
-    {
-               fgPlatformDestroyContext (fgDisplay.pDisplay, fgStructure.MenuContext->MContext );
-        free( fgStructure.MenuContext );
-        fgStructure.MenuContext = NULL;
-    }
-
-    fgDestroyStructure( );
-
-    while( ( timer = fgState.Timers.First) )
-    {
-        fgListRemove( &fgState.Timers, &timer->Node );
-        free( timer );
-    }
-
-    while( ( timer = fgState.FreeTimers.First) )
-    {
-        fgListRemove( &fgState.FreeTimers, &timer->Node );
-        free( timer );
-    }
-
-       fgPlatformDeinitialiseInputDevices ();
-
-       fgState.MouseWheelTicks = 0;
-
-    fgState.MajorVersion = 1;
-    fgState.MinorVersion = 0;
-    fgState.ContextFlags = 0;
-    fgState.ContextProfile = 0;
-
-    fgState.Initialised = GL_FALSE;
-
-    fgState.Position.X = -1;
-    fgState.Position.Y = -1;
-    fgState.Position.Use = GL_FALSE;
-
-    fgState.Size.X = 300;
-    fgState.Size.Y = 300;
-    fgState.Size.Use = GL_TRUE;
-
-    fgState.DisplayMode = GLUT_RGBA | GLUT_SINGLE | GLUT_DEPTH;
-
-    fgState.DirectContext  = GLUT_TRY_DIRECT_CONTEXT;
-    fgState.ForceIconic         = GL_FALSE;
-    fgState.UseCurrentContext   = GL_FALSE;
-    fgState.GLDebugSwitch       = GL_FALSE;
-    fgState.XSyncSwitch         = GL_FALSE;
-    fgState.ActionOnWindowClose = GLUT_ACTION_EXIT;
-    fgState.ExecState           = GLUT_EXEC_STATE_INIT;
-
-    fgState.KeyRepeat       = GLUT_KEY_REPEAT_ON;
-    fgState.Modifiers       = INVALID_MODIFIERS;
-
-    fgState.GameModeSize.X  = -1;
-    fgState.GameModeSize.Y  = -1;
-    fgState.GameModeDepth   = -1;
-    fgState.GameModeRefresh = -1;
-
-    fgListInit( &fgState.Timers );
-    fgListInit( &fgState.FreeTimers );
-
-    fgState.IdleCallback = NULL;
-    fgState.MenuStateCallback = ( FGCBMenuState )NULL;
-    fgState.MenuStatusCallback = ( FGCBMenuStatus )NULL;
-
-    fgState.SwapCount   = 0;
-    fgState.SwapTime    = 0;
-    fgState.FPSInterval = 0;
-
-    if( fgState.ProgramName )
-    {
-        free( fgState.ProgramName );
-        fgState.ProgramName = NULL;
-    }
-
-       fgPlatformCloseDisplay ();
-
-    fgState.Initialised = GL_FALSE;
-}
-
-
-/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
-#if !TARGET_HOST_POSIX_X11
-#   include "../Common/xparsegeometry_repl.h"
-#endif
-
-/*
- * Perform initialization. This usually happens on the program startup
- * and restarting after glutMainLoop termination...
- */
-void FGAPIENTRY glutInit( int* pargc, char** argv )
-{
-    char* displayName = NULL;
-    char* geometry = NULL;
-    if( fgState.Initialised )
-        fgError( "illegal glutInit() reinitialization attempt" );
-
-    if (pargc && *pargc && argv && *argv && **argv)
-    {
-        fgState.ProgramName = strdup (*argv);
-
-        if( !fgState.ProgramName )
-            fgError ("Could not allocate space for the program's name.");
-    }
-
-    fgCreateStructure( );
-
-    /* Get start time */
-    fgState.Time = fgSystemTime();
-
-       fghParseCommandLineArguments ( pargc, argv, &displayName, &geometry );
-
-    /*
-     * Have the display created now. If there wasn't a "-display"
-     * in the program arguments, we will use the DISPLAY environment
-     * variable for opening the X display (see code above):
-     */
-    fgPlatformInitialize( displayName );
-
-    /*
-     * Geometry parsing deferred until here because we may need the screen
-     * size.
-     */
-
-    if (geometry )
-    {
-        unsigned int parsedWidth, parsedHeight;
-        int mask = XParseGeometry( geometry,
-                                   &fgState.Position.X, &fgState.Position.Y,
-                                   &parsedWidth, &parsedHeight );
-        /* TODO: Check for overflow? */
-        fgState.Size.X = parsedWidth;
-        fgState.Size.Y = parsedHeight;
-
-        if( (mask & (WidthValue|HeightValue)) == (WidthValue|HeightValue) )
-            fgState.Size.Use = GL_TRUE;
-
-        if( mask & XNegative )
-            fgState.Position.X += fgDisplay.ScreenWidth - fgState.Size.X;
-
-        if( mask & YNegative )
-            fgState.Position.Y += fgDisplay.ScreenHeight - fgState.Size.Y;
-
-        if( (mask & (XValue|YValue)) == (XValue|YValue) )
-            fgState.Position.Use = GL_TRUE;
-    }
-}
-
-/*
- * Undoes all the "glutInit" stuff
- */
-void FGAPIENTRY glutExit ( void )
-{
-  fgDeinitialize ();
-}
-
-/*
- * Sets the default initial window position for new windows
- */
-void FGAPIENTRY glutInitWindowPosition( int x, int y )
-{
-    fgState.Position.X = x;
-    fgState.Position.Y = y;
-
-    if( ( x >= 0 ) && ( y >= 0 ) )
-        fgState.Position.Use = GL_TRUE;
-    else
-        fgState.Position.Use = GL_FALSE;
-}
-
-/*
- * Sets the default initial window size for new windows
- */
-void FGAPIENTRY glutInitWindowSize( int width, int height )
-{
-    fgState.Size.X = width;
-    fgState.Size.Y = height;
-
-    if( ( width > 0 ) && ( height > 0 ) )
-        fgState.Size.Use = GL_TRUE;
-    else
-        fgState.Size.Use = GL_FALSE;
-}
-
-/*
- * Sets the default display mode for all new windows
- */
-void FGAPIENTRY glutInitDisplayMode( unsigned int displayMode )
-{
-    /* We will make use of this value when creating a new OpenGL context... */
-    fgState.DisplayMode = displayMode;
-}
-
-
-/* -- INIT DISPLAY STRING PARSING ------------------------------------------ */
-
-static char* Tokens[] =
-{
-    "alpha", "acca", "acc", "blue", "buffer", "conformant", "depth", "double",
-    "green", "index", "num", "red", "rgba", "rgb", "luminance", "stencil",
-    "single", "stereo", "samples", "slow", "win32pdf", "win32pfd", "xvisual",
-    "xstaticgray", "xgrayscale", "xstaticcolor", "xpseudocolor",
-    "xtruecolor", "xdirectcolor",
-    "xstaticgrey", "xgreyscale", "xstaticcolour", "xpseudocolour",
-    "xtruecolour", "xdirectcolour", "borderless", "aux"
-};
-#define NUM_TOKENS             (sizeof(Tokens) / sizeof(*Tokens))
-
-void FGAPIENTRY glutInitDisplayString( const char* displayMode )
-{
-    int glut_state_flag = 0 ;
-    /*
-     * Unpack a lot of options from a character string.  The options are
-     * delimited by blanks or tabs.
-     */
-    char *token ;
-    size_t len = strlen ( displayMode );
-    char *buffer = (char *)malloc ( (len+1) * sizeof(char) );
-    memcpy ( buffer, displayMode, len );
-    buffer[len] = '\0';
-
-    token = strtok ( buffer, " \t" );
-
-    while ( token )
-    {
-        /* Process this token */
-        int i ;
-
-        /* Temporary fix:  Ignore any length specifications and at least
-         * process the basic token
-         * TODO:  Fix this permanently
-         */
-        size_t cleanlength = strcspn ( token, "=<>~!" );
-
-        for ( i = 0; i < NUM_TOKENS; i++ )
-        {
-            if ( strncmp ( token, Tokens[i], cleanlength ) == 0 ) break ;
-        }
-
-        switch ( i )
-        {
-        case 0 :  /* "alpha":  Alpha color buffer precision in bits */
-            glut_state_flag |= GLUT_ALPHA ;  /* Somebody fix this for me! */
-            break ;
-
-        case 1 :  /* "acca":  Red, green, blue, and alpha accumulation buffer
-                     precision in bits */
-            break ;
-
-        case 2 :  /* "acc":  Red, green, and blue accumulation buffer precision
-                     in bits with zero bits alpha */
-            glut_state_flag |= GLUT_ACCUM ;  /* Somebody fix this for me! */
-            break ;
-
-        case 3 :  /* "blue":  Blue color buffer precision in bits */
-            break ;
-
-        case 4 :  /* "buffer":  Number of bits in the color index color buffer
-                   */
-            break ;
-
-        case 5 :  /* "conformant":  Boolean indicating if the frame buffer
-                     configuration is conformant or not */
-            break ;
-
-        case 6 : /* "depth":  Number of bits of precision in the depth buffer */
-            glut_state_flag |= GLUT_DEPTH ;  /* Somebody fix this for me! */
-            break ;
-
-        case 7 :  /* "double":  Boolean indicating if the color buffer is
-                     double buffered */
-            glut_state_flag |= GLUT_DOUBLE ;
-            break ;
-
-        case 8 :  /* "green":  Green color buffer precision in bits */
-            break ;
-
-        case 9 :  /* "index":  Boolean if the color model is color index or not
-                   */
-            glut_state_flag |= GLUT_INDEX ;
-            break ;
-
-        case 10 :  /* "num":  A special capability  name indicating where the
-                      value represents the Nth frame buffer configuration
-                      matching the description string */
-            break ;
-
-        case 11 :  /* "red":  Red color buffer precision in bits */
-            break ;
-
-        case 12 :  /* "rgba":  Number of bits of red, green, blue, and alpha in
-                      the RGBA color buffer */
-            glut_state_flag |= GLUT_RGBA ;  /* Somebody fix this for me! */
-            break ;
-
-        case 13 :  /* "rgb":  Number of bits of red, green, and blue in the
-                      RGBA color buffer with zero bits alpha */
-            glut_state_flag |= GLUT_RGB ;  /* Somebody fix this for me! */
-            break ;
-
-        case 14 :  /* "luminance":  Number of bits of red in the RGBA and zero
-                      bits of green, blue (alpha not specified) of color buffer
-                      precision */
-            glut_state_flag |= GLUT_LUMINANCE ; /* Somebody fix this for me! */
-            break ;
-
-        case 15 :  /* "stencil":  Number of bits in the stencil buffer */
-            glut_state_flag |= GLUT_STENCIL;  /* Somebody fix this for me! */
-            break ;
-
-        case 16 :  /* "single":  Boolean indicate the color buffer is single
-                      buffered */
-            glut_state_flag |= GLUT_SINGLE ;
-            break ;
-
-        case 17 :  /* "stereo":  Boolean indicating the color buffer supports
-                      OpenGL-style stereo */
-            glut_state_flag |= GLUT_STEREO ;
-            break ;
-
-        case 18 :  /* "samples":  Indicates the number of multisamples to use
-                      based on GLX's SGIS_multisample extension (for
-                      antialiasing) */
-            glut_state_flag |= GLUT_MULTISAMPLE ; /*Somebody fix this for me!*/
-            break ;
-
-        case 19 :  /* "slow":  Boolean indicating if the frame buffer
-                      configuration is slow or not */
-            break ;
-
-        case 20 :  /* "win32pdf": (incorrect spelling but was there before */
-        case 21 :  /* "win32pfd":  matches the Win32 Pixel Format Descriptor by
-                      number */
-#if TARGET_HOST_MS_WINDOWS
-#endif
-            break ;
-
-        case 22 :  /* "xvisual":  matches the X visual ID by number */
-#if TARGET_HOST_POSIX_X11
-#endif
-            break ;
-
-        case 23 :  /* "xstaticgray": */
-        case 29 :  /* "xstaticgrey":  boolean indicating if the frame buffer
-                      configuration's X visual is of type StaticGray */
-#if TARGET_HOST_POSIX_X11
-#endif
-            break ;
-
-        case 24 :  /* "xgrayscale": */
-        case 30 :  /* "xgreyscale":  boolean indicating if the frame buffer
-                      configuration's X visual is of type GrayScale */
-#if TARGET_HOST_POSIX_X11
-#endif
-            break ;
-
-        case 25 :  /* "xstaticcolor": */
-        case 31 :  /* "xstaticcolour":  boolean indicating if the frame buffer
-                      configuration's X visual is of type StaticColor */
-#if TARGET_HOST_POSIX_X11
-#endif
-            break ;
-
-        case 26 :  /* "xpseudocolor": */
-        case 32 :  /* "xpseudocolour":  boolean indicating if the frame buffer
-                      configuration's X visual is of type PseudoColor */
-#if TARGET_HOST_POSIX_X11
-#endif
-            break ;
-
-        case 27 :  /* "xtruecolor": */
-        case 33 :  /* "xtruecolour":  boolean indicating if the frame buffer
-                      configuration's X visual is of type TrueColor */
-#if TARGET_HOST_POSIX_X11
-#endif
-            break ;
-
-        case 28 :  /* "xdirectcolor": */
-        case 34 :  /* "xdirectcolour":  boolean indicating if the frame buffer
-                      configuration's X visual is of type DirectColor */
-#if TARGET_HOST_POSIX_X11
-#endif
-            break ;
-
-        case 35 :  /* "borderless":  windows should not have borders */
-            glut_state_flag |= GLUT_BORDERLESS;
-            break ;
-
-        case 36 :  /* "aux":  some number of aux buffers */
-            glut_state_flag |= GLUT_AUX;
-            break ;
-
-        case 37 :  /* Unrecognized */
-            fgWarning ( "WARNING - Display string token not recognized:  %s",
-                        token );
-            break ;
-        }
-
-        token = strtok ( NULL, " \t" );
-    }
-
-    free ( buffer );
-
-    /* We will make use of this value when creating a new OpenGL context... */
-    fgState.DisplayMode = glut_state_flag;
-}
-
-/* -- SETTING OPENGL 3.0 CONTEXT CREATION PARAMETERS ---------------------- */
-
-void FGAPIENTRY glutInitContextVersion( int majorVersion, int minorVersion )
-{
-    /* We will make use of these value when creating a new OpenGL context... */
-    fgState.MajorVersion = majorVersion;
-    fgState.MinorVersion = minorVersion;
-}
-
-
-void FGAPIENTRY glutInitContextFlags( int flags )
-{
-    /* We will make use of this value when creating a new OpenGL context... */
-    fgState.ContextFlags = flags;
-}
-
-void FGAPIENTRY glutInitContextProfile( int profile )
-{
-    /* We will make use of this value when creating a new OpenGL context... */
-    fgState.ContextProfile = profile;
-}
-
-/* -------------- User Defined Error/Warning Handler Support -------------- */
-
-/*
- * Sets the user error handler (note the use of va_list for the args to the fmt)
- */
-void FGAPIENTRY glutInitErrorFunc( void (* vfgError) ( const char *fmt, va_list ap ) )
-{
-    /* This allows user programs to handle freeglut errors */
-    fgState.ErrorFunc = vfgError;
-}
-
-/*
- * Sets the user warning handler (note the use of va_list for the args to the fmt)
- */
-void FGAPIENTRY glutInitWarningFunc( void (* vfgWarning) ( const char *fmt, va_list ap ) )
-{
-    /* This allows user programs to handle freeglut warnings */
-    fgState.WarningFunc = vfgWarning;
-}
-
-/*** END OF FILE ***/
\ No newline at end of file
diff --git a/src/Common/freeglut_input_devices.c b/src/Common/freeglut_input_devices.c
deleted file mode 100644 (file)
index 1dab040..0000000
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- * freeglut_input_devices.c
- *
- * Handles miscellaneous input devices via direct serial-port access.
- * Proper X11 XInput device support is not yet supported.
- * Also lacks Mac support.
- *
- * Written by Joe Krahn <krahn@niehs.nih.gov> 2005
- *
- * Copyright (c) 2005 Stephen J. Baker. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * PAWEL W. OLSZTA OR STEPHEN J. BAKER BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-
-#ifdef HAVE_CONFIG_H
-#    include "config.h"
-#endif
-
-#include <GL/freeglut.h>
-#include "freeglut_internal.h"
-
-typedef struct _serialport SERIALPORT;
-
-
-/********************* Dialbox definitions ***********************/
-
-#define DIAL_NUM_VALUATORS 8
-
-/* dial parser state machine states */
-#define DIAL_NEW                (-1)
-#define DIAL_WHICH_DEVICE       0
-#define DIAL_VALUE_HIGH         1
-#define DIAL_VALUE_LOW          2
-
-/* dial/button box commands */
-#define DIAL_INITIALIZE                 0x20
-#define DIAL_SET_LEDS                   0x75
-#define DIAL_SET_TEXT                   0x61
-#define DIAL_SET_AUTO_DIALS             0x50
-#define DIAL_SET_AUTO_DELTA_DIALS       0x51
-#define DIAL_SET_FILTER                 0x53
-#define DIAL_SET_BUTTONS_MOM_TYPE       0x71
-#define DIAL_SET_AUTO_MOM_BUTTONS       0x73
-#define DIAL_SET_ALL_LEDS               0x4b
-#define DIAL_CLEAR_ALL_LEDS             0x4c
-
-/* dial/button box replies and events */
-#define DIAL_INITIALIZED        0x20
-#define DIAL_BASE               0x30
-#define DIAL_DELTA_BASE         0x40
-#define DIAL_PRESS_BASE         0xc0
-#define DIAL_RELEASE_BASE       0xe0
-
-/* macros to determine reply type */
-#define IS_DIAL_EVENT(ch)       (((ch)>=DIAL_BASE)&&((ch)<DIAL_BASE+DIAL_NUM_VALUATORS))
-#define IS_KEY_PRESS(ch)        (((ch)>=DIAL_PRESS_BASE)&&((ch)<DIAL_PRESS_BASE+DIAL_NUM_BUTTONS))
-#define IS_KEY_RELEASE(ch)      (((ch)>=DIAL_RELEASE_BASE)&&((ch)<DIAL_RELEASE_BASE+DIAL_NUM_BUTTONS))
-#define IS_INIT_EVENT(ch)       ((ch)==DIAL_INITIALIZED)
-
-/*****************************************************************/
-
-extern SERIALPORT *serial_open ( const char *device );
-extern void serial_close ( SERIALPORT *port );
-extern int serial_getchar ( SERIALPORT *port );
-extern int serial_putchar ( SERIALPORT *port, unsigned char ch );
-extern void serial_flush ( SERIALPORT *port );
-
-extern void fgPlatformRegisterDialDevice ( const char *dial_device );
-static void send_dial_event(int dial, int value);
-static void poll_dials(int id);
-
-/* local variables */
-static SERIALPORT *dialbox_port=NULL;
-
-/*****************************************************************/
-
-/*
- * Implementation for glutDeviceGet(GLUT_HAS_DIAL_AND_BUTTON_BOX)
- */
-int fgInputDeviceDetect( void )
-{
-    fgInitialiseInputDevices ();
-
-    if ( !dialbox_port )
-        return 0;
-
-    if ( !fgState.InputDevsInitialised )
-        return 0;
-
-    return 1;
-}
-
-/*
- * Try initializing the input device(s)
- */
-void fgInitialiseInputDevices ( void )
-{
-    if( !fgState.InputDevsInitialised )
-    {
-        const char *dial_device=NULL;
-        dial_device = getenv ( "GLUT_DIALS_SERIAL" );
-               fgPlatformRegisterDialDevice ( dial_device );
-
-        if ( !dial_device ) return;
-        if ( !( dialbox_port = serial_open ( dial_device ) ) ) return;
-        serial_putchar(dialbox_port,DIAL_INITIALIZE);
-        glutTimerFunc ( 10, poll_dials, 0 );
-        fgState.InputDevsInitialised = GL_TRUE;
-    }
-}
-
-/*
- *
- */
-void fgInputDeviceClose( void )
-{
-    if ( fgState.InputDevsInitialised )
-    {
-        serial_close ( dialbox_port );
-        dialbox_port = NULL;
-        fgState.InputDevsInitialised = GL_FALSE;
-    }
-}
-
-/********************************************************************/
-
-/* Check all windows for dialbox callbacks */
-static void fghcbEnumDialCallbacks ( SFG_Window *window, SFG_Enumerator *enumerator )
-{
-    /* Built-in to INVOKE_WCB():  if window->Callbacks[CB_Dials] */
-    INVOKE_WCB ( *window,Dials, ( ((int*)enumerator->data)[0], ((int*)enumerator->data)[1]) );
-    fgEnumSubWindows ( window, fghcbEnumDialCallbacks, enumerator );
-}
-
-static void send_dial_event ( int num, int value )
-{
-    SFG_Enumerator enumerator;
-    int data[2];
-    data[0] = num;
-    data[1] = value;
-    enumerator.found = GL_FALSE;
-    enumerator.data  =  data;
-    fgEnumWindows ( fghcbEnumDialCallbacks, &enumerator );
-}
-
-/********************************************************************/
-static void poll_dials ( int id )
-{
-    int data;
-    static int dial_state = DIAL_NEW;
-    static int dial_which;
-    static int dial_value;
-    static int dials[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
-
-    if ( !dialbox_port ) return;
-
-    while ( (data=serial_getchar(dialbox_port)) != EOF )
-    {
-        if ( ( dial_state > DIAL_WHICH_DEVICE ) || IS_DIAL_EVENT ( data ) )
-        {
-            switch ( dial_state )
-            {
-            case DIAL_WHICH_DEVICE:
-                dial_which = data - DIAL_BASE;
-                dial_state++;
-                break;
-            case DIAL_VALUE_HIGH:
-                dial_value = ( data << 8 );
-                dial_state++;
-                break;
-            case DIAL_VALUE_LOW:
-                dial_value |= data;
-                if ( dial_value & 0x8000 ) dial_value -= 0x10000;
-                dials[dial_which] = dial_value;
-                send_dial_event ( dial_which + 1, dial_value * 360 / 256 );
-                dial_state = DIAL_WHICH_DEVICE;
-                break;
-            default:
-                /* error: Impossible state value! */
-                break;
-            }
-        }
-        else if ( data == DIAL_INITIALIZED )
-        {
-            fgState.InputDevsInitialised = GL_TRUE;
-            dial_state = DIAL_WHICH_DEVICE;
-            serial_putchar(dialbox_port,DIAL_SET_AUTO_DIALS);
-            serial_putchar(dialbox_port,0xff);
-            serial_putchar(dialbox_port,0xff);
-        }
-        else  /* Unknown data; try flushing. */
-            serial_flush(dialbox_port);
-    }
-
-    glutTimerFunc ( 2, poll_dials, 0 );
-}
-
diff --git a/src/Common/freeglut_internal.h b/src/Common/freeglut_internal.h
deleted file mode 100644 (file)
index 9a3ef7b..0000000
+++ /dev/null
@@ -1,970 +0,0 @@
-/*
- * freeglut_internal.h
- *
- * The freeglut library private include file.
- *
- * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
- * Written by Pawel W. Olszta, <olszta@sourceforge.net>
- * Creation date: Thu Dec 2 1999
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef  FREEGLUT_INTERNAL_H
-#define  FREEGLUT_INTERNAL_H
-
-#ifdef HAVE_CONFIG_H
-#    include "config.h"
-#endif
-
-/* XXX Update these for each release! */
-#define  VERSION_MAJOR 3
-#define  VERSION_MINOR 0
-#define  VERSION_PATCH 0
-
-/* Freeglut is intended to function under all Unix/X11 and Win32 platforms. */
-/* XXX: Don't all MS-Windows compilers (except Cygwin) have _WIN32 defined?
- * XXX: If so, remove the first set of defined()'s below.
- */
-#if !defined(TARGET_HOST_POSIX_X11) && !defined(TARGET_HOST_MS_WINDOWS) && !defined(TARGET_HOST_MAC_OSX) && !defined(TARGET_HOST_SOLARIS)
-#if defined(_MSC_VER) || defined(__WATCOMC__) || defined(__MINGW32__) \
-    || defined(_WIN32) || defined(_WIN32_WCE) \
-    || ( defined(__CYGWIN__) && defined(X_DISPLAY_MISSING) )
-#   define  TARGET_HOST_MS_WINDOWS 1
-
-#elif defined (ANDROID)
-#   define  TARGET_HOST_ANDROID  1
-
-#elif defined(__posix__) || defined(__unix__) || defined(__linux__) || defined(__sun)
-#   define  TARGET_HOST_POSIX_X11  1
-
-#elif defined(__APPLE__)
-/* This is a placeholder until we get native OSX support ironed out -- JFF 11/18/09 */
-#   define  TARGET_HOST_POSIX_X11  1
-/* #   define  TARGET_HOST_MAC_OSX    1 */
-
-#else
-#   error "Unrecognized target host!"
-
-#endif
-#endif
-
-/* Detect both SunPro and gcc compilers on Sun Solaris */
-#if defined (__SVR4) && defined (__sun)
-#   define TARGET_HOST_SOLARIS 1
-#endif
-
-#ifndef TARGET_HOST_MS_WINDOWS
-#   define  TARGET_HOST_MS_WINDOWS 0
-#endif
-
-#ifndef  TARGET_HOST_POSIX_X11
-#   define  TARGET_HOST_POSIX_X11  0
-#endif
-
-#ifndef  TARGET_HOST_MAC_OSX
-#   define  TARGET_HOST_MAC_OSX    0
-#endif
-
-#ifndef  TARGET_HOST_SOLARIS
-#   define  TARGET_HOST_SOLARIS    0
-#endif
-
-/* -- FIXED CONFIGURATION LIMITS ------------------------------------------- */
-
-#define  FREEGLUT_MAX_MENUS         3
-
-/* These files should be available on every platform. */
-#include <stdio.h>
-#include <string.h>
-#include <math.h>
-#include <stdlib.h>
-#include <stdarg.h>
-
-/* These are included based on autoconf directives. */
-#ifdef HAVE_SYS_TYPES_H
-#    include <sys/types.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#    include <unistd.h>
-#endif
-#ifdef TIME_WITH_SYS_TIME
-#    include <sys/time.h>
-#    include <time.h>
-#elif defined(HAVE_SYS_TIME_H)
-#    include <sys/time.h>
-#else
-#    include <time.h>
-#endif
-
-/* -- AUTOCONF HACKS --------------------------------------------------------*/
-
-/* XXX: Update autoconf to avoid these.
- * XXX: Are non-POSIX platforms intended not to use autoconf?
- * If so, perhaps there should be a config_guess.h for them. Alternatively,
- * config guesses could be placed above, just after the config.h exclusion.
- */
-#if defined(__FreeBSD__) || defined(__NetBSD__)
-#    define HAVE_USB_JS 1
-#    if defined(__NetBSD__) || ( defined(__FreeBSD__) && __FreeBSD_version >= 500000)
-#        define HAVE_USBHID_H 1
-#    endif
-#endif
-
-#if defined(_MSC_VER) || defined(__WATCOMC__)
-/* strdup() is non-standard, for all but POSIX-2001 */
-#define strdup   _strdup
-#endif
-
-/* M_PI is non-standard (defined by BSD, not ISO-C) */
-#ifndef M_PI
-#    define  M_PI  3.14159265358979323846
-#endif
-
-#ifdef HAVE_STDBOOL_H
-#    include <stdbool.h>
-#    ifndef TRUE
-#        define TRUE true
-#    endif
-#    ifndef FALSE
-#        define FALSE false
-#    endif
-#else
-#    ifndef TRUE
-#        define  TRUE  1
-#    endif
-#    ifndef FALSE
-#        define  FALSE  0
-#    endif
-#endif
-
-/* General defines */
-#define INVALID_MODIFIERS 0xffffffff
-
-/* FreeGLUT internal time type */
-#if defined(HAVE_STDINT_H)
-#   include <stdint.h>
-    typedef uint64_t fg_time_t;
-#elif defined(HAVE_INTTYPES_H)
-#   include <inttypes.h>
-    typedef uint64_t fg_time_t;
-#elif defined(HAVE_ULONG_LONG)
-    typedef unsigned long long fg_time_t;
-#else
-    typedef unsigned long fg_time_t;
-#endif
-
-
-
-/* Platform-specific includes */
-#if TARGET_HOST_POSIX_X11
-#include "../x11/freeglut_internal_x11.h"
-#endif
-#if TARGET_HOST_MS_WINDOWS
-#include "../mswin/freeglut_internal_mswin.h"
-#endif
-#if TARGET_HOST_ANDROID
-#include "../android/freeglut_internal_android.h"
-#endif
-
-
-/* -- GLOBAL TYPE DEFINITIONS ---------------------------------------------- */
-
-/* Freeglut callbacks type definitions */
-typedef void (* FGCBDisplay       )( void );
-typedef void (* FGCBReshape       )( int, int );
-typedef void (* FGCBVisibility    )( int );
-typedef void (* FGCBKeyboard      )( unsigned char, int, int );
-typedef void (* FGCBSpecial       )( int, int, int );
-typedef void (* FGCBMouse         )( int, int, int, int );
-typedef void (* FGCBMouseWheel    )( int, int, int, int );
-typedef void (* FGCBMotion        )( int, int );
-typedef void (* FGCBPassive       )( int, int );
-typedef void (* FGCBEntry         )( int );
-typedef void (* FGCBWindowStatus  )( int );
-typedef void (* FGCBSelect        )( int, int, int );
-typedef void (* FGCBJoystick      )( unsigned int, int, int, int );
-typedef void (* FGCBKeyboardUp    )( unsigned char, int, int );
-typedef void (* FGCBSpecialUp     )( int, int, int );
-typedef void (* FGCBOverlayDisplay)( void );
-typedef void (* FGCBSpaceMotion   )( int, int, int );
-typedef void (* FGCBSpaceRotation )( int, int, int );
-typedef void (* FGCBSpaceButton   )( int, int );
-typedef void (* FGCBDials         )( int, int );
-typedef void (* FGCBButtonBox     )( int, int );
-typedef void (* FGCBTabletMotion  )( int, int );
-typedef void (* FGCBTabletButton  )( int, int, int, int );
-typedef void (* FGCBDestroy       )( void );
-
-typedef void (* FGCBMultiEntry   )( int, int );
-typedef void (* FGCBMultiButton  )( int, int, int, int, int );
-typedef void (* FGCBMultiMotion  )( int, int, int );
-typedef void (* FGCBMultiPassive )( int, int, int );
-
-/* The global callbacks type definitions */
-typedef void (* FGCBIdle          )( void );
-typedef void (* FGCBTimer         )( int );
-typedef void (* FGCBMenuState     )( int );
-typedef void (* FGCBMenuStatus    )( int, int, int );
-
-/* The callback used when creating/using menus */
-typedef void (* FGCBMenu          )( int );
-
-/* The FreeGLUT error/warning handler type definition */
-typedef void (* FGError           ) ( const char *fmt, va_list ap);
-typedef void (* FGWarning         ) ( const char *fmt, va_list ap);
-
-
-/* A list structure */
-typedef struct tagSFG_List SFG_List;
-struct tagSFG_List
-{
-    void *First;
-    void *Last;
-};
-
-/* A list node structure */
-typedef struct tagSFG_Node SFG_Node;
-struct tagSFG_Node
-{
-    void *Next;
-    void *Prev;
-};
-
-/* A helper structure holding two ints and a boolean */
-typedef struct tagSFG_XYUse SFG_XYUse;
-struct tagSFG_XYUse
-{
-    GLint           X, Y;               /* The two integers...               */
-    GLboolean       Use;                /* ...and a single boolean.          */
-};
-
-/*
- * An enumeration containing the state of the GLUT execution:
- * initializing, running, or stopping
- */
-typedef enum
-{
-  GLUT_EXEC_STATE_INIT,
-  GLUT_EXEC_STATE_RUNNING,
-  GLUT_EXEC_STATE_STOP
-} fgExecutionState ;
-
-/* This structure holds different freeglut settings */
-typedef struct tagSFG_State SFG_State;
-struct tagSFG_State
-{
-    SFG_XYUse        Position;             /* The default windows' position  */
-    SFG_XYUse        Size;                 /* The default windows' size      */
-    unsigned int     DisplayMode;          /* Display mode for new windows   */
-
-    GLboolean        Initialised;          /* freeglut has been initialised  */
-
-    int              DirectContext;        /* Direct rendering state         */
-
-    GLboolean        ForceIconic;          /* New top windows are iconified  */
-    GLboolean        UseCurrentContext;    /* New windows share with current */
-
-    GLboolean        GLDebugSwitch;        /* OpenGL state debugging switch  */
-    GLboolean        XSyncSwitch;          /* X11 sync protocol switch       */
-
-    int              KeyRepeat;            /* Global key repeat mode.        */
-    int              Modifiers;            /* Current ALT/SHIFT/CTRL state   */
-
-    GLuint           FPSInterval;          /* Interval between FPS printfs   */
-    GLuint           SwapCount;            /* Count of glutSwapBuffer calls  */
-    GLuint           SwapTime;             /* Time of last SwapBuffers       */
-
-    fg_time_t        Time;                 /* Time that glutInit was called  */
-    SFG_List         Timers;               /* The freeglut timer hooks       */
-    SFG_List         FreeTimers;           /* The unused timer hooks         */
-
-    FGCBIdle         IdleCallback;         /* The global idle callback       */
-
-    int              ActiveMenus;          /* Num. of currently active menus */
-    FGCBMenuState    MenuStateCallback;    /* Menu callbacks are global      */
-    FGCBMenuStatus   MenuStatusCallback;
-
-    SFG_XYUse        GameModeSize;         /* Game mode screen's dimensions  */
-    int              GameModeDepth;        /* The pixel depth for game mode  */
-    int              GameModeRefresh;      /* The refresh rate for game mode */
-
-    int              ActionOnWindowClose; /* Action when user closes window  */
-
-    fgExecutionState ExecState;           /* Used for GLUT termination       */
-    char            *ProgramName;         /* Name of the invoking program    */
-    GLboolean        JoysticksInitialised;  /* Only initialize if application calls for them */
-    int              NumActiveJoysticks;    /* Number of active joysticks -- if zero, don't poll joysticks */
-    GLboolean        InputDevsInitialised;  /* Only initialize if application calls for them */
-
-       int              MouseWheelTicks;      /* Number of ticks the mouse wheel has turned */
-
-    int              AuxiliaryBufferNumber;  /* Number of auxiliary buffers */
-    int              SampleNumber;         /*  Number of samples per pixel  */
-
-    int              MajorVersion;         /* Major OpenGL context version  */
-    int              MinorVersion;         /* Minor OpenGL context version  */
-    int              ContextFlags;         /* OpenGL context flags          */
-    int              ContextProfile;       /* OpenGL context profile        */
-    FGError          ErrorFunc;            /* User defined error handler    */
-    FGWarning        WarningFunc;          /* User defined warning handler  */
-};
-
-/* The structure used by display initialization in freeglut_init.c */
-typedef struct tagSFG_Display SFG_Display;
-struct tagSFG_Display
-{
-       SFG_PlatformDisplay pDisplay;
-
-    int             ScreenWidth;        /* The screen's width in pixels      */
-    int             ScreenHeight;       /* The screen's height in pixels     */
-    int             ScreenWidthMM;      /* The screen's width in milimeters  */
-    int             ScreenHeightMM;     /* The screen's height in milimeters */
-};
-
-
-/* The user can create any number of timer hooks */
-typedef struct tagSFG_Timer SFG_Timer;
-struct tagSFG_Timer
-{
-    SFG_Node        Node;
-    int             ID;                 /* The timer ID integer              */
-    FGCBTimer       Callback;           /* The timer callback                */
-    fg_time_t       TriggerTime;        /* The timer trigger time            */
-};
-
-/*
- * A window and its OpenGL context. The contents of this structure
- * are highly dependant on the target operating system we aim at...
- */
-typedef struct tagSFG_Context SFG_Context;
-struct tagSFG_Context
-{
-    SFG_WindowHandleType  Handle;    /* The window's handle                 */
-    SFG_WindowContextType Context;   /* The window's OpenGL/WGL context     */
-
-       SFG_PlatformContext pContext;    /* The window's FBConfig (X11) or device context (Windows) */
-
-    int             DoubleBuffered;  /* Treat the window as double-buffered */
-};
-
-
-typedef struct tagSFG_WindowState SFG_WindowState;
-struct tagSFG_WindowState
-{
-    /* Note that on Windows, sizes always refer to the client area, thus without the window decorations */
-    int             Width;              /* Window's width in pixels          */
-    int             Height;             /* The same about the height         */
-
-       SFG_PlatformWindowState pWState;    /* Window width/height (X11) or rectangle/style (Windows) from before a resize */
-
-    GLboolean       Redisplay;          /* Do we have to redisplay?          */
-    GLboolean       Visible;            /* Is the window visible now         */
-
-    int             Cursor;             /* The currently selected cursor     */
-
-    long            JoystickPollRate;   /* The joystick polling rate         */
-    fg_time_t       JoystickLastPoll;   /* When the last poll happened       */
-
-    int             MouseX, MouseY;     /* The most recent mouse position    */
-
-    GLboolean       IgnoreKeyRepeat;    /* Whether to ignore key repeat.     */
-    GLboolean       KeyRepeating;       /* Currently in repeat mode          */
-
-    GLboolean       NeedToResize;       /* Do we need to resize the window?  */
-
-    GLboolean       IsFullscreen;       /* is the window fullscreen? */
-};
-
-
-/*
- * A generic function pointer.  We should really use the GLUTproc type
- * defined in freeglut_ext.h, but if we include that header in this file
- * a bunch of other stuff (font-related) blows up!
- */
-typedef void (*SFG_Proc)();
-
-
-/*
- * SET_WCB() is used as:
- *
- *     SET_WCB( window, cbname, func );
- *
- * ...where {window} is the freeglut window to set the callback,
- *          {cbname} is the window-specific callback to set,
- *          {func} is a function-pointer.
- *
- * Originally, {FETCH_WCB( ... ) = func} was rather sloppily used,
- * but this can cause warnings because the FETCH_WCB() macro type-
- * casts its result, and a type-cast value shouldn't be an lvalue.
- *
- * The {if( FETCH_WCB( ... ) != func )} test is to do type-checking
- * and for no other reason.  Since it's hidden in the macro, the
- * ugliness is felt to be rather benign.
- */
-#define SET_WCB(window,cbname,func)                            \
-do                                                             \
-{                                                              \
-    if( FETCH_WCB( window, cbname ) != (SFG_Proc)(func) )      \
-        (((window).CallBacks[CB_ ## cbname]) = (SFG_Proc)(func)); \
-} while( 0 )
-
-/*
- * FETCH_WCB() is used as:
- *
- *     FETCH_WCB( window, cbname );
- *
- * ...where {window} is the freeglut window to fetch the callback from,
- *          {cbname} is the window-specific callback to fetch.
- *
- * The result is correctly type-cast to the callback function pointer
- * type.
- */
-#define FETCH_WCB(window,cbname) \
-    ((window).CallBacks[CB_ ## cbname])
-
-/*
- * INVOKE_WCB() is used as:
- *
- *     INVOKE_WCB( window, cbname, ( arg_list ) );
- *
- * ...where {window} is the freeglut window,
- *          {cbname} is the window-specific callback to be invoked,
- *          {(arg_list)} is the parameter list.
- *
- * The callback is invoked as:
- *
- *    callback( arg_list );
- *
- * ...so the parentheses are REQUIRED in the {arg_list}.
- *
- * NOTE that it does a sanity-check and also sets the
- * current window.
- *
- */
-#if TARGET_HOST_MS_WINDOWS && !defined(_WIN32_WCE) /* FIXME: also WinCE? */
-#define INVOKE_WCB(window,cbname,arg_list)    \
-do                                            \
-{                                             \
-    if( FETCH_WCB( window, cbname ) )         \
-    {                                         \
-        FGCB ## cbname func = (FGCB ## cbname)(FETCH_WCB( window, cbname )); \
-        fgSetWindow( &window );               \
-        func arg_list;                        \
-    }                                         \
-} while( 0 )
-#else
-#define INVOKE_WCB(window,cbname,arg_list)    \
-do                                            \
-{                                             \
-    if( FETCH_WCB( window, cbname ) )         \
-    {                                         \
-        fgSetWindow( &window );               \
-        ((FGCB ## cbname)FETCH_WCB( window, cbname )) arg_list; \
-    }                                         \
-} while( 0 )
-#endif
-
-/*
- * The window callbacks the user can supply us with. Should be kept portable.
- *
- * This enumeration provides the freeglut CallBack numbers.
- * The symbolic constants are indices into a window's array of
- * function callbacks.  The names are formed by splicing a common
- * prefix onto the callback's base name.  (This was originally
- * done so that an early stage of development could live side-by-
- * side with the old callback code.  The old callback code used
- * the bare callback's name as a structure member, so I used a
- * prefix for the array index name.)
- *
- * XXX For consistancy, perhaps the prefix should match the
- * XXX FETCH* and INVOKE* macro suffices.  I.e., WCB_, rather than
- * XXX CB_.
- */
-enum
-{
-    CB_Display,
-    CB_Reshape,
-    CB_Keyboard,
-    CB_KeyboardUp,
-    CB_Special,
-    CB_SpecialUp,
-    CB_Mouse,
-    CB_MouseWheel,
-    CB_Motion,
-    CB_Passive,
-    CB_Entry,
-    CB_Visibility,
-    CB_WindowStatus,
-    CB_Joystick,
-    CB_Destroy,
-
-    /* MPX-related */
-    CB_MultiEntry,
-    CB_MultiButton,
-    CB_MultiMotion,
-    CB_MultiPassive,
-
-    /* Presently ignored */
-    CB_Select,
-    CB_OverlayDisplay,
-    CB_SpaceMotion,     /* presently implemented only on UNIX/X11 */
-    CB_SpaceRotation,   /* presently implemented only on UNIX/X11 */
-    CB_SpaceButton,     /* presently implemented only on UNIX/X11 */
-    CB_Dials,
-    CB_ButtonBox,
-    CB_TabletMotion,
-    CB_TabletButton,
-
-    /* Always make this the LAST one */
-    TOTAL_CALLBACKS
-};
-
-
-/* This structure holds the OpenGL rendering context for all the menu windows */
-typedef struct tagSFG_MenuContext SFG_MenuContext;
-struct tagSFG_MenuContext
-{
-    SFG_WindowContextType MContext;       /* The menu window's WGL context   */
-};
-
-/* This structure describes a menu */
-typedef struct tagSFG_Window SFG_Window;
-typedef struct tagSFG_MenuEntry SFG_MenuEntry;
-typedef struct tagSFG_Menu SFG_Menu;
-struct tagSFG_Menu
-{
-    SFG_Node            Node;
-    void               *UserData;     /* User data passed back at callback   */
-    int                 ID;           /* The global menu ID                  */
-    SFG_List            Entries;      /* The menu entries list               */
-    FGCBMenu            Callback;     /* The menu callback                   */
-    FGCBDestroy         Destroy;      /* Destruction callback                */
-    GLboolean           IsActive;     /* Is the menu selected?               */
-    int                 Width;        /* Menu box width in pixels            */
-    int                 Height;       /* Menu box height in pixels           */
-    int                 X, Y;         /* Menu box raster position            */
-
-    SFG_MenuEntry      *ActiveEntry;  /* Currently active entry in the menu  */
-    SFG_Window         *Window;       /* Window for menu                     */
-    SFG_Window         *ParentWindow; /* Window in which the menu is invoked */
-};
-
-/* This is a menu entry */
-struct tagSFG_MenuEntry
-{
-    SFG_Node            Node;
-    int                 ID;                     /* The menu entry ID (local) */
-    int                 Ordinal;                /* The menu's ordinal number */
-    char*               Text;                   /* The text to be displayed  */
-    SFG_Menu*           SubMenu;                /* Optional sub-menu tree    */
-    GLboolean           IsActive;               /* Is the entry highlighted? */
-    int                 Width;                  /* Label's width in pixels   */
-};
-
-/*
- * A window, making part of freeglut windows hierarchy.
- * Should be kept portable.
- *
- * NOTE that ActiveMenu is set to menu itself if the window is a menu.
- */
-struct tagSFG_Window
-{
-    SFG_Node            Node;
-    int                 ID;                     /* Window's ID number        */
-
-    SFG_Context         Window;                 /* Window and OpenGL context */
-    SFG_WindowState     State;                  /* The window state          */
-    SFG_Proc            CallBacks[ TOTAL_CALLBACKS ]; /* Array of window callbacks */
-    void               *UserData ;              /* For use by user           */
-
-    SFG_Menu*       Menu[ FREEGLUT_MAX_MENUS ]; /* Menus appended to window  */
-    SFG_Menu*       ActiveMenu;                 /* The window's active menu  */
-
-    SFG_Window*         Parent;                 /* The parent to this window */
-    SFG_List            Children;               /* The subwindows d.l. list  */
-
-    GLboolean           IsMenu;                 /* Set to 1 if we are a menu */
-};
-
-
-/* A linked list structure of windows */
-typedef struct tagSFG_WindowList SFG_WindowList ;
-struct tagSFG_WindowList
-{
-    SFG_Node node;
-    SFG_Window *window ;
-};
-
-/* This holds information about all the windows, menus etc. */
-typedef struct tagSFG_Structure SFG_Structure;
-struct tagSFG_Structure
-{
-    SFG_List        Windows;         /* The global windows list            */
-    SFG_List        Menus;           /* The global menus list              */
-    SFG_List        WindowsToDestroy;
-
-    SFG_Window*     CurrentWindow;   /* The currently set window          */
-    SFG_Menu*       CurrentMenu;     /* Same, but menu...                 */
-
-    SFG_MenuContext* MenuContext;    /* OpenGL rendering context for menus */
-
-    SFG_Window*      GameModeWindow; /* The game mode window               */
-
-    int              WindowID;       /* The new current window ID          */
-    int              MenuID;         /* The new current menu ID            */
-};
-
-/*
- * This structure is used for the enumeration purposes.
- * You can easily extend its functionalities by declaring
- * a structure containing enumerator's contents and custom
- * data, then casting its pointer to (SFG_Enumerator *).
- */
-typedef struct tagSFG_Enumerator SFG_Enumerator;
-struct tagSFG_Enumerator
-{
-    GLboolean   found;                          /* Used to terminate search  */
-    void*       data;                           /* Custom data pointer       */
-};
-typedef void (* FGCBenumerator  )( SFG_Window *, SFG_Enumerator * );
-
-/* The bitmap font structure */
-typedef struct tagSFG_Font SFG_Font;
-struct tagSFG_Font
-{
-    char*           Name;         /* The source font name             */
-    int             Quantity;     /* Number of chars in font          */
-    int             Height;       /* Height of the characters         */
-    const GLubyte** Characters;   /* The characters mapping           */
-
-    float           xorig, yorig; /* Relative origin of the character */
-};
-
-/* The stroke font structures */
-
-typedef struct tagSFG_StrokeVertex SFG_StrokeVertex;
-struct tagSFG_StrokeVertex
-{
-    GLfloat         X, Y;
-};
-
-typedef struct tagSFG_StrokeStrip SFG_StrokeStrip;
-struct tagSFG_StrokeStrip
-{
-    int             Number;
-    const SFG_StrokeVertex* Vertices;
-};
-
-typedef struct tagSFG_StrokeChar SFG_StrokeChar;
-struct tagSFG_StrokeChar
-{
-    GLfloat         Right;
-    int             Number;
-    const SFG_StrokeStrip* Strips;
-};
-
-typedef struct tagSFG_StrokeFont SFG_StrokeFont;
-struct tagSFG_StrokeFont
-{
-    char*           Name;                       /* The source font name      */
-    int             Quantity;                   /* Number of chars in font   */
-    GLfloat         Height;                     /* Height of the characters  */
-    const SFG_StrokeChar** Characters;          /* The characters mapping    */
-};
-
-
-/* -- JOYSTICK-SPECIFIC STRUCTURES AND TYPES ------------------------------- */
-/*
- * Initial defines from "js.h" starting around line 33 with the existing "freeglut_joystick.c"
- * interspersed
- */
-
-#if TARGET_HOST_MACINTOSH
-#    include <InputSprocket.h>
-#endif
-
-#if TARGET_HOST_MAC_OSX
-#    include <mach/mach.h>
-#    include <IOKit/IOkitLib.h>
-#    include <IOKit/hid/IOHIDLib.h>
-#endif
-
-/* XXX It might be better to poll the operating system for the numbers of buttons and
- * XXX axes and then dynamically allocate the arrays.
- */
-#define _JS_MAX_BUTTONS 32
-
-#if TARGET_HOST_MACINTOSH
-#    define _JS_MAX_AXES  9
-typedef struct tagSFG_PlatformJoystick SFG_PlatformJoystick;
-struct tagSFG_PlatformJoystick
-{
-#define  ISP_NUM_AXIS    9
-#define  ISP_NUM_NEEDS  41
-    ISpElementReference isp_elem  [ ISP_NUM_NEEDS ];
-    ISpNeed             isp_needs [ ISP_NUM_NEEDS ];
-};
-#endif
-
-#if TARGET_HOST_MAC_OSX
-#    define _JS_MAX_AXES 16
-typedef struct tagSFG_PlatformJoystick SFG_PlatformJoystick;
-struct tagSFG_PlatformJoystick
-{
-    IOHIDDeviceInterface ** hidDev;
-    IOHIDElementCookie buttonCookies[41];
-    IOHIDElementCookie axisCookies[_JS_MAX_AXES];
-/* The next two variables are not used anywhere */
-/*    long minReport[_JS_MAX_AXES],
- *         maxReport[_JS_MAX_AXES];
- */
-};
-#endif
-
-
-/*
- * Definition of "SFG_Joystick" structure -- based on JS's "jsJoystick" object class.
- * See "js.h" lines 80-178.
- */
-typedef struct tagSFG_Joystick SFG_Joystick;
-struct tagSFG_Joystick
-{
-       SFG_PlatformJoystick pJoystick;
-
-    int          id;
-    GLboolean    error;
-    char         name [ 128 ];
-    int          num_axes;
-    int          num_buttons;
-
-    float dead_band[ _JS_MAX_AXES ];
-    float saturate [ _JS_MAX_AXES ];
-    float center   [ _JS_MAX_AXES ];
-    float max      [ _JS_MAX_AXES ];
-    float min      [ _JS_MAX_AXES ];
-};
-
-
-
-/* -- GLOBAL VARIABLES EXPORTS --------------------------------------------- */
-
-/* Freeglut display related stuff (initialized once per session) */
-extern SFG_Display fgDisplay;
-
-/* Freeglut internal structure */
-extern SFG_Structure fgStructure;
-
-/* The current freeglut settings */
-extern SFG_State fgState;
-
-
-/* -- PRIVATE FUNCTION DECLARATIONS ---------------------------------------- */
-
-/*
- * A call to this function makes us sure that the Display and Structure
- * subsystems have been properly initialized and are ready to be used
- */
-#define  FREEGLUT_EXIT_IF_NOT_INITIALISED( string )               \
-  if ( ! fgState.Initialised )                                    \
-  {                                                               \
-    fgError ( " ERROR:  Function <%s> called"                     \
-              " without first calling 'glutInit'.", (string) ) ;  \
-  }
-
-#define  FREEGLUT_INTERNAL_ERROR_EXIT_IF_NOT_INITIALISED( string )  \
-  if ( ! fgState.Initialised )                                      \
-  {                                                                 \
-    fgError ( " ERROR:  Internal <%s> function called"              \
-              " without first calling 'glutInit'.", (string) ) ;    \
-  }
-
-#define  FREEGLUT_INTERNAL_ERROR_EXIT( cond, string, function )  \
-  if ( ! ( cond ) )                                              \
-  {                                                              \
-    fgError ( " ERROR:  Internal error <%s> in function %s",     \
-              (string), (function) ) ;                           \
-  }
-
-/*
- * Following definitions are somewhat similiar to GLib's,
- * but do not generate any log messages:
- */
-#define  freeglut_return_if_fail( expr ) \
-    if( !(expr) )                        \
-        return;
-#define  freeglut_return_val_if_fail( expr, val ) \
-    if( !(expr) )                                 \
-        return val ;
-
-/*
- * A call to those macros assures us that there is a current
- * window set, respectively:
- */
-#define  FREEGLUT_EXIT_IF_NO_WINDOW( string )                               \
-  if ( ! fgStructure.CurrentWindow &&                                       \
-       ( fgState.ActionOnWindowClose != GLUT_ACTION_CONTINUE_EXECUTION ) )  \
-  {                                                                         \
-    fgError ( " ERROR:  Function <%s> called"                               \
-              " with no current window defined.", (string) ) ;              \
-  }
-
-/*
- * The deinitialize function gets called on glutMainLoop() end. It should clean up
- * everything inside of the freeglut
- */
-void fgDeinitialize( void );
-
-/*
- * Those two functions are used to create/destroy the freeglut internal
- * structures. This actually happens when calling glutInit() and when
- * quitting the glutMainLoop() (which actually happens, when all windows
- * have been closed).
- */
-void fgCreateStructure( void );
-void fgDestroyStructure( void );
-
-/*
- * Window creation, opening, closing and destruction.
- * Also CallBack clearing/initialization.
- * Defined in freeglut_structure.c, freeglut_window.c.
- */
-SFG_Window* fgCreateWindow( SFG_Window* parent, const char* title,
-                            GLboolean positionUse, int x, int y,
-                            GLboolean sizeUse, int w, int h,
-                            GLboolean gameMode, GLboolean isMenu );
-void        fgSetWindow ( SFG_Window *window );
-void        fgOpenWindow( SFG_Window* window, const char* title,
-                          GLboolean positionUse, int x, int y,
-                          GLboolean sizeUse, int w, int h,
-                          GLboolean gameMode, GLboolean isSubWindow );
-void        fgCloseWindow( SFG_Window* window );
-void        fgAddToWindowDestroyList ( SFG_Window* window );
-void        fgCloseWindows ();
-void        fgDestroyWindow( SFG_Window* window );
-
-/* Menu creation and destruction. Defined in freeglut_structure.c */
-SFG_Menu*   fgCreateMenu( FGCBMenu menuCallback );
-void        fgDestroyMenu( SFG_Menu* menu );
-
-/* Joystick device management functions, defined in freeglut_joystick.c */
-int         fgJoystickDetect( void );
-void        fgInitialiseJoysticks( void );
-void        fgJoystickClose( void );
-void        fgJoystickPollWindow( SFG_Window* window );
-
-/* InputDevice Initialisation and Closure */
-int         fgInputDeviceDetect( void );
-void        fgInitialiseInputDevices( void );
-void        fgInputDeviceClose( void );
-
-/* spaceball device functions, defined in freeglut_spaceball.c */
-void        fgInitialiseSpaceball( void );
-void        fgSpaceballClose( void );
-void        fgSpaceballSetWindow( SFG_Window *window );
-
-int         fgHasSpaceball( void );
-int         fgSpaceballNumButtons( void );
-
-/* Setting the cursor for a given window */
-void fgSetCursor ( SFG_Window *window, int cursorID );
-
-/*
- * Helper function to enumerate through all registered windows
- * and one to enumerate all of a window's subwindows...
- *
- * The GFunc callback for those functions will be defined as:
- *
- *      void enumCallback( gpointer window, gpointer enumerator );
- *
- * where window is the enumerated (sub)window pointer (SFG_Window *),
- * and userData is the a custom user-supplied pointer. Functions
- * are defined and exported from freeglut_structure.c file.
- */
-void fgEnumWindows( FGCBenumerator enumCallback, SFG_Enumerator* enumerator );
-void fgEnumSubWindows( SFG_Window* window, FGCBenumerator enumCallback,
-                       SFG_Enumerator* enumerator );
-
-/*
- * fgWindowByHandle returns a (SFG_Window *) value pointing to the
- * first window in the queue matching the specified window handle.
- * The function is defined in freeglut_structure.c file.
- */
-SFG_Window* fgWindowByHandle( SFG_WindowHandleType hWindow );
-
-/*
- * This function is similiar to the previous one, except it is
- * looking for a specified (sub)window identifier. The function
- * is defined in freeglut_structure.c file.
- */
-SFG_Window* fgWindowByID( int windowID );
-
-/*
- * Looks up a menu given its ID. This is easier than fgWindowByXXX
- * as all menus are placed in a single doubly linked list...
- */
-SFG_Menu* fgMenuByID( int menuID );
-
-/*
- * The menu activation and deactivation the code. This is the meat
- * of the menu user interface handling code...
- */
-void fgUpdateMenuHighlight ( SFG_Menu *menu );
-GLboolean fgCheckActiveMenu ( SFG_Window *window, int button, GLboolean pressed,
-                              int mouse_x, int mouse_y );
-void fgDeactivateMenu( SFG_Window *window );
-
-/*
- * This function gets called just before the buffers swap, so that
- * freeglut can display the pull-down menus via OpenGL. The function
- * is defined in freeglut_menu.c file.
- */
-void fgDisplayMenu( void );
-
-/* Elapsed time as per glutGet(GLUT_ELAPSED_TIME). */
-fg_time_t fgElapsedTime( void );
-
-/* System time in milliseconds */
-fg_time_t fgSystemTime(void);
-
-/* List functions */
-void fgListInit(SFG_List *list);
-void fgListAppend(SFG_List *list, SFG_Node *node);
-void fgListRemove(SFG_List *list, SFG_Node *node);
-int fgListLength(SFG_List *list);
-void fgListInsert(SFG_List *list, SFG_Node *next, SFG_Node *node);
-
-/* Error Message functions */
-void fgError( const char *fmt, ... );
-void fgWarning( const char *fmt, ... );
-
-SFG_Proc fgPlatformGetProcAddress( const char *procName );
-
-/* pushing attribute/value pairs into an array */
-#define ATTRIB(a) attributes[where++]=(a)
-#define ATTRIB_VAL(a,v) {ATTRIB(a); ATTRIB(v);}
-
-int fghIsLegacyContextVersionRequested( void );
-int fghMapBit( int mask, int from, int to );
-int fghIsLegacyContextRequested( void );
-void fghContextCreationError( void );
-int fghNumberOfAuxBuffersRequested( void );
-
-#endif /* FREEGLUT_INTERNAL_H */
-
-/*** END OF FILE ***/
diff --git a/src/Common/freeglut_joystick.c b/src/Common/freeglut_joystick.c
deleted file mode 100644 (file)
index d4e7446..0000000
+++ /dev/null
@@ -1,1070 +0,0 @@
-/*
- * freeglut_joystick.c
- *
- * Joystick handling code
- *
- * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
- * Written by Steve Baker, <sjbaker1@airmail.net>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/*
- * FreeBSD port by Stephen Montgomery-Smith <stephen@math.missouri.edu>
- *
- * Redone by John Fay 2/4/04 with another look from the PLIB "js" library.
- *  Many thanks for Steve Baker for permission to pull from that library.
- */
-
-#include <GL/freeglut.h>
-#include "freeglut_internal.h"
-#ifdef HAVE_SYS_PARAM_H
-#    include <sys/param.h>
-#endif
-
-#define JS_TRUE  1
-#define JS_FALSE 0
-
-/* BSD defines from "jsBSD.cxx" around lines 42-270 */
-
-#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
-
-#    ifdef HAVE_USB_JS
-#        if defined(__NetBSD__)
-/* XXX The below hack is done until freeglut's autoconf is updated. */
-#            define HAVE_USBHID_H 1
-#            ifdef HAVE_USBHID_H
-#                include <usbhid.h>
-#            else
-#                include <usb.h>
-#            endif
-#        elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
-#            ifdef HAVE_USBHID_H
-#                include <usbhid.h>
-#            else
-#                include <libusbhid.h>
-#            endif
-#        endif
-#        include <legacy/dev/usb/usb.h>
-#        include <dev/usb/usbhid.h>
-
-/* Compatibility with older usb.h revisions */
-#        if !defined(USB_MAX_DEVNAMES) && defined(MAXDEVNAMES)
-#            define USB_MAX_DEVNAMES MAXDEVNAMES
-#        endif
-#    endif
-
-static int hatmap_x[9] = { 0, 0, 1, 1, 1, 0, -1, -1, -1 };
-static int hatmap_y[9] = { 0, 1, 1, 0, -1, -1, -1, 0, 1 };
-struct os_specific_s {
-  char             fname [128 ];
-  int              fd;
-  int              is_analog;
-  /* The following structure members are specific to analog joysticks */
-  struct joystick  ajs;
-#    ifdef HAVE_USB_JS
-  /* The following structure members are specific to USB joysticks */
-  struct hid_item *hids;
-  int              hid_dlen;
-  int              hid_offset;
-  char            *hid_data_buf;
-  int              axes_usage [ _JS_MAX_AXES ];
-#    endif
-  /* We keep button and axes state ourselves, as they might not be updated
-   * on every read of a USB device
-   */
-  int              cache_buttons;
-  float            cache_axes [ _JS_MAX_AXES ];
-};
-
-/* Idents lower than USB_IDENT_OFFSET are for analog joysticks. */
-#    define USB_IDENT_OFFSET    2
-
-#    define USBDEV "/dev/usb"
-#    define UHIDDEV "/dev/uhid"
-#    define AJSDEV "/dev/joy"
-
-#    ifdef HAVE_USB_JS
-/*
- * fghJoystickFindUSBdev (and its helper, fghJoystickWalkUSBdev) try to locate
- * the full name of a USB device. If /dev/usbN isn't readable, we punt and
- * return the uhidN device name. We warn the user of this situation once.
- */
-static char *fghJoystickWalkUSBdev(int f, char *dev, char *out, int outlen)
-{
-  struct usb_device_info di;
-  int i, a;
-  char *cp;
-
-  for (a = 1; a < USB_MAX_DEVICES; a++) {
-    di.udi_addr = a;
-    if (ioctl(f, USB_DEVICEINFO, &di) != 0)
-      return NULL;
-    for (i = 0; i < USB_MAX_DEVNAMES; i++)
-      if (di.udi_devnames[i][0] &&
-          strcmp(di.udi_devnames[i], dev) == 0) {
-        cp =  calloc( 1, strlen(di.udi_vendor) + strlen(di.udi_product) + 2);
-        strcpy(cp, di.udi_vendor);
-        strcat(cp, " ");
-        strcat(cp, di.udi_product);
-        strncpy(out, cp, outlen - 1);
-        out[outlen - 1] = 0;
-        free( cp );
-        return out;
-      }
-  }
-  return NULL;
-}
-
-static int fghJoystickFindUSBdev(char *name, char *out, int outlen)
-{
-  int i, f;
-  char buf[50];
-  char *cp;
-  static int protection_warned = 0;
-
-  for (i = 0; i < 16; i++) {
-    snprintf(buf, sizeof(buf), "%s%d", USBDEV, i);
-    f = open(buf, O_RDONLY);
-    if (f >= 0) {
-      cp = fghJoystickWalkUSBdev(f, name, out, outlen);
-      close(f);
-      if (cp)
-        return 1;
-    }
-#ifdef HAVE_ERRNO_H
-    else if (errno == EACCES) {
-      if (!protection_warned) {
-        fgWarning ( "Can't open %s for read!", buf );
-        protection_warned = 1;
-      }
-    }
-#endif
-  }
-  return 0;
-}
-
-static int fghJoystickInitializeHID(struct os_specific_s *os,
-       int *num_axes, int *num_buttons)
-{
-    int size, is_joystick;
-#   ifdef HAVE_USBHID_H
-        int report_id = 0;
-#   endif
-    struct hid_data *d;
-    struct hid_item h;
-    report_desc_t rd;
-
-    if ( ( rd = hid_get_report_desc( os->fd ) ) == 0 )
-    {
-#ifdef HAVE_ERRNO_H
-        fgWarning ( "error: %s: %s", os->fname, strerror( errno ) );
-#else
-        fgWarning ( "error: %s", os->fname );
-#endif
-        return FALSE;
-    }
-
-    os->hids = NULL;
-
-#   ifdef HAVE_USBHID_H
-        if( ioctl( os->fd, USB_GET_REPORT_ID, &report_id ) < 0)
-        {
-            /*** XXX {report_id} may not be the right variable? ***/
-#ifdef HAVE_ERRNO_H
-            fgWarning ( "error: %s%d: %s", UHIDDEV, report_id, strerror( errno ) );
-#else
-            fgWarning ( "error: %s%d", UHIDDEV, report_id );
-#endif
-            return FALSE;
-        }
-
-        size = hid_report_size( rd, hid_input, report_id );
-#   else
-        size = hid_report_size( rd, 0, hid_input );
-#   endif
-    os->hid_data_buf = calloc( 1, size );
-    os->hid_dlen = size;
-
-    is_joystick = 0;
-#   ifdef HAVE_USBHID_H
-        d = hid_start_parse( rd, 1 << hid_input, report_id );
-#   else
-        d = hid_start_parse( rd, 1 << hid_input );
-#   endif
-        while( hid_get_item( d, &h ) )
-        {
-            int usage, page, interesting_hid;
-
-            page = HID_PAGE( h.usage );
-            usage = HID_USAGE( h.usage );
-
-            /* This test is somewhat too simplistic, but this is how MicroSoft
-             * does, so I guess it works for all joysticks/game pads. */
-            is_joystick = is_joystick ||
-                ( h.kind == hid_collection &&
-                  page == HUP_GENERIC_DESKTOP &&
-                  ( usage == HUG_JOYSTICK || usage == HUG_GAME_PAD ) );
-
-            if( h.kind != hid_input )
-                continue;
-
-            if( !is_joystick )
-                continue;
-
-            interesting_hid = TRUE;
-            if( page == HUP_GENERIC_DESKTOP )
-            {
-                switch( usage )
-                {
-                case HUG_X:
-                case HUG_RX:
-                case HUG_Y:
-                case HUG_RY:
-                case HUG_Z:
-                case HUG_RZ:
-                case HUG_SLIDER:
-                    if( *num_axes < _JS_MAX_AXES )
-                    {
-                        os->axes_usage[ *num_axes ] = usage;
-                        ( *num_axes )++;
-                    }
-                    break;
-                case HUG_HAT_SWITCH:
-                    /* Allocate two axes for a hat */
-                    if( *num_axes + 1 < _JS_MAX_AXES )
-                    {
-                        os->axes_usage[ *num_axes ] = usage;
-                        (*num_axes)++;
-                        os->axes_usage[ *num_axes ] = usage;
-                        (*num_axes)++;
-                    }
-                    break;
-                default:
-                    interesting_hid = FALSE;
-                    break;
-                }
-            }
-            else if( page == HUP_BUTTON )
-            {
-                interesting_hid = ( usage > 0 ) &&
-                    ( usage <= _JS_MAX_BUTTONS );
-
-                if( interesting_hid && usage - 1 > *num_buttons )
-                    *num_buttons = usage - 1;
-            }
-
-            if( interesting_hid )
-            {
-                h.next = os->hids;
-                os->hids = calloc( 1, sizeof ( struct hid_item ) );
-                *os->hids = h;
-            }
-        }
-        hid_end_parse( d );
-
-        return os->hids != NULL;
-}
-#    endif
-#endif
-
-/*
- * Functions associated with the "jsJoystick" class in PLIB
- */
-#if TARGET_HOST_MAC_OSX
-#define K_NUM_DEVICES   32
-int numDevices;
-io_object_t ioDevices[K_NUM_DEVICES];
-
-static void fghJoystickFindDevices ( SFG_Joystick* joy, mach_port_t );
-static CFDictionaryRef fghJoystickGetCFProperties ( SFG_Joystick* joy, io_object_t );
-
-static void fghJoystickEnumerateElements ( SFG_Joystick* joy, CFTypeRef element );
-/* callback for CFArrayApply */
-static void fghJoystickElementEnumerator ( SFG_Joystick* joy, void *element, void* vjs );
-
-static void fghJoystickAddAxisElement ( SFG_Joystick* joy, CFDictionaryRef axis );
-static void fghJoystickAddButtonElement ( SFG_Joystick* joy, CFDictionaryRef button );
-static void fghJoystickAddHatElement ( SFG_Joystick* joy, CFDictionaryRef hat );
-#endif
-
-
-/* External function declarations (mostly platform-specific) */
-extern void fgPlatformJoystickRawRead( SFG_Joystick* joy, int* buttons, float* axes );
-extern void fgPlatformJoystickOpen( SFG_Joystick* joy );
-extern void fgPlatformJoystickInit( SFG_Joystick *fgJoystick[], int ident );
-extern void fgPlatformJoystickClose ( int ident );
-
-/*
- * The static joystick structure pointer
- */
-#define MAX_NUM_JOYSTICKS  2
-SFG_Joystick *fgJoystick [ MAX_NUM_JOYSTICKS ];
-
-/*
- * Read the raw joystick data
- */
-static void fghJoystickRawRead( SFG_Joystick* joy, int* buttons, float* axes )
-{
-    int i;
-
-    /* Defaults */
-    if( buttons )
-        *buttons = 0;
-
-    if( axes )
-        for( i = 0; i < joy->num_axes; i++ )
-            axes[ i ] = 1500.0f;
-
-    if( joy->error )
-        return;
-
-       fgPlatformJoystickRawRead ( joy, buttons, axes );
-}
-
-/*
- * Correct the joystick axis data
- */
-static float fghJoystickFudgeAxis( SFG_Joystick* joy, float value, int axis )
-{
-    if( value < joy->center[ axis ] )
-    {
-        float xx = ( value - joy->center[ axis ] ) / ( joy->center[ axis ] -
-                                                       joy->min[ axis ] );
-
-        if( xx < -joy->saturate[ axis ] )
-            return -1.0f;
-
-        if( xx > -joy->dead_band [ axis ] )
-            return 0.0f;
-
-        xx = ( xx + joy->dead_band[ axis ] ) / ( joy->saturate[ axis ] -
-                                                 joy->dead_band[ axis ] );
-
-        return ( xx < -1.0f ) ? -1.0f : xx;
-    }
-    else
-    {
-        float xx = ( value - joy->center [ axis ] ) / ( joy->max[ axis ] -
-                                                        joy->center[ axis ] );
-
-        if( xx > joy->saturate[ axis ] )
-            return 1.0f;
-
-        if( xx < joy->dead_band[ axis ] )
-            return 0.0f;
-
-        xx = ( xx - joy->dead_band[ axis ] ) / ( joy->saturate[ axis ] -
-                                                 joy->dead_band[ axis ] );
-
-        return ( xx > 1.0f ) ? 1.0f : xx;
-    }
-}
-
-/*
- * Read the corrected joystick data
- */
-static void fghJoystickRead( SFG_Joystick* joy, int* buttons, float* axes )
-{
-    float raw_axes[ _JS_MAX_AXES ];
-    int  i;
-
-    if( joy->error )
-    {
-        if( buttons )
-            *buttons = 0;
-
-        if( axes )
-            for ( i=0; i<joy->num_axes; i++ )
-                axes[ i ] = 0.0f;
-    }
-
-    fghJoystickRawRead( joy, buttons, raw_axes );
-
-    if( axes )
-        for( i=0; i<joy->num_axes; i++ )
-            axes[ i ] = fghJoystickFudgeAxis( joy, raw_axes[ i ], i );
-}
-
-/*
- * Happy happy happy joy joy joy (happy new year toudi :D)
- */
-
-
-#if TARGET_HOST_MAC_OSX
-/** open the IOKit connection, enumerate all the HID devices, add their
-interface references to the static array. We then use the array index
-as the device number when we come to open() the joystick. */
-static int fghJoystickFindDevices ( SFG_Joystick *joy, mach_port_t masterPort )
-{
-    CFMutableDictionaryRef hidMatch = NULL;
-    IOReturn rv = kIOReturnSuccess;
-
-    io_iterator_t hidIterator;
-    io_object_t ioDev;
-
-    /* build a dictionary matching HID devices */
-    hidMatch = IOServiceMatching(kIOHIDDeviceKey);
-
-    rv = IOServiceGetMatchingServices(masterPort, hidMatch, &hidIterator);
-    if (rv != kIOReturnSuccess || !hidIterator) {
-      fgWarning( "no joystick (HID) devices found" );
-      return;
-    }
-
-    /* iterate */
-    while ((ioDev = IOIteratorNext(hidIterator))) {
-        /* filter out keyboard and mouse devices */
-        CFDictionaryRef properties = getCFProperties(ioDev);
-        long usage, page;
-
-        CFTypeRef refPage = CFDictionaryGetValue (properties, CFSTR(kIOHIDPrimaryUsagePageKey));
-        CFTypeRef refUsage = CFDictionaryGetValue (properties, CFSTR(kIOHIDPrimaryUsageKey));
-        CFNumberGetValue((CFNumberRef) refUsage, kCFNumberLongType, &usage);
-        CFNumberGetValue((CFNumberRef) refPage, kCFNumberLongType, &page);
-
-        /* keep only joystick devices */
-        if ( ( page == kHIDPage_GenericDesktop ) && (
-                            (usage == kHIDUsage_GD_Joystick)
-                         || (usage == kHIDUsage_GD_GamePad)
-                         || (usage == kHIDUsage_GD_MultiAxisController)
-                         || (usage == kHIDUsage_GD_Hatswitch) /* last two necessary ? */
-            /* add it to the array */
-            ioDevices[numDevices++] = ioDev;
-    }
-
-    IOObjectRelease(hidIterator);
-}
-
-static CFDictionaryRef fghJoystickGetCFProperties ( SFG_Joystick *joy, io_object_t ioDev )
-{
-    IOReturn rv;
-    CFMutableDictionaryRef cfProperties;
-
-#if 0
-    /* comment copied from darwin/SDL_sysjoystick.c */
-    /* Mac OS X currently is not mirroring all USB properties to HID page so need to look at USB device page also
-     * get dictionary for usb properties: step up two levels and get CF dictionary for USB properties
-     */
-
-    io_registry_entry_t parent1, parent2;
-
-    rv = IORegistryEntryGetParentEntry (ioDev, kIOServicePlane, &parent1);
-    if (rv != kIOReturnSuccess) {
-        fgWarning ( "error getting device entry parent");
-        return NULL;
-    }
-
-    rv = IORegistryEntryGetParentEntry (parent1, kIOServicePlane, &parent2);
-    if (rv != kIOReturnSuccess) {
-        fgWarning ( "error getting device entry parent 2");
-        return NULL;
-    }
-#endif
-
-    rv = IORegistryEntryCreateCFProperties( ioDev /*parent2*/,
-        &cfProperties, kCFAllocatorDefault, kNilOptions);
-    if (rv != kIOReturnSuccess || !cfProperties) {
-        fgWarning ( "error getting device properties");
-        return NULL;
-    }
-
-    return cfProperties;
-}
-
-static void fghJoystickElementEnumerator ( SFG_Joystick *joy, void *element, void* vjs )
-{
-      if (CFGetTypeID((CFTypeRef) element) != CFDictionaryGetTypeID()) {
-            fgError ( "%s", "element enumerator passed non-dictionary value");
-            return;
-    }
-
-      static_cast<jsJoystick*>(vjs)->parseElement ( (CFDictionaryRef) element );
-}
-
-/** element enumerator function : pass NULL for top-level*/
-static void fghJoystickEnumerateElements ( SFG_Joystick *joy, CFTypeRef element )
-{
-      FREEGLUT_INTERNAL_ERROR_EXIT( (CFGetTypeID(element) == CFArrayGetTypeID(),
-                                    "Joystick element type mismatch",
-                                    "fghJoystickEnumerateElements" );
-
-      CFRange range = {0, CFArrayGetCount ((CFArrayRef)element)};
-      CFArrayApplyFunction((CFArrayRef) element, range,
-            &fghJoystickElementEnumerator, joy );
-}
-
-static void fghJoystickAddAxisElement ( SFG_Joystick *joy, CFDictionaryRef axis )
-{
-    long cookie, lmin, lmax;
-    int index = joy->num_axes++;
-
-    CFNumberGetValue ((CFNumberRef)
-        CFDictionaryGetValue ( axis, CFSTR(kIOHIDElementCookieKey) ),
-        kCFNumberLongType, &cookie);
-
-    joy->pJoystick.axisCookies[index] = (IOHIDElementCookie) cookie;
-
-    CFNumberGetValue ((CFNumberRef)
-        CFDictionaryGetValue ( axis, CFSTR(kIOHIDElementMinKey) ),
-        kCFNumberLongType, &lmin);
-
-    CFNumberGetValue ((CFNumberRef)
-        CFDictionaryGetValue ( axis, CFSTR(kIOHIDElementMaxKey) ),
-        kCFNumberLongType, &lmax);
-
-    joy->min[index] = lmin;
-    joy->max[index] = lmax;
-    joy->dead_band[index] = 0.0;
-    joy->saturate[index] = 1.0;
-    joy->center[index] = (lmax + lmin) * 0.5;
-}
-
-static void fghJoystickAddButtonElement ( SFG_Joystick *joy, CFDictionaryRef button )
-{
-    long cookie;
-    CFNumberGetValue ((CFNumberRef)
-            CFDictionaryGetValue ( button, CFSTR(kIOHIDElementCookieKey) ),
-            kCFNumberLongType, &cookie);
-
-    joy->pJoystick.buttonCookies[num_buttons++] = (IOHIDElementCookie) cookie;
-    /* anything else for buttons? */
-}
-
-static void fghJoystickAddHatElement ( SFG_Joystick *joy, CFDictionaryRef button )
-{
-    /* hatCookies[num_hats++] = (IOHIDElementCookie) cookie; */
-    /* do we map hats to axes or buttons? */
-}
-#endif
-
-/*
- *  Platform-Specific Code
- */
-
-#if TARGET_HOST_MACINTOSH
-void fgPlatformJoystickRawRead( SFG_Joystick* joy, int* buttons, float* axes )
-{
-    int i;
-
-    if ( buttons )
-    {
-        *buttons = 0;
-
-        for ( i = 0; i < joy->num_buttons; i++ )
-        {
-            UInt32 state;
-            int err = ISpElement_GetSimpleState ( joy->pJoystick.isp_elem [ i + ISP_NUM_AXIS ], &state);
-            ISP_CHECK_ERR(err)
-
-            *buttons |= state << i;
-        }
-    }
-
-    if ( axes )
-    {
-        for ( i = 0; i < joy->num_axes; i++ )
-        {
-            UInt32 state;
-            int err = ISpElement_GetSimpleState ( joy->pJoystick.isp_elem [ i ], &state );
-            ISP_CHECK_ERR(err)
-
-            axes [i] = (float) state;
-        }
-    }
-}
-
-
-void fgPlatformJoystickOpen( SFG_Joystick* joy )
-{
-       int i = 0;
-    OSStatus err;
-
-    /* XXX FIXME: get joystick name in Mac */
-
-    err = ISpStartup( );
-
-    if( err == noErr )
-    {
-#define ISP_CHECK_ERR(x) if( x != noErr ) { joy->error = GL_TRUE; return; }
-
-        joy->error = GL_TRUE;
-
-        /* initialize the needs structure */
-        ISpNeed temp_isp_needs[ ISP_NUM_NEEDS ] =
-        {
-          { "\pX-Axis",  128, 0, 0, kISpElementKind_Axis,   kISpElementLabel_None, 0, 0, 0, 0 },
-          { "\pY-Axis",  128, 0, 0, kISpElementKind_Axis,   kISpElementLabel_None, 0, 0, 0, 0 },
-          { "\pZ-Axis",    128, 0, 0, kISpElementKind_Axis,   kISpElementLabel_None, 0, 0, 0, 0 },
-          { "\pR-Axis",    128, 0, 0, kISpElementKind_Axis,   kISpElementLabel_None, 0, 0, 0, 0 },
-          { "\pAxis   4",  128, 0, 0, kISpElementKind_Axis,   kISpElementLabel_None, 0, 0, 0, 0 },
-          { "\pAxis   5",  128, 0, 0, kISpElementKind_Axis,   kISpElementLabel_None, 0, 0, 0, 0 },
-          { "\pAxis   6",  128, 0, 0, kISpElementKind_Axis,   kISpElementLabel_None, 0, 0, 0, 0 },
-          { "\pAxis   7",  128, 0, 0, kISpElementKind_Axis,   kISpElementLabel_None, 0, 0, 0, 0 },
-          { "\pAxis   8",  128, 0, 0, kISpElementKind_Axis,   kISpElementLabel_None, 0, 0, 0, 0 },
-
-          { "\pButton 0",  128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 1",  128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 2",  128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 3",  128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 4",  128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 5",  128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 6",  128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 7",  128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 8",  128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 9",  128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 10", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 11", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 12", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 13", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 14", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 15", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 16", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 17", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 18", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 19", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 20", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 21", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 22", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 23", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 24", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 25", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 26", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 27", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 28", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 29", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 30", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-          { "\pButton 31", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
-        };
-
-        memcpy( joy->pJoystick.isp_needs, temp_isp_needs, sizeof (temp_isp_needs ) );
-
-
-        /* next two calls allow keyboard and mouse to emulate other input
-         * devices (gamepads, joysticks, etc)
-         */
-        /*
-          err = ISpDevices_ActivateClass ( kISpDeviceClass_Keyboard );
-          ISP_CHECK_ERR(err)
-
-
-          err = ISpDevices_ActivateClass ( kISpDeviceClass_Mouse );
-          ISP_CHECK_ERR(err)
-        */
-
-        err = ISpElement_NewVirtualFromNeeds( ISP_NUM_NEEDS,
-                                              joy->pJoystick.isp_needs, joy->pJoystick.isp_elem,
-                                              0 );
-        ISP_CHECK_ERR( err )
-
-        err = ISpInit( ISP_NUM_NEEDS, joy->pJoystick.isp_needs, joy->pJoystick.isp_elem,
-                       'freeglut', nil, 0, 128, 0 );
-        ISP_CHECK_ERR( err )
-
-        joy->num_buttons = ISP_NUM_NEEDS - ISP_NUM_AXIS;
-        joy->num_axes    = ISP_NUM_AXIS;
-
-        for( i = 0; i < joy->num_axes; i++ )
-        {
-            joy->dead_band[ i ] = 0;
-            joy->saturate [ i ] = 1;
-            joy->center   [ i ] = kISpAxisMiddle;
-            joy->max      [ i ] = kISpAxisMaximum;
-            joy->min      [ i ] = kISpAxisMinimum;
-        }
-
-        joy->error = GL_FALSE;
-    }
-    else
-        joy->num_buttons = joy->num_axes = 0;
-}
-
-
-void fgPlatformJoystickInit( SFG_Joystick *fgJoystick[], int ident )
-{
-    fgJoystick[ ident ]->id = ident;
-    snprintf( fgJoystick[ ident ]->pJoystick.fname, sizeof(fgJoystick[ ident ]->pJoystick.fname), "/dev/js%d", ident ); /* FIXME */
-    fgJoystick[ ident ]->error = GL_FALSE;
-}
-
-
-void fgPlatformJoystickClose ( int ident )
-{
-    ISpSuspend( );
-    ISpStop( );
-    ISpShutdown( );
-}
-#endif
-
-#if TARGET_HOST_MAC_OSX
-void fgPlatformJoystickRawRead( SFG_Joystick* joy, int* buttons, float* axes )
-{
-    int i;
-
-    if ( buttons != NULL )
-    {
-        *buttons = 0;
-
-        for ( i = 0; i < joy->num_buttons; i++ )
-        {
-            IOHIDEventStruct hidEvent;
-            (*(joy->pJoystick.hidDev))->getElementValue ( joy->pJoystick.hidDev, joy->pJoystick.buttonCookies[i], &hidEvent );
-            if ( hidEvent.value )
-                *buttons |= 1 << i;
-        }
-    }
-
-    if ( axes != NULL )
-    {
-        for ( i = 0; i < joy->num_axes; i++ )
-        {
-            IOHIDEventStruct hidEvent;
-            (*(joy->pJoystick.hidDev))->getElementValue ( joy->pJoystick.hidDev, joy->pJoystick.axisCookies[i], &hidEvent );
-            axes[i] = hidEvent.value;
-        }
-    }
-}
-
-
-void fgPlatformJoystickOpen( SFG_Joystick* joy )
-{
-    IOReturn rv;
-    SInt32 score;
-    IOCFPlugInInterface **plugin;
-
-    HRESULT pluginResult;
-
-    CFDictionaryRef props;
-    CFTypeRef topLevelElement;
-
-    if( joy->id >= numDevices )
-    {
-        fgWarning( "device index out of range in fgJoystickOpen()" );
-        return;
-    }
-
-    /* create device interface */
-    rv = IOCreatePlugInInterfaceForService( ioDevices[ joy->id ],
-                                            kIOHIDDeviceUserClientTypeID,
-                                            kIOCFPlugInInterfaceID,
-                                            &plugin, &score );
-
-    if( rv != kIOReturnSuccess )
-    {
-        fgWarning( "error creating plugin for io device" );
-        return;
-    }
-
-    pluginResult = ( *plugin )->QueryInterface(
-        plugin,
-        CFUUIDGetUUIDBytes(kIOHIDDeviceInterfaceID),
-        &( LPVOID )joy->pJoystick.hidDev
-    );
-
-    if( pluginResult != S_OK )
-        fgWarning ( "QI-ing IO plugin to HID Device interface failed" );
-
-    ( *plugin )->Release( plugin ); /* don't leak a ref */
-    if( joy->pJoystick.hidDev == NULL )
-        return;
-
-    /* store the interface in this instance */
-    rv = ( *( joy->pJoystick.hidDev ) )->open( joy->pJoystick.hidDev, 0 );
-    if( rv != kIOReturnSuccess )
-    {
-        fgWarning( "error opening device interface");
-        return;
-    }
-
-    props = getCFProperties( ioDevices[ joy->id ] );
-
-    /* recursively enumerate all the bits */
-    CFTypeRef topLevelElement =
-        CFDictionaryGetValue( props, CFSTR( kIOHIDElementKey ) );
-    enumerateElements( topLevelElement );
-
-    CFRelease( props );
-}
-
-
-void fgPlatformJoystickInit( SFG_Joystick *fgJoystick[], int ident )
-{
-    fgJoystick[ ident ]->id = ident;
-    fgJoystick[ ident ]->error = GL_FALSE;
-    fgJoystick[ ident ]->num_axes = 0;
-    fgJoystick[ ident ]->num_buttons = 0;
-
-    if( numDevices < 0 )
-    {
-        /* do first-time init (since we can't over-ride jsInit, hmm */
-        numDevices = 0;
-
-        mach_port_t masterPort;
-        IOReturn rv = IOMasterPort( bootstrap_port, &masterPort );
-        if( rv != kIOReturnSuccess )
-        {
-            fgWarning( "error getting master Mach port" );
-            return;
-        }
-        fghJoystickFindDevices( masterPort );
-    }
-
-    if ( ident >= numDevices )
-    {
-        fgJoystick[ ident ]->error = GL_TRUE;
-        return;
-    }
-
-    /* get the name now too */
-    CFDictionaryRef properties = getCFProperties( ioDevices[ ident ] );
-    CFTypeRef ref = CFDictionaryGetValue( properties,
-                                          CFSTR( kIOHIDProductKey ) );
-    if (!ref)
-        ref = CFDictionaryGetValue(properties, CFSTR( "USB Product Name" ) );
-
-    if( !ref ||
-        !CFStringGetCString( ( CFStringRef )ref, name, 128,
-                             CFStringGetSystemEncoding( ) ) )
-    {
-        fgWarning( "error getting device name" );
-        name[ 0 ] = '\0';
-    }
-}
-
-
-void fgPlatformJoystickClose ( int ident )
-{
-    ( *( fgJoystick[ ident ]->pJoystick.hidDev ) )->
-        close( fgJoystick[ ident ]->pJoystick.hidDev );
-}
-#endif
-
-
-
-
-static void fghJoystickOpen( SFG_Joystick* joy )
-{
-    /*
-     * Default values (for no joystick -- each conditional will reset the
-     * error flag)
-     */
-    joy->error = TRUE;
-    joy->num_axes = joy->num_buttons = 0;
-    joy->name[ 0 ] = '\0';
-
-       fgPlatformJoystickOpen ( joy );
-
-}
-
-/*
- * This function replaces the constructor method in the JS library.
- */
-static void fghJoystickInit( int ident )
-{
-    if( ident >= MAX_NUM_JOYSTICKS )
-      fgError( "Too large a joystick number: %d", ident );
-
-    if( fgJoystick[ ident ] )
-        fgError( "illegal attempt to initialize joystick device again" );
-
-    fgJoystick[ ident ] =
-        ( SFG_Joystick * )calloc( sizeof( SFG_Joystick ), 1 );
-
-    /* Set defaults */
-    fgJoystick[ ident ]->num_axes = fgJoystick[ ident ]->num_buttons = 0;
-    fgJoystick[ ident ]->error = GL_TRUE;
-
-       fgPlatformJoystickInit( fgJoystick, ident );
-
-    fghJoystickOpen( fgJoystick[ ident  ] );
-}
-
-/*
- * Try initializing all the joysticks (well, both of them)
- */
-void fgInitialiseJoysticks ( void )
-{
-    if( !fgState.JoysticksInitialised )
-    {
-        int ident ;
-        for ( ident = 0; ident < MAX_NUM_JOYSTICKS; ident++ )
-            fghJoystickInit( ident );
-
-        fgState.JoysticksInitialised = GL_TRUE;
-    }
-}
-
-
-void fgJoystickClose( void )
-{
-    int ident ;
-    for( ident = 0; ident < MAX_NUM_JOYSTICKS; ident++ )
-    {
-        if( fgJoystick[ ident ] )
-        {
-                       fgPlatformJoystickClose ( ident );
-
-            free( fgJoystick[ ident ] );
-            fgJoystick[ ident ] = NULL;
-            /* show joystick has been deinitialized */
-        }
-    }
-}
-
-/*
- * Polls the joystick and executes the joystick callback hooked to the
- * window specified in the function's parameter:
- */
-void fgJoystickPollWindow( SFG_Window* window )
-{
-    float axes[ _JS_MAX_AXES ];
-    int buttons;
-    int ident;
-
-    freeglut_return_if_fail( window );
-    freeglut_return_if_fail( FETCH_WCB( *window, Joystick ) );
-
-    for( ident = 0; ident < MAX_NUM_JOYSTICKS; ident++ )
-    {
-        if( fgJoystick[ident] )
-        {
-            fghJoystickRead( fgJoystick[ident], &buttons, axes );
-
-            if( !fgJoystick[ident]->error )
-                INVOKE_WCB( *window, Joystick,
-                            ( buttons,
-                              (int) ( axes[ 0 ] * 1000.0f ),
-                              (int) ( axes[ 1 ] * 1000.0f ),
-                              (int) ( axes[ 2 ] * 1000.0f ) )
-                );
-        }
-    }
-}
-
-/*
- * Implementation for glutDeviceGet(GLUT_HAS_JOYSTICK)
- */
-int fgJoystickDetect( void )
-{
-    int ident;
-
-    fgInitialiseJoysticks ();
-
-    if ( !fgState.JoysticksInitialised )
-        return 0;
-
-    for( ident=0; ident<MAX_NUM_JOYSTICKS; ident++ )
-        if( fgJoystick[ident] && !fgJoystick[ident]->error )
-            return 1;
-
-    return 0;
-}
-
-/*
- * Joystick information, setup and execution functions
- */
-
-/*
- * Forces the joystick callback to be executed
- */
-void FGAPIENTRY glutForceJoystickFunc( void )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutForceJoystickFunc" );
-#if !defined(_WIN32_WCE)
-    freeglut_return_if_fail( fgStructure.CurrentWindow != NULL );
-    freeglut_return_if_fail( FETCH_WCB( *( fgStructure.CurrentWindow ), Joystick ) );
-    fgJoystickPollWindow( fgStructure.CurrentWindow );
-#endif /* !defined(_WIN32_WCE) */
-}
-int  glutJoystickGetNumAxes( int ident )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutJoystickGetNumAxes" );
-    return fgJoystick[ ident ]->num_axes;
-}
-int  glutJoystickGetNumButtons( int ident )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutJoystickGetNumButtons" );
-    return fgJoystick[ ident ]->num_buttons;
-}
-int  glutJoystickNotWorking( int ident )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutJoystickNotWorking" );
-    return fgJoystick[ ident ]->error;
-}
-
-float glutJoystickGetDeadBand( int ident, int axis )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutJoystickGetDeadBand" );
-    return fgJoystick[ ident ]->dead_band [ axis ];
-}
-void  glutJoystickSetDeadBand( int ident, int axis, float db )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutJoystickSetDeadBand" );
-    fgJoystick[ ident ]->dead_band[ axis ] = db;
-}
-
-float glutJoystickGetSaturation( int ident, int axis )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutJoystickGetSaturation" );
-    return fgJoystick[ ident ]->saturate[ axis ];
-}
-void  glutJoystickSetSaturation( int ident, int axis, float st )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutJoystickSetSaturation" );
-    fgJoystick[ ident ]->saturate [ axis ] = st;
-}
-
-void glutJoystickSetMinRange( int ident, float *axes )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutJoystickSetMinRange" );
-    memcpy( fgJoystick[ ident ]->min, axes,
-            fgJoystick[ ident ]->num_axes * sizeof( float ) );
-}
-void glutJoystickSetMaxRange( int ident, float *axes )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutJoystickSetMaxRange" );
-    memcpy( fgJoystick[ ident ]->max, axes,
-            fgJoystick[ ident ]->num_axes * sizeof( float ) );
-}
-void glutJoystickSetCenter( int ident, float *axes )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutJoystickSetCenter" );
-    memcpy( fgJoystick[ ident ]->center, axes,
-            fgJoystick[ ident ]->num_axes * sizeof( float ) );
-}
-
-void glutJoystickGetMinRange( int ident, float *axes )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutJoystickGetMinRange" );
-    memcpy( axes, fgJoystick[ ident ]->min,
-            fgJoystick[ ident ]->num_axes * sizeof( float ) );
-}
-void glutJoystickGetMaxRange( int ident, float *axes )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutJoystickGetMaxRange" );
-    memcpy( axes, fgJoystick[ ident ]->max,
-            fgJoystick[ ident ]->num_axes * sizeof( float ) );
-}
-void glutJoystickGetCenter( int ident, float *axes )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutJoystickGetCenter" );
-    memcpy( axes, fgJoystick[ ident ]->center,
-            fgJoystick[ ident ]->num_axes * sizeof( float ) );
-}
-
-/*** END OF FILE ***/
diff --git a/src/Common/freeglut_main.c b/src/Common/freeglut_main.c
deleted file mode 100644 (file)
index 8aa02b2..0000000
+++ /dev/null
@@ -1,466 +0,0 @@
-/*
- * freeglut_main.c
- *
- * The windows message processing methods.
- *
- * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
- * Written by Pawel W. Olszta, <olszta@sourceforge.net>
- * Creation date: Fri Dec 3 1999
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#include <GL/freeglut.h>
-#include "freeglut_internal.h"
-#ifdef HAVE_ERRNO_H
-#    include <errno.h>
-#endif
-#include <stdarg.h>
-#ifdef  HAVE_VFPRINTF
-#    define VFPRINTF(s,f,a) vfprintf((s),(f),(a))
-#elif defined(HAVE__DOPRNT)
-#    define VFPRINTF(s,f,a) _doprnt((f),(a),(s))
-#else
-#    define VFPRINTF(s,f,a)
-#endif
-
-/*
- * Try to get the maximum value allowed for ints, falling back to the minimum
- * guaranteed by ISO C99 if there is no suitable header.
- */
-#ifdef HAVE_LIMITS_H
-#    include <limits.h>
-#endif
-#ifndef INT_MAX
-#    define INT_MAX 32767
-#endif
-
-#ifndef MIN
-#    define MIN(a,b) (((a)<(b)) ? (a) : (b))
-#endif
-
-extern void fgPlatformReshapeWindow ( SFG_Window *window, int width, int height );
-extern void fgPlatformDisplayWindow ( SFG_Window *window );
-extern fg_time_t fgPlatformSystemTime ( void );
-extern void fgPlatformSleepForEvents( fg_time_t msec );
-extern void fgPlatformProcessSingleEvent ( void );
-extern void fgPlatformMainLoopPreliminaryWork ( void );
-
-
-
-
-/* -- PRIVATE FUNCTIONS ---------------------------------------------------- */
-
-static void fghReshapeWindow ( SFG_Window *window, int width, int height )
-{
-    SFG_Window *current_window = fgStructure.CurrentWindow;
-
-    freeglut_return_if_fail( window != NULL );
-
-       fgPlatformReshapeWindow ( window, width, height );
-
-    if( FETCH_WCB( *window, Reshape ) )
-        INVOKE_WCB( *window, Reshape, ( width, height ) );
-    else
-    {
-        fgSetWindow( window );
-        glViewport( 0, 0, width, height );
-    }
-
-    /*
-     * Force a window redraw.  In Windows at least this is only a partial
-     * solution:  if the window is increasing in size in either dimension,
-     * the already-drawn part does not get drawn again and things look funny.
-     * But without this we get this bad behaviour whenever we resize the
-     * window.
-     */
-    window->State.Redisplay = GL_TRUE;
-
-    if( window->IsMenu )
-        fgSetWindow( current_window );
-}
-
-/*
- * Calls a window's redraw method. This is used when
- * a redraw is forced by the incoming window messages.
- */
-void fghRedrawWindow ( SFG_Window *window )
-{
-    SFG_Window *current_window = fgStructure.CurrentWindow;
-
-    freeglut_return_if_fail( window );
-    freeglut_return_if_fail( FETCH_WCB ( *window, Display ) );
-
-    window->State.Redisplay = GL_FALSE;
-
-    freeglut_return_if_fail( window->State.Visible );
-
-    fgSetWindow( window );
-
-    if( window->State.NeedToResize )
-    {
-        fghReshapeWindow(
-            window,
-            window->State.Width,
-            window->State.Height
-        );
-
-        window->State.NeedToResize = GL_FALSE;
-    }
-
-    INVOKE_WCB( *window, Display, ( ) );
-
-    fgSetWindow( current_window );
-}
-
-
-static void fghcbDisplayWindow( SFG_Window *window,
-                                SFG_Enumerator *enumerator )
-{
-    if( window->State.Redisplay &&
-        window->State.Visible )
-    {
-        window->State.Redisplay = GL_FALSE;
-               fgPlatformDisplayWindow ( window );
-    }
-
-    fgEnumSubWindows( window, fghcbDisplayWindow, enumerator );
-}
-
-/*
- * Make all windows perform a display call
- */
-static void fghDisplayAll( void )
-{
-    SFG_Enumerator enumerator;
-
-    enumerator.found = GL_FALSE;
-    enumerator.data  =  NULL;
-
-    fgEnumWindows( fghcbDisplayWindow, &enumerator );
-}
-
-/*
- * Window enumerator callback to check for the joystick polling code
- */
-static void fghcbCheckJoystickPolls( SFG_Window *window,
-                                     SFG_Enumerator *enumerator )
-{
-    fg_time_t checkTime = fgElapsedTime( );
-
-    if( window->State.JoystickLastPoll + window->State.JoystickPollRate <=
-        checkTime )
-    {
-#if !defined(_WIN32_WCE)
-        fgJoystickPollWindow( window );
-#endif /* !defined(_WIN32_WCE) */
-        window->State.JoystickLastPoll = checkTime;
-    }
-
-    fgEnumSubWindows( window, fghcbCheckJoystickPolls, enumerator );
-}
-
-/*
- * Check all windows for joystick polling
- */
-static void fghCheckJoystickPolls( void )
-{
-    SFG_Enumerator enumerator;
-
-    enumerator.found = GL_FALSE;
-    enumerator.data  =  NULL;
-
-    fgEnumWindows( fghcbCheckJoystickPolls, &enumerator );
-}
-
-/*
- * Check the global timers
- */
-static void fghCheckTimers( void )
-{
-    fg_time_t checkTime = fgElapsedTime( );
-
-    while( fgState.Timers.First )
-    {
-        SFG_Timer *timer = fgState.Timers.First;
-
-        if( timer->TriggerTime > checkTime )
-            break;
-
-        fgListRemove( &fgState.Timers, &timer->Node );
-        fgListAppend( &fgState.FreeTimers, &timer->Node );
-
-        timer->Callback( timer->ID );
-    }
-}
-
-/* Platform-dependent time in milliseconds, as an unsigned 64-bit integer.
- * This doesn't overflow in any reasonable time, so no need to worry about
- * that. The GLUT API return value will however overflow after 49.7 days,
- * and on Windows we (currently) do not have access to a 64-bit timestamp,
- * which means internal time will still get in trouble when running the
- * application for more than 49.7 days.
- * This value wraps every 49.7 days, but integer overflows cancel
- * when subtracting an initial start time, unless the total time exceeds
- * 32-bit, where the GLUT API return value is also overflowed.
- */  
-fg_time_t fgSystemTime(void)
-{
-       return fgPlatformSystemTime();
-}
-  
-/*
- * Elapsed Time
- */
-fg_time_t fgElapsedTime( void )
-{
-    return fgSystemTime() - fgState.Time;
-}
-
-/*
- * Error Messages.
- */
-void fgError( const char *fmt, ... )
-{
-    va_list ap;
-
-    if (fgState.ErrorFunc) {
-
-        va_start( ap, fmt );
-
-        /* call user set error handler here */
-        fgState.ErrorFunc(fmt, ap);
-
-        va_end( ap );
-
-    } else {
-
-        va_start( ap, fmt );
-
-        fprintf( stderr, "freeglut ");
-        if( fgState.ProgramName )
-            fprintf( stderr, "(%s): ", fgState.ProgramName );
-        VFPRINTF( stderr, fmt, ap );
-        fprintf( stderr, "\n" );
-
-        va_end( ap );
-
-        if ( fgState.Initialised )
-            fgDeinitialize ();
-
-        exit( 1 );
-    }
-}
-
-void fgWarning( const char *fmt, ... )
-{
-    va_list ap;
-
-    if (fgState.WarningFunc) {
-
-        va_start( ap, fmt );
-
-        /* call user set warning handler here */
-        fgState.WarningFunc(fmt, ap);
-
-        va_end( ap );
-
-    } else {
-
-        va_start( ap, fmt );
-
-        fprintf( stderr, "freeglut ");
-        if( fgState.ProgramName )
-            fprintf( stderr, "(%s): ", fgState.ProgramName );
-        VFPRINTF( stderr, fmt, ap );
-        fprintf( stderr, "\n" );
-
-        va_end( ap );
-    }
-}
-
-
-/*
- * Indicates whether Joystick events are being used by ANY window.
- *
- * The current mechanism is to walk all of the windows and ask if
- * there is a joystick callback.  We have a short-circuit early
- * return if we find any joystick handler registered.
- *
- * The real way to do this is to make use of the glutTimer() API
- * to more cleanly re-implement the joystick API.  Then, this code
- * and all other "joystick timer" code can be yanked.
- *
- */
-static void fghCheckJoystickCallback( SFG_Window* w, SFG_Enumerator* e)
-{
-    if( FETCH_WCB( *w, Joystick ) )
-    {
-        e->found = GL_TRUE;
-        e->data = w;
-    }
-    fgEnumSubWindows( w, fghCheckJoystickCallback, e );
-}
-static int fghHaveJoystick( void )
-{
-    SFG_Enumerator enumerator;
-
-    enumerator.found = GL_FALSE;
-    enumerator.data = NULL;
-    fgEnumWindows( fghCheckJoystickCallback, &enumerator );
-    return !!enumerator.data;
-}
-static void fghHavePendingRedisplaysCallback( SFG_Window* w, SFG_Enumerator* e)
-{
-    if( w->State.Redisplay && w->State.Visible )
-    {
-        e->found = GL_TRUE;
-        e->data = w;
-    }
-    fgEnumSubWindows( w, fghHavePendingRedisplaysCallback, e );
-}
-static int fghHavePendingRedisplays (void)
-{
-    SFG_Enumerator enumerator;
-
-    enumerator.found = GL_FALSE;
-    enumerator.data = NULL;
-    fgEnumWindows( fghHavePendingRedisplaysCallback, &enumerator );
-    return !!enumerator.data;
-}
-/*
- * Returns the number of GLUT ticks (milliseconds) till the next timer event.
- */
-static fg_time_t fghNextTimer( void )
-{
-    fg_time_t currentTime = fgElapsedTime();
-    SFG_Timer *timer = fgState.Timers.First;
-
-    if( !timer )
-        return INT_MAX;
-
-    if( timer->TriggerTime < currentTime )
-        return 0;
-    else
-        return timer->TriggerTime - currentTime;
-}
-
-static void fghSleepForEvents( void )
-{
-    fg_time_t msec;
-
-    if( fgState.IdleCallback || fghHavePendingRedisplays( ) )
-        return;
-
-    msec = fghNextTimer( );
-    /* XXX Use GLUT timers for joysticks... */
-    /* XXX Dumb; forces granularity to .01sec */
-    if( fghHaveJoystick( ) && ( msec > 10 ) )     
-        msec = 10;
-
-       fgPlatformSleepForEvents ( msec );
-}
-
-
-/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
-
-/*
- * Executes a single iteration in the freeglut processing loop.
- */
-void FGAPIENTRY glutMainLoopEvent( void )
-{
-       fgPlatformProcessSingleEvent ();
-
-    if( fgState.Timers.First )
-        fghCheckTimers( );
-    fghCheckJoystickPolls( );
-    fghDisplayAll( );
-
-    fgCloseWindows( );
-}
-
-/*
- * Enters the freeglut processing loop.
- * Stays until the "ExecState" changes to "GLUT_EXEC_STATE_STOP".
- */
-void FGAPIENTRY glutMainLoop( void )
-{
-    int action;
-
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutMainLoop" );
-
-       fgPlatformMainLoopPreliminaryWork ();
-
-    fgState.ExecState = GLUT_EXEC_STATE_RUNNING ;
-    while( fgState.ExecState == GLUT_EXEC_STATE_RUNNING )
-    {
-        SFG_Window *window;
-
-        glutMainLoopEvent( );
-        /*
-         * Step through the list of windows, seeing if there are any
-         * that are not menus
-         */
-        for( window = ( SFG_Window * )fgStructure.Windows.First;
-             window;
-             window = ( SFG_Window * )window->Node.Next )
-            if ( ! ( window->IsMenu ) )
-                break;
-
-        if( ! window )
-            fgState.ExecState = GLUT_EXEC_STATE_STOP;
-        else
-        {
-            if( fgState.IdleCallback )
-            {
-                if( fgStructure.CurrentWindow &&
-                    fgStructure.CurrentWindow->IsMenu )
-                    /* fail safe */
-                    fgSetWindow( window );
-                fgState.IdleCallback( );
-            }
-
-            fghSleepForEvents( );
-        }
-    }
-
-    /*
-     * When this loop terminates, destroy the display, state and structure
-     * of a freeglut session, so that another glutInit() call can happen
-     *
-     * Save the "ActionOnWindowClose" because "fgDeinitialize" resets it.
-     */
-    action = fgState.ActionOnWindowClose;
-    fgDeinitialize( );
-    if( action == GLUT_ACTION_EXIT )
-        exit( 0 );
-}
-
-/*
- * Leaves the freeglut processing loop.
- */
-void FGAPIENTRY glutLeaveMainLoop( void )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutLeaveMainLoop" );
-    fgState.ExecState = GLUT_EXEC_STATE_STOP ;
-}
-
-
-
-/*** END OF FILE ***/
diff --git a/src/Common/freeglut_menu.c b/src/Common/freeglut_menu.c
deleted file mode 100644 (file)
index d844f96..0000000
+++ /dev/null
@@ -1,969 +0,0 @@
-/*
- * freeglut_menu.c
- *
- * Pull-down menu creation and handling.
- *
- * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
- * Written by Pawel W. Olszta, <olszta@sourceforge.net>
- * Creation date: Thu Dec 16 1999
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#define FREEGLUT_BUILDING_LIB
-#include <GL/freeglut.h>
-#include "freeglut_internal.h"
-
-/* -- DEFINITIONS ---------------------------------------------------------- */
-
-/*
- * FREEGLUT_MENU_FONT can be any freeglut bitmapped font.
- * (Stroked fonts would not be out of the question, but we'd need to alter
- *  code, since GLUT (hence freeglut) does not quite unify stroked and
- *  bitmapped font handling.)
- * Old UNIX/X11 GLUT (BSD, UNIX, IRIX, LINUX, HPUX, ...) used a system
- * font best approximated by an 18-pixel HELVETICA, I think.  MS-WINDOWS
- * GLUT used something closest to the 8x13 fixed-width font.  (Old
- * GLUT apparently uses host-system menus rather than building its own.
- * freeglut is building its own menus from scratch.)
- *
- * FREEGLUT_MENU_HEIGHT gives the height of ONE menu box.  This should be
- * the distances between two adjacent menu entries.  It should scale
- * automatically with the font choice, so you needn't alter it---unless you
- * use a stroked font.
- *
- * FREEGLUT_MENU_BORDER says how many pixels to allow around the edge of a
- * menu.  (It also seems to be the same as the number of pixels used as
- * a border around *items* to separate them from neighbors.  John says
- * that that wasn't the original intent...if not, perhaps we need another
- * symbolic constant, FREEGLUT_MENU_ITEM_BORDER, or such.)
- */
-/* See platform-specific header files for menu font and color definitions */
-
-#define  FREEGLUT_MENU_HEIGHT  (glutBitmapHeight(FREEGLUT_MENU_FONT) + \
-                                FREEGLUT_MENU_BORDER)
-#define  FREEGLUT_MENU_BORDER   2
-
-
-/*
- * These variables are for rendering the freeglut menu items.
- *
- * The choices are fore- and background, with and without h for Highlighting.
- * Old GLUT appeared to be system-dependant for its colors (sigh) so we are
- * too.  These variables should be stuffed into global state and initialized
- * via the glutInit*() system.
- */
-static float menu_pen_fore  [4] = FREEGLUT_MENU_PEN_FORE_COLORS ;
-static float menu_pen_back  [4] = FREEGLUT_MENU_PEN_BACK_COLORS ;
-static float menu_pen_hfore [4] = FREEGLUT_MENU_PEN_HFORE_COLORS;
-static float menu_pen_hback [4] = FREEGLUT_MENU_PEN_HBACK_COLORS;
-
-
-extern GLvoid fgPlatformGetGameModeVMaxExtent( SFG_Window* window, int* x, int* y );
-
-/* -- PRIVATE FUNCTIONS ---------------------------------------------------- */
-
-/*
- * Private function to find a menu entry by index
- */
-static SFG_MenuEntry *fghFindMenuEntry( SFG_Menu* menu, int index )
-{
-    SFG_MenuEntry *entry;
-    int i = 1;
-
-    for( entry = (SFG_MenuEntry *)menu->Entries.First;
-         entry;
-         entry = (SFG_MenuEntry *)entry->Node.Next )
-    {
-        if( i == index )
-            break;
-        ++i;
-    }
-
-    return entry;
-}
-
-/*
- * Deactivates a menu pointed by the function argument.
- */
-static void fghDeactivateSubMenu( SFG_MenuEntry *menuEntry )
-{
-    SFG_MenuEntry *subMenuIter;
-    /* Hide the present menu's window */
-    fgSetWindow( menuEntry->SubMenu->Window );
-    glutHideWindow( );
-
-    /* Forget about having that menu active anymore, now: */
-    menuEntry->SubMenu->Window->ActiveMenu = NULL;
-    menuEntry->SubMenu->IsActive = GL_FALSE;
-    menuEntry->SubMenu->ActiveEntry = NULL;
-
-    /* Hide all submenu windows, and the root menu's window. */
-    for ( subMenuIter = (SFG_MenuEntry *)menuEntry->SubMenu->Entries.First;
-          subMenuIter;
-          subMenuIter = (SFG_MenuEntry *)subMenuIter->Node.Next )
-    {
-        subMenuIter->IsActive = GL_FALSE;
-
-        /* Is that an active submenu by any case? */
-        if( subMenuIter->SubMenu )
-            fghDeactivateSubMenu( subMenuIter );
-    }
-
-    fgSetWindow ( menuEntry->SubMenu->ParentWindow ) ;
-}
-
-/*
- * Private function to get the virtual maximum screen extent
- */
-static GLvoid fghGetVMaxExtent( SFG_Window* window, int* x, int* y )
-{
-    if( fgStructure.GameModeWindow )
-               fgPlatformGetGameModeVMaxExtent ( window, x, y );
-    else
-    {
-        *x = fgDisplay.ScreenWidth;
-        *y = fgDisplay.ScreenHeight;
-    }
-}
-
-/*
- * Private function to check for the current menu/sub menu activity state
- */
-static GLboolean fghCheckMenuStatus( SFG_Menu* menu )
-{
-    SFG_MenuEntry* menuEntry;
-    int x, y;
-
-    /* First of all check any of the active sub menus... */
-    for( menuEntry = (SFG_MenuEntry *)menu->Entries.First;
-         menuEntry;
-         menuEntry = (SFG_MenuEntry *)menuEntry->Node.Next )
-    {
-        if( menuEntry->SubMenu && menuEntry->IsActive )
-        {
-            /*
-             * OK, have the sub-menu checked, too. If it returns GL_TRUE, it
-             * will mean that it caught the mouse cursor and we do not need
-             * to regenerate the activity list, and so our parents do...
-             */
-            GLboolean return_status;
-
-            menuEntry->SubMenu->Window->State.MouseX =
-                menu->Window->State.MouseX + menu->X - menuEntry->SubMenu->X;
-            menuEntry->SubMenu->Window->State.MouseY =
-                menu->Window->State.MouseY + menu->Y - menuEntry->SubMenu->Y;
-            return_status = fghCheckMenuStatus( menuEntry->SubMenu );
-
-            if ( return_status )
-                return GL_TRUE;
-        }
-    }
-
-    /* That much about our sub menus, let's get to checking the current menu: */
-    x = menu->Window->State.MouseX;
-    y = menu->Window->State.MouseY;
-
-    /* Check if the mouse cursor is contained within the current menu box */
-    if( ( x >= FREEGLUT_MENU_BORDER ) &&
-        ( x < menu->Width  - FREEGLUT_MENU_BORDER ) &&
-        ( y >= FREEGLUT_MENU_BORDER ) &&
-        ( y < menu->Height - FREEGLUT_MENU_BORDER )  )
-    {
-        int menuID = ( y - FREEGLUT_MENU_BORDER ) / FREEGLUT_MENU_HEIGHT;
-
-        /* The mouse cursor is somewhere over our box, check it out. */
-        menuEntry = fghFindMenuEntry( menu, menuID + 1 );
-        FREEGLUT_INTERNAL_ERROR_EXIT( menuEntry, "Cannot find menu entry",
-                                      "fghCheckMenuStatus" );
-
-        menuEntry->IsActive = GL_TRUE;
-        menuEntry->Ordinal = menuID;
-
-        /*
-         * If this is not the same as the last active menu entry, deactivate
-         * the previous entry.  Specifically, if the previous active entry
-         * was a submenu then deactivate it.
-         */
-        if( menu->ActiveEntry && ( menuEntry != menu->ActiveEntry ) )
-            if( menu->ActiveEntry->SubMenu )
-                fghDeactivateSubMenu( menu->ActiveEntry );
-
-        if( menuEntry != menu->ActiveEntry )
-        {
-            menu->Window->State.Redisplay = GL_TRUE;
-            if( menu->ActiveEntry )
-                menu->ActiveEntry->IsActive = GL_FALSE;
-        }
-
-        menu->ActiveEntry = menuEntry;
-        menu->IsActive = GL_TRUE;  /* XXX Do we need this? */
-
-        /*
-         * OKi, we have marked that entry as active, but it would be also
-         * nice to have its contents updated, in case it's a sub menu.
-         * Also, ignore the return value of the check function:
-         */
-        if( menuEntry->SubMenu )
-        {
-            if ( ! menuEntry->SubMenu->IsActive )
-            {
-                int max_x, max_y;
-                SFG_Window *current_window = fgStructure.CurrentWindow;
-
-                /* Set up the initial menu position now... */
-                menuEntry->SubMenu->IsActive = GL_TRUE;
-
-                /* Set up the initial submenu position now: */
-                fghGetVMaxExtent(menu->ParentWindow, &max_x, &max_y);
-                menuEntry->SubMenu->X = menu->X + menu->Width;
-                menuEntry->SubMenu->Y = menu->Y +
-                    menuEntry->Ordinal * FREEGLUT_MENU_HEIGHT;
-
-                if( menuEntry->SubMenu->X + menuEntry->SubMenu->Width > max_x )
-                    menuEntry->SubMenu->X = menu->X - menuEntry->SubMenu->Width;
-
-                if( menuEntry->SubMenu->Y + menuEntry->SubMenu->Height > max_y )
-                {
-                    menuEntry->SubMenu->Y -= ( menuEntry->SubMenu->Height -
-                                               FREEGLUT_MENU_HEIGHT -
-                                               2 * FREEGLUT_MENU_BORDER );
-                    if( menuEntry->SubMenu->Y < 0 )
-                        menuEntry->SubMenu->Y = 0;
-                }
-
-                fgSetWindow( menuEntry->SubMenu->Window );
-                glutPositionWindow( menuEntry->SubMenu->X,
-                                    menuEntry->SubMenu->Y );
-                glutReshapeWindow( menuEntry->SubMenu->Width,
-                                   menuEntry->SubMenu->Height );
-                glutPopWindow( );
-                glutShowWindow( );
-                menuEntry->SubMenu->Window->ActiveMenu = menuEntry->SubMenu;
-                fgSetWindow( current_window );
-                menuEntry->SubMenu->Window->State.MouseX =
-                    x + menu->X - menuEntry->SubMenu->X;
-                menuEntry->SubMenu->Window->State.MouseY =
-                    y + menu->Y - menuEntry->SubMenu->Y;
-                fghCheckMenuStatus( menuEntry->SubMenu );
-            }
-
-            /* Activate it because its parent entry is active */
-            menuEntry->SubMenu->IsActive = GL_TRUE;  /* XXX Do we need this? */
-        }
-
-        /* Report back that we have caught the menu cursor */
-        return GL_TRUE;
-    }
-
-    /* Looks like the menu cursor is somewhere else... */
-    if( menu->ActiveEntry && menu->ActiveEntry->IsActive &&
-        ( !menu->ActiveEntry->SubMenu ||
-          !menu->ActiveEntry->SubMenu->IsActive ) )
-    {
-        menu->Window->State.Redisplay = GL_TRUE;
-        menu->ActiveEntry->IsActive = GL_FALSE;
-        menu->ActiveEntry = NULL;
-    }
-
-    return GL_FALSE;
-}
-
-/*
- * Displays a menu box and all of its submenus (if they are active)
- */
-static void fghDisplayMenuBox( SFG_Menu* menu )
-{
-    SFG_MenuEntry *menuEntry;
-    int i;
-    int border = FREEGLUT_MENU_BORDER;
-
-    /*
-     * Have the menu box drawn first. The +- values are
-     * here just to make it more nice-looking...
-     */
-    /* a non-black dark version of the below. */
-    glColor4f( 1.0f, 1.0f, 1.0f, 1.0f );
-    glBegin( GL_QUAD_STRIP );
-        glVertex2i( menu->Width         , 0                    );
-        glVertex2i( menu->Width - border,                border);
-        glVertex2i( 0                   , 0                    );
-        glVertex2i(               border,                border);
-        glVertex2i( 0                   , menu->Height         );
-        glVertex2i(               border, menu->Height - border);
-    glEnd( );
-
-    /* a non-black dark version of the below. */
-    glColor4f( 0.5f, 0.5f, 0.5f, 1.0f );
-    glBegin( GL_QUAD_STRIP );
-        glVertex2i( 0                   , menu->Height         );
-        glVertex2i(               border, menu->Height - border);
-        glVertex2i( menu->Width         , menu->Height         );
-        glVertex2i( menu->Width - border, menu->Height - border);
-        glVertex2i( menu->Width         , 0                    );
-        glVertex2i( menu->Width - border,                border);
-    glEnd( );
-
-    glColor4fv( menu_pen_back );
-    glBegin( GL_QUADS );
-        glVertex2i(               border,                border);
-        glVertex2i( menu->Width - border,                border);
-        glVertex2i( menu->Width - border, menu->Height - border);
-        glVertex2i(               border, menu->Height - border);
-    glEnd( );
-
-    /* Check if any of the submenus is currently active... */
-    for( menuEntry = (SFG_MenuEntry *)menu->Entries.First;
-         menuEntry;
-         menuEntry = (SFG_MenuEntry *)menuEntry->Node.Next )
-    {
-        /* Has the menu been marked as active, maybe? */
-        if( menuEntry->IsActive )
-        {
-            /*
-             * That's truly right, and we need to have it highlighted.
-             * There is an assumption that mouse cursor didn't move
-             * since the last check of menu activity state:
-             */
-            int menuID = menuEntry->Ordinal;
-
-            /* So have the highlight drawn... */
-            glColor4fv( menu_pen_hback );
-            glBegin( GL_QUADS );
-                glVertex2i( border,
-                            (menuID + 0)*FREEGLUT_MENU_HEIGHT + border );
-                glVertex2i( menu->Width - border,
-                            (menuID + 0)*FREEGLUT_MENU_HEIGHT + border );
-                glVertex2i( menu->Width - border,
-                            (menuID + 1)*FREEGLUT_MENU_HEIGHT + border );
-                glVertex2i( border,
-                            (menuID + 1)*FREEGLUT_MENU_HEIGHT + border );
-            glEnd( );
-        }
-    }
-
-    /* Print the menu entries now... */
-
-    glColor4fv( menu_pen_fore );
-
-    for( menuEntry = (SFG_MenuEntry *)menu->Entries.First, i = 0;
-         menuEntry;
-         menuEntry = (SFG_MenuEntry *)menuEntry->Node.Next, ++i )
-    {
-        /* If the menu entry is active, set the color to white */
-        if( menuEntry->IsActive )
-            glColor4fv( menu_pen_hfore );
-
-        /* Move the raster into position... */
-        /* Try to center the text - JCJ 31 July 2003*/
-        glRasterPos2i(
-            2 * border,
-            ( i + 1 )*FREEGLUT_MENU_HEIGHT -
-            ( int )( FREEGLUT_MENU_HEIGHT*0.3 - border )
-        );
-
-        /* Have the label drawn, character after character: */
-        glutBitmapString( FREEGLUT_MENU_FONT,
-                          (unsigned char *)menuEntry->Text);
-
-        /* If it's a submenu, draw a right arrow */
-        if( menuEntry->SubMenu )
-        {
-            int width = glutBitmapWidth( FREEGLUT_MENU_FONT, '_' );
-            int x_base = menu->Width - 2 - width;
-            int y_base = i*FREEGLUT_MENU_HEIGHT + border;
-            glBegin( GL_TRIANGLES );
-                glVertex2i( x_base, y_base + 2*border);
-                glVertex2i( menu->Width - 2, y_base +
-                            ( FREEGLUT_MENU_HEIGHT + border) / 2 );
-                glVertex2i( x_base, y_base + FREEGLUT_MENU_HEIGHT - border );
-            glEnd( );
-        }
-
-        /* If the menu entry is active, reset the color */
-        if( menuEntry->IsActive )
-            glColor4fv( menu_pen_fore );
-    }
-}
-
-/*
- * Private static function to set the parent window of a submenu and all
- * of its submenus
- */
-static void fghSetMenuParentWindow( SFG_Window *window, SFG_Menu *menu )
-{
-    SFG_MenuEntry *menuEntry;
-
-    menu->ParentWindow = window;
-
-    for( menuEntry = ( SFG_MenuEntry * )menu->Entries.First;
-         menuEntry;
-         menuEntry = ( SFG_MenuEntry * )menuEntry->Node.Next )
-        if( menuEntry->SubMenu )
-            fghSetMenuParentWindow( window, menuEntry->SubMenu );
-}
-
-/*
- * Function to check for menu entry selection on menu deactivation
- */
-static void fghExecuteMenuCallback( SFG_Menu* menu )
-{
-    SFG_MenuEntry *menuEntry;
-
-    /* First of all check any of the active sub menus... */
-    for( menuEntry = (SFG_MenuEntry *)menu->Entries.First;
-         menuEntry;
-         menuEntry = (SFG_MenuEntry *)menuEntry->Node.Next)
-    {
-        if( menuEntry->IsActive )
-        {
-            if( menuEntry->SubMenu )
-                fghExecuteMenuCallback( menuEntry->SubMenu );
-            else
-                if( menu->Callback )
-                {
-                    SFG_Menu *save_menu = fgStructure.CurrentMenu;
-                    fgStructure.CurrentMenu = menu;
-                    menu->Callback( menuEntry->ID );
-                    fgStructure.CurrentMenu = save_menu;
-                }
-
-            return;
-        }
-    }
-}
-
-
-/*
- * Displays the currently active menu for the current window
- */
-void fgDisplayMenu( void )
-{
-    SFG_Window* window = fgStructure.CurrentWindow;
-    SFG_Menu* menu = NULL;
-
-    FREEGLUT_INTERNAL_ERROR_EXIT ( fgStructure.CurrentWindow, "Displaying menu in nonexistent window",
-                                   "fgDisplayMenu" );
-
-    /* Check if there is an active menu attached to this window... */
-    menu = window->ActiveMenu;
-    freeglut_return_if_fail( menu );
-
-    fgSetWindow( menu->Window );
-
-    glPushAttrib( GL_DEPTH_BUFFER_BIT | GL_TEXTURE_BIT | GL_LIGHTING_BIT |
-                  GL_POLYGON_BIT );
-
-    glDisable( GL_DEPTH_TEST );
-    glDisable( GL_TEXTURE_2D );
-    glDisable( GL_LIGHTING   );
-    glDisable( GL_CULL_FACE  );
-
-    glMatrixMode( GL_PROJECTION );
-    glPushMatrix( );
-    glLoadIdentity( );
-    glOrtho(
-         0, glutGet( GLUT_WINDOW_WIDTH  ),
-         glutGet( GLUT_WINDOW_HEIGHT ), 0,
-        -1, 1
-    );
-
-    glMatrixMode( GL_MODELVIEW );
-    glPushMatrix( );
-    glLoadIdentity( );
-
-    fghDisplayMenuBox( menu );
-
-    glPopAttrib( );
-
-    glMatrixMode( GL_PROJECTION );
-    glPopMatrix( );
-    glMatrixMode( GL_MODELVIEW );
-    glPopMatrix( );
-
-    glutSwapBuffers( );
-
-    fgSetWindow ( window );
-}
-
-/*
- * Activates a menu pointed by the function argument
- */
-static void fghActivateMenu( SFG_Window* window, int button )
-{
-    int max_x, max_y;
-
-    /* We'll be referencing this menu a lot, so remember its address: */
-    SFG_Menu* menu = window->Menu[ button ];
-    SFG_Window* current_window = fgStructure.CurrentWindow;
-
-    /* If the menu is already active in another window, deactivate it there */
-    if ( menu->ParentWindow )
-      menu->ParentWindow->ActiveMenu = NULL ;
-
-    /* Mark the menu as active, so that it gets displayed: */
-    window->ActiveMenu = menu;
-    menu->IsActive = GL_TRUE;
-    fghSetMenuParentWindow ( window, menu );
-    fgState.ActiveMenus++;
-
-    /* Set up the initial menu position now: */
-    fghGetVMaxExtent(menu->ParentWindow, &max_x, &max_y);
-    fgSetWindow( window );
-    menu->X = window->State.MouseX + glutGet( GLUT_WINDOW_X );
-    menu->Y = window->State.MouseY + glutGet( GLUT_WINDOW_Y );
-
-    if( menu->X + menu->Width > max_x )
-        menu->X -=menu->Width;
-
-    if( menu->Y + menu->Height > max_y )
-    {
-        menu->Y -=menu->Height;
-        if( menu->Y < 0 )
-            menu->Y = 0;
-    }
-
-    menu->Window->State.MouseX =
-        window->State.MouseX + glutGet( GLUT_WINDOW_X ) - menu->X;
-    menu->Window->State.MouseY =
-        window->State.MouseY + glutGet( GLUT_WINDOW_Y ) - menu->Y;
-
-    fgSetWindow( menu->Window );
-    glutPositionWindow( menu->X, menu->Y );
-    glutReshapeWindow( menu->Width, menu->Height );
-    glutPopWindow( );
-    glutShowWindow( );
-    menu->Window->ActiveMenu = menu;
-    fghCheckMenuStatus( menu );
-    fgSetWindow( current_window );
-}
-
-/*
- * Update Highlight states of the menu
- *
- * Current mouse position is in menu->Window->State.MouseX/Y.
- */
-void fgUpdateMenuHighlight ( SFG_Menu *menu )
-{
-    fghCheckMenuStatus( menu );
-}
-
-/*
- * Check whether an active menu absorbs a mouse click
- */
-GLboolean fgCheckActiveMenu ( SFG_Window *window, int button, GLboolean pressed,
-                              int mouse_x, int mouse_y )
-{
-    /*
-     * Near as I can tell, this is the menu behaviour:
-     *  - Down-click the menu button, menu not active:  activate
-     *    the menu with its upper left-hand corner at the mouse
-     *    location.
-     *  - Down-click any button outside the menu, menu active:
-     *    deactivate the menu
-     *  - Down-click any button inside the menu, menu active:
-     *    select the menu entry and deactivate the menu
-     *  - Up-click the menu button, menu not active:  nothing happens
-     *  - Up-click the menu button outside the menu, menu active:
-     *    nothing happens
-     *  - Up-click the menu button inside the menu, menu active:
-     *    select the menu entry and deactivate the menu
-     * Since menus can have submenus, we need to check this recursively.
-     */
-    if( window->ActiveMenu )
-    {
-        if( window == window->ActiveMenu->ParentWindow )
-        {
-            window->ActiveMenu->Window->State.MouseX =
-                                       mouse_x - window->ActiveMenu->X;
-            window->ActiveMenu->Window->State.MouseY =
-                                       mouse_y - window->ActiveMenu->Y;
-        }
-
-        /* In the menu, invoke the callback and deactivate the menu */
-        if( fghCheckMenuStatus( window->ActiveMenu ) )
-        {
-            /*
-             * Save the current window and menu and set the current
-             * window to the window whose menu this is
-             */
-            SFG_Window *save_window = fgStructure.CurrentWindow;
-            SFG_Menu *save_menu = fgStructure.CurrentMenu;
-            SFG_Window *parent_window = window->ActiveMenu->ParentWindow;
-            fgSetWindow( parent_window );
-            fgStructure.CurrentMenu = window->ActiveMenu;
-
-            /* Execute the menu callback */
-            fghExecuteMenuCallback( window->ActiveMenu );
-            fgDeactivateMenu( parent_window );
-
-            /* Restore the current window and menu */
-            fgSetWindow( save_window );
-            fgStructure.CurrentMenu = save_menu;
-        }
-        else if( pressed )
-            /*
-             * Outside the menu, deactivate if it's a downclick
-             *
-             * XXX This isn't enough.  A downclick outside of
-             * XXX the interior of our freeglut windows should also
-             * XXX deactivate the menu.  This is more complicated.
-             */
-            fgDeactivateMenu( window->ActiveMenu->ParentWindow );
-
-        /*
-         * XXX Why does an active menu require a redisplay at
-         * XXX this point?  If this can come out cleanly, then
-         * XXX it probably should do so; if not, a comment should
-         * XXX explain it.
-         */
-        if( ! window->IsMenu )
-            window->State.Redisplay = GL_TRUE;
-
-        return GL_TRUE;
-    }
-
-    /* No active menu, let's check whether we need to activate one. */
-    if( ( 0 <= button ) &&
-        ( FREEGLUT_MAX_MENUS > button ) &&
-        ( window->Menu[ button ] ) &&
-        pressed )
-    {
-        /* XXX Posting a requisite Redisplay seems bogus. */
-        window->State.Redisplay = GL_TRUE;
-        fghActivateMenu( window, button );
-        return GL_TRUE;
-    }
-
-    return GL_FALSE;
-}
-
-/*
- * Deactivates a menu pointed by the function argument.
- */
-void fgDeactivateMenu( SFG_Window *window )
-{
-    SFG_Window *parent_window = NULL;
-
-    /* Check if there is an active menu attached to this window... */
-    SFG_Menu* menu = window->ActiveMenu;
-    SFG_MenuEntry *menuEntry;
-
-    /* Did we find an active window? */
-    freeglut_return_if_fail( menu );
-
-    parent_window = menu->ParentWindow;
-
-    /* Hide the present menu's window */
-    fgSetWindow( menu->Window );
-    glutHideWindow( );
-
-    /* Forget about having that menu active anymore, now: */
-    menu->Window->ActiveMenu = NULL;
-    menu->ParentWindow->ActiveMenu = NULL;
-    fghSetMenuParentWindow ( NULL, menu );
-    menu->IsActive = GL_FALSE;
-    menu->ActiveEntry = NULL;
-
-    fgState.ActiveMenus--;
-
-    /* Hide all submenu windows, and the root menu's window. */
-    for ( menuEntry = ( SFG_MenuEntry * )menu->Entries.First;
-          menuEntry;
-          menuEntry = ( SFG_MenuEntry * )menuEntry->Node.Next )
-    {
-        menuEntry->IsActive = GL_FALSE;
-
-        /* Is that an active submenu by any case? */
-        if( menuEntry->SubMenu )
-            fghDeactivateSubMenu( menuEntry );
-    }
-
-    fgSetWindow ( parent_window ) ;
-}
-
-/*
- * Recalculates current menu's box size
- */
-void fghCalculateMenuBoxSize( void )
-{
-    SFG_MenuEntry* menuEntry;
-    int width = 0, height = 0;
-
-    /* Make sure there is a current menu set */
-    freeglut_return_if_fail( fgStructure.CurrentMenu );
-
-    /* The menu's box size depends on the menu entries: */
-    for( menuEntry = ( SFG_MenuEntry * )fgStructure.CurrentMenu->Entries.First;
-         menuEntry;
-         menuEntry = ( SFG_MenuEntry * )menuEntry->Node.Next )
-    {
-        /* Update the menu entry's width value */
-        menuEntry->Width = glutBitmapLength(
-            FREEGLUT_MENU_FONT,
-            (unsigned char *)menuEntry->Text
-        );
-
-        /*
-         * If the entry is a submenu, then it needs to be wider to
-         * accomodate the arrow. JCJ 31 July 2003
-         */
-        if (menuEntry->SubMenu )
-            menuEntry->Width += glutBitmapLength(
-                FREEGLUT_MENU_FONT,
-                (unsigned char *)"_"
-            );
-
-        /* Check if it's the biggest we've found */
-        if( menuEntry->Width > width )
-            width = menuEntry->Width;
-
-        height += FREEGLUT_MENU_HEIGHT;
-    }
-
-    /* Store the menu's box size now: */
-    fgStructure.CurrentMenu->Height = height + 2 * FREEGLUT_MENU_BORDER;
-    fgStructure.CurrentMenu->Width  = width  + 4 * FREEGLUT_MENU_BORDER;
-}
-
-
-/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
-
-/*
- * Creates a new menu object, adding it to the freeglut structure
- */
-int FGAPIENTRY glutCreateMenu( void(* callback)( int ) )
-{
-    /* The menu object creation code resides in freeglut_structure.c */
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutCreateMenu" );
-    return fgCreateMenu( callback )->ID;
-}
-
-/*
- * Destroys a menu object, removing all references to it
- */
-void FGAPIENTRY glutDestroyMenu( int menuID )
-{
-    SFG_Menu* menu;
-
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutDestroyMenu" );
-    menu = fgMenuByID( menuID );
-
-    freeglut_return_if_fail( menu );
-
-    /* The menu object destruction code resides in freeglut_structure.c */
-    fgDestroyMenu( menu );
-}
-
-/*
- * Returns the ID number of the currently active menu
- */
-int FGAPIENTRY glutGetMenu( void )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutGetMenu" );
-
-    if( fgStructure.CurrentMenu )
-        return fgStructure.CurrentMenu->ID;
-
-    return 0;
-}
-
-/*
- * Sets the current menu given its menu ID
- */
-void FGAPIENTRY glutSetMenu( int menuID )
-{
-    SFG_Menu* menu;
-
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSetMenu" );
-    menu = fgMenuByID( menuID );
-
-    freeglut_return_if_fail( menu );
-
-    fgStructure.CurrentMenu = menu;
-}
-
-/*
- * Adds a menu entry to the bottom of the current menu
- */
-void FGAPIENTRY glutAddMenuEntry( const char* label, int value )
-{
-    SFG_MenuEntry* menuEntry;
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutAddMenuEntry" );
-    menuEntry = (SFG_MenuEntry *)calloc( sizeof(SFG_MenuEntry), 1 );
-    freeglut_return_if_fail( fgStructure.CurrentMenu );
-
-    menuEntry->Text = strdup( label );
-    menuEntry->ID   = value;
-
-    /* Have the new menu entry attached to the current menu */
-    fgListAppend( &fgStructure.CurrentMenu->Entries, &menuEntry->Node );
-
-    fghCalculateMenuBoxSize( );
-}
-
-/*
- * Add a sub menu to the bottom of the current menu
- */
-void FGAPIENTRY glutAddSubMenu( const char *label, int subMenuID )
-{
-    SFG_MenuEntry *menuEntry;
-    SFG_Menu *subMenu;
-
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutAddSubMenu" );
-    menuEntry = ( SFG_MenuEntry * )calloc( sizeof( SFG_MenuEntry ), 1 );
-    subMenu = fgMenuByID( subMenuID );
-
-    freeglut_return_if_fail( fgStructure.CurrentMenu );
-    freeglut_return_if_fail( subMenu );
-
-    menuEntry->Text    = strdup( label );
-    menuEntry->SubMenu = subMenu;
-    menuEntry->ID      = -1;
-
-    fgListAppend( &fgStructure.CurrentMenu->Entries, &menuEntry->Node );
-    fghCalculateMenuBoxSize( );
-}
-
-/*
- * Changes the specified menu item in the current menu into a menu entry
- */
-void FGAPIENTRY glutChangeToMenuEntry( int item, const char* label, int value )
-{
-    SFG_MenuEntry* menuEntry = NULL;
-
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutChangeToMenuEntry" );
-    freeglut_return_if_fail( fgStructure.CurrentMenu );
-
-    /* Get n-th menu entry in the current menu, starting from one: */
-    menuEntry = fghFindMenuEntry( fgStructure.CurrentMenu, item );
-
-    freeglut_return_if_fail( menuEntry );
-
-    /* We want it to become a normal menu entry, so: */
-    if( menuEntry->Text )
-        free( menuEntry->Text );
-
-    menuEntry->Text    = strdup( label );
-    menuEntry->ID      = value;
-    menuEntry->SubMenu = NULL;
-    fghCalculateMenuBoxSize( );
-}
-
-/*
- * Changes the specified menu item in the current menu into a sub-menu trigger.
- */
-void FGAPIENTRY glutChangeToSubMenu( int item, const char* label,
-                                     int subMenuID )
-{
-    SFG_Menu*      subMenu;
-    SFG_MenuEntry* menuEntry;
-
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutChangeToSubMenu" );
-    subMenu = fgMenuByID( subMenuID );
-    menuEntry = NULL;
-
-    freeglut_return_if_fail( fgStructure.CurrentMenu );
-    freeglut_return_if_fail( subMenu );
-
-    /* Get n-th menu entry in the current menu, starting from one: */
-    menuEntry = fghFindMenuEntry( fgStructure.CurrentMenu, item );
-
-    freeglut_return_if_fail( menuEntry );
-
-    /* We want it to become a sub menu entry, so: */
-    if( menuEntry->Text )
-        free( menuEntry->Text );
-
-    menuEntry->Text    = strdup( label );
-    menuEntry->SubMenu = subMenu;
-    menuEntry->ID      = -1;
-    fghCalculateMenuBoxSize( );
-}
-
-/*
- * Removes the specified menu item from the current menu
- */
-void FGAPIENTRY glutRemoveMenuItem( int item )
-{
-    SFG_MenuEntry* menuEntry;
-
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutRemoveMenuItem" );
-    freeglut_return_if_fail( fgStructure.CurrentMenu );
-
-    /* Get n-th menu entry in the current menu, starting from one: */
-    menuEntry = fghFindMenuEntry( fgStructure.CurrentMenu, item );
-
-    freeglut_return_if_fail( menuEntry );
-
-    fgListRemove( &fgStructure.CurrentMenu->Entries, &menuEntry->Node );
-    if ( menuEntry->Text )
-      free( menuEntry->Text );
-
-    free( menuEntry );
-    fghCalculateMenuBoxSize( );
-}
-
-/*
- * Attaches a menu to the current window
- */
-void FGAPIENTRY glutAttachMenu( int button )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutAttachMenu" );
-
-    freeglut_return_if_fail( fgStructure.CurrentWindow );
-    freeglut_return_if_fail( fgStructure.CurrentMenu );
-
-    freeglut_return_if_fail( button >= 0 );
-    freeglut_return_if_fail( button < FREEGLUT_MAX_MENUS );
-
-    fgStructure.CurrentWindow->Menu[ button ] = fgStructure.CurrentMenu;
-}
-
-/*
- * Detaches a menu from the current window
- */
-void FGAPIENTRY glutDetachMenu( int button )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutDetachMenu" );
-
-    freeglut_return_if_fail( fgStructure.CurrentWindow );
-    freeglut_return_if_fail( fgStructure.CurrentMenu );
-
-    freeglut_return_if_fail( button >= 0 );
-    freeglut_return_if_fail( button < FREEGLUT_MAX_MENUS );
-
-    fgStructure.CurrentWindow->Menu[ button ] = NULL;
-}
-
-/*
- * A.Donev: Set and retrieve the menu's user data
- */
-void* FGAPIENTRY glutGetMenuData( void )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutGetMenuData" );
-    return fgStructure.CurrentMenu->UserData;
-}
-
-void FGAPIENTRY glutSetMenuData(void* data)
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSetMenuData" );
-    fgStructure.CurrentMenu->UserData=data;
-}
-
-/*** END OF FILE ***/
diff --git a/src/Common/freeglut_misc.c b/src/Common/freeglut_misc.c
deleted file mode 100644 (file)
index b0beb39..0000000
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * freeglut_misc.c
- *
- * Functions that didn't fit anywhere else...
- *
- * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
- * Written by Pawel W. Olszta, <olszta@sourceforge.net>
- * Creation date: Thu Dec 9 1999
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#include <GL/freeglut.h>
-#include "freeglut_internal.h"
-
-/*
- * TODO BEFORE THE STABLE RELEASE:
- *
- *  glutSetColor()     --
- *  glutGetColor()     --
- *  glutCopyColormap() --
- *  glutSetKeyRepeat() -- this is evil and should be removed from API
- */
-
-/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
-
-/*
- * This functions checks if an OpenGL extension is supported or not
- *
- * XXX Wouldn't this be simpler and clearer if we used strtok()?
- */
-int FGAPIENTRY glutExtensionSupported( const char* extension )
-{
-  const char *extensions, *start;
-  const size_t len = strlen( extension );
-
-  /* Make sure there is a current window, and thus a current context available */
-  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutExtensionSupported" );
-  freeglut_return_val_if_fail( fgStructure.CurrentWindow != NULL, 0 );
-
-  if (strchr(extension, ' '))
-    return 0;
-  start = extensions = (const char *) glGetString(GL_EXTENSIONS);
-
-  /* XXX consider printing a warning to stderr that there's no current
-   * rendering context.
-   */
-  freeglut_return_val_if_fail( extensions != NULL, 0 );
-
-  while (1) {
-     const char *p = strstr(extensions, extension);
-     if (!p)
-        return 0;  /* not found */
-     /* check that the match isn't a super string */
-     if ((p == start || p[-1] == ' ') && (p[len] == ' ' || p[len] == 0))
-        return 1;
-     /* skip the false match and continue */
-     extensions = p + len;
-  }
-
-  return 0 ;
-}
-
-#ifndef GL_INVALID_FRAMEBUFFER_OPERATION
-#ifdef GL_INVALID_FRAMEBUFFER_OPERATION_EXT
-#define GL_INVALID_FRAMEBUFFER_OPERATION GL_INVALID_FRAMEBUFFER_OPERATION_EXT
-#else
-#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
-#endif
-#endif
-
-#ifndef GL_TABLE_TOO_LARGE
-#ifdef GL_TABLE_TOO_LARGE_EXT
-#define GL_TABLE_TOO_LARGE GL_TABLE_TOO_LARGE_EXT
-#else
-#define GL_TABLE_TOO_LARGE 0x8031
-#endif
-#endif
-
-#ifndef GL_TEXTURE_TOO_LARGE
-#ifdef GL_TEXTURE_TOO_LARGE_EXT
-#define GL_TEXTURE_TOO_LARGE GL_TEXTURE_TOO_LARGE_EXT
-#else
-#define GL_TEXTURE_TOO_LARGE 0x8065
-#endif
-#endif
-
-/*
- * A cut-down local version of gluErrorString to avoid depending on GLU.
- */
-static const char* fghErrorString( GLenum error )
-{
-  switch ( error ) {
-  case GL_INVALID_ENUM: return "invalid enumerant";
-  case GL_INVALID_VALUE: return "invalid value";
-  case GL_INVALID_OPERATION: return "invalid operation";
-#ifndef GL_ES_VERSION_2_0
-  case GL_STACK_OVERFLOW: return "stack overflow";
-  case GL_STACK_UNDERFLOW: return "stack underflow";
-#endif
-  case GL_OUT_OF_MEMORY: return "out of memory";
-  case GL_TABLE_TOO_LARGE: return "table too large";
-  case GL_INVALID_FRAMEBUFFER_OPERATION: return "invalid framebuffer operation";
-  case GL_TEXTURE_TOO_LARGE: return "texture too large";
-  default: return "unknown GL error";
-  }
-}
-
-/*
- * This function reports all the OpenGL errors that happened till now
- */
-void FGAPIENTRY glutReportErrors( void )
-{
-    GLenum error;
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutReportErrors" );
-    while( ( error = glGetError() ) != GL_NO_ERROR )
-        fgWarning( "GL error: %s", fghErrorString( error ) );
-}
-
-/*
- * Control the auto-repeat of keystrokes to the current window
- */
-void FGAPIENTRY glutIgnoreKeyRepeat( int ignore )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutIgnoreKeyRepeat" );
-    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutIgnoreKeyRepeat" );
-
-    fgStructure.CurrentWindow->State.IgnoreKeyRepeat = ignore ? GL_TRUE : GL_FALSE;
-}
-
-/*
- * Set global auto-repeat of keystrokes
- *
- * RepeatMode should be either:
- *    GLUT_KEY_REPEAT_OFF
- *    GLUT_KEY_REPEAT_ON
- *    GLUT_KEY_REPEAT_DEFAULT
- */
-void FGAPIENTRY glutSetKeyRepeat( int repeatMode )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSetKeyRepeat" );
-
-    switch( repeatMode )
-    {
-    case GLUT_KEY_REPEAT_OFF:
-    case GLUT_KEY_REPEAT_ON:
-     fgState.KeyRepeat = repeatMode;
-     break;
-
-    case GLUT_KEY_REPEAT_DEFAULT:
-     fgState.KeyRepeat = GLUT_KEY_REPEAT_ON;
-     break;
-
-    default:
-        fgError ("Invalid glutSetKeyRepeat mode: %d", repeatMode);
-        break;
-    }
-}
-
-/*
- *
- */
-void FGAPIENTRY glutSetColor( int nColor, GLfloat red, GLfloat green, GLfloat blue )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSetColor" );
-    /* We really need to do something here. */
-}
-
-/*
- *
- */
-GLfloat FGAPIENTRY glutGetColor( int color, int component )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutGetColor" );
-    /* We really need to do something here. */
-    return( 0.0f );
-}
-
-/*
- *
- */
-void FGAPIENTRY glutCopyColormap( int window )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutCopyColormap" );
-    /* We really need to do something here. */
-}
-
-/*** END OF FILE ***/
diff --git a/src/Common/freeglut_overlay.c b/src/Common/freeglut_overlay.c
deleted file mode 100644 (file)
index 2a1314a..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * freeglut_overlay.c
- *
- * Overlay management functions (as defined by GLUT API)
- *
- * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
- * Written by Pawel W. Olszta, <olszta@sourceforge.net>
- * Creation date: Thu Dec 16 1999
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#include <GL/freeglut.h>
-#include "freeglut_internal.h"
-
-/*
- * NOTE: functions declared in this file probably will not be implemented.
- */
-
-/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
-
-void FGAPIENTRY glutEstablishOverlay( void )             { /* Not implemented */ }
-void FGAPIENTRY glutRemoveOverlay( void )                { /* Not implemented */ }
-void FGAPIENTRY glutUseLayer( GLenum layer )             { /* Not implemented */ }
-void FGAPIENTRY glutPostOverlayRedisplay( void )         { /* Not implemented */ }
-void FGAPIENTRY glutPostWindowOverlayRedisplay( int ID ) { /* Not implemented */ }
-void FGAPIENTRY glutShowOverlay( void )                  { /* Not implemented */ }
-void FGAPIENTRY glutHideOverlay( void )                  { /* Not implemented */ }
-
-/*** END OF FILE ***/
diff --git a/src/Common/freeglut_spaceball.c b/src/Common/freeglut_spaceball.c
deleted file mode 100644 (file)
index 231531d..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Spaceball support for Linux.
- * Written by John Tsiombikas <nuclear@member.fsf.org>
- *
- * This code supports 3Dconnexion's 6-dof space-whatever devices.
- * It can communicate with either the proprietary 3Dconnexion daemon (3dxsrv)
- * free spacenavd (http://spacenav.sourceforge.net), through the "standard"
- * magellan X-based protocol.
- */
-
-#include <GL/freeglut.h>
-#include "freeglut_internal.h"
-
-/* -- PRIVATE FUNCTIONS --------------------------------------------------- */
-
-extern void fgPlatformInitializeSpaceball(void);
-extern void fgPlatformSpaceballClose(void);
-extern int fgPlatformHasSpaceball(void);
-extern int fgPlatformSpaceballNumButtons(void);
-extern void fgPlatformSpaceballSetWindow(SFG_Window *window);
-
-
-int sball_initialized = 0;
-
-void fgInitialiseSpaceball(void)
-{
-    if(sball_initialized != 0) {
-        return;
-    }
-
-    fgPlatformInitializeSpaceball();
-
-    sball_initialized = 1;
-}
-
-void fgSpaceballClose(void)
-{
-       fgPlatformSpaceballClose();}
-
-int fgHasSpaceball(void)
-{
-    if(sball_initialized == 0) {
-        fgInitialiseSpaceball();
-        if(sball_initialized != 1) {
-            fgWarning("fgInitialiseSpaceball failed\n");
-            return 0;
-        }
-    }
-
-    return fgPlatformHasSpaceball();
-}
-
-int fgSpaceballNumButtons(void)
-{
-    if(sball_initialized == 0) {
-        fgInitialiseSpaceball();
-        if(sball_initialized != 1) {
-            fgWarning("fgInitialiseSpaceball failed\n");
-            return 0;
-        }
-    }
-
-    return fgPlatformSpaceballNumButtons();
-}
-
-void fgSpaceballSetWindow(SFG_Window *window)
-{
-    if(sball_initialized == 0) {
-        fgInitialiseSpaceball();
-        if(sball_initialized != 1) {
-            return;
-        }
-    }
-
-    fgPlatformSpaceballSetWindow(window);
-}
-
diff --git a/src/Common/freeglut_state.c b/src/Common/freeglut_state.c
deleted file mode 100644 (file)
index d310b70..0000000
+++ /dev/null
@@ -1,346 +0,0 @@
-/*
- * freeglut_state.c
- *
- * Freeglut state query methods.
- *
- * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
- * Written by Pawel W. Olszta, <olszta@sourceforge.net>
- * Creation date: Thu Dec 16 1999
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#include <GL/freeglut.h>
-#include "freeglut_internal.h"
-
-/*
- * TODO BEFORE THE STABLE RELEASE:
- *
- *  glutGet()               -- X11 tests passed, but check if all enums
- *                             handled (what about Win32?)
- *  glutDeviceGet()         -- X11 tests passed, but check if all enums
- *                             handled (what about Win32?)
- *  glutGetModifiers()      -- OK, but could also remove the limitation
- *  glutLayerGet()          -- what about GLUT_NORMAL_DAMAGED?
- *
- * The fail-on-call policy will help adding the most needed things imho.
- */
-
-extern int fgPlatformGlutGet ( GLenum eWhat );
-extern int fgPlatformGlutDeviceGet ( GLenum eWhat );
-extern int *fgPlatformGlutGetModeValues(GLenum eWhat, int *size);
-
-
-/* -- LOCAL DEFINITIONS ---------------------------------------------------- */
-
-/* -- PRIVATE FUNCTIONS ---------------------------------------------------- */
-
-
-/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
-
-/*
- * General settings assignment method
- */
-void FGAPIENTRY glutSetOption( GLenum eWhat, int value )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSetOption" );
-
-    /*
-     * XXX In chronological code add order.  (WHY in that order?)
-     */
-    switch( eWhat )
-    {
-    case GLUT_INIT_WINDOW_X:
-        fgState.Position.X = (GLint)value;
-        break;
-
-    case GLUT_INIT_WINDOW_Y:
-        fgState.Position.Y = (GLint)value;
-        break;
-
-    case GLUT_INIT_WINDOW_WIDTH:
-        fgState.Size.X = (GLint)value;
-        break;
-
-    case GLUT_INIT_WINDOW_HEIGHT:
-        fgState.Size.Y = (GLint)value;
-        break;
-
-    case GLUT_INIT_DISPLAY_MODE:
-        fgState.DisplayMode = (unsigned int)value;
-        break;
-
-    case GLUT_ACTION_ON_WINDOW_CLOSE:
-        fgState.ActionOnWindowClose = value;
-        break;
-
-    case GLUT_RENDERING_CONTEXT:
-        fgState.UseCurrentContext =
-            ( value == GLUT_USE_CURRENT_CONTEXT ) ? GL_TRUE : GL_FALSE;
-        break;
-
-    case GLUT_DIRECT_RENDERING:
-        fgState.DirectContext = value;
-        break;
-
-    case GLUT_WINDOW_CURSOR:
-        if( fgStructure.CurrentWindow != NULL )
-            fgStructure.CurrentWindow->State.Cursor = value;
-        break;
-
-    case GLUT_AUX:
-      fgState.AuxiliaryBufferNumber = value;
-      break;
-
-    case GLUT_MULTISAMPLE:
-      fgState.SampleNumber = value;
-      break;
-
-    default:
-        fgWarning( "glutSetOption(): missing enum handle %d", eWhat );
-        break;
-    }
-}
-
-/*
- * General settings query method
- */
-int FGAPIENTRY glutGet( GLenum eWhat )
-{
-    switch (eWhat)
-    {
-    case GLUT_INIT_STATE:
-        return fgState.Initialised;
-
-    case GLUT_ELAPSED_TIME:
-        return (int) fgElapsedTime();
-    }
-
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutGet" );
-
-    /* XXX In chronological code add order.  (WHY in that order?) */
-    switch( eWhat )
-    {
-    /* Following values are stored in fgState and fgDisplay global structures */
-    case GLUT_SCREEN_WIDTH:         return fgDisplay.ScreenWidth   ;
-    case GLUT_SCREEN_HEIGHT:        return fgDisplay.ScreenHeight  ;
-    case GLUT_SCREEN_WIDTH_MM:      return fgDisplay.ScreenWidthMM ;
-    case GLUT_SCREEN_HEIGHT_MM:     return fgDisplay.ScreenHeightMM;
-    case GLUT_INIT_WINDOW_X:        return fgState.Position.Use ?
-                                           fgState.Position.X : -1 ;
-    case GLUT_INIT_WINDOW_Y:        return fgState.Position.Use ?
-                                           fgState.Position.Y : -1 ;
-    case GLUT_INIT_WINDOW_WIDTH:    return fgState.Size.Use ?
-                                           fgState.Size.X : -1     ;
-    case GLUT_INIT_WINDOW_HEIGHT:   return fgState.Size.Use ?
-                                           fgState.Size.Y : -1     ;
-    case GLUT_INIT_DISPLAY_MODE:    return fgState.DisplayMode     ;
-    case GLUT_INIT_MAJOR_VERSION:   return fgState.MajorVersion    ;
-    case GLUT_INIT_MINOR_VERSION:   return fgState.MinorVersion    ;
-    case GLUT_INIT_FLAGS:           return fgState.ContextFlags    ;
-    case GLUT_INIT_PROFILE:         return fgState.ContextProfile  ;
-
-    /* The window structure queries */
-    case GLUT_WINDOW_PARENT:
-        if( fgStructure.CurrentWindow         == NULL ) return 0;
-        if( fgStructure.CurrentWindow->Parent == NULL ) return 0;
-        return fgStructure.CurrentWindow->Parent->ID;
-
-    case GLUT_WINDOW_NUM_CHILDREN:
-        if( fgStructure.CurrentWindow == NULL )
-            return 0;
-        return fgListLength( &fgStructure.CurrentWindow->Children );
-
-    case GLUT_WINDOW_CURSOR:
-        if( fgStructure.CurrentWindow == NULL )
-            return 0;
-        return fgStructure.CurrentWindow->State.Cursor;
-
-    case GLUT_MENU_NUM_ITEMS:
-        if( fgStructure.CurrentMenu == NULL )
-            return 0;
-        return fgListLength( &fgStructure.CurrentMenu->Entries );
-
-    case GLUT_ACTION_ON_WINDOW_CLOSE:
-        return fgState.ActionOnWindowClose;
-
-    case GLUT_VERSION :
-        return VERSION_MAJOR * 10000 + VERSION_MINOR * 100 + VERSION_PATCH;
-
-    case GLUT_RENDERING_CONTEXT:
-        return fgState.UseCurrentContext ? GLUT_USE_CURRENT_CONTEXT
-                                         : GLUT_CREATE_NEW_CONTEXT;
-
-    case GLUT_DIRECT_RENDERING:
-        return fgState.DirectContext;
-
-    case GLUT_FULL_SCREEN:
-        return fgStructure.CurrentWindow->State.IsFullscreen;
-
-    case GLUT_AUX:
-      return fgState.AuxiliaryBufferNumber;
-
-    case GLUT_MULTISAMPLE:
-      return fgState.SampleNumber;
-
-    default:
-        return fgPlatformGlutGet ( eWhat );
-        break;
-    }
-    return -1;
-}
-
-/*
- * Returns various device information.
- */
-int FGAPIENTRY glutDeviceGet( GLenum eWhat )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutDeviceGet" );
-
-    /* XXX WARNING: we are mostly lying in this function. */
-    switch( eWhat )
-    {
-    case GLUT_HAS_JOYSTICK:
-        return fgJoystickDetect ();
-
-    case GLUT_OWNS_JOYSTICK:
-        return fgState.JoysticksInitialised;
-
-    case GLUT_JOYSTICK_POLL_RATE:
-        return fgStructure.CurrentWindow ? fgStructure.CurrentWindow->State.JoystickPollRate : 0;
-
-    /* XXX The following two are only for Joystick 0 but this is an improvement */
-    case GLUT_JOYSTICK_BUTTONS:
-        return glutJoystickGetNumButtons ( 0 );
-
-    case GLUT_JOYSTICK_AXES:
-        return glutJoystickGetNumAxes ( 0 );
-
-    case GLUT_HAS_DIAL_AND_BUTTON_BOX:
-        return fgInputDeviceDetect ();
-
-    case GLUT_NUM_DIALS:
-        if ( fgState.InputDevsInitialised ) return 8;
-        return 0;
-    case GLUT_NUM_BUTTON_BOX_BUTTONS:
-        return 0;
-
-    case GLUT_HAS_SPACEBALL:
-        return fgHasSpaceball();
-
-    case GLUT_HAS_TABLET:
-        return 0;
-
-    case GLUT_NUM_SPACEBALL_BUTTONS:
-        return fgSpaceballNumButtons();
-
-    case GLUT_NUM_TABLET_BUTTONS:
-        return 0;
-
-    case GLUT_DEVICE_IGNORE_KEY_REPEAT:
-        return fgStructure.CurrentWindow ? fgStructure.CurrentWindow->State.IgnoreKeyRepeat : 0;
-
-    case GLUT_DEVICE_KEY_REPEAT:
-        return fgState.KeyRepeat;
-
-    default:
-               return fgPlatformGlutDeviceGet ( eWhat );
-    }
-
-    /* And now -- the failure. */
-    return -1;
-}
-
-/*
- * This should return the current state of ALT, SHIFT and CTRL keys.
- */
-int FGAPIENTRY glutGetModifiers( void )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutGetModifiers" );
-    if( fgState.Modifiers == INVALID_MODIFIERS )
-    {
-        fgWarning( "glutGetModifiers() called outside an input callback" );
-        return 0;
-    }
-
-    return fgState.Modifiers;
-}
-
-/*
- * Return the state of the GLUT API overlay subsystem. A misery ;-)
- */
-int FGAPIENTRY glutLayerGet( GLenum eWhat )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutLayerGet" );
-
-    /*
-     * This is easy as layers are not implemented and
-     * overlay support is not planned. E.g. on Windows,
-     * overlay requests in PFDs are ignored
-     * (see iLayerType at http://msdn.microsoft.com/en-us/library/dd368826(v=vs.85).aspx)
-     */
-    switch( eWhat )
-    {
-
-    case GLUT_OVERLAY_POSSIBLE:
-        return 0 ;
-
-    case GLUT_LAYER_IN_USE:
-        return GLUT_NORMAL;
-
-    case GLUT_HAS_OVERLAY:
-        return 0;
-
-    case GLUT_TRANSPARENT_INDEX:
-        /*
-        * Return just anything, which is always defined as zero
-        *
-        * XXX HUH?
-        */
-        return 0;
-
-    case GLUT_NORMAL_DAMAGED:
-        /* XXX Actually I do not know. Maybe. */
-        return 0;
-
-    case GLUT_OVERLAY_DAMAGED:
-        return -1;
-
-    default:
-        fgWarning( "glutLayerGet(): missing enum handle %d", eWhat );
-        break;
-    }
-
-    /* And fail. That's good. Programs do love failing. */
-    return -1;
-}
-
-int * FGAPIENTRY glutGetModeValues(GLenum eWhat, int *size)
-{
-  int *array;
-
-  FREEGLUT_EXIT_IF_NOT_INITIALISED("glutGetModeValues");
-
-  *size = 0;
-  array = fgPlatformGlutGetModeValues ( eWhat, size );
-
-  return array;
-}
-
-/*** END OF FILE ***/
diff --git a/src/Common/freeglut_stroke_mono_roman.c b/src/Common/freeglut_stroke_mono_roman.c
deleted file mode 100644 (file)
index ec86d56..0000000
+++ /dev/null
@@ -1,2849 +0,0 @@
-/*
- * freeglut_stroke_mono_roman.c
- *
- * freeglut Monospace Roman stroke font definition
- *
- * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
- * Written by Pawel W. Olszta, <olszta@sourceforge.net>
- * Creation date: Thu Dec 16 1999
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-
-/* This file has been automatically generated by the genstroke utility. */
-
-#include <GL/freeglut.h>
-#include "freeglut_internal.h"
-
-/* char: 0x20 */
-
-static const SFG_StrokeStrip ch32st[] =
-{
-  { 0, NULL }
-};
-
-static const SFG_StrokeChar ch32 = {104.762f,0,ch32st};
-
-/* char: 0x21 */
-
-static const SFG_StrokeVertex ch33st0[] =
-{
- {52.381f,100.0f},
- {52.381f,33.3333f}
-};
-
-static const SFG_StrokeVertex ch33st1[] =
-{
- {52.381f,9.5238f},
- {47.6191f,4.7619f},
- {52.381f,0.0f},
- {57.1429f,4.7619f},
- {52.381f,9.5238f}
-};
-
-static const SFG_StrokeStrip ch33st[] =
-{
- {2,ch33st0},
- {5,ch33st1}
-};
-
-static const SFG_StrokeChar ch33 = {104.762f,2,ch33st};
-
-/* char: 0x22 */
-
-static const SFG_StrokeVertex ch34st0[] =
-{
- {33.3334f,100.0f},
- {33.3334f,66.6667f}
-};
-
-static const SFG_StrokeVertex ch34st1[] =
-{
- {71.4286f,100.0f},
- {71.4286f,66.6667f}
-};
-
-static const SFG_StrokeStrip ch34st[] =
-{
- {2,ch34st0},
- {2,ch34st1}
-};
-
-static const SFG_StrokeChar ch34 = {104.762f,2,ch34st};
-
-/* char: 0x23 */
-
-static const SFG_StrokeVertex ch35st0[] =
-{
- {54.7619f,119.048f},
- {21.4286f,-33.3333f}
-};
-
-static const SFG_StrokeVertex ch35st1[] =
-{
- {83.3334f,119.048f},
- {50.0f,-33.3333f}
-};
-
-static const SFG_StrokeVertex ch35st2[] =
-{
- {21.4286f,57.1429f},
- {88.0952f,57.1429f}
-};
-
-static const SFG_StrokeVertex ch35st3[] =
-{
- {16.6667f,28.5714f},
- {83.3334f,28.5714f}
-};
-
-static const SFG_StrokeStrip ch35st[] =
-{
- {2,ch35st0},
- {2,ch35st1},
- {2,ch35st2},
- {2,ch35st3}
-};
-
-static const SFG_StrokeChar ch35 = {104.762f,4,ch35st};
-
-/* char: 0x24 */
-
-static const SFG_StrokeVertex ch36st0[] =
-{
- {42.8571f,119.048f},
- {42.8571f,-19.0476f}
-};
-
-static const SFG_StrokeVertex ch36st1[] =
-{
- {61.9047f,119.048f},
- {61.9047f,-19.0476f}
-};
-
-static const SFG_StrokeVertex ch36st2[] =
-{
- {85.7143f,85.7143f},
- {76.1905f,95.2381f},
- {61.9047f,100.0f},
- {42.8571f,100.0f},
- {28.5714f,95.2381f},
- {19.0476f,85.7143f},
- {19.0476f,76.1905f},
- {23.8095f,66.6667f},
- {28.5714f,61.9048f},
- {38.0952f,57.1429f},
- {66.6666f,47.619f},
- {76.1905f,42.8571f},
- {80.9524f,38.0952f},
- {85.7143f,28.5714f},
- {85.7143f,14.2857f},
- {76.1905f,4.7619f},
- {61.9047f,0.0f},
- {42.8571f,0.0f},
- {28.5714f,4.7619f},
- {19.0476f,14.2857f}
-};
-
-static const SFG_StrokeStrip ch36st[] =
-{
- {2,ch36st0},
- {2,ch36st1},
- {20,ch36st2}
-};
-
-static const SFG_StrokeChar ch36 = {104.762f,3,ch36st};
-
-/* char: 0x25 */
-
-static const SFG_StrokeVertex ch37st0[] =
-{
- {95.2381f,100.0f},
- {9.5238f,0.0f}
-};
-
-static const SFG_StrokeVertex ch37st1[] =
-{
- {33.3333f,100.0f},
- {42.8571f,90.4762f},
- {42.8571f,80.9524f},
- {38.0952f,71.4286f},
- {28.5714f,66.6667f},
- {19.0476f,66.6667f},
- {9.5238f,76.1905f},
- {9.5238f,85.7143f},
- {14.2857f,95.2381f},
- {23.8095f,100.0f},
- {33.3333f,100.0f},
- {42.8571f,95.2381f},
- {57.1428f,90.4762f},
- {71.4286f,90.4762f},
- {85.7143f,95.2381f},
- {95.2381f,100.0f}
-};
-
-static const SFG_StrokeVertex ch37st2[] =
-{
- {76.1905f,33.3333f},
- {66.6667f,28.5714f},
- {61.9048f,19.0476f},
- {61.9048f,9.5238f},
- {71.4286f,0.0f},
- {80.9524f,0.0f},
- {90.4762f,4.7619f},
- {95.2381f,14.2857f},
- {95.2381f,23.8095f},
- {85.7143f,33.3333f},
- {76.1905f,33.3333f}
-};
-
-static const SFG_StrokeStrip ch37st[] =
-{
- {2,ch37st0},
- {16,ch37st1},
- {11,ch37st2}
-};
-
-static const SFG_StrokeChar ch37 = {104.762f,3,ch37st};
-
-/* char: 0x26 */
-
-static const SFG_StrokeVertex ch38st0[] =
-{
- {100.0f,57.1429f},
- {100.0f,61.9048f},
- {95.2381f,66.6667f},
- {90.4762f,66.6667f},
- {85.7143f,61.9048f},
- {80.9524f,52.381f},
- {71.4286f,28.5714f},
- {61.9048f,14.2857f},
- {52.3809f,4.7619f},
- {42.8571f,0.0f},
- {23.8095f,0.0f},
- {14.2857f,4.7619f},
- {9.5238f,9.5238f},
- {4.7619f,19.0476f},
- {4.7619f,28.5714f},
- {9.5238f,38.0952f},
- {14.2857f,42.8571f},
- {47.619f,61.9048f},
- {52.3809f,66.6667f},
- {57.1429f,76.1905f},
- {57.1429f,85.7143f},
- {52.3809f,95.2381f},
- {42.8571f,100.0f},
- {33.3333f,95.2381f},
- {28.5714f,85.7143f},
- {28.5714f,76.1905f},
- {33.3333f,61.9048f},
- {42.8571f,47.619f},
- {66.6667f,14.2857f},
- {76.1905f,4.7619f},
- {85.7143f,0.0f},
- {95.2381f,0.0f},
- {100.0f,4.7619f},
- {100.0f,9.5238f}
-};
-
-static const SFG_StrokeStrip ch38st[] =
-{
- {34,ch38st0}
-};
-
-static const SFG_StrokeChar ch38 = {104.762f,1,ch38st};
-
-/* char: 0x27 */
-
-static const SFG_StrokeVertex ch39st0[] =
-{
- {52.381f,100.0f},
- {52.381f,66.6667f}
-};
-
-static const SFG_StrokeStrip ch39st[] =
-{
- {2,ch39st0}
-};
-
-static const SFG_StrokeChar ch39 = {104.762f,1,ch39st};
-
-/* char: 0x28 */
-
-static const SFG_StrokeVertex ch40st0[] =
-{
- {69.0476f,119.048f},
- {59.5238f,109.524f},
- {50.0f,95.2381f},
- {40.4762f,76.1905f},
- {35.7143f,52.381f},
- {35.7143f,33.3333f},
- {40.4762f,9.5238f},
- {50.0f,-9.5238f},
- {59.5238f,-23.8095f},
- {69.0476f,-33.3333f}
-};
-
-static const SFG_StrokeStrip ch40st[] =
-{
- {10,ch40st0}
-};
-
-static const SFG_StrokeChar ch40 = {104.762f,1,ch40st};
-
-/* char: 0x29 */
-
-static const SFG_StrokeVertex ch41st0[] =
-{
- {35.7143f,119.048f},
- {45.2381f,109.524f},
- {54.7619f,95.2381f},
- {64.2857f,76.1905f},
- {69.0476f,52.381f},
- {69.0476f,33.3333f},
- {64.2857f,9.5238f},
- {54.7619f,-9.5238f},
- {45.2381f,-23.8095f},
- {35.7143f,-33.3333f}
-};
-
-static const SFG_StrokeStrip ch41st[] =
-{
- {10,ch41st0}
-};
-
-static const SFG_StrokeChar ch41 = {104.762f,1,ch41st};
-
-/* char: 0x2a */
-
-static const SFG_StrokeVertex ch42st0[] =
-{
- {52.381f,71.4286f},
- {52.381f,14.2857f}
-};
-
-static const SFG_StrokeVertex ch42st1[] =
-{
- {28.5715f,57.1429f},
- {76.1905f,28.5714f}
-};
-
-static const SFG_StrokeVertex ch42st2[] =
-{
- {76.1905f,57.1429f},
- {28.5715f,28.5714f}
-};
-
-static const SFG_StrokeStrip ch42st[] =
-{
- {2,ch42st0},
- {2,ch42st1},
- {2,ch42st2}
-};
-
-static const SFG_StrokeChar ch42 = {104.762f,3,ch42st};
-
-/* char: 0x2b */
-
-static const SFG_StrokeVertex ch43st0[] =
-{
- {52.3809f,85.7143f},
- {52.3809f,0.0f}
-};
-
-static const SFG_StrokeVertex ch43st1[] =
-{
- {9.5238f,42.8571f},
- {95.2381f,42.8571f}
-};
-
-static const SFG_StrokeStrip ch43st[] =
-{
- {2,ch43st0},
- {2,ch43st1}
-};
-
-static const SFG_StrokeChar ch43 = {104.762f,2,ch43st};
-
-/* char: 0x2c */
-
-static const SFG_StrokeVertex ch44st0[] =
-{
- {57.1429f,4.7619f},
- {52.381f,0.0f},
- {47.6191f,4.7619f},
- {52.381f,9.5238f},
- {57.1429f,4.7619f},
- {57.1429f,-4.7619f},
- {52.381f,-14.2857f},
- {47.6191f,-19.0476f}
-};
-
-static const SFG_StrokeStrip ch44st[] =
-{
- {8,ch44st0}
-};
-
-static const SFG_StrokeChar ch44 = {104.762f,1,ch44st};
-
-/* char: 0x2d */
-
-static const SFG_StrokeVertex ch45st0[] =
-{
- {9.5238f,42.8571f},
- {95.2381f,42.8571f}
-};
-
-static const SFG_StrokeStrip ch45st[] =
-{
- {2,ch45st0}
-};
-
-static const SFG_StrokeChar ch45 = {104.762f,1,ch45st};
-
-/* char: 0x2e */
-
-static const SFG_StrokeVertex ch46st0[] =
-{
- {52.381f,9.5238f},
- {47.6191f,4.7619f},
- {52.381f,0.0f},
- {57.1429f,4.7619f},
- {52.381f,9.5238f}
-};
-
-static const SFG_StrokeStrip ch46st[] =
-{
- {5,ch46st0}
-};
-
-static const SFG_StrokeChar ch46 = {104.762f,1,ch46st};
-
-/* char: 0x2f */
-
-static const SFG_StrokeVertex ch47st0[] =
-{
- {19.0476f,-14.2857f},
- {85.7143f,100.0f}
-};
-
-static const SFG_StrokeStrip ch47st[] =
-{
- {2,ch47st0}
-};
-
-static const SFG_StrokeChar ch47 = {104.762f,1,ch47st};
-
-/* char: 0x30 */
-
-static const SFG_StrokeVertex ch48st0[] =
-{
- {47.619f,100.0f},
- {33.3333f,95.2381f},
- {23.8095f,80.9524f},
- {19.0476f,57.1429f},
- {19.0476f,42.8571f},
- {23.8095f,19.0476f},
- {33.3333f,4.7619f},
- {47.619f,0.0f},
- {57.1428f,0.0f},
- {71.4286f,4.7619f},
- {80.9524f,19.0476f},
- {85.7143f,42.8571f},
- {85.7143f,57.1429f},
- {80.9524f,80.9524f},
- {71.4286f,95.2381f},
- {57.1428f,100.0f},
- {47.619f,100.0f}
-};
-
-static const SFG_StrokeStrip ch48st[] =
-{
- {17,ch48st0}
-};
-
-static const SFG_StrokeChar ch48 = {104.762f,1,ch48st};
-
-/* char: 0x31 */
-
-static const SFG_StrokeVertex ch49st0[] =
-{
- {40.4762f,80.9524f},
- {50.0f,85.7143f},
- {64.2857f,100.0f},
- {64.2857f,0.0f}
-};
-
-static const SFG_StrokeStrip ch49st[] =
-{
- {4,ch49st0}
-};
-
-static const SFG_StrokeChar ch49 = {104.762f,1,ch49st};
-
-/* char: 0x32 */
-
-static const SFG_StrokeVertex ch50st0[] =
-{
- {23.8095f,76.1905f},
- {23.8095f,80.9524f},
- {28.5714f,90.4762f},
- {33.3333f,95.2381f},
- {42.8571f,100.0f},
- {61.9047f,100.0f},
- {71.4286f,95.2381f},
- {76.1905f,90.4762f},
- {80.9524f,80.9524f},
- {80.9524f,71.4286f},
- {76.1905f,61.9048f},
- {66.6666f,47.619f},
- {19.0476f,0.0f},
- {85.7143f,0.0f}
-};
-
-static const SFG_StrokeStrip ch50st[] =
-{
- {14,ch50st0}
-};
-
-static const SFG_StrokeChar ch50 = {104.762f,1,ch50st};
-
-/* char: 0x33 */
-
-static const SFG_StrokeVertex ch51st0[] =
-{
- {28.5714f,100.0f},
- {80.9524f,100.0f},
- {52.3809f,61.9048f},
- {66.6666f,61.9048f},
- {76.1905f,57.1429f},
- {80.9524f,52.381f},
- {85.7143f,38.0952f},
- {85.7143f,28.5714f},
- {80.9524f,14.2857f},
- {71.4286f,4.7619f},
- {57.1428f,0.0f},
- {42.8571f,0.0f},
- {28.5714f,4.7619f},
- {23.8095f,9.5238f},
- {19.0476f,19.0476f}
-};
-
-static const SFG_StrokeStrip ch51st[] =
-{
- {15,ch51st0}
-};
-
-static const SFG_StrokeChar ch51 = {104.762f,1,ch51st};
-
-/* char: 0x34 */
-
-static const SFG_StrokeVertex ch52st0[] =
-{
- {64.2857f,100.0f},
- {16.6667f,33.3333f},
- {88.0952f,33.3333f}
-};
-
-static const SFG_StrokeVertex ch52st1[] =
-{
- {64.2857f,100.0f},
- {64.2857f,0.0f}
-};
-
-static const SFG_StrokeStrip ch52st[] =
-{
- {3,ch52st0},
- {2,ch52st1}
-};
-
-static const SFG_StrokeChar ch52 = {104.762f,2,ch52st};
-
-/* char: 0x35 */
-
-static const SFG_StrokeVertex ch53st0[] =
-{
- {76.1905f,100.0f},
- {28.5714f,100.0f},
- {23.8095f,57.1429f},
- {28.5714f,61.9048f},
- {42.8571f,66.6667f},
- {57.1428f,66.6667f},
- {71.4286f,61.9048f},
- {80.9524f,52.381f},
- {85.7143f,38.0952f},
- {85.7143f,28.5714f},
- {80.9524f,14.2857f},
- {71.4286f,4.7619f},
- {57.1428f,0.0f},
- {42.8571f,0.0f},
- {28.5714f,4.7619f},
- {23.8095f,9.5238f},
- {19.0476f,19.0476f}
-};
-
-static const SFG_StrokeStrip ch53st[] =
-{
- {17,ch53st0}
-};
-
-static const SFG_StrokeChar ch53 = {104.762f,1,ch53st};
-
-/* char: 0x36 */
-
-static const SFG_StrokeVertex ch54st0[] =
-{
- {78.5714f,85.7143f},
- {73.8096f,95.2381f},
- {59.5238f,100.0f},
- {50.0f,100.0f},
- {35.7143f,95.2381f},
- {26.1905f,80.9524f},
- {21.4286f,57.1429f},
- {21.4286f,33.3333f},
- {26.1905f,14.2857f},
- {35.7143f,4.7619f},
- {50.0f,0.0f},
- {54.7619f,0.0f},
- {69.0476f,4.7619f},
- {78.5714f,14.2857f},
- {83.3334f,28.5714f},
- {83.3334f,33.3333f},
- {78.5714f,47.619f},
- {69.0476f,57.1429f},
- {54.7619f,61.9048f},
- {50.0f,61.9048f},
- {35.7143f,57.1429f},
- {26.1905f,47.619f},
- {21.4286f,33.3333f}
-};
-
-static const SFG_StrokeStrip ch54st[] =
-{
- {23,ch54st0}
-};
-
-static const SFG_StrokeChar ch54 = {104.762f,1,ch54st};
-
-/* char: 0x37 */
-
-static const SFG_StrokeVertex ch55st0[] =
-{
- {85.7143f,100.0f},
- {38.0952f,0.0f}
-};
-
-static const SFG_StrokeVertex ch55st1[] =
-{
- {19.0476f,100.0f},
- {85.7143f,100.0f}
-};
-
-static const SFG_StrokeStrip ch55st[] =
-{
- {2,ch55st0},
- {2,ch55st1}
-};
-
-static const SFG_StrokeChar ch55 = {104.762f,2,ch55st};
-
-/* char: 0x38 */
-
-static const SFG_StrokeVertex ch56st0[] =
-{
- {42.8571f,100.0f},
- {28.5714f,95.2381f},
- {23.8095f,85.7143f},
- {23.8095f,76.1905f},
- {28.5714f,66.6667f},
- {38.0952f,61.9048f},
- {57.1428f,57.1429f},
- {71.4286f,52.381f},
- {80.9524f,42.8571f},
- {85.7143f,33.3333f},
- {85.7143f,19.0476f},
- {80.9524f,9.5238f},
- {76.1905f,4.7619f},
- {61.9047f,0.0f},
- {42.8571f,0.0f},
- {28.5714f,4.7619f},
- {23.8095f,9.5238f},
- {19.0476f,19.0476f},
- {19.0476f,33.3333f},
- {23.8095f,42.8571f},
- {33.3333f,52.381f},
- {47.619f,57.1429f},
- {66.6666f,61.9048f},
- {76.1905f,66.6667f},
- {80.9524f,76.1905f},
- {80.9524f,85.7143f},
- {76.1905f,95.2381f},
- {61.9047f,100.0f},
- {42.8571f,100.0f}
-};
-
-static const SFG_StrokeStrip ch56st[] =
-{
- {29,ch56st0}
-};
-
-static const SFG_StrokeChar ch56 = {104.762f,1,ch56st};
-
-/* char: 0x39 */
-
-static const SFG_StrokeVertex ch57st0[] =
-{
- {83.3334f,66.6667f},
- {78.5714f,52.381f},
- {69.0476f,42.8571f},
- {54.7619f,38.0952f},
- {50.0f,38.0952f},
- {35.7143f,42.8571f},
- {26.1905f,52.381f},
- {21.4286f,66.6667f},
- {21.4286f,71.4286f},
- {26.1905f,85.7143f},
- {35.7143f,95.2381f},
- {50.0f,100.0f},
- {54.7619f,100.0f},
- {69.0476f,95.2381f},
- {78.5714f,85.7143f},
- {83.3334f,66.6667f},
- {83.3334f,42.8571f},
- {78.5714f,19.0476f},
- {69.0476f,4.7619f},
- {54.7619f,0.0f},
- {45.2381f,0.0f},
- {30.9524f,4.7619f},
- {26.1905f,14.2857f}
-};
-
-static const SFG_StrokeStrip ch57st[] =
-{
- {23,ch57st0}
-};
-
-static const SFG_StrokeChar ch57 = {104.762f,1,ch57st};
-
-/* char: 0x3a */
-
-static const SFG_StrokeVertex ch58st0[] =
-{
- {52.381f,66.6667f},
- {47.6191f,61.9048f},
- {52.381f,57.1429f},
- {57.1429f,61.9048f},
- {52.381f,66.6667f}
-};
-
-static const SFG_StrokeVertex ch58st1[] =
-{
- {52.381f,9.5238f},
- {47.6191f,4.7619f},
- {52.381f,0.0f},
- {57.1429f,4.7619f},
- {52.381f,9.5238f}
-};
-
-static const SFG_StrokeStrip ch58st[] =
-{
- {5,ch58st0},
- {5,ch58st1}
-};
-
-static const SFG_StrokeChar ch58 = {104.762f,2,ch58st};
-
-/* char: 0x3b */
-
-static const SFG_StrokeVertex ch59st0[] =
-{
- {52.381f,66.6667f},
- {47.6191f,61.9048f},
- {52.381f,57.1429f},
- {57.1429f,61.9048f},
- {52.381f,66.6667f}
-};
-
-static const SFG_StrokeVertex ch59st1[] =
-{
- {57.1429f,4.7619f},
- {52.381f,0.0f},
- {47.6191f,4.7619f},
- {52.381f,9.5238f},
- {57.1429f,4.7619f},
- {57.1429f,-4.7619f},
- {52.381f,-14.2857f},
- {47.6191f,-19.0476f}
-};
-
-static const SFG_StrokeStrip ch59st[] =
-{
- {5,ch59st0},
- {8,ch59st1}
-};
-
-static const SFG_StrokeChar ch59 = {104.762f,2,ch59st};
-
-/* char: 0x3c */
-
-static const SFG_StrokeVertex ch60st0[] =
-{
- {90.4762f,85.7143f},
- {14.2857f,42.8571f},
- {90.4762f,0.0f}
-};
-
-static const SFG_StrokeStrip ch60st[] =
-{
- {3,ch60st0}
-};
-
-static const SFG_StrokeChar ch60 = {104.762f,1,ch60st};
-
-/* char: 0x3d */
-
-static const SFG_StrokeVertex ch61st0[] =
-{
- {9.5238f,57.1429f},
- {95.2381f,57.1429f}
-};
-
-static const SFG_StrokeVertex ch61st1[] =
-{
- {9.5238f,28.5714f},
- {95.2381f,28.5714f}
-};
-
-static const SFG_StrokeStrip ch61st[] =
-{
- {2,ch61st0},
- {2,ch61st1}
-};
-
-static const SFG_StrokeChar ch61 = {104.762f,2,ch61st};
-
-/* char: 0x3e */
-
-static const SFG_StrokeVertex ch62st0[] =
-{
- {14.2857f,85.7143f},
- {90.4762f,42.8571f},
- {14.2857f,0.0f}
-};
-
-static const SFG_StrokeStrip ch62st[] =
-{
- {3,ch62st0}
-};
-
-static const SFG_StrokeChar ch62 = {104.762f,1,ch62st};
-
-/* char: 0x3f */
-
-static const SFG_StrokeVertex ch63st0[] =
-{
- {23.8095f,76.1905f},
- {23.8095f,80.9524f},
- {28.5714f,90.4762f},
- {33.3333f,95.2381f},
- {42.8571f,100.0f},
- {61.9047f,100.0f},
- {71.4285f,95.2381f},
- {76.1905f,90.4762f},
- {80.9524f,80.9524f},
- {80.9524f,71.4286f},
- {76.1905f,61.9048f},
- {71.4285f,57.1429f},
- {52.3809f,47.619f},
- {52.3809f,33.3333f}
-};
-
-static const SFG_StrokeVertex ch63st1[] =
-{
- {52.3809f,9.5238f},
- {47.619f,4.7619f},
- {52.3809f,0.0f},
- {57.1428f,4.7619f},
- {52.3809f,9.5238f}
-};
-
-static const SFG_StrokeStrip ch63st[] =
-{
- {14,ch63st0},
- {5,ch63st1}
-};
-
-static const SFG_StrokeChar ch63 = {104.762f,2,ch63st};
-
-/* char: 0x40 */
-
-static const SFG_StrokeVertex ch64st0[] =
-{
- {64.2857f,52.381f},
- {54.7619f,57.1429f},
- {45.2381f,57.1429f},
- {40.4762f,47.619f},
- {40.4762f,42.8571f},
- {45.2381f,33.3333f},
- {54.7619f,33.3333f},
- {64.2857f,38.0952f}
-};
-
-static const SFG_StrokeVertex ch64st1[] =
-{
- {64.2857f,57.1429f},
- {64.2857f,38.0952f},
- {69.0476f,33.3333f},
- {78.5714f,33.3333f},
- {83.3334f,42.8571f},
- {83.3334f,47.619f},
- {78.5714f,61.9048f},
- {69.0476f,71.4286f},
- {54.7619f,76.1905f},
- {50.0f,76.1905f},
- {35.7143f,71.4286f},
- {26.1905f,61.9048f},
- {21.4286f,47.619f},
- {21.4286f,42.8571f},
- {26.1905f,28.5714f},
- {35.7143f,19.0476f},
- {50.0f,14.2857f},
- {54.7619f,14.2857f},
- {69.0476f,19.0476f}
-};
-
-static const SFG_StrokeStrip ch64st[] =
-{
- {8,ch64st0},
- {19,ch64st1}
-};
-
-static const SFG_StrokeChar ch64 = {104.762f,2,ch64st};
-
-/* char: 0x41 */
-
-static const SFG_StrokeVertex ch65st0[] =
-{
- {52.3809f,100.0f},
- {14.2857f,0.0f}
-};
-
-static const SFG_StrokeVertex ch65st1[] =
-{
- {52.3809f,100.0f},
- {90.4762f,0.0f}
-};
-
-static const SFG_StrokeVertex ch65st2[] =
-{
- {28.5714f,33.3333f},
- {76.1905f,33.3333f}
-};
-
-static const SFG_StrokeStrip ch65st[] =
-{
- {2,ch65st0},
- {2,ch65st1},
- {2,ch65st2}
-};
-
-static const SFG_StrokeChar ch65 = {104.762f,3,ch65st};
-
-/* char: 0x42 */
-
-static const SFG_StrokeVertex ch66st0[] =
-{
- {19.0476f,100.0f},
- {19.0476f,0.0f}
-};
-
-static const SFG_StrokeVertex ch66st1[] =
-{
- {19.0476f,100.0f},
- {61.9047f,100.0f},
- {76.1905f,95.2381f},
- {80.9524f,90.4762f},
- {85.7143f,80.9524f},
- {85.7143f,71.4286f},
- {80.9524f,61.9048f},
- {76.1905f,57.1429f},
- {61.9047f,52.381f}
-};
-
-static const SFG_StrokeVertex ch66st2[] =
-{
- {19.0476f,52.381f},
- {61.9047f,52.381f},
- {76.1905f,47.619f},
- {80.9524f,42.8571f},
- {85.7143f,33.3333f},
- {85.7143f,19.0476f},
- {80.9524f,9.5238f},
- {76.1905f,4.7619f},
- {61.9047f,0.0f},
- {19.0476f,0.0f}
-};
-
-static const SFG_StrokeStrip ch66st[] =
-{
- {2,ch66st0},
- {9,ch66st1},
- {10,ch66st2}
-};
-
-static const SFG_StrokeChar ch66 = {104.762f,3,ch66st};
-
-/* char: 0x43 */
-
-static const SFG_StrokeVertex ch67st0[] =
-{
- {88.0952f,76.1905f},
- {83.3334f,85.7143f},
- {73.8096f,95.2381f},
- {64.2857f,100.0f},
- {45.2381f,100.0f},
- {35.7143f,95.2381f},
- {26.1905f,85.7143f},
- {21.4286f,76.1905f},
- {16.6667f,61.9048f},
- {16.6667f,38.0952f},
- {21.4286f,23.8095f},
- {26.1905f,14.2857f},
- {35.7143f,4.7619f},
- {45.2381f,0.0f},
- {64.2857f,0.0f},
- {73.8096f,4.7619f},
- {83.3334f,14.2857f},
- {88.0952f,23.8095f}
-};
-
-static const SFG_StrokeStrip ch67st[] =
-{
- {18,ch67st0}
-};
-
-static const SFG_StrokeChar ch67 = {104.762f,1,ch67st};
-
-/* char: 0x44 */
-
-static const SFG_StrokeVertex ch68st0[] =
-{
- {19.0476f,100.0f},
- {19.0476f,0.0f}
-};
-
-static const SFG_StrokeVertex ch68st1[] =
-{
- {19.0476f,100.0f},
- {52.3809f,100.0f},
- {66.6666f,95.2381f},
- {76.1905f,85.7143f},
- {80.9524f,76.1905f},
- {85.7143f,61.9048f},
- {85.7143f,38.0952f},
- {80.9524f,23.8095f},
- {76.1905f,14.2857f},
- {66.6666f,4.7619f},
- {52.3809f,0.0f},
- {19.0476f,0.0f}
-};
-
-static const SFG_StrokeStrip ch68st[] =
-{
- {2,ch68st0},
- {12,ch68st1}
-};
-
-static const SFG_StrokeChar ch68 = {104.762f,2,ch68st};
-
-/* char: 0x45 */
-
-static const SFG_StrokeVertex ch69st0[] =
-{
- {21.4286f,100.0f},
- {21.4286f,0.0f}
-};
-
-static const SFG_StrokeVertex ch69st1[] =
-{
- {21.4286f,100.0f},
- {83.3334f,100.0f}
-};
-
-static const SFG_StrokeVertex ch69st2[] =
-{
- {21.4286f,52.381f},
- {59.5238f,52.381f}
-};
-
-static const SFG_StrokeVertex ch69st3[] =
-{
- {21.4286f,0.0f},
- {83.3334f,0.0f}
-};
-
-static const SFG_StrokeStrip ch69st[] =
-{
- {2,ch69st0},
- {2,ch69st1},
- {2,ch69st2},
- {2,ch69st3}
-};
-
-static const SFG_StrokeChar ch69 = {104.762f,4,ch69st};
-
-/* char: 0x46 */
-
-static const SFG_StrokeVertex ch70st0[] =
-{
- {21.4286f,100.0f},
- {21.4286f,0.0f}
-};
-
-static const SFG_StrokeVertex ch70st1[] =
-{
- {21.4286f,100.0f},
- {83.3334f,100.0f}
-};
-
-static const SFG_StrokeVertex ch70st2[] =
-{
- {21.4286f,52.381f},
- {59.5238f,52.381f}
-};
-
-static const SFG_StrokeStrip ch70st[] =
-{
- {2,ch70st0},
- {2,ch70st1},
- {2,ch70st2}
-};
-
-static const SFG_StrokeChar ch70 = {104.762f,3,ch70st};
-
-/* char: 0x47 */
-
-static const SFG_StrokeVertex ch71st0[] =
-{
- {88.0952f,76.1905f},
- {83.3334f,85.7143f},
- {73.8096f,95.2381f},
- {64.2857f,100.0f},
- {45.2381f,100.0f},
- {35.7143f,95.2381f},
- {26.1905f,85.7143f},
- {21.4286f,76.1905f},
- {16.6667f,61.9048f},
- {16.6667f,38.0952f},
- {21.4286f,23.8095f},
- {26.1905f,14.2857f},
- {35.7143f,4.7619f},
- {45.2381f,0.0f},
- {64.2857f,0.0f},
- {73.8096f,4.7619f},
- {83.3334f,14.2857f},
- {88.0952f,23.8095f},
- {88.0952f,38.0952f}
-};
-
-static const SFG_StrokeVertex ch71st1[] =
-{
- {64.2857f,38.0952f},
- {88.0952f,38.0952f}
-};
-
-static const SFG_StrokeStrip ch71st[] =
-{
- {19,ch71st0},
- {2,ch71st1}
-};
-
-static const SFG_StrokeChar ch71 = {104.762f,2,ch71st};
-
-/* char: 0x48 */
-
-static const SFG_StrokeVertex ch72st0[] =
-{
- {19.0476f,100.0f},
- {19.0476f,0.0f}
-};
-
-static const SFG_StrokeVertex ch72st1[] =
-{
- {85.7143f,100.0f},
- {85.7143f,0.0f}
-};
-
-static const SFG_StrokeVertex ch72st2[] =
-{
- {19.0476f,52.381f},
- {85.7143f,52.381f}
-};
-
-static const SFG_StrokeStrip ch72st[] =
-{
- {2,ch72st0},
- {2,ch72st1},
- {2,ch72st2}
-};
-
-static const SFG_StrokeChar ch72 = {104.762f,3,ch72st};
-
-/* char: 0x49 */
-
-static const SFG_StrokeVertex ch73st0[] =
-{
- {52.381f,100.0f},
- {52.381f,0.0f}
-};
-
-static const SFG_StrokeStrip ch73st[] =
-{
- {2,ch73st0}
-};
-
-static const SFG_StrokeChar ch73 = {104.762f,1,ch73st};
-
-/* char: 0x4a */
-
-static const SFG_StrokeVertex ch74st0[] =
-{
- {76.1905f,100.0f},
- {76.1905f,23.8095f},
- {71.4286f,9.5238f},
- {66.6667f,4.7619f},
- {57.1429f,0.0f},
- {47.6191f,0.0f},
- {38.0953f,4.7619f},
- {33.3334f,9.5238f},
- {28.5715f,23.8095f},
- {28.5715f,33.3333f}
-};
-
-static const SFG_StrokeStrip ch74st[] =
-{
- {10,ch74st0}
-};
-
-static const SFG_StrokeChar ch74 = {104.762f,1,ch74st};
-
-/* char: 0x4b */
-
-static const SFG_StrokeVertex ch75st0[] =
-{
- {19.0476f,100.0f},
- {19.0476f,0.0f}
-};
-
-static const SFG_StrokeVertex ch75st1[] =
-{
- {85.7143f,100.0f},
- {19.0476f,33.3333f}
-};
-
-static const SFG_StrokeVertex ch75st2[] =
-{
- {42.8571f,57.1429f},
- {85.7143f,0.0f}
-};
-
-static const SFG_StrokeStrip ch75st[] =
-{
- {2,ch75st0},
- {2,ch75st1},
- {2,ch75st2}
-};
-
-static const SFG_StrokeChar ch75 = {104.762f,3,ch75st};
-
-/* char: 0x4c */
-
-static const SFG_StrokeVertex ch76st0[] =
-{
- {23.8095f,100.0f},
- {23.8095f,0.0f}
-};
-
-static const SFG_StrokeVertex ch76st1[] =
-{
- {23.8095f,0.0f},
- {80.9524f,0.0f}
-};
-
-static const SFG_StrokeStrip ch76st[] =
-{
- {2,ch76st0},
- {2,ch76st1}
-};
-
-static const SFG_StrokeChar ch76 = {104.762f,2,ch76st};
-
-/* char: 0x4d */
-
-static const SFG_StrokeVertex ch77st0[] =
-{
- {14.2857f,100.0f},
- {14.2857f,0.0f}
-};
-
-static const SFG_StrokeVertex ch77st1[] =
-{
- {14.2857f,100.0f},
- {52.3809f,0.0f}
-};
-
-static const SFG_StrokeVertex ch77st2[] =
-{
- {90.4762f,100.0f},
- {52.3809f,0.0f}
-};
-
-static const SFG_StrokeVertex ch77st3[] =
-{
- {90.4762f,100.0f},
- {90.4762f,0.0f}
-};
-
-static const SFG_StrokeStrip ch77st[] =
-{
- {2,ch77st0},
- {2,ch77st1},
- {2,ch77st2},
- {2,ch77st3}
-};
-
-static const SFG_StrokeChar ch77 = {104.762f,4,ch77st};
-
-/* char: 0x4e */
-
-static const SFG_StrokeVertex ch78st0[] =
-{
- {19.0476f,100.0f},
- {19.0476f,0.0f}
-};
-
-static const SFG_StrokeVertex ch78st1[] =
-{
- {19.0476f,100.0f},
- {85.7143f,0.0f}
-};
-
-static const SFG_StrokeVertex ch78st2[] =
-{
- {85.7143f,100.0f},
- {85.7143f,0.0f}
-};
-
-static const SFG_StrokeStrip ch78st[] =
-{
- {2,ch78st0},
- {2,ch78st1},
- {2,ch78st2}
-};
-
-static const SFG_StrokeChar ch78 = {104.762f,3,ch78st};
-
-/* char: 0x4f */
-
-static const SFG_StrokeVertex ch79st0[] =
-{
- {42.8571f,100.0f},
- {33.3333f,95.2381f},
- {23.8095f,85.7143f},
- {19.0476f,76.1905f},
- {14.2857f,61.9048f},
- {14.2857f,38.0952f},
- {19.0476f,23.8095f},
- {23.8095f,14.2857f},
- {33.3333f,4.7619f},
- {42.8571f,0.0f},
- {61.9047f,0.0f},
- {71.4286f,4.7619f},
- {80.9524f,14.2857f},
- {85.7143f,23.8095f},
- {90.4762f,38.0952f},
- {90.4762f,61.9048f},
- {85.7143f,76.1905f},
- {80.9524f,85.7143f},
- {71.4286f,95.2381f},
- {61.9047f,100.0f},
- {42.8571f,100.0f}
-};
-
-static const SFG_StrokeStrip ch79st[] =
-{
- {21,ch79st0}
-};
-
-static const SFG_StrokeChar ch79 = {104.762f,1,ch79st};
-
-/* char: 0x50 */
-
-static const SFG_StrokeVertex ch80st0[] =
-{
- {19.0476f,100.0f},
- {19.0476f,0.0f}
-};
-
-static const SFG_StrokeVertex ch80st1[] =
-{
- {19.0476f,100.0f},
- {61.9047f,100.0f},
- {76.1905f,95.2381f},
- {80.9524f,90.4762f},
- {85.7143f,80.9524f},
- {85.7143f,66.6667f},
- {80.9524f,57.1429f},
- {76.1905f,52.381f},
- {61.9047f,47.619f},
- {19.0476f,47.619f}
-};
-
-static const SFG_StrokeStrip ch80st[] =
-{
- {2,ch80st0},
- {10,ch80st1}
-};
-
-static const SFG_StrokeChar ch80 = {104.762f,2,ch80st};
-
-/* char: 0x51 */
-
-static const SFG_StrokeVertex ch81st0[] =
-{
- {42.8571f,100.0f},
- {33.3333f,95.2381f},
- {23.8095f,85.7143f},
- {19.0476f,76.1905f},
- {14.2857f,61.9048f},
- {14.2857f,38.0952f},
- {19.0476f,23.8095f},
- {23.8095f,14.2857f},
- {33.3333f,4.7619f},
- {42.8571f,0.0f},
- {61.9047f,0.0f},
- {71.4286f,4.7619f},
- {80.9524f,14.2857f},
- {85.7143f,23.8095f},
- {90.4762f,38.0952f},
- {90.4762f,61.9048f},
- {85.7143f,76.1905f},
- {80.9524f,85.7143f},
- {71.4286f,95.2381f},
- {61.9047f,100.0f},
- {42.8571f,100.0f}
-};
-
-static const SFG_StrokeVertex ch81st1[] =
-{
- {57.1428f,19.0476f},
- {85.7143f,-9.5238f}
-};
-
-static const SFG_StrokeStrip ch81st[] =
-{
- {21,ch81st0},
- {2,ch81st1}
-};
-
-static const SFG_StrokeChar ch81 = {104.762f,2,ch81st};
-
-/* char: 0x52 */
-
-static const SFG_StrokeVertex ch82st0[] =
-{
- {19.0476f,100.0f},
- {19.0476f,0.0f}
-};
-
-static const SFG_StrokeVertex ch82st1[] =
-{
- {19.0476f,100.0f},
- {61.9047f,100.0f},
- {76.1905f,95.2381f},
- {80.9524f,90.4762f},
- {85.7143f,80.9524f},
- {85.7143f,71.4286f},
- {80.9524f,61.9048f},
- {76.1905f,57.1429f},
- {61.9047f,52.381f},
- {19.0476f,52.381f}
-};
-
-static const SFG_StrokeVertex ch82st2[] =
-{
- {52.3809f,52.381f},
- {85.7143f,0.0f}
-};
-
-static const SFG_StrokeStrip ch82st[] =
-{
- {2,ch82st0},
- {10,ch82st1},
- {2,ch82st2}
-};
-
-static const SFG_StrokeChar ch82 = {104.762f,3,ch82st};
-
-/* char: 0x53 */
-
-static const SFG_StrokeVertex ch83st0[] =
-{
- {85.7143f,85.7143f},
- {76.1905f,95.2381f},
- {61.9047f,100.0f},
- {42.8571f,100.0f},
- {28.5714f,95.2381f},
- {19.0476f,85.7143f},
- {19.0476f,76.1905f},
- {23.8095f,66.6667f},
- {28.5714f,61.9048f},
- {38.0952f,57.1429f},
- {66.6666f,47.619f},
- {76.1905f,42.8571f},
- {80.9524f,38.0952f},
- {85.7143f,28.5714f},
- {85.7143f,14.2857f},
- {76.1905f,4.7619f},
- {61.9047f,0.0f},
- {42.8571f,0.0f},
- {28.5714f,4.7619f},
- {19.0476f,14.2857f}
-};
-
-static const SFG_StrokeStrip ch83st[] =
-{
- {20,ch83st0}
-};
-
-static const SFG_StrokeChar ch83 = {104.762f,1,ch83st};
-
-/* char: 0x54 */
-
-static const SFG_StrokeVertex ch84st0[] =
-{
- {52.3809f,100.0f},
- {52.3809f,0.0f}
-};
-
-static const SFG_StrokeVertex ch84st1[] =
-{
- {19.0476f,100.0f},
- {85.7143f,100.0f}
-};
-
-static const SFG_StrokeStrip ch84st[] =
-{
- {2,ch84st0},
- {2,ch84st1}
-};
-
-static const SFG_StrokeChar ch84 = {104.762f,2,ch84st};
-
-/* char: 0x55 */
-
-static const SFG_StrokeVertex ch85st0[] =
-{
- {19.0476f,100.0f},
- {19.0476f,28.5714f},
- {23.8095f,14.2857f},
- {33.3333f,4.7619f},
- {47.619f,0.0f},
- {57.1428f,0.0f},
- {71.4286f,4.7619f},
- {80.9524f,14.2857f},
- {85.7143f,28.5714f},
- {85.7143f,100.0f}
-};
-
-static const SFG_StrokeStrip ch85st[] =
-{
- {10,ch85st0}
-};
-
-static const SFG_StrokeChar ch85 = {104.762f,1,ch85st};
-
-/* char: 0x56 */
-
-static const SFG_StrokeVertex ch86st0[] =
-{
- {14.2857f,100.0f},
- {52.3809f,0.0f}
-};
-
-static const SFG_StrokeVertex ch86st1[] =
-{
- {90.4762f,100.0f},
- {52.3809f,0.0f}
-};
-
-static const SFG_StrokeStrip ch86st[] =
-{
- {2,ch86st0},
- {2,ch86st1}
-};
-
-static const SFG_StrokeChar ch86 = {104.762f,2,ch86st};
-
-/* char: 0x57 */
-
-static const SFG_StrokeVertex ch87st0[] =
-{
- {4.7619f,100.0f},
- {28.5714f,0.0f}
-};
-
-static const SFG_StrokeVertex ch87st1[] =
-{
- {52.3809f,100.0f},
- {28.5714f,0.0f}
-};
-
-static const SFG_StrokeVertex ch87st2[] =
-{
- {52.3809f,100.0f},
- {76.1905f,0.0f}
-};
-
-static const SFG_StrokeVertex ch87st3[] =
-{
- {100.0f,100.0f},
- {76.1905f,0.0f}
-};
-
-static const SFG_StrokeStrip ch87st[] =
-{
- {2,ch87st0},
- {2,ch87st1},
- {2,ch87st2},
- {2,ch87st3}
-};
-
-static const SFG_StrokeChar ch87 = {104.762f,4,ch87st};
-
-/* char: 0x58 */
-
-static const SFG_StrokeVertex ch88st0[] =
-{
- {19.0476f,100.0f},
- {85.7143f,0.0f}
-};
-
-static const SFG_StrokeVertex ch88st1[] =
-{
- {85.7143f,100.0f},
- {19.0476f,0.0f}
-};
-
-static const SFG_StrokeStrip ch88st[] =
-{
- {2,ch88st0},
- {2,ch88st1}
-};
-
-static const SFG_StrokeChar ch88 = {104.762f,2,ch88st};
-
-/* char: 0x59 */
-
-static const SFG_StrokeVertex ch89st0[] =
-{
- {14.2857f,100.0f},
- {52.3809f,52.381f},
- {52.3809f,0.0f}
-};
-
-static const SFG_StrokeVertex ch89st1[] =
-{
- {90.4762f,100.0f},
- {52.3809f,52.381f}
-};
-
-static const SFG_StrokeStrip ch89st[] =
-{
- {3,ch89st0},
- {2,ch89st1}
-};
-
-static const SFG_StrokeChar ch89 = {104.762f,2,ch89st};
-
-/* char: 0x5a */
-
-static const SFG_StrokeVertex ch90st0[] =
-{
- {85.7143f,100.0f},
- {19.0476f,0.0f}
-};
-
-static const SFG_StrokeVertex ch90st1[] =
-{
- {19.0476f,100.0f},
- {85.7143f,100.0f}
-};
-
-static const SFG_StrokeVertex ch90st2[] =
-{
- {19.0476f,0.0f},
- {85.7143f,0.0f}
-};
-
-static const SFG_StrokeStrip ch90st[] =
-{
- {2,ch90st0},
- {2,ch90st1},
- {2,ch90st2}
-};
-
-static const SFG_StrokeChar ch90 = {104.762f,3,ch90st};
-
-/* char: 0x5b */
-
-static const SFG_StrokeVertex ch91st0[] =
-{
- {35.7143f,119.048f},
- {35.7143f,-33.3333f}
-};
-
-static const SFG_StrokeVertex ch91st1[] =
-{
- {40.4762f,119.048f},
- {40.4762f,-33.3333f}
-};
-
-static const SFG_StrokeVertex ch91st2[] =
-{
- {35.7143f,119.048f},
- {69.0476f,119.048f}
-};
-
-static const SFG_StrokeVertex ch91st3[] =
-{
- {35.7143f,-33.3333f},
- {69.0476f,-33.3333f}
-};
-
-static const SFG_StrokeStrip ch91st[] =
-{
- {2,ch91st0},
- {2,ch91st1},
- {2,ch91st2},
- {2,ch91st3}
-};
-
-static const SFG_StrokeChar ch91 = {104.762f,4,ch91st};
-
-/* char: 0x5c */
-
-static const SFG_StrokeVertex ch92st0[] =
-{
- {19.0476f,100.0f},
- {85.7143f,-14.2857f}
-};
-
-static const SFG_StrokeStrip ch92st[] =
-{
- {2,ch92st0}
-};
-
-static const SFG_StrokeChar ch92 = {104.762f,1,ch92st};
-
-/* char: 0x5d */
-
-static const SFG_StrokeVertex ch93st0[] =
-{
- {64.2857f,119.048f},
- {64.2857f,-33.3333f}
-};
-
-static const SFG_StrokeVertex ch93st1[] =
-{
- {69.0476f,119.048f},
- {69.0476f,-33.3333f}
-};
-
-static const SFG_StrokeVertex ch93st2[] =
-{
- {35.7143f,119.048f},
- {69.0476f,119.048f}
-};
-
-static const SFG_StrokeVertex ch93st3[] =
-{
- {35.7143f,-33.3333f},
- {69.0476f,-33.3333f}
-};
-
-static const SFG_StrokeStrip ch93st[] =
-{
- {2,ch93st0},
- {2,ch93st1},
- {2,ch93st2},
- {2,ch93st3}
-};
-
-static const SFG_StrokeChar ch93 = {104.762f,4,ch93st};
-
-/* char: 0x5e */
-
-static const SFG_StrokeVertex ch94st0[] =
-{
- {52.3809f,109.524f},
- {14.2857f,42.8571f}
-};
-
-static const SFG_StrokeVertex ch94st1[] =
-{
- {52.3809f,109.524f},
- {90.4762f,42.8571f}
-};
-
-static const SFG_StrokeStrip ch94st[] =
-{
- {2,ch94st0},
- {2,ch94st1}
-};
-
-static const SFG_StrokeChar ch94 = {104.762f,2,ch94st};
-
-/* char: 0x5f */
-
-static const SFG_StrokeVertex ch95st0[] =
-{
- {0,-33.3333f},
- {104.762f,-33.3333f},
- {104.762f,-28.5714f},
- {0,-28.5714f},
- {0,-33.3333f}
-};
-
-static const SFG_StrokeStrip ch95st[] =
-{
- {5,ch95st0}
-};
-
-static const SFG_StrokeChar ch95 = {104.762f,1,ch95st};
-
-/* char: 0x60 */
-
-static const SFG_StrokeVertex ch96st0[] =
-{
- {42.8572f,100.0f},
- {66.6667f,71.4286f}
-};
-
-static const SFG_StrokeVertex ch96st1[] =
-{
- {42.8572f,100.0f},
- {38.0953f,95.2381f},
- {66.6667f,71.4286f}
-};
-
-static const SFG_StrokeStrip ch96st[] =
-{
- {2,ch96st0},
- {3,ch96st1}
-};
-
-static const SFG_StrokeChar ch96 = {104.762f,2,ch96st};
-
-/* char: 0x61 */
-
-static const SFG_StrokeVertex ch97st0[] =
-{
- {80.9524f,66.6667f},
- {80.9524f,0.0f}
-};
-
-static const SFG_StrokeVertex ch97st1[] =
-{
- {80.9524f,52.381f},
- {71.4285f,61.9048f},
- {61.9047f,66.6667f},
- {47.619f,66.6667f},
- {38.0952f,61.9048f},
- {28.5714f,52.381f},
- {23.8095f,38.0952f},
- {23.8095f,28.5714f},
- {28.5714f,14.2857f},
- {38.0952f,4.7619f},
- {47.619f,0.0f},
- {61.9047f,0.0f},
- {71.4285f,4.7619f},
- {80.9524f,14.2857f}
-};
-
-static const SFG_StrokeStrip ch97st[] =
-{
- {2,ch97st0},
- {14,ch97st1}
-};
-
-static const SFG_StrokeChar ch97 = {104.762f,2,ch97st};
-
-/* char: 0x62 */
-
-static const SFG_StrokeVertex ch98st0[] =
-{
- {23.8095f,100.0f},
- {23.8095f,0.0f}
-};
-
-static const SFG_StrokeVertex ch98st1[] =
-{
- {23.8095f,52.381f},
- {33.3333f,61.9048f},
- {42.8571f,66.6667f},
- {57.1428f,66.6667f},
- {66.6666f,61.9048f},
- {76.1905f,52.381f},
- {80.9524f,38.0952f},
- {80.9524f,28.5714f},
- {76.1905f,14.2857f},
- {66.6666f,4.7619f},
- {57.1428f,0.0f},
- {42.8571f,0.0f},
- {33.3333f,4.7619f},
- {23.8095f,14.2857f}
-};
-
-static const SFG_StrokeStrip ch98st[] =
-{
- {2,ch98st0},
- {14,ch98st1}
-};
-
-static const SFG_StrokeChar ch98 = {104.762f,2,ch98st};
-
-/* char: 0x63 */
-
-static const SFG_StrokeVertex ch99st0[] =
-{
- {80.9524f,52.381f},
- {71.4285f,61.9048f},
- {61.9047f,66.6667f},
- {47.619f,66.6667f},
- {38.0952f,61.9048f},
- {28.5714f,52.381f},
- {23.8095f,38.0952f},
- {23.8095f,28.5714f},
- {28.5714f,14.2857f},
- {38.0952f,4.7619f},
- {47.619f,0.0f},
- {61.9047f,0.0f},
- {71.4285f,4.7619f},
- {80.9524f,14.2857f}
-};
-
-static const SFG_StrokeStrip ch99st[] =
-{
- {14,ch99st0}
-};
-
-static const SFG_StrokeChar ch99 = {104.762f,1,ch99st};
-
-/* char: 0x64 */
-
-static const SFG_StrokeVertex ch100st0[] =
-{
- {80.9524f,100.0f},
- {80.9524f,0.0f}
-};
-
-static const SFG_StrokeVertex ch100st1[] =
-{
- {80.9524f,52.381f},
- {71.4285f,61.9048f},
- {61.9047f,66.6667f},
- {47.619f,66.6667f},
- {38.0952f,61.9048f},
- {28.5714f,52.381f},
- {23.8095f,38.0952f},
- {23.8095f,28.5714f},
- {28.5714f,14.2857f},
- {38.0952f,4.7619f},
- {47.619f,0.0f},
- {61.9047f,0.0f},
- {71.4285f,4.7619f},
- {80.9524f,14.2857f}
-};
-
-static const SFG_StrokeStrip ch100st[] =
-{
- {2,ch100st0},
- {14,ch100st1}
-};
-
-static const SFG_StrokeChar ch100 = {104.762f,2,ch100st};
-
-/* char: 0x65 */
-
-static const SFG_StrokeVertex ch101st0[] =
-{
- {23.8095f,38.0952f},
- {80.9524f,38.0952f},
- {80.9524f,47.619f},
- {76.1905f,57.1429f},
- {71.4285f,61.9048f},
- {61.9047f,66.6667f},
- {47.619f,66.6667f},
- {38.0952f,61.9048f},
- {28.5714f,52.381f},
- {23.8095f,38.0952f},
- {23.8095f,28.5714f},
- {28.5714f,14.2857f},
- {38.0952f,4.7619f},
- {47.619f,0.0f},
- {61.9047f,0.0f},
- {71.4285f,4.7619f},
- {80.9524f,14.2857f}
-};
-
-static const SFG_StrokeStrip ch101st[] =
-{
- {17,ch101st0}
-};
-
-static const SFG_StrokeChar ch101 = {104.762f,1,ch101st};
-
-/* char: 0x66 */
-
-static const SFG_StrokeVertex ch102st0[] =
-{
- {71.4286f,100.0f},
- {61.9048f,100.0f},
- {52.381f,95.2381f},
- {47.6191f,80.9524f},
- {47.6191f,0.0f}
-};
-
-static const SFG_StrokeVertex ch102st1[] =
-{
- {33.3334f,66.6667f},
- {66.6667f,66.6667f}
-};
-
-static const SFG_StrokeStrip ch102st[] =
-{
- {5,ch102st0},
- {2,ch102st1}
-};
-
-static const SFG_StrokeChar ch102 = {104.762f,2,ch102st};
-
-/* char: 0x67 */
-
-static const SFG_StrokeVertex ch103st0[] =
-{
- {80.9524f,66.6667f},
- {80.9524f,-9.5238f},
- {76.1905f,-23.8095f},
- {71.4285f,-28.5714f},
- {61.9047f,-33.3333f},
- {47.619f,-33.3333f},
- {38.0952f,-28.5714f}
-};
-
-static const SFG_StrokeVertex ch103st1[] =
-{
- {80.9524f,52.381f},
- {71.4285f,61.9048f},
- {61.9047f,66.6667f},
- {47.619f,66.6667f},
- {38.0952f,61.9048f},
- {28.5714f,52.381f},
- {23.8095f,38.0952f},
- {23.8095f,28.5714f},
- {28.5714f,14.2857f},
- {38.0952f,4.7619f},
- {47.619f,0.0f},
- {61.9047f,0.0f},
- {71.4285f,4.7619f},
- {80.9524f,14.2857f}
-};
-
-static const SFG_StrokeStrip ch103st[] =
-{
- {7,ch103st0},
- {14,ch103st1}
-};
-
-static const SFG_StrokeChar ch103 = {104.762f,2,ch103st};
-
-/* char: 0x68 */
-
-static const SFG_StrokeVertex ch104st0[] =
-{
- {26.1905f,100.0f},
- {26.1905f,0.0f}
-};
-
-static const SFG_StrokeVertex ch104st1[] =
-{
- {26.1905f,47.619f},
- {40.4762f,61.9048f},
- {50.0f,66.6667f},
- {64.2857f,66.6667f},
- {73.8095f,61.9048f},
- {78.5715f,47.619f},
- {78.5715f,0.0f}
-};
-
-static const SFG_StrokeStrip ch104st[] =
-{
- {2,ch104st0},
- {7,ch104st1}
-};
-
-static const SFG_StrokeChar ch104 = {104.762f,2,ch104st};
-
-/* char: 0x69 */
-
-static const SFG_StrokeVertex ch105st0[] =
-{
- {47.6191f,100.0f},
- {52.381f,95.2381f},
- {57.1429f,100.0f},
- {52.381f,104.762f},
- {47.6191f,100.0f}
-};
-
-static const SFG_StrokeVertex ch105st1[] =
-{
- {52.381f,66.6667f},
- {52.381f,0.0f}
-};
-
-static const SFG_StrokeStrip ch105st[] =
-{
- {5,ch105st0},
- {2,ch105st1}
-};
-
-static const SFG_StrokeChar ch105 = {104.762f,2,ch105st};
-
-/* char: 0x6a */
-
-static const SFG_StrokeVertex ch106st0[] =
-{
- {57.1429f,100.0f},
- {61.9048f,95.2381f},
- {66.6667f,100.0f},
- {61.9048f,104.762f},
- {57.1429f,100.0f}
-};
-
-static const SFG_StrokeVertex ch106st1[] =
-{
- {61.9048f,66.6667f},
- {61.9048f,-14.2857f},
- {57.1429f,-28.5714f},
- {47.6191f,-33.3333f},
- {38.0953f,-33.3333f}
-};
-
-static const SFG_StrokeStrip ch106st[] =
-{
- {5,ch106st0},
- {5,ch106st1}
-};
-
-static const SFG_StrokeChar ch106 = {104.762f,2,ch106st};
-
-/* char: 0x6b */
-
-static const SFG_StrokeVertex ch107st0[] =
-{
- {26.1905f,100.0f},
- {26.1905f,0.0f}
-};
-
-static const SFG_StrokeVertex ch107st1[] =
-{
- {73.8095f,66.6667f},
- {26.1905f,19.0476f}
-};
-
-static const SFG_StrokeVertex ch107st2[] =
-{
- {45.2381f,38.0952f},
- {78.5715f,0.0f}
-};
-
-static const SFG_StrokeStrip ch107st[] =
-{
- {2,ch107st0},
- {2,ch107st1},
- {2,ch107st2}
-};
-
-static const SFG_StrokeChar ch107 = {104.762f,3,ch107st};
-
-/* char: 0x6c */
-
-static const SFG_StrokeVertex ch108st0[] =
-{
- {52.381f,100.0f},
- {52.381f,0.0f}
-};
-
-static const SFG_StrokeStrip ch108st[] =
-{
- {2,ch108st0}
-};
-
-static const SFG_StrokeChar ch108 = {104.762f,1,ch108st};
-
-/* char: 0x6d */
-
-static const SFG_StrokeVertex ch109st0[] =
-{
- {0,66.6667f},
- {0,0.0f}
-};
-
-static const SFG_StrokeVertex ch109st1[] =
-{
- {0,47.619f},
- {14.2857f,61.9048f},
- {23.8095f,66.6667f},
- {38.0952f,66.6667f},
- {47.619f,61.9048f},
- {52.381f,47.619f},
- {52.381f,0.0f}
-};
-
-static const SFG_StrokeVertex ch109st2[] =
-{
- {52.381f,47.619f},
- {66.6667f,61.9048f},
- {76.1905f,66.6667f},
- {90.4762f,66.6667f},
- {100.0f,61.9048f},
- {104.762f,47.619f},
- {104.762f,0.0f}
-};
-
-static const SFG_StrokeStrip ch109st[] =
-{
- {2,ch109st0},
- {7,ch109st1},
- {7,ch109st2}
-};
-
-static const SFG_StrokeChar ch109 = {104.762f,3,ch109st};
-
-/* char: 0x6e */
-
-static const SFG_StrokeVertex ch110st0[] =
-{
- {26.1905f,66.6667f},
- {26.1905f,0.0f}
-};
-
-static const SFG_StrokeVertex ch110st1[] =
-{
- {26.1905f,47.619f},
- {40.4762f,61.9048f},
- {50.0f,66.6667f},
- {64.2857f,66.6667f},
- {73.8095f,61.9048f},
- {78.5715f,47.619f},
- {78.5715f,0.0f}
-};
-
-static const SFG_StrokeStrip ch110st[] =
-{
- {2,ch110st0},
- {7,ch110st1}
-};
-
-static const SFG_StrokeChar ch110 = {104.762f,2,ch110st};
-
-/* char: 0x6f */
-
-static const SFG_StrokeVertex ch111st0[] =
-{
- {45.2381f,66.6667f},
- {35.7143f,61.9048f},
- {26.1905f,52.381f},
- {21.4286f,38.0952f},
- {21.4286f,28.5714f},
- {26.1905f,14.2857f},
- {35.7143f,4.7619f},
- {45.2381f,0.0f},
- {59.5238f,0.0f},
- {69.0476f,4.7619f},
- {78.5714f,14.2857f},
- {83.3334f,28.5714f},
- {83.3334f,38.0952f},
- {78.5714f,52.381f},
- {69.0476f,61.9048f},
- {59.5238f,66.6667f},
- {45.2381f,66.6667f}
-};
-
-static const SFG_StrokeStrip ch111st[] =
-{
- {17,ch111st0}
-};
-
-static const SFG_StrokeChar ch111 = {104.762f,1,ch111st};
-
-/* char: 0x70 */
-
-static const SFG_StrokeVertex ch112st0[] =
-{
- {23.8095f,66.6667f},
- {23.8095f,-33.3333f}
-};
-
-static const SFG_StrokeVertex ch112st1[] =
-{
- {23.8095f,52.381f},
- {33.3333f,61.9048f},
- {42.8571f,66.6667f},
- {57.1428f,66.6667f},
- {66.6666f,61.9048f},
- {76.1905f,52.381f},
- {80.9524f,38.0952f},
- {80.9524f,28.5714f},
- {76.1905f,14.2857f},
- {66.6666f,4.7619f},
- {57.1428f,0.0f},
- {42.8571f,0.0f},
- {33.3333f,4.7619f},
- {23.8095f,14.2857f}
-};
-
-static const SFG_StrokeStrip ch112st[] =
-{
- {2,ch112st0},
- {14,ch112st1}
-};
-
-static const SFG_StrokeChar ch112 = {104.762f,2,ch112st};
-
-/* char: 0x71 */
-
-static const SFG_StrokeVertex ch113st0[] =
-{
- {80.9524f,66.6667f},
- {80.9524f,-33.3333f}
-};
-
-static const SFG_StrokeVertex ch113st1[] =
-{
- {80.9524f,52.381f},
- {71.4285f,61.9048f},
- {61.9047f,66.6667f},
- {47.619f,66.6667f},
- {38.0952f,61.9048f},
- {28.5714f,52.381f},
- {23.8095f,38.0952f},
- {23.8095f,28.5714f},
- {28.5714f,14.2857f},
- {38.0952f,4.7619f},
- {47.619f,0.0f},
- {61.9047f,0.0f},
- {71.4285f,4.7619f},
- {80.9524f,14.2857f}
-};
-
-static const SFG_StrokeStrip ch113st[] =
-{
- {2,ch113st0},
- {14,ch113st1}
-};
-
-static const SFG_StrokeChar ch113 = {104.762f,2,ch113st};
-
-/* char: 0x72 */
-
-static const SFG_StrokeVertex ch114st0[] =
-{
- {33.3334f,66.6667f},
- {33.3334f,0.0f}
-};
-
-static const SFG_StrokeVertex ch114st1[] =
-{
- {33.3334f,38.0952f},
- {38.0953f,52.381f},
- {47.6191f,61.9048f},
- {57.1429f,66.6667f},
- {71.4286f,66.6667f}
-};
-
-static const SFG_StrokeStrip ch114st[] =
-{
- {2,ch114st0},
- {5,ch114st1}
-};
-
-static const SFG_StrokeChar ch114 = {104.762f,2,ch114st};
-
-/* char: 0x73 */
-
-static const SFG_StrokeVertex ch115st0[] =
-{
- {78.5715f,52.381f},
- {73.8095f,61.9048f},
- {59.5238f,66.6667f},
- {45.2381f,66.6667f},
- {30.9524f,61.9048f},
- {26.1905f,52.381f},
- {30.9524f,42.8571f},
- {40.4762f,38.0952f},
- {64.2857f,33.3333f},
- {73.8095f,28.5714f},
- {78.5715f,19.0476f},
- {78.5715f,14.2857f},
- {73.8095f,4.7619f},
- {59.5238f,0.0f},
- {45.2381f,0.0f},
- {30.9524f,4.7619f},
- {26.1905f,14.2857f}
-};
-
-static const SFG_StrokeStrip ch115st[] =
-{
- {17,ch115st0}
-};
-
-static const SFG_StrokeChar ch115 = {104.762f,1,ch115st};
-
-/* char: 0x74 */
-
-static const SFG_StrokeVertex ch116st0[] =
-{
- {47.6191f,100.0f},
- {47.6191f,19.0476f},
- {52.381f,4.7619f},
- {61.9048f,0.0f},
- {71.4286f,0.0f}
-};
-
-static const SFG_StrokeVertex ch116st1[] =
-{
- {33.3334f,66.6667f},
- {66.6667f,66.6667f}
-};
-
-static const SFG_StrokeStrip ch116st[] =
-{
- {5,ch116st0},
- {2,ch116st1}
-};
-
-static const SFG_StrokeChar ch116 = {104.762f,2,ch116st};
-
-/* char: 0x75 */
-
-static const SFG_StrokeVertex ch117st0[] =
-{
- {26.1905f,66.6667f},
- {26.1905f,19.0476f},
- {30.9524f,4.7619f},
- {40.4762f,0.0f},
- {54.7619f,0.0f},
- {64.2857f,4.7619f},
- {78.5715f,19.0476f}
-};
-
-static const SFG_StrokeVertex ch117st1[] =
-{
- {78.5715f,66.6667f},
- {78.5715f,0.0f}
-};
-
-static const SFG_StrokeStrip ch117st[] =
-{
- {7,ch117st0},
- {2,ch117st1}
-};
-
-static const SFG_StrokeChar ch117 = {104.762f,2,ch117st};
-
-/* char: 0x76 */
-
-static const SFG_StrokeVertex ch118st0[] =
-{
- {23.8095f,66.6667f},
- {52.3809f,0.0f}
-};
-
-static const SFG_StrokeVertex ch118st1[] =
-{
- {80.9524f,66.6667f},
- {52.3809f,0.0f}
-};
-
-static const SFG_StrokeStrip ch118st[] =
-{
- {2,ch118st0},
- {2,ch118st1}
-};
-
-static const SFG_StrokeChar ch118 = {104.762f,2,ch118st};
-
-/* char: 0x77 */
-
-static const SFG_StrokeVertex ch119st0[] =
-{
- {14.2857f,66.6667f},
- {33.3333f,0.0f}
-};
-
-static const SFG_StrokeVertex ch119st1[] =
-{
- {52.3809f,66.6667f},
- {33.3333f,0.0f}
-};
-
-static const SFG_StrokeVertex ch119st2[] =
-{
- {52.3809f,66.6667f},
- {71.4286f,0.0f}
-};
-
-static const SFG_StrokeVertex ch119st3[] =
-{
- {90.4762f,66.6667f},
- {71.4286f,0.0f}
-};
-
-static const SFG_StrokeStrip ch119st[] =
-{
- {2,ch119st0},
- {2,ch119st1},
- {2,ch119st2},
- {2,ch119st3}
-};
-
-static const SFG_StrokeChar ch119 = {104.762f,4,ch119st};
-
-/* char: 0x78 */
-
-static const SFG_StrokeVertex ch120st0[] =
-{
- {26.1905f,66.6667f},
- {78.5715f,0.0f}
-};
-
-static const SFG_StrokeVertex ch120st1[] =
-{
- {78.5715f,66.6667f},
- {26.1905f,0.0f}
-};
-
-static const SFG_StrokeStrip ch120st[] =
-{
- {2,ch120st0},
- {2,ch120st1}
-};
-
-static const SFG_StrokeChar ch120 = {104.762f,2,ch120st};
-
-/* char: 0x79 */
-
-static const SFG_StrokeVertex ch121st0[] =
-{
- {26.1905f,66.6667f},
- {54.7619f,0.0f}
-};
-
-static const SFG_StrokeVertex ch121st1[] =
-{
- {83.3334f,66.6667f},
- {54.7619f,0.0f},
- {45.2381f,-19.0476f},
- {35.7143f,-28.5714f},
- {26.1905f,-33.3333f},
- {21.4286f,-33.3333f}
-};
-
-static const SFG_StrokeStrip ch121st[] =
-{
- {2,ch121st0},
- {6,ch121st1}
-};
-
-static const SFG_StrokeChar ch121 = {104.762f,2,ch121st};
-
-/* char: 0x7a */
-
-static const SFG_StrokeVertex ch122st0[] =
-{
- {78.5715f,66.6667f},
- {26.1905f,0.0f}
-};
-
-static const SFG_StrokeVertex ch122st1[] =
-{
- {26.1905f,66.6667f},
- {78.5715f,66.6667f}
-};
-
-static const SFG_StrokeVertex ch122st2[] =
-{
- {26.1905f,0.0f},
- {78.5715f,0.0f}
-};
-
-static const SFG_StrokeStrip ch122st[] =
-{
- {2,ch122st0},
- {2,ch122st1},
- {2,ch122st2}
-};
-
-static const SFG_StrokeChar ch122 = {104.762f,3,ch122st};
-
-/* char: 0x7b */
-
-static const SFG_StrokeVertex ch123st0[] =
-{
- {64.2857f,119.048f},
- {54.7619f,114.286f},
- {50.0f,109.524f},
- {45.2381f,100.0f},
- {45.2381f,90.4762f},
- {50.0f,80.9524f},
- {54.7619f,76.1905f},
- {59.5238f,66.6667f},
- {59.5238f,57.1429f},
- {50.0f,47.619f}
-};
-
-static const SFG_StrokeVertex ch123st1[] =
-{
- {54.7619f,114.286f},
- {50.0f,104.762f},
- {50.0f,95.2381f},
- {54.7619f,85.7143f},
- {59.5238f,80.9524f},
- {64.2857f,71.4286f},
- {64.2857f,61.9048f},
- {59.5238f,52.381f},
- {40.4762f,42.8571f},
- {59.5238f,33.3333f},
- {64.2857f,23.8095f},
- {64.2857f,14.2857f},
- {59.5238f,4.7619f},
- {54.7619f,0.0f},
- {50.0f,-9.5238f},
- {50.0f,-19.0476f},
- {54.7619f,-28.5714f}
-};
-
-static const SFG_StrokeVertex ch123st2[] =
-{
- {50.0f,38.0952f},
- {59.5238f,28.5714f},
- {59.5238f,19.0476f},
- {54.7619f,9.5238f},
- {50.0f,4.7619f},
- {45.2381f,-4.7619f},
- {45.2381f,-14.2857f},
- {50.0f,-23.8095f},
- {54.7619f,-28.5714f},
- {64.2857f,-33.3333f}
-};
-
-static const SFG_StrokeStrip ch123st[] =
-{
- {10,ch123st0},
- {17,ch123st1},
- {10,ch123st2}
-};
-
-static const SFG_StrokeChar ch123 = {104.762f,3,ch123st};
-
-/* char: 0x7c */
-
-static const SFG_StrokeVertex ch124st0[] =
-{
- {52.381f,119.048f},
- {52.381f,-33.3333f}
-};
-
-static const SFG_StrokeStrip ch124st[] =
-{
- {2,ch124st0}
-};
-
-static const SFG_StrokeChar ch124 = {104.762f,1,ch124st};
-
-/* char: 0x7d */
-
-static const SFG_StrokeVertex ch125st0[] =
-{
- {40.4762f,119.048f},
- {50.0f,114.286f},
- {54.7619f,109.524f},
- {59.5238f,100.0f},
- {59.5238f,90.4762f},
- {54.7619f,80.9524f},
- {50.0f,76.1905f},
- {45.2381f,66.6667f},
- {45.2381f,57.1429f},
- {54.7619f,47.619f}
-};
-
-static const SFG_StrokeVertex ch125st1[] =
-{
- {50.0f,114.286f},
- {54.7619f,104.762f},
- {54.7619f,95.2381f},
- {50.0f,85.7143f},
- {45.2381f,80.9524f},
- {40.4762f,71.4286f},
- {40.4762f,61.9048f},
- {45.2381f,52.381f},
- {64.2857f,42.8571f},
- {45.2381f,33.3333f},
- {40.4762f,23.8095f},
- {40.4762f,14.2857f},
- {45.2381f,4.7619f},
- {50.0f,0.0f},
- {54.7619f,-9.5238f},
- {54.7619f,-19.0476f},
- {50.0f,-28.5714f}
-};
-
-static const SFG_StrokeVertex ch125st2[] =
-{
- {54.7619f,38.0952f},
- {45.2381f,28.5714f},
- {45.2381f,19.0476f},
- {50.0f,9.5238f},
- {54.7619f,4.7619f},
- {59.5238f,-4.7619f},
- {59.5238f,-14.2857f},
- {54.7619f,-23.8095f},
- {50.0f,-28.5714f},
- {40.4762f,-33.3333f}
-};
-
-static const SFG_StrokeStrip ch125st[] =
-{
- {10,ch125st0},
- {17,ch125st1},
- {10,ch125st2}
-};
-
-static const SFG_StrokeChar ch125 = {104.762f,3,ch125st};
-
-/* char: 0x7e */
-
-static const SFG_StrokeVertex ch126st0[] =
-{
- {9.5238f,28.5714f},
- {9.5238f,38.0952f},
- {14.2857f,52.381f},
- {23.8095f,57.1429f},
- {33.3333f,57.1429f},
- {42.8571f,52.381f},
- {61.9048f,38.0952f},
- {71.4286f,33.3333f},
- {80.9524f,33.3333f},
- {90.4762f,38.0952f},
- {95.2381f,47.619f}
-};
-
-static const SFG_StrokeVertex ch126st1[] =
-{
- {9.5238f,38.0952f},
- {14.2857f,47.619f},
- {23.8095f,52.381f},
- {33.3333f,52.381f},
- {42.8571f,47.619f},
- {61.9048f,33.3333f},
- {71.4286f,28.5714f},
- {80.9524f,28.5714f},
- {90.4762f,33.3333f},
- {95.2381f,47.619f},
- {95.2381f,57.1429f}
-};
-
-static const SFG_StrokeStrip ch126st[] =
-{
- {11,ch126st0},
- {11,ch126st1}
-};
-
-static const SFG_StrokeChar ch126 = {104.762f,2,ch126st};
-
-/* char: 0x7f */
-
-static const SFG_StrokeVertex ch127st0[] =
-{
- {71.4286f,100.0f},
- {33.3333f,-33.3333f}
-};
-
-static const SFG_StrokeVertex ch127st1[] =
-{
- {47.619f,66.6667f},
- {33.3333f,61.9048f},
- {23.8095f,52.381f},
- {19.0476f,38.0952f},
- {19.0476f,23.8095f},
- {23.8095f,14.2857f},
- {33.3333f,4.7619f},
- {47.619f,0.0f},
- {57.1428f,0.0f},
- {71.4286f,4.7619f},
- {80.9524f,14.2857f},
- {85.7143f,28.5714f},
- {85.7143f,42.8571f},
- {80.9524f,52.381f},
- {71.4286f,61.9048f},
- {57.1428f,66.6667f},
- {47.619f,66.6667f}
-};
-
-static const SFG_StrokeStrip ch127st[] =
-{
- {2,ch127st0},
- {17,ch127st1}
-};
-
-static const SFG_StrokeChar ch127 = {104.762f,2,ch127st};
-
-static const SFG_StrokeChar *chars[] =
-{
- 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,
- &ch32, &ch33, &ch34, &ch35, &ch36, &ch37, &ch38, &ch39,
- &ch40, &ch41, &ch42, &ch43, &ch44, &ch45, &ch46, &ch47,
- &ch48, &ch49, &ch50, &ch51, &ch52, &ch53, &ch54, &ch55,
- &ch56, &ch57, &ch58, &ch59, &ch60, &ch61, &ch62, &ch63,
- &ch64, &ch65, &ch66, &ch67, &ch68, &ch69, &ch70, &ch71,
- &ch72, &ch73, &ch74, &ch75, &ch76, &ch77, &ch78, &ch79,
- &ch80, &ch81, &ch82, &ch83, &ch84, &ch85, &ch86, &ch87,
- &ch88, &ch89, &ch90, &ch91, &ch92, &ch93, &ch94, &ch95,
- &ch96, &ch97, &ch98, &ch99, &ch100, &ch101, &ch102, &ch103,
- &ch104, &ch105, &ch106, &ch107, &ch108, &ch109, &ch110, &ch111,
- &ch112, &ch113, &ch114, &ch115, &ch116, &ch117, &ch118, &ch119,
- &ch120, &ch121, &ch122, &ch123, &ch124, &ch125, &ch126, &ch127
-};
-
-const SFG_StrokeFont fgStrokeMonoRoman = {"MonoRoman",128,152.381f,chars};
diff --git a/src/Common/freeglut_stroke_roman.c b/src/Common/freeglut_stroke_roman.c
deleted file mode 100644 (file)
index da4e030..0000000
+++ /dev/null
@@ -1,2849 +0,0 @@
-/*
- * freeglut_stroke_roman.c
- *
- * freeglut Roman stroke font definition
- *
- * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
- * Written by Pawel W. Olszta, <olszta@sourceforge.net>
- * Creation date: Thu Dec 16 1999
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-
-/* This file has been automatically generated by the genstroke utility. */
-
-#include <GL/freeglut.h>
-#include "freeglut_internal.h"
-
-/* char: 0x20 */
-
-static const SFG_StrokeStrip ch32st[] =
-{
-  { 0, NULL }
-};
-
-static const SFG_StrokeChar ch32 = {104.762f,0,ch32st};
-
-/* char: 0x21 */
-
-static const SFG_StrokeVertex ch33st0[] =
-{
- {13.3819f,100.0f},
- {13.3819f,33.3333f}
-};
-
-static const SFG_StrokeVertex ch33st1[] =
-{
- {13.3819f,9.5238f},
- {8.62f,4.7619f},
- {13.3819f,0.0f},
- {18.1438f,4.7619f},
- {13.3819f,9.5238f}
-};
-
-static const SFG_StrokeStrip ch33st[] =
-{
- {2,ch33st0},
- {5,ch33st1}
-};
-
-static const SFG_StrokeChar ch33 = {26.6238f,2,ch33st};
-
-/* char: 0x22 */
-
-static const SFG_StrokeVertex ch34st0[] =
-{
- {4.02f,100.0f},
- {4.02f,66.6667f}
-};
-
-static const SFG_StrokeVertex ch34st1[] =
-{
- {42.1152f,100.0f},
- {42.1152f,66.6667f}
-};
-
-static const SFG_StrokeStrip ch34st[] =
-{
- {2,ch34st0},
- {2,ch34st1}
-};
-
-static const SFG_StrokeChar ch34 = {51.4352f,2,ch34st};
-
-/* char: 0x23 */
-
-static const SFG_StrokeVertex ch35st0[] =
-{
- {41.2952f,119.048f},
- {7.9619f,-33.3333f}
-};
-
-static const SFG_StrokeVertex ch35st1[] =
-{
- {69.8667f,119.048f},
- {36.5333f,-33.3333f}
-};
-
-static const SFG_StrokeVertex ch35st2[] =
-{
- {7.9619f,57.1429f},
- {74.6286f,57.1429f}
-};
-
-static const SFG_StrokeVertex ch35st3[] =
-{
- {3.2f,28.5714f},
- {69.8667f,28.5714f}
-};
-
-static const SFG_StrokeStrip ch35st[] =
-{
- {2,ch35st0},
- {2,ch35st1},
- {2,ch35st2},
- {2,ch35st3}
-};
-
-static const SFG_StrokeChar ch35 = {79.4886f,4,ch35st};
-
-/* char: 0x24 */
-
-static const SFG_StrokeVertex ch36st0[] =
-{
- {28.6295f,119.048f},
- {28.6295f,-19.0476f}
-};
-
-static const SFG_StrokeVertex ch36st1[] =
-{
- {47.6771f,119.048f},
- {47.6771f,-19.0476f}
-};
-
-static const SFG_StrokeVertex ch36st2[] =
-{
- {71.4867f,85.7143f},
- {61.9629f,95.2381f},
- {47.6771f,100.0f},
- {28.6295f,100.0f},
- {14.3438f,95.2381f},
- {4.82f,85.7143f},
- {4.82f,76.1905f},
- {9.5819f,66.6667f},
- {14.3438f,61.9048f},
- {23.8676f,57.1429f},
- {52.439f,47.619f},
- {61.9629f,42.8571f},
- {66.7248f,38.0952f},
- {71.4867f,28.5714f},
- {71.4867f,14.2857f},
- {61.9629f,4.7619f},
- {47.6771f,0.0f},
- {28.6295f,0.0f},
- {14.3438f,4.7619f},
- {4.82f,14.2857f}
-};
-
-static const SFG_StrokeStrip ch36st[] =
-{
- {2,ch36st0},
- {2,ch36st1},
- {20,ch36st2}
-};
-
-static const SFG_StrokeChar ch36 = {76.2067f,3,ch36st};
-
-/* char: 0x25 */
-
-static const SFG_StrokeVertex ch37st0[] =
-{
- {92.0743f,100.0f},
- {6.36f,0.0f}
-};
-
-static const SFG_StrokeVertex ch37st1[] =
-{
- {30.1695f,100.0f},
- {39.6933f,90.4762f},
- {39.6933f,80.9524f},
- {34.9314f,71.4286f},
- {25.4076f,66.6667f},
- {15.8838f,66.6667f},
- {6.36f,76.1905f},
- {6.36f,85.7143f},
- {11.1219f,95.2381f},
- {20.6457f,100.0f},
- {30.1695f,100.0f},
- {39.6933f,95.2381f},
- {53.979f,90.4762f},
- {68.2648f,90.4762f},
- {82.5505f,95.2381f},
- {92.0743f,100.0f}
-};
-
-static const SFG_StrokeVertex ch37st2[] =
-{
- {73.0267f,33.3333f},
- {63.5029f,28.5714f},
- {58.741f,19.0476f},
- {58.741f,9.5238f},
- {68.2648f,0.0f},
- {77.7886f,0.0f},
- {87.3124f,4.7619f},
- {92.0743f,14.2857f},
- {92.0743f,23.8095f},
- {82.5505f,33.3333f},
- {73.0267f,33.3333f}
-};
-
-static const SFG_StrokeStrip ch37st[] =
-{
- {2,ch37st0},
- {16,ch37st1},
- {11,ch37st2}
-};
-
-static const SFG_StrokeChar ch37 = {96.5743f,3,ch37st};
-
-/* char: 0x26 */
-
-static const SFG_StrokeVertex ch38st0[] =
-{
- {101.218f,57.1429f},
- {101.218f,61.9048f},
- {96.4562f,66.6667f},
- {91.6943f,66.6667f},
- {86.9324f,61.9048f},
- {82.1705f,52.381f},
- {72.6467f,28.5714f},
- {63.1229f,14.2857f},
- {53.599f,4.7619f},
- {44.0752f,0.0f},
- {25.0276f,0.0f},
- {15.5038f,4.7619f},
- {10.7419f,9.5238f},
- {5.98f,19.0476f},
- {5.98f,28.5714f},
- {10.7419f,38.0952f},
- {15.5038f,42.8571f},
- {48.8371f,61.9048f},
- {53.599f,66.6667f},
- {58.361f,76.1905f},
- {58.361f,85.7143f},
- {53.599f,95.2381f},
- {44.0752f,100.0f},
- {34.5514f,95.2381f},
- {29.7895f,85.7143f},
- {29.7895f,76.1905f},
- {34.5514f,61.9048f},
- {44.0752f,47.619f},
- {67.8848f,14.2857f},
- {77.4086f,4.7619f},
- {86.9324f,0.0f},
- {96.4562f,0.0f},
- {101.218f,4.7619f},
- {101.218f,9.5238f}
-};
-
-static const SFG_StrokeStrip ch38st[] =
-{
- {34,ch38st0}
-};
-
-static const SFG_StrokeChar ch38 = {101.758f,1,ch38st};
-
-/* char: 0x27 */
-
-static const SFG_StrokeVertex ch39st0[] =
-{
- {4.44f,100.0f},
- {4.44f,66.6667f}
-};
-
-static const SFG_StrokeStrip ch39st[] =
-{
- {2,ch39st0}
-};
-
-static const SFG_StrokeChar ch39 = {13.62f,1,ch39st};
-
-/* char: 0x28 */
-
-static const SFG_StrokeVertex ch40st0[] =
-{
- {40.9133f,119.048f},
- {31.3895f,109.524f},
- {21.8657f,95.2381f},
- {12.3419f,76.1905f},
- {7.58f,52.381f},
- {7.58f,33.3333f},
- {12.3419f,9.5238f},
- {21.8657f,-9.5238f},
- {31.3895f,-23.8095f},
- {40.9133f,-33.3333f}
-};
-
-static const SFG_StrokeStrip ch40st[] =
-{
- {10,ch40st0}
-};
-
-static const SFG_StrokeChar ch40 = {47.1733f,1,ch40st};
-
-/* char: 0x29 */
-
-static const SFG_StrokeVertex ch41st0[] =
-{
- {5.28f,119.048f},
- {14.8038f,109.524f},
- {24.3276f,95.2381f},
- {33.8514f,76.1905f},
- {38.6133f,52.381f},
- {38.6133f,33.3333f},
- {33.8514f,9.5238f},
- {24.3276f,-9.5238f},
- {14.8038f,-23.8095f},
- {5.28f,-33.3333f}
-};
-
-static const SFG_StrokeStrip ch41st[] =
-{
- {10,ch41st0}
-};
-
-static const SFG_StrokeChar ch41 = {47.5333f,1,ch41st};
-
-/* char: 0x2a */
-
-static const SFG_StrokeVertex ch42st0[] =
-{
- {30.7695f,71.4286f},
- {30.7695f,14.2857f}
-};
-
-static const SFG_StrokeVertex ch42st1[] =
-{
- {6.96f,57.1429f},
- {54.579f,28.5714f}
-};
-
-static const SFG_StrokeVertex ch42st2[] =
-{
- {54.579f,57.1429f},
- {6.96f,28.5714f}
-};
-
-static const SFG_StrokeStrip ch42st[] =
-{
- {2,ch42st0},
- {2,ch42st1},
- {2,ch42st2}
-};
-
-static const SFG_StrokeChar ch42 = {59.439f,3,ch42st};
-
-/* char: 0x2b */
-
-static const SFG_StrokeVertex ch43st0[] =
-{
- {48.8371f,85.7143f},
- {48.8371f,0.0f}
-};
-
-static const SFG_StrokeVertex ch43st1[] =
-{
- {5.98f,42.8571f},
- {91.6943f,42.8571f}
-};
-
-static const SFG_StrokeStrip ch43st[] =
-{
- {2,ch43st0},
- {2,ch43st1}
-};
-
-static const SFG_StrokeChar ch43 = {97.2543f,2,ch43st};
-
-/* char: 0x2c */
-
-static const SFG_StrokeVertex ch44st0[] =
-{
- {18.2838f,4.7619f},
- {13.5219f,0.0f},
- {8.76f,4.7619f},
- {13.5219f,9.5238f},
- {18.2838f,4.7619f},
- {18.2838f,-4.7619f},
- {13.5219f,-14.2857f},
- {8.76f,-19.0476f}
-};
-
-static const SFG_StrokeStrip ch44st[] =
-{
- {8,ch44st0}
-};
-
-static const SFG_StrokeChar ch44 = {26.0638f,1,ch44st};
-
-/* char: 0x2d */
-
-static const SFG_StrokeVertex ch45st0[] =
-{
- {7.38f,42.8571f},
- {93.0943f,42.8571f}
-};
-
-static const SFG_StrokeStrip ch45st[] =
-{
- {2,ch45st0}
-};
-
-static const SFG_StrokeChar ch45 = {100.754f,1,ch45st};
-
-/* char: 0x2e */
-
-static const SFG_StrokeVertex ch46st0[] =
-{
- {13.1019f,9.5238f},
- {8.34f,4.7619f},
- {13.1019f,0.0f},
- {17.8638f,4.7619f},
- {13.1019f,9.5238f}
-};
-
-static const SFG_StrokeStrip ch46st[] =
-{
- {5,ch46st0}
-};
-
-static const SFG_StrokeChar ch46 = {26.4838f,1,ch46st};
-
-/* char: 0x2f */
-
-static const SFG_StrokeVertex ch47st0[] =
-{
- {7.24f,-14.2857f},
- {73.9067f,100.0f}
-};
-
-static const SFG_StrokeStrip ch47st[] =
-{
- {2,ch47st0}
-};
-
-static const SFG_StrokeChar ch47 = {82.1067f,1,ch47st};
-
-/* char: 0x30 */
-
-static const SFG_StrokeVertex ch48st0[] =
-{
- {33.5514f,100.0f},
- {19.2657f,95.2381f},
- {9.7419f,80.9524f},
- {4.98f,57.1429f},
- {4.98f,42.8571f},
- {9.7419f,19.0476f},
- {19.2657f,4.7619f},
- {33.5514f,0.0f},
- {43.0752f,0.0f},
- {57.361f,4.7619f},
- {66.8848f,19.0476f},
- {71.6467f,42.8571f},
- {71.6467f,57.1429f},
- {66.8848f,80.9524f},
- {57.361f,95.2381f},
- {43.0752f,100.0f},
- {33.5514f,100.0f}
-};
-
-static const SFG_StrokeStrip ch48st[] =
-{
- {17,ch48st0}
-};
-
-static const SFG_StrokeChar ch48 = {77.0667f,1,ch48st};
-
-/* char: 0x31 */
-
-static const SFG_StrokeVertex ch49st0[] =
-{
- {11.82f,80.9524f},
- {21.3438f,85.7143f},
- {35.6295f,100.0f},
- {35.6295f,0.0f}
-};
-
-static const SFG_StrokeStrip ch49st[] =
-{
- {4,ch49st0}
-};
-
-static const SFG_StrokeChar ch49 = {66.5295f,1,ch49st};
-
-/* char: 0x32 */
-
-static const SFG_StrokeVertex ch50st0[] =
-{
- {10.1819f,76.1905f},
- {10.1819f,80.9524f},
- {14.9438f,90.4762f},
- {19.7057f,95.2381f},
- {29.2295f,100.0f},
- {48.2771f,100.0f},
- {57.801f,95.2381f},
- {62.5629f,90.4762f},
- {67.3248f,80.9524f},
- {67.3248f,71.4286f},
- {62.5629f,61.9048f},
- {53.039f,47.619f},
- {5.42f,0.0f},
- {72.0867f,0.0f}
-};
-
-static const SFG_StrokeStrip ch50st[] =
-{
- {14,ch50st0}
-};
-
-static const SFG_StrokeChar ch50 = {77.6467f,1,ch50st};
-
-/* char: 0x33 */
-
-static const SFG_StrokeVertex ch51st0[] =
-{
- {14.5238f,100.0f},
- {66.9048f,100.0f},
- {38.3333f,61.9048f},
- {52.619f,61.9048f},
- {62.1429f,57.1429f},
- {66.9048f,52.381f},
- {71.6667f,38.0952f},
- {71.6667f,28.5714f},
- {66.9048f,14.2857f},
- {57.381f,4.7619f},
- {43.0952f,0.0f},
- {28.8095f,0.0f},
- {14.5238f,4.7619f},
- {9.7619f,9.5238f},
- {5.0f,19.0476f}
-};
-
-static const SFG_StrokeStrip ch51st[] =
-{
- {15,ch51st0}
-};
-
-static const SFG_StrokeChar ch51 = {77.0467f,1,ch51st};
-
-/* char: 0x34 */
-
-static const SFG_StrokeVertex ch52st0[] =
-{
- {51.499f,100.0f},
- {3.88f,33.3333f},
- {75.3086f,33.3333f}
-};
-
-static const SFG_StrokeVertex ch52st1[] =
-{
- {51.499f,100.0f},
- {51.499f,0.0f}
-};
-
-static const SFG_StrokeStrip ch52st[] =
-{
- {3,ch52st0},
- {2,ch52st1}
-};
-
-static const SFG_StrokeChar ch52 = {80.1686f,2,ch52st};
-
-/* char: 0x35 */
-
-static const SFG_StrokeVertex ch53st0[] =
-{
- {62.0029f,100.0f},
- {14.3838f,100.0f},
- {9.6219f,57.1429f},
- {14.3838f,61.9048f},
- {28.6695f,66.6667f},
- {42.9552f,66.6667f},
- {57.241f,61.9048f},
- {66.7648f,52.381f},
- {71.5267f,38.0952f},
- {71.5267f,28.5714f},
- {66.7648f,14.2857f},
- {57.241f,4.7619f},
- {42.9552f,0.0f},
- {28.6695f,0.0f},
- {14.3838f,4.7619f},
- {9.6219f,9.5238f},
- {4.86f,19.0476f}
-};
-
-static const SFG_StrokeStrip ch53st[] =
-{
- {17,ch53st0}
-};
-
-static const SFG_StrokeChar ch53 = {77.6867f,1,ch53st};
-
-/* char: 0x36 */
-
-static const SFG_StrokeVertex ch54st0[] =
-{
- {62.7229f,85.7143f},
- {57.961f,95.2381f},
- {43.6752f,100.0f},
- {34.1514f,100.0f},
- {19.8657f,95.2381f},
- {10.3419f,80.9524f},
- {5.58f,57.1429f},
- {5.58f,33.3333f},
- {10.3419f,14.2857f},
- {19.8657f,4.7619f},
- {34.1514f,0.0f},
- {38.9133f,0.0f},
- {53.199f,4.7619f},
- {62.7229f,14.2857f},
- {67.4848f,28.5714f},
- {67.4848f,33.3333f},
- {62.7229f,47.619f},
- {53.199f,57.1429f},
- {38.9133f,61.9048f},
- {34.1514f,61.9048f},
- {19.8657f,57.1429f},
- {10.3419f,47.619f},
- {5.58f,33.3333f}
-};
-
-static const SFG_StrokeStrip ch54st[] =
-{
- {23,ch54st0}
-};
-
-static const SFG_StrokeChar ch54 = {73.8048f,1,ch54st};
-
-/* char: 0x37 */
-
-static const SFG_StrokeVertex ch55st0[] =
-{
- {72.2267f,100.0f},
- {24.6076f,0.0f}
-};
-
-static const SFG_StrokeVertex ch55st1[] =
-{
- {5.56f,100.0f},
- {72.2267f,100.0f}
-};
-
-static const SFG_StrokeStrip ch55st[] =
-{
- {2,ch55st0},
- {2,ch55st1}
-};
-
-static const SFG_StrokeChar ch55 = {77.2267f,2,ch55st};
-
-/* char: 0x38 */
-
-static const SFG_StrokeVertex ch56st0[] =
-{
- {29.4095f,100.0f},
- {15.1238f,95.2381f},
- {10.3619f,85.7143f},
- {10.3619f,76.1905f},
- {15.1238f,66.6667f},
- {24.6476f,61.9048f},
- {43.6952f,57.1429f},
- {57.981f,52.381f},
- {67.5048f,42.8571f},
- {72.2667f,33.3333f},
- {72.2667f,19.0476f},
- {67.5048f,9.5238f},
- {62.7429f,4.7619f},
- {48.4571f,0.0f},
- {29.4095f,0.0f},
- {15.1238f,4.7619f},
- {10.3619f,9.5238f},
- {5.6f,19.0476f},
- {5.6f,33.3333f},
- {10.3619f,42.8571f},
- {19.8857f,52.381f},
- {34.1714f,57.1429f},
- {53.219f,61.9048f},
- {62.7429f,66.6667f},
- {67.5048f,76.1905f},
- {67.5048f,85.7143f},
- {62.7429f,95.2381f},
- {48.4571f,100.0f},
- {29.4095f,100.0f}
-};
-
-static const SFG_StrokeStrip ch56st[] =
-{
- {29,ch56st0}
-};
-
-static const SFG_StrokeChar ch56 = {77.6667f,1,ch56st};
-
-/* char: 0x39 */
-
-static const SFG_StrokeVertex ch57st0[] =
-{
- {68.5048f,66.6667f},
- {63.7429f,52.381f},
- {54.219f,42.8571f},
- {39.9333f,38.0952f},
- {35.1714f,38.0952f},
- {20.8857f,42.8571f},
- {11.3619f,52.381f},
- {6.6f,66.6667f},
- {6.6f,71.4286f},
- {11.3619f,85.7143f},
- {20.8857f,95.2381f},
- {35.1714f,100.0f},
- {39.9333f,100.0f},
- {54.219f,95.2381f},
- {63.7429f,85.7143f},
- {68.5048f,66.6667f},
- {68.5048f,42.8571f},
- {63.7429f,19.0476f},
- {54.219f,4.7619f},
- {39.9333f,0.0f},
- {30.4095f,0.0f},
- {16.1238f,4.7619f},
- {11.3619f,14.2857f}
-};
-
-static const SFG_StrokeStrip ch57st[] =
-{
- {23,ch57st0}
-};
-
-static const SFG_StrokeChar ch57 = {74.0648f,1,ch57st};
-
-/* char: 0x3a */
-
-static const SFG_StrokeVertex ch58st0[] =
-{
- {14.0819f,66.6667f},
- {9.32f,61.9048f},
- {14.0819f,57.1429f},
- {18.8438f,61.9048f},
- {14.0819f,66.6667f}
-};
-
-static const SFG_StrokeVertex ch58st1[] =
-{
- {14.0819f,9.5238f},
- {9.32f,4.7619f},
- {14.0819f,0.0f},
- {18.8438f,4.7619f},
- {14.0819f,9.5238f}
-};
-
-static const SFG_StrokeStrip ch58st[] =
-{
- {5,ch58st0},
- {5,ch58st1}
-};
-
-static const SFG_StrokeChar ch58 = {26.2238f,2,ch58st};
-
-/* char: 0x3b */
-
-static const SFG_StrokeVertex ch59st0[] =
-{
- {12.9619f,66.6667f},
- {8.2f,61.9048f},
- {12.9619f,57.1429f},
- {17.7238f,61.9048f},
- {12.9619f,66.6667f}
-};
-
-static const SFG_StrokeVertex ch59st1[] =
-{
- {17.7238f,4.7619f},
- {12.9619f,0.0f},
- {8.2f,4.7619f},
- {12.9619f,9.5238f},
- {17.7238f,4.7619f},
- {17.7238f,-4.7619f},
- {12.9619f,-14.2857f},
- {8.2f,-19.0476f}
-};
-
-static const SFG_StrokeStrip ch59st[] =
-{
- {5,ch59st0},
- {8,ch59st1}
-};
-
-static const SFG_StrokeChar ch59 = {26.3038f,2,ch59st};
-
-/* char: 0x3c */
-
-static const SFG_StrokeVertex ch60st0[] =
-{
- {79.2505f,85.7143f},
- {3.06f,42.8571f},
- {79.2505f,0.0f}
-};
-
-static const SFG_StrokeStrip ch60st[] =
-{
- {3,ch60st0}
-};
-
-static const SFG_StrokeChar ch60 = {81.6105f,1,ch60st};
-
-/* char: 0x3d */
-
-static const SFG_StrokeVertex ch61st0[] =
-{
- {5.7f,57.1429f},
- {91.4143f,57.1429f}
-};
-
-static const SFG_StrokeVertex ch61st1[] =
-{
- {5.7f,28.5714f},
- {91.4143f,28.5714f}
-};
-
-static const SFG_StrokeStrip ch61st[] =
-{
- {2,ch61st0},
- {2,ch61st1}
-};
-
-static const SFG_StrokeChar ch61 = {97.2543f,2,ch61st};
-
-/* char: 0x3e */
-
-static const SFG_StrokeVertex ch62st0[] =
-{
- {2.78f,85.7143f},
- {78.9705f,42.8571f},
- {2.78f,0.0f}
-};
-
-static const SFG_StrokeStrip ch62st[] =
-{
- {3,ch62st0}
-};
-
-static const SFG_StrokeChar ch62 = {81.6105f,1,ch62st};
-
-/* char: 0x3f */
-
-static const SFG_StrokeVertex ch63st0[] =
-{
- {8.42f,76.1905f},
- {8.42f,80.9524f},
- {13.1819f,90.4762f},
- {17.9438f,95.2381f},
- {27.4676f,100.0f},
- {46.5152f,100.0f},
- {56.039f,95.2381f},
- {60.801f,90.4762f},
- {65.5629f,80.9524f},
- {65.5629f,71.4286f},
- {60.801f,61.9048f},
- {56.039f,57.1429f},
- {36.9914f,47.619f},
- {36.9914f,33.3333f}
-};
-
-static const SFG_StrokeVertex ch63st1[] =
-{
- {36.9914f,9.5238f},
- {32.2295f,4.7619f},
- {36.9914f,0.0f},
- {41.7533f,4.7619f},
- {36.9914f,9.5238f}
-};
-
-static const SFG_StrokeStrip ch63st[] =
-{
- {14,ch63st0},
- {5,ch63st1}
-};
-
-static const SFG_StrokeChar ch63 = {73.9029f,2,ch63st};
-
-/* char: 0x40 */
-
-static const SFG_StrokeVertex ch64st0[] =
-{
- {49.2171f,52.381f},
- {39.6933f,57.1429f},
- {30.1695f,57.1429f},
- {25.4076f,47.619f},
- {25.4076f,42.8571f},
- {30.1695f,33.3333f},
- {39.6933f,33.3333f},
- {49.2171f,38.0952f}
-};
-
-static const SFG_StrokeVertex ch64st1[] =
-{
- {49.2171f,57.1429f},
- {49.2171f,38.0952f},
- {53.979f,33.3333f},
- {63.5029f,33.3333f},
- {68.2648f,42.8571f},
- {68.2648f,47.619f},
- {63.5029f,61.9048f},
- {53.979f,71.4286f},
- {39.6933f,76.1905f},
- {34.9314f,76.1905f},
- {20.6457f,71.4286f},
- {11.1219f,61.9048f},
- {6.36f,47.619f},
- {6.36f,42.8571f},
- {11.1219f,28.5714f},
- {20.6457f,19.0476f},
- {34.9314f,14.2857f},
- {39.6933f,14.2857f},
- {53.979f,19.0476f}
-};
-
-static const SFG_StrokeStrip ch64st[] =
-{
- {8,ch64st0},
- {19,ch64st1}
-};
-
-static const SFG_StrokeChar ch64 = {74.3648f,2,ch64st};
-
-/* char: 0x41 */
-
-static const SFG_StrokeVertex ch65st0[] =
-{
- {40.5952f,100.0f},
- {2.5f,0.0f}
-};
-
-static const SFG_StrokeVertex ch65st1[] =
-{
- {40.5952f,100.0f},
- {78.6905f,0.0f}
-};
-
-static const SFG_StrokeVertex ch65st2[] =
-{
- {16.7857f,33.3333f},
- {64.4048f,33.3333f}
-};
-
-static const SFG_StrokeStrip ch65st[] =
-{
- {2,ch65st0},
- {2,ch65st1},
- {2,ch65st2}
-};
-
-static const SFG_StrokeChar ch65 = {80.4905f,3,ch65st};
-
-/* char: 0x42 */
-
-static const SFG_StrokeVertex ch66st0[] =
-{
- {11.42f,100.0f},
- {11.42f,0.0f}
-};
-
-static const SFG_StrokeVertex ch66st1[] =
-{
- {11.42f,100.0f},
- {54.2771f,100.0f},
- {68.5629f,95.2381f},
- {73.3248f,90.4762f},
- {78.0867f,80.9524f},
- {78.0867f,71.4286f},
- {73.3248f,61.9048f},
- {68.5629f,57.1429f},
- {54.2771f,52.381f}
-};
-
-static const SFG_StrokeVertex ch66st2[] =
-{
- {11.42f,52.381f},
- {54.2771f,52.381f},
- {68.5629f,47.619f},
- {73.3248f,42.8571f},
- {78.0867f,33.3333f},
- {78.0867f,19.0476f},
- {73.3248f,9.5238f},
- {68.5629f,4.7619f},
- {54.2771f,0.0f},
- {11.42f,0.0f}
-};
-
-static const SFG_StrokeStrip ch66st[] =
-{
- {2,ch66st0},
- {9,ch66st1},
- {10,ch66st2}
-};
-
-static const SFG_StrokeChar ch66 = {83.6267f,3,ch66st};
-
-/* char: 0x43 */
-
-static const SFG_StrokeVertex ch67st0[] =
-{
- {78.0886f,76.1905f},
- {73.3267f,85.7143f},
- {63.8029f,95.2381f},
- {54.279f,100.0f},
- {35.2314f,100.0f},
- {25.7076f,95.2381f},
- {16.1838f,85.7143f},
- {11.4219f,76.1905f},
- {6.66f,61.9048f},
- {6.66f,38.0952f},
- {11.4219f,23.8095f},
- {16.1838f,14.2857f},
- {25.7076f,4.7619f},
- {35.2314f,0.0f},
- {54.279f,0.0f},
- {63.8029f,4.7619f},
- {73.3267f,14.2857f},
- {78.0886f,23.8095f}
-};
-
-static const SFG_StrokeStrip ch67st[] =
-{
- {18,ch67st0}
-};
-
-static const SFG_StrokeChar ch67 = {84.4886f,1,ch67st};
-
-/* char: 0x44 */
-
-static const SFG_StrokeVertex ch68st0[] =
-{
- {11.96f,100.0f},
- {11.96f,0.0f}
-};
-
-static const SFG_StrokeVertex ch68st1[] =
-{
- {11.96f,100.0f},
- {45.2933f,100.0f},
- {59.579f,95.2381f},
- {69.1029f,85.7143f},
- {73.8648f,76.1905f},
- {78.6267f,61.9048f},
- {78.6267f,38.0952f},
- {73.8648f,23.8095f},
- {69.1029f,14.2857f},
- {59.579f,4.7619f},
- {45.2933f,0.0f},
- {11.96f,0.0f}
-};
-
-static const SFG_StrokeStrip ch68st[] =
-{
- {2,ch68st0},
- {12,ch68st1}
-};
-
-static const SFG_StrokeChar ch68 = {85.2867f,2,ch68st};
-
-/* char: 0x45 */
-
-static const SFG_StrokeVertex ch69st0[] =
-{
- {11.42f,100.0f},
- {11.42f,0.0f}
-};
-
-static const SFG_StrokeVertex ch69st1[] =
-{
- {11.42f,100.0f},
- {73.3248f,100.0f}
-};
-
-static const SFG_StrokeVertex ch69st2[] =
-{
- {11.42f,52.381f},
- {49.5152f,52.381f}
-};
-
-static const SFG_StrokeVertex ch69st3[] =
-{
- {11.42f,0.0f},
- {73.3248f,0.0f}
-};
-
-static const SFG_StrokeStrip ch69st[] =
-{
- {2,ch69st0},
- {2,ch69st1},
- {2,ch69st2},
- {2,ch69st3}
-};
-
-static const SFG_StrokeChar ch69 = {78.1848f,4,ch69st};
-
-/* char: 0x46 */
-
-static const SFG_StrokeVertex ch70st0[] =
-{
- {11.42f,100.0f},
- {11.42f,0.0f}
-};
-
-static const SFG_StrokeVertex ch70st1[] =
-{
- {11.42f,100.0f},
- {73.3248f,100.0f}
-};
-
-static const SFG_StrokeVertex ch70st2[] =
-{
- {11.42f,52.381f},
- {49.5152f,52.381f}
-};
-
-static const SFG_StrokeStrip ch70st[] =
-{
- {2,ch70st0},
- {2,ch70st1},
- {2,ch70st2}
-};
-
-static const SFG_StrokeChar ch70 = {78.7448f,3,ch70st};
-
-/* char: 0x47 */
-
-static const SFG_StrokeVertex ch71st0[] =
-{
- {78.4886f,76.1905f},
- {73.7267f,85.7143f},
- {64.2029f,95.2381f},
- {54.679f,100.0f},
- {35.6314f,100.0f},
- {26.1076f,95.2381f},
- {16.5838f,85.7143f},
- {11.8219f,76.1905f},
- {7.06f,61.9048f},
- {7.06f,38.0952f},
- {11.8219f,23.8095f},
- {16.5838f,14.2857f},
- {26.1076f,4.7619f},
- {35.6314f,0.0f},
- {54.679f,0.0f},
- {64.2029f,4.7619f},
- {73.7267f,14.2857f},
- {78.4886f,23.8095f},
- {78.4886f,38.0952f}
-};
-
-static const SFG_StrokeVertex ch71st1[] =
-{
- {54.679f,38.0952f},
- {78.4886f,38.0952f}
-};
-
-static const SFG_StrokeStrip ch71st[] =
-{
- {19,ch71st0},
- {2,ch71st1}
-};
-
-static const SFG_StrokeChar ch71 = {89.7686f,2,ch71st};
-
-/* char: 0x48 */
-
-static const SFG_StrokeVertex ch72st0[] =
-{
- {11.42f,100.0f},
- {11.42f,0.0f}
-};
-
-static const SFG_StrokeVertex ch72st1[] =
-{
- {78.0867f,100.0f},
- {78.0867f,0.0f}
-};
-
-static const SFG_StrokeVertex ch72st2[] =
-{
- {11.42f,52.381f},
- {78.0867f,52.381f}
-};
-
-static const SFG_StrokeStrip ch72st[] =
-{
- {2,ch72st0},
- {2,ch72st1},
- {2,ch72st2}
-};
-
-static const SFG_StrokeChar ch72 = {89.0867f,3,ch72st};
-
-/* char: 0x49 */
-
-static const SFG_StrokeVertex ch73st0[] =
-{
- {10.86f,100.0f},
- {10.86f,0.0f}
-};
-
-static const SFG_StrokeStrip ch73st[] =
-{
- {2,ch73st0}
-};
-
-static const SFG_StrokeChar ch73 = {21.3f,1,ch73st};
-
-/* char: 0x4a */
-
-static const SFG_StrokeVertex ch74st0[] =
-{
- {50.119f,100.0f},
- {50.119f,23.8095f},
- {45.3571f,9.5238f},
- {40.5952f,4.7619f},
- {31.0714f,0.0f},
- {21.5476f,0.0f},
- {12.0238f,4.7619f},
- {7.2619f,9.5238f},
- {2.5f,23.8095f},
- {2.5f,33.3333f}
-};
-
-static const SFG_StrokeStrip ch74st[] =
-{
- {10,ch74st0}
-};
-
-static const SFG_StrokeChar ch74 = {59.999f,1,ch74st};
-
-/* char: 0x4b */
-
-static const SFG_StrokeVertex ch75st0[] =
-{
- {11.28f,100.0f},
- {11.28f,0.0f}
-};
-
-static const SFG_StrokeVertex ch75st1[] =
-{
- {77.9467f,100.0f},
- {11.28f,33.3333f}
-};
-
-static const SFG_StrokeVertex ch75st2[] =
-{
- {35.0895f,57.1429f},
- {77.9467f,0.0f}
-};
-
-static const SFG_StrokeStrip ch75st[] =
-{
- {2,ch75st0},
- {2,ch75st1},
- {2,ch75st2}
-};
-
-static const SFG_StrokeChar ch75 = {79.3267f,3,ch75st};
-
-/* char: 0x4c */
-
-static const SFG_StrokeVertex ch76st0[] =
-{
- {11.68f,100.0f},
- {11.68f,0.0f}
-};
-
-static const SFG_StrokeVertex ch76st1[] =
-{
- {11.68f,0.0f},
- {68.8229f,0.0f}
-};
-
-static const SFG_StrokeStrip ch76st[] =
-{
- {2,ch76st0},
- {2,ch76st1}
-};
-
-static const SFG_StrokeChar ch76 = {71.3229f,2,ch76st};
-
-/* char: 0x4d */
-
-static const SFG_StrokeVertex ch77st0[] =
-{
- {10.86f,100.0f},
- {10.86f,0.0f}
-};
-
-static const SFG_StrokeVertex ch77st1[] =
-{
- {10.86f,100.0f},
- {48.9552f,0.0f}
-};
-
-static const SFG_StrokeVertex ch77st2[] =
-{
- {87.0505f,100.0f},
- {48.9552f,0.0f}
-};
-
-static const SFG_StrokeVertex ch77st3[] =
-{
- {87.0505f,100.0f},
- {87.0505f,0.0f}
-};
-
-static const SFG_StrokeStrip ch77st[] =
-{
- {2,ch77st0},
- {2,ch77st1},
- {2,ch77st2},
- {2,ch77st3}
-};
-
-static const SFG_StrokeChar ch77 = {97.2105f,4,ch77st};
-
-/* char: 0x4e */
-
-static const SFG_StrokeVertex ch78st0[] =
-{
- {11.14f,100.0f},
- {11.14f,0.0f}
-};
-
-static const SFG_StrokeVertex ch78st1[] =
-{
- {11.14f,100.0f},
- {77.8067f,0.0f}
-};
-
-static const SFG_StrokeVertex ch78st2[] =
-{
- {77.8067f,100.0f},
- {77.8067f,0.0f}
-};
-
-static const SFG_StrokeStrip ch78st[] =
-{
- {2,ch78st0},
- {2,ch78st1},
- {2,ch78st2}
-};
-
-static const SFG_StrokeChar ch78 = {88.8067f,3,ch78st};
-
-/* char: 0x4f */
-
-static const SFG_StrokeVertex ch79st0[] =
-{
- {34.8114f,100.0f},
- {25.2876f,95.2381f},
- {15.7638f,85.7143f},
- {11.0019f,76.1905f},
- {6.24f,61.9048f},
- {6.24f,38.0952f},
- {11.0019f,23.8095f},
- {15.7638f,14.2857f},
- {25.2876f,4.7619f},
- {34.8114f,0.0f},
- {53.859f,0.0f},
- {63.3829f,4.7619f},
- {72.9067f,14.2857f},
- {77.6686f,23.8095f},
- {82.4305f,38.0952f},
- {82.4305f,61.9048f},
- {77.6686f,76.1905f},
- {72.9067f,85.7143f},
- {63.3829f,95.2381f},
- {53.859f,100.0f},
- {34.8114f,100.0f}
-};
-
-static const SFG_StrokeStrip ch79st[] =
-{
- {21,ch79st0}
-};
-
-static const SFG_StrokeChar ch79 = {88.8305f,1,ch79st};
-
-/* char: 0x50 */
-
-static const SFG_StrokeVertex ch80st0[] =
-{
- {12.1f,100.0f},
- {12.1f,0.0f}
-};
-
-static const SFG_StrokeVertex ch80st1[] =
-{
- {12.1f,100.0f},
- {54.9571f,100.0f},
- {69.2429f,95.2381f},
- {74.0048f,90.4762f},
- {78.7667f,80.9524f},
- {78.7667f,66.6667f},
- {74.0048f,57.1429f},
- {69.2429f,52.381f},
- {54.9571f,47.619f},
- {12.1f,47.619f}
-};
-
-static const SFG_StrokeStrip ch80st[] =
-{
- {2,ch80st0},
- {10,ch80st1}
-};
-
-static const SFG_StrokeChar ch80 = {85.6667f,2,ch80st};
-
-/* char: 0x51 */
-
-static const SFG_StrokeVertex ch81st0[] =
-{
- {33.8714f,100.0f},
- {24.3476f,95.2381f},
- {14.8238f,85.7143f},
- {10.0619f,76.1905f},
- {5.3f,61.9048f},
- {5.3f,38.0952f},
- {10.0619f,23.8095f},
- {14.8238f,14.2857f},
- {24.3476f,4.7619f},
- {33.8714f,0.0f},
- {52.919f,0.0f},
- {62.4429f,4.7619f},
- {71.9667f,14.2857f},
- {76.7286f,23.8095f},
- {81.4905f,38.0952f},
- {81.4905f,61.9048f},
- {76.7286f,76.1905f},
- {71.9667f,85.7143f},
- {62.4429f,95.2381f},
- {52.919f,100.0f},
- {33.8714f,100.0f}
-};
-
-static const SFG_StrokeVertex ch81st1[] =
-{
- {48.1571f,19.0476f},
- {76.7286f,-9.5238f}
-};
-
-static const SFG_StrokeStrip ch81st[] =
-{
- {21,ch81st0},
- {2,ch81st1}
-};
-
-static const SFG_StrokeChar ch81 = {88.0905f,2,ch81st};
-
-/* char: 0x52 */
-
-static const SFG_StrokeVertex ch82st0[] =
-{
- {11.68f,100.0f},
- {11.68f,0.0f}
-};
-
-static const SFG_StrokeVertex ch82st1[] =
-{
- {11.68f,100.0f},
- {54.5371f,100.0f},
- {68.8229f,95.2381f},
- {73.5848f,90.4762f},
- {78.3467f,80.9524f},
- {78.3467f,71.4286f},
- {73.5848f,61.9048f},
- {68.8229f,57.1429f},
- {54.5371f,52.381f},
- {11.68f,52.381f}
-};
-
-static const SFG_StrokeVertex ch82st2[] =
-{
- {45.0133f,52.381f},
- {78.3467f,0.0f}
-};
-
-static const SFG_StrokeStrip ch82st[] =
-{
- {2,ch82st0},
- {10,ch82st1},
- {2,ch82st2}
-};
-
-static const SFG_StrokeChar ch82 = {82.3667f,3,ch82st};
-
-/* char: 0x53 */
-
-static const SFG_StrokeVertex ch83st0[] =
-{
- {74.6667f,85.7143f},
- {65.1429f,95.2381f},
- {50.8571f,100.0f},
- {31.8095f,100.0f},
- {17.5238f,95.2381f},
- {8.0f,85.7143f},
- {8.0f,76.1905f},
- {12.7619f,66.6667f},
- {17.5238f,61.9048f},
- {27.0476f,57.1429f},
- {55.619f,47.619f},
- {65.1429f,42.8571f},
- {69.9048f,38.0952f},
- {74.6667f,28.5714f},
- {74.6667f,14.2857f},
- {65.1429f,4.7619f},
- {50.8571f,0.0f},
- {31.8095f,0.0f},
- {17.5238f,4.7619f},
- {8.0f,14.2857f}
-};
-
-static const SFG_StrokeStrip ch83st[] =
-{
- {20,ch83st0}
-};
-
-static const SFG_StrokeChar ch83 = {80.8267f,1,ch83st};
-
-/* char: 0x54 */
-
-static const SFG_StrokeVertex ch84st0[] =
-{
- {35.6933f,100.0f},
- {35.6933f,0.0f}
-};
-
-static const SFG_StrokeVertex ch84st1[] =
-{
- {2.36f,100.0f},
- {69.0267f,100.0f}
-};
-
-static const SFG_StrokeStrip ch84st[] =
-{
- {2,ch84st0},
- {2,ch84st1}
-};
-
-static const SFG_StrokeChar ch84 = {71.9467f,2,ch84st};
-
-/* char: 0x55 */
-
-static const SFG_StrokeVertex ch85st0[] =
-{
- {11.54f,100.0f},
- {11.54f,28.5714f},
- {16.3019f,14.2857f},
- {25.8257f,4.7619f},
- {40.1114f,0.0f},
- {49.6352f,0.0f},
- {63.921f,4.7619f},
- {73.4448f,14.2857f},
- {78.2067f,28.5714f},
- {78.2067f,100.0f}
-};
-
-static const SFG_StrokeStrip ch85st[] =
-{
- {10,ch85st0}
-};
-
-static const SFG_StrokeChar ch85 = {89.4867f,1,ch85st};
-
-/* char: 0x56 */
-
-static const SFG_StrokeVertex ch86st0[] =
-{
- {2.36f,100.0f},
- {40.4552f,0.0f}
-};
-
-static const SFG_StrokeVertex ch86st1[] =
-{
- {78.5505f,100.0f},
- {40.4552f,0.0f}
-};
-
-static const SFG_StrokeStrip ch86st[] =
-{
- {2,ch86st0},
- {2,ch86st1}
-};
-
-static const SFG_StrokeChar ch86 = {81.6105f,2,ch86st};
-
-/* char: 0x57 */
-
-static const SFG_StrokeVertex ch87st0[] =
-{
- {2.22f,100.0f},
- {26.0295f,0.0f}
-};
-
-static const SFG_StrokeVertex ch87st1[] =
-{
- {49.839f,100.0f},
- {26.0295f,0.0f}
-};
-
-static const SFG_StrokeVertex ch87st2[] =
-{
- {49.839f,100.0f},
- {73.6486f,0.0f}
-};
-
-static const SFG_StrokeVertex ch87st3[] =
-{
- {97.4581f,100.0f},
- {73.6486f,0.0f}
-};
-
-static const SFG_StrokeStrip ch87st[] =
-{
- {2,ch87st0},
- {2,ch87st1},
- {2,ch87st2},
- {2,ch87st3}
-};
-
-static const SFG_StrokeChar ch87 = {100.518f,4,ch87st};
-
-/* char: 0x58 */
-
-static const SFG_StrokeVertex ch88st0[] =
-{
- {2.5f,100.0f},
- {69.1667f,0.0f}
-};
-
-static const SFG_StrokeVertex ch88st1[] =
-{
- {69.1667f,100.0f},
- {2.5f,0.0f}
-};
-
-static const SFG_StrokeStrip ch88st[] =
-{
- {2,ch88st0},
- {2,ch88st1}
-};
-
-static const SFG_StrokeChar ch88 = {72.3667f,2,ch88st};
-
-/* char: 0x59 */
-
-static const SFG_StrokeVertex ch89st0[] =
-{
- {1.52f,100.0f},
- {39.6152f,52.381f},
- {39.6152f,0.0f}
-};
-
-static const SFG_StrokeVertex ch89st1[] =
-{
- {77.7105f,100.0f},
- {39.6152f,52.381f}
-};
-
-static const SFG_StrokeStrip ch89st[] =
-{
- {3,ch89st0},
- {2,ch89st1}
-};
-
-static const SFG_StrokeChar ch89 = {79.6505f,2,ch89st};
-
-/* char: 0x5a */
-
-static const SFG_StrokeVertex ch90st0[] =
-{
- {69.1667f,100.0f},
- {2.5f,0.0f}
-};
-
-static const SFG_StrokeVertex ch90st1[] =
-{
- {2.5f,100.0f},
- {69.1667f,100.0f}
-};
-
-static const SFG_StrokeVertex ch90st2[] =
-{
- {2.5f,0.0f},
- {69.1667f,0.0f}
-};
-
-static const SFG_StrokeStrip ch90st[] =
-{
- {2,ch90st0},
- {2,ch90st1},
- {2,ch90st2}
-};
-
-static const SFG_StrokeChar ch90 = {73.7467f,3,ch90st};
-
-/* char: 0x5b */
-
-static const SFG_StrokeVertex ch91st0[] =
-{
- {7.78f,119.048f},
- {7.78f,-33.3333f}
-};
-
-static const SFG_StrokeVertex ch91st1[] =
-{
- {12.5419f,119.048f},
- {12.5419f,-33.3333f}
-};
-
-static const SFG_StrokeVertex ch91st2[] =
-{
- {7.78f,119.048f},
- {41.1133f,119.048f}
-};
-
-static const SFG_StrokeVertex ch91st3[] =
-{
- {7.78f,-33.3333f},
- {41.1133f,-33.3333f}
-};
-
-static const SFG_StrokeStrip ch91st[] =
-{
- {2,ch91st0},
- {2,ch91st1},
- {2,ch91st2},
- {2,ch91st3}
-};
-
-static const SFG_StrokeChar ch91 = {46.1133f,4,ch91st};
-
-/* char: 0x5c */
-
-static const SFG_StrokeVertex ch92st0[] =
-{
- {5.84f,100.0f},
- {72.5067f,-14.2857f}
-};
-
-static const SFG_StrokeStrip ch92st[] =
-{
- {2,ch92st0}
-};
-
-static const SFG_StrokeChar ch92 = {78.2067f,1,ch92st};
-
-/* char: 0x5d */
-
-static const SFG_StrokeVertex ch93st0[] =
-{
- {33.0114f,119.048f},
- {33.0114f,-33.3333f}
-};
-
-static const SFG_StrokeVertex ch93st1[] =
-{
- {37.7733f,119.048f},
- {37.7733f,-33.3333f}
-};
-
-static const SFG_StrokeVertex ch93st2[] =
-{
- {4.44f,119.048f},
- {37.7733f,119.048f}
-};
-
-static const SFG_StrokeVertex ch93st3[] =
-{
- {4.44f,-33.3333f},
- {37.7733f,-33.3333f}
-};
-
-static const SFG_StrokeStrip ch93st[] =
-{
- {2,ch93st0},
- {2,ch93st1},
- {2,ch93st2},
- {2,ch93st3}
-};
-
-static const SFG_StrokeChar ch93 = {46.3933f,4,ch93st};
-
-/* char: 0x5e */
-
-static const SFG_StrokeVertex ch94st0[] =
-{
- {44.0752f,109.524f},
- {5.98f,42.8571f}
-};
-
-static const SFG_StrokeVertex ch94st1[] =
-{
- {44.0752f,109.524f},
- {82.1705f,42.8571f}
-};
-
-static const SFG_StrokeStrip ch94st[] =
-{
- {2,ch94st0},
- {2,ch94st1}
-};
-
-static const SFG_StrokeChar ch94 = {90.2305f,2,ch94st};
-
-/* char: 0x5f */
-
-static const SFG_StrokeVertex ch95st0[] =
-{
- {-1.1f,-33.3333f},
- {103.662f,-33.3333f},
- {103.662f,-28.5714f},
- {-1.1f,-28.5714f},
- {-1.1f,-33.3333f}
-};
-
-static const SFG_StrokeStrip ch95st[] =
-{
- {5,ch95st0}
-};
-
-static const SFG_StrokeChar ch95 = {104.062f,1,ch95st};
-
-/* char: 0x60 */
-
-static const SFG_StrokeVertex ch96st0[] =
-{
- {33.0219f,100.0f},
- {56.8314f,71.4286f}
-};
-
-static const SFG_StrokeVertex ch96st1[] =
-{
- {33.0219f,100.0f},
- {28.26f,95.2381f},
- {56.8314f,71.4286f}
-};
-
-static const SFG_StrokeStrip ch96st[] =
-{
- {2,ch96st0},
- {3,ch96st1}
-};
-
-static const SFG_StrokeChar ch96 = {83.5714f,2,ch96st};
-
-/* char: 0x61 */
-
-static const SFG_StrokeVertex ch97st0[] =
-{
- {63.8229f,66.6667f},
- {63.8229f,0.0f}
-};
-
-static const SFG_StrokeVertex ch97st1[] =
-{
- {63.8229f,52.381f},
- {54.299f,61.9048f},
- {44.7752f,66.6667f},
- {30.4895f,66.6667f},
- {20.9657f,61.9048f},
- {11.4419f,52.381f},
- {6.68f,38.0952f},
- {6.68f,28.5714f},
- {11.4419f,14.2857f},
- {20.9657f,4.7619f},
- {30.4895f,0.0f},
- {44.7752f,0.0f},
- {54.299f,4.7619f},
- {63.8229f,14.2857f}
-};
-
-static const SFG_StrokeStrip ch97st[] =
-{
- {2,ch97st0},
- {14,ch97st1}
-};
-
-static const SFG_StrokeChar ch97 = {66.6029f,2,ch97st};
-
-/* char: 0x62 */
-
-static const SFG_StrokeVertex ch98st0[] =
-{
- {8.76f,100.0f},
- {8.76f,0.0f}
-};
-
-static const SFG_StrokeVertex ch98st1[] =
-{
- {8.76f,52.381f},
- {18.2838f,61.9048f},
- {27.8076f,66.6667f},
- {42.0933f,66.6667f},
- {51.6171f,61.9048f},
- {61.141f,52.381f},
- {65.9029f,38.0952f},
- {65.9029f,28.5714f},
- {61.141f,14.2857f},
- {51.6171f,4.7619f},
- {42.0933f,0.0f},
- {27.8076f,0.0f},
- {18.2838f,4.7619f},
- {8.76f,14.2857f}
-};
-
-static const SFG_StrokeStrip ch98st[] =
-{
- {2,ch98st0},
- {14,ch98st1}
-};
-
-static const SFG_StrokeChar ch98 = {70.4629f,2,ch98st};
-
-/* char: 0x63 */
-
-static const SFG_StrokeVertex ch99st0[] =
-{
- {62.6629f,52.381f},
- {53.139f,61.9048f},
- {43.6152f,66.6667f},
- {29.3295f,66.6667f},
- {19.8057f,61.9048f},
- {10.2819f,52.381f},
- {5.52f,38.0952f},
- {5.52f,28.5714f},
- {10.2819f,14.2857f},
- {19.8057f,4.7619f},
- {29.3295f,0.0f},
- {43.6152f,0.0f},
- {53.139f,4.7619f},
- {62.6629f,14.2857f}
-};
-
-static const SFG_StrokeStrip ch99st[] =
-{
- {14,ch99st0}
-};
-
-static const SFG_StrokeChar ch99 = {68.9229f,1,ch99st};
-
-/* char: 0x64 */
-
-static const SFG_StrokeVertex ch100st0[] =
-{
- {61.7829f,100.0f},
- {61.7829f,0.0f}
-};
-
-static const SFG_StrokeVertex ch100st1[] =
-{
- {61.7829f,52.381f},
- {52.259f,61.9048f},
- {42.7352f,66.6667f},
- {28.4495f,66.6667f},
- {18.9257f,61.9048f},
- {9.4019f,52.381f},
- {4.64f,38.0952f},
- {4.64f,28.5714f},
- {9.4019f,14.2857f},
- {18.9257f,4.7619f},
- {28.4495f,0.0f},
- {42.7352f,0.0f},
- {52.259f,4.7619f},
- {61.7829f,14.2857f}
-};
-
-static const SFG_StrokeStrip ch100st[] =
-{
- {2,ch100st0},
- {14,ch100st1}
-};
-
-static const SFG_StrokeChar ch100 = {70.2629f,2,ch100st};
-
-/* char: 0x65 */
-
-static const SFG_StrokeVertex ch101st0[] =
-{
- {5.72f,38.0952f},
- {62.8629f,38.0952f},
- {62.8629f,47.619f},
- {58.101f,57.1429f},
- {53.339f,61.9048f},
- {43.8152f,66.6667f},
- {29.5295f,66.6667f},
- {20.0057f,61.9048f},
- {10.4819f,52.381f},
- {5.72f,38.0952f},
- {5.72f,28.5714f},
- {10.4819f,14.2857f},
- {20.0057f,4.7619f},
- {29.5295f,0.0f},
- {43.8152f,0.0f},
- {53.339f,4.7619f},
- {62.8629f,14.2857f}
-};
-
-static const SFG_StrokeStrip ch101st[] =
-{
- {17,ch101st0}
-};
-
-static const SFG_StrokeChar ch101 = {68.5229f,1,ch101st};
-
-/* char: 0x66 */
-
-static const SFG_StrokeVertex ch102st0[] =
-{
- {38.7752f,100.0f},
- {29.2514f,100.0f},
- {19.7276f,95.2381f},
- {14.9657f,80.9524f},
- {14.9657f,0.0f}
-};
-
-static const SFG_StrokeVertex ch102st1[] =
-{
- {0.68f,66.6667f},
- {34.0133f,66.6667f}
-};
-
-static const SFG_StrokeStrip ch102st[] =
-{
- {5,ch102st0},
- {2,ch102st1}
-};
-
-static const SFG_StrokeChar ch102 = {38.6552f,2,ch102st};
-
-/* char: 0x67 */
-
-static const SFG_StrokeVertex ch103st0[] =
-{
- {62.5029f,66.6667f},
- {62.5029f,-9.5238f},
- {57.741f,-23.8095f},
- {52.979f,-28.5714f},
- {43.4552f,-33.3333f},
- {29.1695f,-33.3333f},
- {19.6457f,-28.5714f}
-};
-
-static const SFG_StrokeVertex ch103st1[] =
-{
- {62.5029f,52.381f},
- {52.979f,61.9048f},
- {43.4552f,66.6667f},
- {29.1695f,66.6667f},
- {19.6457f,61.9048f},
- {10.1219f,52.381f},
- {5.36f,38.0952f},
- {5.36f,28.5714f},
- {10.1219f,14.2857f},
- {19.6457f,4.7619f},
- {29.1695f,0.0f},
- {43.4552f,0.0f},
- {52.979f,4.7619f},
- {62.5029f,14.2857f}
-};
-
-static const SFG_StrokeStrip ch103st[] =
-{
- {7,ch103st0},
- {14,ch103st1}
-};
-
-static const SFG_StrokeChar ch103 = {70.9829f,2,ch103st};
-
-/* char: 0x68 */
-
-static const SFG_StrokeVertex ch104st0[] =
-{
- {9.6f,100.0f},
- {9.6f,0.0f}
-};
-
-static const SFG_StrokeVertex ch104st1[] =
-{
- {9.6f,47.619f},
- {23.8857f,61.9048f},
- {33.4095f,66.6667f},
- {47.6952f,66.6667f},
- {57.219f,61.9048f},
- {61.981f,47.619f},
- {61.981f,0.0f}
-};
-
-static const SFG_StrokeStrip ch104st[] =
-{
- {2,ch104st0},
- {7,ch104st1}
-};
-
-static const SFG_StrokeChar ch104 = {71.021f,2,ch104st};
-
-/* char: 0x69 */
-
-static const SFG_StrokeVertex ch105st0[] =
-{
- {10.02f,100.0f},
- {14.7819f,95.2381f},
- {19.5438f,100.0f},
- {14.7819f,104.762f},
- {10.02f,100.0f}
-};
-
-static const SFG_StrokeVertex ch105st1[] =
-{
- {14.7819f,66.6667f},
- {14.7819f,0.0f}
-};
-
-static const SFG_StrokeStrip ch105st[] =
-{
- {5,ch105st0},
- {2,ch105st1}
-};
-
-static const SFG_StrokeChar ch105 = {28.8638f,2,ch105st};
-
-/* char: 0x6a */
-
-static const SFG_StrokeVertex ch106st0[] =
-{
- {17.3876f,100.0f},
- {22.1495f,95.2381f},
- {26.9114f,100.0f},
- {22.1495f,104.762f},
- {17.3876f,100.0f}
-};
-
-static const SFG_StrokeVertex ch106st1[] =
-{
- {22.1495f,66.6667f},
- {22.1495f,-14.2857f},
- {17.3876f,-28.5714f},
- {7.8638f,-33.3333f},
- {-1.66f,-33.3333f}
-};
-
-static const SFG_StrokeStrip ch106st[] =
-{
- {5,ch106st0},
- {5,ch106st1}
-};
-
-static const SFG_StrokeChar ch106 = {36.2314f,2,ch106st};
-
-/* char: 0x6b */
-
-static const SFG_StrokeVertex ch107st0[] =
-{
- {9.6f,100.0f},
- {9.6f,0.0f}
-};
-
-static const SFG_StrokeVertex ch107st1[] =
-{
- {57.219f,66.6667f},
- {9.6f,19.0476f}
-};
-
-static const SFG_StrokeVertex ch107st2[] =
-{
- {28.6476f,38.0952f},
- {61.981f,0.0f}
-};
-
-static const SFG_StrokeStrip ch107st[] =
-{
- {2,ch107st0},
- {2,ch107st1},
- {2,ch107st2}
-};
-
-static const SFG_StrokeChar ch107 = {62.521f,3,ch107st};
-
-/* char: 0x6c */
-
-static const SFG_StrokeVertex ch108st0[] =
-{
- {10.02f,100.0f},
- {10.02f,0.0f}
-};
-
-static const SFG_StrokeStrip ch108st[] =
-{
- {2,ch108st0}
-};
-
-static const SFG_StrokeChar ch108 = {19.34f,1,ch108st};
-
-/* char: 0x6d */
-
-static const SFG_StrokeVertex ch109st0[] =
-{
- {9.6f,66.6667f},
- {9.6f,0.0f}
-};
-
-static const SFG_StrokeVertex ch109st1[] =
-{
- {9.6f,47.619f},
- {23.8857f,61.9048f},
- {33.4095f,66.6667f},
- {47.6952f,66.6667f},
- {57.219f,61.9048f},
- {61.981f,47.619f},
- {61.981f,0.0f}
-};
-
-static const SFG_StrokeVertex ch109st2[] =
-{
- {61.981f,47.619f},
- {76.2667f,61.9048f},
- {85.7905f,66.6667f},
- {100.076f,66.6667f},
- {109.6f,61.9048f},
- {114.362f,47.619f},
- {114.362f,0.0f}
-};
-
-static const SFG_StrokeStrip ch109st[] =
-{
- {2,ch109st0},
- {7,ch109st1},
- {7,ch109st2}
-};
-
-static const SFG_StrokeChar ch109 = {123.962f,3,ch109st};
-
-/* char: 0x6e */
-
-static const SFG_StrokeVertex ch110st0[] =
-{
- {9.18f,66.6667f},
- {9.18f,0.0f}
-};
-
-static const SFG_StrokeVertex ch110st1[] =
-{
- {9.18f,47.619f},
- {23.4657f,61.9048f},
- {32.9895f,66.6667f},
- {47.2752f,66.6667f},
- {56.799f,61.9048f},
- {61.561f,47.619f},
- {61.561f,0.0f}
-};
-
-static const SFG_StrokeStrip ch110st[] =
-{
- {2,ch110st0},
- {7,ch110st1}
-};
-
-static const SFG_StrokeChar ch110 = {70.881f,2,ch110st};
-
-/* char: 0x6f */
-
-static const SFG_StrokeVertex ch111st0[] =
-{
- {28.7895f,66.6667f},
- {19.2657f,61.9048f},
- {9.7419f,52.381f},
- {4.98f,38.0952f},
- {4.98f,28.5714f},
- {9.7419f,14.2857f},
- {19.2657f,4.7619f},
- {28.7895f,0.0f},
- {43.0752f,0.0f},
- {52.599f,4.7619f},
- {62.1229f,14.2857f},
- {66.8848f,28.5714f},
- {66.8848f,38.0952f},
- {62.1229f,52.381f},
- {52.599f,61.9048f},
- {43.0752f,66.6667f},
- {28.7895f,66.6667f}
-};
-
-static const SFG_StrokeStrip ch111st[] =
-{
- {17,ch111st0}
-};
-
-static const SFG_StrokeChar ch111 = {71.7448f,1,ch111st};
-
-/* char: 0x70 */
-
-static const SFG_StrokeVertex ch112st0[] =
-{
- {9.46f,66.6667f},
- {9.46f,-33.3333f}
-};
-
-static const SFG_StrokeVertex ch112st1[] =
-{
- {9.46f,52.381f},
- {18.9838f,61.9048f},
- {28.5076f,66.6667f},
- {42.7933f,66.6667f},
- {52.3171f,61.9048f},
- {61.841f,52.381f},
- {66.6029f,38.0952f},
- {66.6029f,28.5714f},
- {61.841f,14.2857f},
- {52.3171f,4.7619f},
- {42.7933f,0.0f},
- {28.5076f,0.0f},
- {18.9838f,4.7619f},
- {9.46f,14.2857f}
-};
-
-static const SFG_StrokeStrip ch112st[] =
-{
- {2,ch112st0},
- {14,ch112st1}
-};
-
-static const SFG_StrokeChar ch112 = {70.8029f,2,ch112st};
-
-/* char: 0x71 */
-
-static const SFG_StrokeVertex ch113st0[] =
-{
- {61.9829f,66.6667f},
- {61.9829f,-33.3333f}
-};
-
-static const SFG_StrokeVertex ch113st1[] =
-{
- {61.9829f,52.381f},
- {52.459f,61.9048f},
- {42.9352f,66.6667f},
- {28.6495f,66.6667f},
- {19.1257f,61.9048f},
- {9.6019f,52.381f},
- {4.84f,38.0952f},
- {4.84f,28.5714f},
- {9.6019f,14.2857f},
- {19.1257f,4.7619f},
- {28.6495f,0.0f},
- {42.9352f,0.0f},
- {52.459f,4.7619f},
- {61.9829f,14.2857f}
-};
-
-static const SFG_StrokeStrip ch113st[] =
-{
- {2,ch113st0},
- {14,ch113st1}
-};
-
-static const SFG_StrokeChar ch113 = {70.7429f,2,ch113st};
-
-/* char: 0x72 */
-
-static const SFG_StrokeVertex ch114st0[] =
-{
- {9.46f,66.6667f},
- {9.46f,0.0f}
-};
-
-static const SFG_StrokeVertex ch114st1[] =
-{
- {9.46f,38.0952f},
- {14.2219f,52.381f},
- {23.7457f,61.9048f},
- {33.2695f,66.6667f},
- {47.5552f,66.6667f}
-};
-
-static const SFG_StrokeStrip ch114st[] =
-{
- {2,ch114st0},
- {5,ch114st1}
-};
-
-static const SFG_StrokeChar ch114 = {49.4952f,2,ch114st};
-
-/* char: 0x73 */
-
-static const SFG_StrokeVertex ch115st0[] =
-{
- {57.081f,52.381f},
- {52.319f,61.9048f},
- {38.0333f,66.6667f},
- {23.7476f,66.6667f},
- {9.4619f,61.9048f},
- {4.7f,52.381f},
- {9.4619f,42.8571f},
- {18.9857f,38.0952f},
- {42.7952f,33.3333f},
- {52.319f,28.5714f},
- {57.081f,19.0476f},
- {57.081f,14.2857f},
- {52.319f,4.7619f},
- {38.0333f,0.0f},
- {23.7476f,0.0f},
- {9.4619f,4.7619f},
- {4.7f,14.2857f}
-};
-
-static const SFG_StrokeStrip ch115st[] =
-{
- {17,ch115st0}
-};
-
-static const SFG_StrokeChar ch115 = {62.321f,1,ch115st};
-
-/* char: 0x74 */
-
-static const SFG_StrokeVertex ch116st0[] =
-{
- {14.8257f,100.0f},
- {14.8257f,19.0476f},
- {19.5876f,4.7619f},
- {29.1114f,0.0f},
- {38.6352f,0.0f}
-};
-
-static const SFG_StrokeVertex ch116st1[] =
-{
- {0.54f,66.6667f},
- {33.8733f,66.6667f}
-};
-
-static const SFG_StrokeStrip ch116st[] =
-{
- {5,ch116st0},
- {2,ch116st1}
-};
-
-static const SFG_StrokeChar ch116 = {39.3152f,2,ch116st};
-
-/* char: 0x75 */
-
-static const SFG_StrokeVertex ch117st0[] =
-{
- {9.46f,66.6667f},
- {9.46f,19.0476f},
- {14.2219f,4.7619f},
- {23.7457f,0.0f},
- {38.0314f,0.0f},
- {47.5552f,4.7619f},
- {61.841f,19.0476f}
-};
-
-static const SFG_StrokeVertex ch117st1[] =
-{
- {61.841f,66.6667f},
- {61.841f,0.0f}
-};
-
-static const SFG_StrokeStrip ch117st[] =
-{
- {7,ch117st0},
- {2,ch117st1}
-};
-
-static const SFG_StrokeChar ch117 = {71.161f,2,ch117st};
-
-/* char: 0x76 */
-
-static const SFG_StrokeVertex ch118st0[] =
-{
- {1.8f,66.6667f},
- {30.3714f,0.0f}
-};
-
-static const SFG_StrokeVertex ch118st1[] =
-{
- {58.9429f,66.6667f},
- {30.3714f,0.0f}
-};
-
-static const SFG_StrokeStrip ch118st[] =
-{
- {2,ch118st0},
- {2,ch118st1}
-};
-
-static const SFG_StrokeChar ch118 = {60.6029f,2,ch118st};
-
-/* char: 0x77 */
-
-static const SFG_StrokeVertex ch119st0[] =
-{
- {2.5f,66.6667f},
- {21.5476f,0.0f}
-};
-
-static const SFG_StrokeVertex ch119st1[] =
-{
- {40.5952f,66.6667f},
- {21.5476f,0.0f}
-};
-
-static const SFG_StrokeVertex ch119st2[] =
-{
- {40.5952f,66.6667f},
- {59.6429f,0.0f}
-};
-
-static const SFG_StrokeVertex ch119st3[] =
-{
- {78.6905f,66.6667f},
- {59.6429f,0.0f}
-};
-
-static const SFG_StrokeStrip ch119st[] =
-{
- {2,ch119st0},
- {2,ch119st1},
- {2,ch119st2},
- {2,ch119st3}
-};
-
-static const SFG_StrokeChar ch119 = {80.4905f,4,ch119st};
-
-/* char: 0x78 */
-
-static const SFG_StrokeVertex ch120st0[] =
-{
- {1.66f,66.6667f},
- {54.041f,0.0f}
-};
-
-static const SFG_StrokeVertex ch120st1[] =
-{
- {54.041f,66.6667f},
- {1.66f,0.0f}
-};
-
-static const SFG_StrokeStrip ch120st[] =
-{
- {2,ch120st0},
- {2,ch120st1}
-};
-
-static const SFG_StrokeChar ch120 = {56.401f,2,ch120st};
-
-/* char: 0x79 */
-
-static const SFG_StrokeVertex ch121st0[] =
-{
- {6.5619f,66.6667f},
- {35.1333f,0.0f}
-};
-
-static const SFG_StrokeVertex ch121st1[] =
-{
- {63.7048f,66.6667f},
- {35.1333f,0.0f},
- {25.6095f,-19.0476f},
- {16.0857f,-28.5714f},
- {6.5619f,-33.3333f},
- {1.8f,-33.3333f}
-};
-
-static const SFG_StrokeStrip ch121st[] =
-{
- {2,ch121st0},
- {6,ch121st1}
-};
-
-static const SFG_StrokeChar ch121 = {66.0648f,2,ch121st};
-
-/* char: 0x7a */
-
-static const SFG_StrokeVertex ch122st0[] =
-{
- {56.821f,66.6667f},
- {4.44f,0.0f}
-};
-
-static const SFG_StrokeVertex ch122st1[] =
-{
- {4.44f,66.6667f},
- {56.821f,66.6667f}
-};
-
-static const SFG_StrokeVertex ch122st2[] =
-{
- {4.44f,0.0f},
- {56.821f,0.0f}
-};
-
-static const SFG_StrokeStrip ch122st[] =
-{
- {2,ch122st0},
- {2,ch122st1},
- {2,ch122st2}
-};
-
-static const SFG_StrokeChar ch122 = {61.821f,3,ch122st};
-
-/* char: 0x7b */
-
-static const SFG_StrokeVertex ch123st0[] =
-{
- {31.1895f,119.048f},
- {21.6657f,114.286f},
- {16.9038f,109.524f},
- {12.1419f,100.0f},
- {12.1419f,90.4762f},
- {16.9038f,80.9524f},
- {21.6657f,76.1905f},
- {26.4276f,66.6667f},
- {26.4276f,57.1429f},
- {16.9038f,47.619f}
-};
-
-static const SFG_StrokeVertex ch123st1[] =
-{
- {21.6657f,114.286f},
- {16.9038f,104.762f},
- {16.9038f,95.2381f},
- {21.6657f,85.7143f},
- {26.4276f,80.9524f},
- {31.1895f,71.4286f},
- {31.1895f,61.9048f},
- {26.4276f,52.381f},
- {7.38f,42.8571f},
- {26.4276f,33.3333f},
- {31.1895f,23.8095f},
- {31.1895f,14.2857f},
- {26.4276f,4.7619f},
- {21.6657f,0.0f},
- {16.9038f,-9.5238f},
- {16.9038f,-19.0476f},
- {21.6657f,-28.5714f}
-};
-
-static const SFG_StrokeVertex ch123st2[] =
-{
- {16.9038f,38.0952f},
- {26.4276f,28.5714f},
- {26.4276f,19.0476f},
- {21.6657f,9.5238f},
- {16.9038f,4.7619f},
- {12.1419f,-4.7619f},
- {12.1419f,-14.2857f},
- {16.9038f,-23.8095f},
- {21.6657f,-28.5714f},
- {31.1895f,-33.3333f}
-};
-
-static const SFG_StrokeStrip ch123st[] =
-{
- {10,ch123st0},
- {17,ch123st1},
- {10,ch123st2}
-};
-
-static const SFG_StrokeChar ch123 = {41.6295f,3,ch123st};
-
-/* char: 0x7c */
-
-static const SFG_StrokeVertex ch124st0[] =
-{
- {11.54f,119.048f},
- {11.54f,-33.3333f}
-};
-
-static const SFG_StrokeStrip ch124st[] =
-{
- {2,ch124st0}
-};
-
-static const SFG_StrokeChar ch124 = {23.78f,1,ch124st};
-
-/* char: 0x7d */
-
-static const SFG_StrokeVertex ch125st0[] =
-{
- {9.18f,119.048f},
- {18.7038f,114.286f},
- {23.4657f,109.524f},
- {28.2276f,100.0f},
- {28.2276f,90.4762f},
- {23.4657f,80.9524f},
- {18.7038f,76.1905f},
- {13.9419f,66.6667f},
- {13.9419f,57.1429f},
- {23.4657f,47.619f}
-};
-
-static const SFG_StrokeVertex ch125st1[] =
-{
- {18.7038f,114.286f},
- {23.4657f,104.762f},
- {23.4657f,95.2381f},
- {18.7038f,85.7143f},
- {13.9419f,80.9524f},
- {9.18f,71.4286f},
- {9.18f,61.9048f},
- {13.9419f,52.381f},
- {32.9895f,42.8571f},
- {13.9419f,33.3333f},
- {9.18f,23.8095f},
- {9.18f,14.2857f},
- {13.9419f,4.7619f},
- {18.7038f,0.0f},
- {23.4657f,-9.5238f},
- {23.4657f,-19.0476f},
- {18.7038f,-28.5714f}
-};
-
-static const SFG_StrokeVertex ch125st2[] =
-{
- {23.4657f,38.0952f},
- {13.9419f,28.5714f},
- {13.9419f,19.0476f},
- {18.7038f,9.5238f},
- {23.4657f,4.7619f},
- {28.2276f,-4.7619f},
- {28.2276f,-14.2857f},
- {23.4657f,-23.8095f},
- {18.7038f,-28.5714f},
- {9.18f,-33.3333f}
-};
-
-static const SFG_StrokeStrip ch125st[] =
-{
- {10,ch125st0},
- {17,ch125st1},
- {10,ch125st2}
-};
-
-static const SFG_StrokeChar ch125 = {41.4695f,3,ch125st};
-
-/* char: 0x7e */
-
-static const SFG_StrokeVertex ch126st0[] =
-{
- {2.92f,28.5714f},
- {2.92f,38.0952f},
- {7.6819f,52.381f},
- {17.2057f,57.1429f},
- {26.7295f,57.1429f},
- {36.2533f,52.381f},
- {55.301f,38.0952f},
- {64.8248f,33.3333f},
- {74.3486f,33.3333f},
- {83.8724f,38.0952f},
- {88.6343f,47.619f}
-};
-
-static const SFG_StrokeVertex ch126st1[] =
-{
- {2.92f,38.0952f},
- {7.6819f,47.619f},
- {17.2057f,52.381f},
- {26.7295f,52.381f},
- {36.2533f,47.619f},
- {55.301f,33.3333f},
- {64.8248f,28.5714f},
- {74.3486f,28.5714f},
- {83.8724f,33.3333f},
- {88.6343f,47.619f},
- {88.6343f,57.1429f}
-};
-
-static const SFG_StrokeStrip ch126st[] =
-{
- {11,ch126st0},
- {11,ch126st1}
-};
-
-static const SFG_StrokeChar ch126 = {91.2743f,2,ch126st};
-
-/* char: 0x7f */
-
-static const SFG_StrokeVertex ch127st0[] =
-{
- {52.381f,100.0f},
- {14.2857f,-33.3333f}
-};
-
-static const SFG_StrokeVertex ch127st1[] =
-{
- {28.5714f,66.6667f},
- {14.2857f,61.9048f},
- {4.7619f,52.381f},
- {0.0f,38.0952f},
- {0.0f,23.8095f},
- {4.7619f,14.2857f},
- {14.2857f,4.7619f},
- {28.5714f,0.0f},
- {38.0952f,0.0f},
- {52.381f,4.7619f},
- {61.9048f,14.2857f},
- {66.6667f,28.5714f},
- {66.6667f,42.8571f},
- {61.9048f,52.381f},
- {52.381f,61.9048f},
- {38.0952f,66.6667f},
- {28.5714f,66.6667f}
-};
-
-static const SFG_StrokeStrip ch127st[] =
-{
- {2,ch127st0},
- {17,ch127st1}
-};
-
-static const SFG_StrokeChar ch127 = {66.6667f,2,ch127st};
-
-static const SFG_StrokeChar *chars[] =
-{
- 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,
- &ch32, &ch33, &ch34, &ch35, &ch36, &ch37, &ch38, &ch39,
- &ch40, &ch41, &ch42, &ch43, &ch44, &ch45, &ch46, &ch47,
- &ch48, &ch49, &ch50, &ch51, &ch52, &ch53, &ch54, &ch55,
- &ch56, &ch57, &ch58, &ch59, &ch60, &ch61, &ch62, &ch63,
- &ch64, &ch65, &ch66, &ch67, &ch68, &ch69, &ch70, &ch71,
- &ch72, &ch73, &ch74, &ch75, &ch76, &ch77, &ch78, &ch79,
- &ch80, &ch81, &ch82, &ch83, &ch84, &ch85, &ch86, &ch87,
- &ch88, &ch89, &ch90, &ch91, &ch92, &ch93, &ch94, &ch95,
- &ch96, &ch97, &ch98, &ch99, &ch100, &ch101, &ch102, &ch103,
- &ch104, &ch105, &ch106, &ch107, &ch108, &ch109, &ch110, &ch111,
- &ch112, &ch113, &ch114, &ch115, &ch116, &ch117, &ch118, &ch119,
- &ch120, &ch121, &ch122, &ch123, &ch124, &ch125, &ch126, &ch127
-};
-
-const SFG_StrokeFont fgStrokeRoman = {"Roman",128,152.381f,chars};
diff --git a/src/Common/freeglut_structure.c b/src/Common/freeglut_structure.c
deleted file mode 100644 (file)
index 6a18b58..0000000
+++ /dev/null
@@ -1,596 +0,0 @@
-/*
- * freeglut_structure.c
- *
- * Windows and menus need tree structure
- *
- * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
- * Written by Pawel W. Olszta, <olszta@sourceforge.net>
- * Creation date: Sat Dec 18 1999
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#include <GL/freeglut.h>
-#include "freeglut_internal.h"
-
-/* -- GLOBAL EXPORTS ------------------------------------------------------- */
-
-/*
- * The SFG_Structure container holds information about windows and menus
- * created between glutInit() and glutMainLoop() return.
- */
-
-SFG_Structure fgStructure = { { NULL, NULL },  /* The list of windows       */
-                              { NULL, NULL },  /* The list of menus         */
-                              { NULL, NULL },  /* Windows to Destroy list   */
-                              NULL,            /* The current window        */
-                              NULL,            /* The current menu          */
-                              NULL,            /* The menu OpenGL context   */
-                              NULL,            /* The game mode window      */
-                              0,               /* The current new window ID */
-                              0 };             /* The current new menu ID   */
-
-
-/* -- PRIVATE FUNCTIONS ---------------------------------------------------- */
-
-extern void fgPlatformCreateWindow ( SFG_Window *window );
-
-static void fghClearCallBacks( SFG_Window *window )
-{
-    if( window )
-    {
-        int i;
-        for( i = 0; i < TOTAL_CALLBACKS; ++i )
-            window->CallBacks[ i ] = NULL;
-    }
-}
-
-/*
- * This private function creates, opens and adds to the hierarchy
- * a freeglut window complete with OpenGL context and stuff...
- *
- * If parent is set to NULL, the window created will be a topmost one.
- */
-SFG_Window* fgCreateWindow( SFG_Window* parent, const char* title,
-                            GLboolean positionUse, int x, int y,
-                            GLboolean sizeUse, int w, int h,
-                            GLboolean gameMode, GLboolean isMenu )
-{
-    /* Have the window object created */
-    SFG_Window *window = (SFG_Window *)calloc( sizeof(SFG_Window), 1 );
-
-       fgPlatformCreateWindow ( window );
-
-    fghClearCallBacks( window );
-
-    /* Initialize the object properties */
-    window->ID = ++fgStructure.WindowID;
-
-    fgListInit( &window->Children );
-    if( parent )
-    {
-        fgListAppend( &parent->Children, &window->Node );
-        window->Parent = parent;
-    }
-    else
-        fgListAppend( &fgStructure.Windows, &window->Node );
-
-    /* Set the default mouse cursor and reset the modifiers value */
-    window->State.Cursor    = GLUT_CURSOR_INHERIT;
-
-    window->IsMenu = isMenu;
-
-    window->State.IgnoreKeyRepeat = GL_FALSE;
-    window->State.KeyRepeating    = GL_FALSE;
-    window->State.IsFullscreen    = GL_FALSE;
-
-    /*
-     * Open the window now. The fgOpenWindow() function is system
-     * dependant, and resides in freeglut_window.c. Uses fgState.
-     */
-    fgOpenWindow( window, title, positionUse, x, y, sizeUse, w, h, gameMode,
-                  (GLboolean)(parent ? GL_TRUE : GL_FALSE) );
-
-    return window;
-}
-
-/*
- * This private function creates a menu and adds it to the menus list
- */
-SFG_Menu* fgCreateMenu( FGCBMenu menuCallback )
-{
-    int x = 100, y = 100, w = 1, h = 1;
-    SFG_Window *current_window = fgStructure.CurrentWindow;
-
-    /* Have the menu object created */
-    SFG_Menu* menu = (SFG_Menu *)calloc( sizeof(SFG_Menu), 1 );
-
-    menu->ParentWindow = NULL;
-
-    /* Create a window for the menu to reside in. */
-
-    fgCreateWindow( NULL, "freeglut menu", GL_TRUE, x, y, GL_TRUE, w, h,
-                    GL_FALSE, GL_TRUE );
-    menu->Window = fgStructure.CurrentWindow;
-    glutDisplayFunc( fgDisplayMenu );
-
-    glutHideWindow( );  /* Hide the window for now */
-    fgSetWindow( current_window );
-
-    /* Initialize the object properties: */
-    menu->ID       = ++fgStructure.MenuID;
-    menu->Callback = menuCallback;
-    menu->ActiveEntry = NULL;
-
-    fgListInit( &menu->Entries );
-    fgListAppend( &fgStructure.Menus, &menu->Node );
-
-    /* Newly created menus implicitly become current ones */
-    fgStructure.CurrentMenu = menu;
-
-    return menu;
-}
-
-/*
- * Function to add a window to the linked list of windows to destroy.
- * Subwindows are automatically added because they hang from the window
- * structure.
- */
-void fgAddToWindowDestroyList( SFG_Window* window )
-{
-    SFG_WindowList *new_list_entry =
-        ( SFG_WindowList* )malloc( sizeof(SFG_WindowList ) );
-    new_list_entry->window = window;
-    fgListAppend( &fgStructure.WindowsToDestroy, &new_list_entry->node );
-
-    /* Check if the window is the current one... */
-    if( fgStructure.CurrentWindow == window )
-        fgStructure.CurrentWindow = NULL;
-
-    /*
-     * Clear all window callbacks except Destroy, which will
-     * be invoked later.  Right now, we are potentially carrying
-     * out a freeglut operation at the behest of a client callback,
-     * so we are reluctant to re-enter the client with the Destroy
-     * callback, right now.  The others are all wiped out, however,
-     * to ensure that they are no longer called after this point.
-     */
-    {
-        FGCBDestroy destroy = (FGCBDestroy)FETCH_WCB( *window, Destroy );
-        fghClearCallBacks( window );
-        SET_WCB( *window, Destroy, destroy );
-    }
-}
-
-/*
- * Function to close down all the windows in the "WindowsToDestroy" list
- */
-void fgCloseWindows( )
-{
-    while( fgStructure.WindowsToDestroy.First )
-    {
-        SFG_WindowList *window_ptr = fgStructure.WindowsToDestroy.First;
-        fgDestroyWindow( window_ptr->window );
-        fgListRemove( &fgStructure.WindowsToDestroy, &window_ptr->node );
-        free( window_ptr );
-    }
-}
-
-/*
- * This function destroys a window and all of its subwindows. Actually,
- * another function, defined in freeglut_window.c is called, but this is
- * a whole different story...
- */
-void fgDestroyWindow( SFG_Window* window )
-{
-    FREEGLUT_INTERNAL_ERROR_EXIT ( window, "Window destroy function called with null window",
-                                   "fgDestroyWindow" );
-
-    while( window->Children.First )
-        fgDestroyWindow( ( SFG_Window * )window->Children.First );
-
-    {
-        SFG_Window *activeWindow = fgStructure.CurrentWindow;
-        INVOKE_WCB( *window, Destroy, ( ) );
-        fgSetWindow( activeWindow );
-    }
-
-    if( window->Parent )
-        fgListRemove( &window->Parent->Children, &window->Node );
-    else
-        fgListRemove( &fgStructure.Windows, &window->Node );
-
-    if( window->ActiveMenu )
-      fgDeactivateMenu( window );
-
-    fghClearCallBacks( window );
-    fgCloseWindow( window );
-    free( window );
-    if( fgStructure.CurrentWindow == window )
-        fgStructure.CurrentWindow = NULL;
-}
-
-/*
- * This is a helper static function that removes a menu (given its pointer)
- * from any windows that can be accessed from a given parent...
- */
-static void fghRemoveMenuFromWindow( SFG_Window* window, SFG_Menu* menu )
-{
-    SFG_Window *subWindow;
-    int i;
-
-    /* Check whether this is the active menu in the window */
-    if ( menu == window->ActiveMenu )
-        window->ActiveMenu = NULL ;
-
-    /*
-     * Check if the menu is attached to the current window,
-     * if so, have it detached (by overwriting with a NULL):
-     */
-    for( i = 0; i < FREEGLUT_MAX_MENUS; i++ )
-        if( window->Menu[ i ] == menu )
-            window->Menu[ i ] = NULL;
-
-    /* Call this function for all of the window's children recursively: */
-    for( subWindow = (SFG_Window *)window->Children.First;
-         subWindow;
-         subWindow = (SFG_Window *)subWindow->Node.Next)
-        fghRemoveMenuFromWindow( subWindow, menu );
-}
-
-/*
- * This is a static helper function that removes menu references
- * from another menu, given two pointers to them...
- */
-static void fghRemoveMenuFromMenu( SFG_Menu* from, SFG_Menu* menu )
-{
-    SFG_MenuEntry *entry;
-
-    for( entry = (SFG_MenuEntry *)from->Entries.First;
-         entry;
-         entry = ( SFG_MenuEntry * )entry->Node.Next )
-        if( entry->SubMenu == menu )
-            entry->SubMenu = NULL;
-}
-
-/*
- * This function destroys a menu specified by the parameter. All menus
- * and windows are updated to make sure no ill pointers hang around.
- */
-void fgDestroyMenu( SFG_Menu* menu )
-{
-    SFG_Window *window;
-    SFG_Menu *from;
-
-    FREEGLUT_INTERNAL_ERROR_EXIT ( menu, "Menu destroy function called with null menu",
-                                   "fgDestroyMenu" );
-
-    /* First of all, have all references to this menu removed from all windows: */
-    for( window = (SFG_Window *)fgStructure.Windows.First;
-         window;
-         window = (SFG_Window *)window->Node.Next )
-        fghRemoveMenuFromWindow( window, menu );
-
-    /* Now proceed with removing menu entries that lead to this menu */
-    for( from = ( SFG_Menu * )fgStructure.Menus.First;
-         from;
-         from = ( SFG_Menu * )from->Node.Next )
-        fghRemoveMenuFromMenu( from, menu );
-
-    /*
-     * If the programmer defined a destroy callback, call it
-     * A. Donev: But first make this the active menu
-     */
-    if( menu->Destroy )
-    {
-        SFG_Menu *activeMenu=fgStructure.CurrentMenu;
-        fgStructure.CurrentMenu = menu;
-        menu->Destroy( );
-        fgStructure.CurrentMenu = activeMenu;
-    }
-
-    /*
-     * Now we are pretty sure the menu is not used anywhere
-     * and that we can remove all of its entries
-     */
-    while( menu->Entries.First )
-    {
-        SFG_MenuEntry *entry = ( SFG_MenuEntry * ) menu->Entries.First;
-
-        fgListRemove( &menu->Entries, &entry->Node );
-
-        if( entry->Text )
-            free( entry->Text );
-        entry->Text = NULL;
-
-        free( entry );
-    }
-
-    if( fgStructure.CurrentWindow == menu->Window )
-        fgSetWindow( NULL );
-    fgDestroyWindow( menu->Window );
-    fgListRemove( &fgStructure.Menus, &menu->Node );
-    if( fgStructure.CurrentMenu == menu )
-        fgStructure.CurrentMenu = NULL;
-
-    free( menu );
-}
-
-/*
- * This function should be called on glutInit(). It will prepare the internal
- * structure of freeglut to be used in the application. The structure will be
- * destroyed using fgDestroyStructure() on glutMainLoop() return. In that
- * case further use of freeglut should be preceeded with a glutInit() call.
- */
-void fgCreateStructure( void )
-{
-    /*
-     * We will be needing two lists: the first containing windows,
-     * and the second containing the user-defined menus.
-     * Also, no current window/menu is set, as none has been created yet.
-     */
-
-    fgListInit(&fgStructure.Windows);
-    fgListInit(&fgStructure.Menus);
-    fgListInit(&fgStructure.WindowsToDestroy);
-
-    fgStructure.CurrentWindow = NULL;
-    fgStructure.CurrentMenu = NULL;
-    fgStructure.MenuContext = NULL;
-    fgStructure.GameModeWindow = NULL;
-    fgStructure.WindowID = 0;
-    fgStructure.MenuID = 0;
-}
-
-/*
- * This function is automatically called on glutMainLoop() return.
- * It should deallocate and destroy all remnants of previous
- * glutInit()-enforced structure initialization...
- */
-void fgDestroyStructure( void )
-{
-    /* Clean up the WindowsToDestroy list. */
-    fgCloseWindows( );
-
-    /* Make sure all windows and menus have been deallocated */
-    while( fgStructure.Menus.First )
-        fgDestroyMenu( ( SFG_Menu * )fgStructure.Menus.First );
-
-    while( fgStructure.Windows.First )
-        fgDestroyWindow( ( SFG_Window * )fgStructure.Windows.First );
-}
-
-/*
- * Helper function to enumerate through all registered top-level windows
- */
-void fgEnumWindows( FGCBenumerator enumCallback, SFG_Enumerator* enumerator )
-{
-    SFG_Window *window;
-
-    FREEGLUT_INTERNAL_ERROR_EXIT ( enumCallback && enumerator,
-                                   "Enumerator or callback missing from window enumerator call",
-                                   "fgEnumWindows" );
-
-    /* Check every of the top-level windows */
-    for( window = ( SFG_Window * )fgStructure.Windows.First;
-         window;
-         window = ( SFG_Window * )window->Node.Next )
-    {
-        enumCallback( window, enumerator );
-        if( enumerator->found )
-            return;
-    }
-}
-
-/*
- * Helper function to enumerate through all a window's subwindows
- * (single level descent)
- */
-void fgEnumSubWindows( SFG_Window* window, FGCBenumerator enumCallback,
-                       SFG_Enumerator* enumerator )
-{
-    SFG_Window *child;
-
-    FREEGLUT_INTERNAL_ERROR_EXIT ( enumCallback && enumerator,
-                                   "Enumerator or callback missing from subwindow enumerator call",
-                                   "fgEnumSubWindows" );
-    FREEGLUT_INTERNAL_ERROR_EXIT_IF_NOT_INITIALISED ( "Window Enumeration" );
-
-    for( child = ( SFG_Window * )window->Children.First;
-         child;
-         child = ( SFG_Window * )child->Node.Next )
-    {
-        enumCallback( child, enumerator );
-        if( enumerator->found )
-            return;
-    }
-}
-
-/*
- * A static helper function to look for a window given its handle
- */
-static void fghcbWindowByHandle( SFG_Window *window,
-                                 SFG_Enumerator *enumerator )
-{
-    if ( enumerator->found )
-        return;
-
-    /* Check the window's handle. Hope this works. Looks ugly. That's for sure. */
-    if( window->Window.Handle == (SFG_WindowHandleType) (enumerator->data) )
-    {
-        enumerator->found = GL_TRUE;
-        enumerator->data = window;
-
-        return;
-    }
-
-    /* Otherwise, check this window's children */
-    fgEnumSubWindows( window, fghcbWindowByHandle, enumerator );
-}
-
-/*
- * fgWindowByHandle returns a (SFG_Window *) value pointing to the
- * first window in the queue matching the specified window handle.
- * The function is defined in freeglut_structure.c file.
- */
-SFG_Window* fgWindowByHandle ( SFG_WindowHandleType hWindow )
-{
-    SFG_Enumerator enumerator;
-
-    /* This is easy and makes use of the windows enumeration defined above */
-    enumerator.found = GL_FALSE;
-    enumerator.data = (void *)hWindow;
-    fgEnumWindows( fghcbWindowByHandle, &enumerator );
-
-    if( enumerator.found )
-        return( SFG_Window *) enumerator.data;
-    return NULL;
-}
-
-/*
- * A static helper function to look for a window given its ID
- */
-static void fghcbWindowByID( SFG_Window *window, SFG_Enumerator *enumerator )
-{
-    /* Make sure we do not overwrite our precious results... */
-    if( enumerator->found )
-        return;
-
-    /* Check the window's handle. Hope this works. Looks ugly. That's for sure. */
-    if( window->ID == *( int *)(enumerator->data) )
-    {
-        enumerator->found = GL_TRUE;
-        enumerator->data = window;
-
-        return;
-    }
-
-    /* Otherwise, check this window's children */
-    fgEnumSubWindows( window, fghcbWindowByID, enumerator );
-}
-
-/*
- * This function is similiar to the previous one, except it is
- * looking for a specified (sub)window identifier. The function
- * is defined in freeglut_structure.c file.
- */
-SFG_Window* fgWindowByID( int windowID )
-{
-    SFG_Enumerator enumerator;
-
-    /* Uses a method very similiar for fgWindowByHandle... */
-    enumerator.found = GL_FALSE;
-    enumerator.data = ( void * )&windowID;
-    fgEnumWindows( fghcbWindowByID, &enumerator );
-    if( enumerator.found )
-        return ( SFG_Window * )enumerator.data;
-    return NULL;
-}
-
-/*
- * Looks up a menu given its ID. This is easier that fgWindowByXXX
- * as all menus are placed in one doubly linked list...
- */
-SFG_Menu* fgMenuByID( int menuID )
-{
-    SFG_Menu *menu = NULL;
-
-    /* It's enough to check all entries in fgStructure.Menus... */
-    for( menu = (SFG_Menu *)fgStructure.Menus.First;
-         menu;
-         menu = (SFG_Menu *)menu->Node.Next )
-        if( menu->ID == menuID )
-            return menu;
-    return NULL;
-}
-
-/*
- * List functions...
- */
-void fgListInit(SFG_List *list)
-{
-    list->First = NULL;
-    list->Last = NULL;
-}
-
-void fgListAppend(SFG_List *list, SFG_Node *node)
-{
-    if ( list->Last )
-    {
-        SFG_Node *ln = (SFG_Node *) list->Last;
-        ln->Next = node;
-        node->Prev = ln;
-    }
-    else
-    {
-        node->Prev = NULL;
-        list->First = node;
-    }
-
-    node->Next = NULL;
-    list->Last = node;
-}
-
-void fgListRemove(SFG_List *list, SFG_Node *node)
-{
-    if( node->Next )
-        ( ( SFG_Node * )node->Next )->Prev = node->Prev;
-    if( node->Prev )
-        ( ( SFG_Node * )node->Prev )->Next = node->Next;
-    if( ( ( SFG_Node * )list->First ) == node )
-        list->First = node->Next;
-    if( ( ( SFG_Node * )list->Last ) == node )
-        list->Last = node->Prev;
-}
-
-int fgListLength(SFG_List *list)
-{
-    SFG_Node *node;
-    int length = 0;
-
-    for( node =( SFG_Node * )list->First;
-         node;
-         node = ( SFG_Node * )node->Next )
-        ++length;
-
-    return length;
-}
-
-
-void fgListInsert(SFG_List *list, SFG_Node *next, SFG_Node *node)
-{
-    SFG_Node *prev;
-
-    if( (node->Next = next) )
-    {
-        prev = next->Prev;
-        next->Prev = node;
-    }
-    else
-    {
-        prev = list->Last;
-        list->Last = node;
-    }
-
-    if( (node->Prev = prev) )
-        prev->Next = node;
-    else
-        list->First = node;
-}
-
-/*** END OF FILE ***/
diff --git a/src/Common/freeglut_teapot.c b/src/Common/freeglut_teapot.c
deleted file mode 100644 (file)
index 722bca6..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * freeglut_teapot.c
- *
- * Teapot(tm) rendering code.
- *
- * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
- * Written by Pawel W. Olszta, <olszta@sourceforge.net>
- * Creation date: Fri Dec 24 1999
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/*
- * Original teapot code copyright follows:
- */
-
-/*
- * (c) Copyright 1993, Silicon Graphics, Inc.
- *
- * ALL RIGHTS RESERVED
- *
- * Permission to use, copy, modify, and distribute this software
- * for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that
- * both the copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Silicon
- * Graphics, Inc. not be used in advertising or publicity
- * pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU
- * "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR
- * OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF
- * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  IN NO
- * EVENT SHALL SILICON GRAPHICS, INC.  BE LIABLE TO YOU OR ANYONE
- * ELSE FOR ANY DIRECT, SPECIAL, INCIDENTAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER,
- * INCLUDING WITHOUT LIMITATION, LOSS OF PROFIT, LOSS OF USE,
- * SAVINGS OR REVENUE, OR THE CLAIMS OF THIRD PARTIES, WHETHER OR
- * NOT SILICON GRAPHICS, INC.  HAS BEEN ADVISED OF THE POSSIBILITY
- * OF SUCH LOSS, HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * ARISING OUT OF OR IN CONNECTION WITH THE POSSESSION, USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- *
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer
- * Software clause at DFARS 252.227-7013 and/or in similar or
- * successor clauses in the FAR or the DOD or NASA FAR
- * Supplement.  Unpublished-- rights reserved under the copyright
- * laws of the United States.  Contractor/manufacturer is Silicon
- * Graphics, Inc., 2011 N.  Shoreline Blvd., Mountain View, CA
- * 94039-7311.
- *
- * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
- */
-
-#include <GL/freeglut.h>
-#include "freeglut_internal.h"
-#include "freeglut_teapot_data.h"
-
-/* -- PRIVATE FUNCTIONS ---------------------------------------------------- */
-
-
-static void fghTeapot( GLint grid, GLdouble scale, GLenum type )
-{
-#if defined(_WIN32_WCE)
-               int i, numV=sizeof(strip_vertices)/4, numI=sizeof(strip_normals)/4;
-#else
-    double p[4][4][3], q[4][4][3], r[4][4][3], s[4][4][3];
-    long i, j, k, l;
-#endif
-
-    glPushAttrib( GL_ENABLE_BIT | GL_EVAL_BIT );
-    glEnable( GL_AUTO_NORMAL );
-    glEnable( GL_NORMALIZE );
-    glEnable( GL_MAP2_VERTEX_3 );
-    glEnable( GL_MAP2_TEXTURE_COORD_2 );
-
-    glPushMatrix();
-    glRotated( 270.0, 1.0, 0.0, 0.0 );
-    glScaled( 0.5 * scale, 0.5 * scale, 0.5 * scale );
-    glTranslated( 0.0, 0.0, -1.5 );
-
-#if defined(_WIN32_WCE)
-    glRotated( 90.0, 1.0, 0.0, 0.0 );
-    glBegin( GL_TRIANGLE_STRIP );
-
-    for( i = 0; i < numV-1; i++ )
-    {
-        int vidx = strip_vertices[i],
-            nidx = strip_normals[i];
-
-        if( vidx != -1 )
-        {
-            glNormal3fv( normals[nidx]  );
-            glVertex3fv( vertices[vidx] );
-        }
-        else
-        {
-            glEnd();
-            glBegin( GL_TRIANGLE_STRIP );
-        }
-    }
-
-    glEnd();
-#else
-    for (i = 0; i < 10; i++) {
-      for (j = 0; j < 4; j++) {
-        for (k = 0; k < 4; k++) {
-          for (l = 0; l < 3; l++) {
-            p[j][k][l] = cpdata[patchdata[i][j * 4 + k]][l];
-            q[j][k][l] = cpdata[patchdata[i][j * 4 + (3 - k)]][l];
-            if (l == 1)
-              q[j][k][l] *= -1.0;
-            if (i < 6) {
-              r[j][k][l] =
-                cpdata[patchdata[i][j * 4 + (3 - k)]][l];
-              if (l == 0)
-                r[j][k][l] *= -1.0;
-              s[j][k][l] = cpdata[patchdata[i][j * 4 + k]][l];
-              if (l == 0)
-                s[j][k][l] *= -1.0;
-              if (l == 1)
-                s[j][k][l] *= -1.0;
-            }
-          }
-        }
-      }
-
-      glMap2d(GL_MAP2_TEXTURE_COORD_2, 0.0, 1.0, 2, 2, 0.0, 1.0, 4, 2,
-        &tex[0][0][0]);
-      glMap2d(GL_MAP2_VERTEX_3, 0.0, 1.0, 3, 4, 0.0, 1.0, 12, 4,
-        &p[0][0][0]);
-      glMapGrid2d(grid, 0.0, 1.0, grid, 0.0, 1.0);
-      glEvalMesh2(type, 0, grid, 0, grid);
-      glMap2d(GL_MAP2_VERTEX_3, 0.0, 1.0, 3, 4, 0.0, 1.0, 12, 4,
-        &q[0][0][0]);
-      glEvalMesh2(type, 0, grid, 0, grid);
-      if (i < 6) {
-        glMap2d(GL_MAP2_VERTEX_3, 0.0, 1.0, 3, 4, 0.0, 1.0, 12, 4,
-          &r[0][0][0]);
-        glEvalMesh2(type, 0, grid, 0, grid);
-        glMap2d(GL_MAP2_VERTEX_3, 0.0, 1.0, 3, 4, 0.0, 1.0, 12, 4,
-          &s[0][0][0]);
-        glEvalMesh2(type, 0, grid, 0, grid);
-      }
-    }
-#endif  /* defined(_WIN32_WCE) */
-
-    glPopMatrix();
-    glPopAttrib();
-}
-
-
-/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
-
-/*
- * Renders a beautiful wired teapot...
- */
-void FGAPIENTRY glutWireTeapot( GLdouble size )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWireTeapot" );
-    /* We will use the general teapot rendering code */
-    fghTeapot( 10, size, GL_LINE );
-}
-
-/*
- * Renders a beautiful filled teapot...
- */
-void FGAPIENTRY glutSolidTeapot( GLdouble size )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSolidTeapot" );
-    /* We will use the general teapot rendering code */
-    fghTeapot( 7, size, GL_FILL );
-}
-
-/*** END OF FILE ***/
-
-
-
-
-
diff --git a/src/Common/freeglut_teapot_data.h b/src/Common/freeglut_teapot_data.h
deleted file mode 100644 (file)
index 3bf83e1..0000000
+++ /dev/null
@@ -1,2429 +0,0 @@
-/*
- * freeglut_teapot_data.h
- *
- * The freeglut library teapot data include file.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef  FREEGLUT_TEAPOT_DATA_H
-#define  FREEGLUT_TEAPOT_DATA_H
-
-#if defined(_WIN32_WCE)
-/*
- * Submitted through the kind offices of Daniel Wagner (daniel@ims.tuwien.ac.at)
- */
-
-/* 530 vertices */
-
-const int numVertices = 530;
-const float vertices[530][3] =  {
-2.1f, 3.6f, 0.0f, 
-2.071f, 3.711f, 0.0f, 
-2.105f, 3.748f, 0.0f, 
-2.174f, 3.711f, 0.0f, 
-2.25f, 3.6f, 0.0f, 
-1.937f, 3.6f, 0.8242f, 
-1.91f, 3.711f, 0.8128f, 
-1.942f, 3.748f, 0.8261f, 
-2.005f, 3.711f, 0.8532f, 
-2.076f, 3.6f, 0.8831f, 
-1.491f, 3.6f, 1.491f, 
-1.47f, 3.711f, 1.47f, 
-1.494f, 3.748f, 1.494f, 
-1.543f, 3.711f, 1.543f, 
-1.597f, 3.6f, 1.597f, 
-0.8242f, 3.6f, 1.937f, 
-0.8128f, 3.711f, 1.91f, 
-0.8261f, 3.748f, 1.942f, 
-0.8532f, 3.711f, 2.005f, 
-0.8831f, 3.6f, 2.076f, 
-0.0f, 3.6f, 2.1f, 
-0.0f, 3.711f, 2.071f, 
-0.0f, 3.748f, 2.105f, 
-0.0f, 3.711f, 2.174f, 
-0.0f, 3.6f, 2.25f, 
--0.8812f, 3.6f, 1.937f, 
--0.8368f, 3.711f, 1.91f, 
--0.8332f, 3.748f, 1.942f, 
--0.8541f, 3.711f, 2.005f, 
--0.8831f, 3.6f, 2.076f, 
--1.542f, 3.6f, 1.491f, 
--1.492f, 3.711f, 1.47f, 
--1.501f, 3.748f, 1.494f, 
--1.544f, 3.711f, 1.543f, 
--1.597f, 3.6f, 1.597f, 
--1.956f, 3.6f, 0.8242f, 
--1.918f, 3.711f, 0.8128f, 
--1.944f, 3.748f, 0.8261f, 
--2.006f, 3.711f, 0.8532f, 
--2.076f, 3.6f, 0.8831f, 
--2.1f, 3.6f, 0.0f, 
--2.071f, 3.711f, 0.0f, 
--2.105f, 3.748f, 0.0f, 
--2.174f, 3.711f, 0.0f, 
--2.25f, 3.6f, 0.0f, 
--1.937f, 3.6f, -0.8242f, 
--1.91f, 3.711f, -0.8128f, 
--1.942f, 3.748f, -0.8261f, 
--2.005f, 3.711f, -0.8532f, 
--2.076f, 3.6f, -0.8831f, 
--1.491f, 3.6f, -1.491f, 
--1.47f, 3.711f, -1.47f, 
--1.494f, 3.748f, -1.494f, 
--1.543f, 3.711f, -1.543f, 
--1.597f, 3.6f, -1.597f, 
--0.8242f, 3.6f, -1.937f, 
--0.8128f, 3.711f, -1.91f, 
--0.8261f, 3.748f, -1.942f, 
--0.8532f, 3.711f, -2.005f, 
--0.8831f, 3.6f, -2.076f, 
-0.0f, 3.6f, -2.1f, 
-0.0f, 3.711f, -2.071f, 
-0.0f, 3.748f, -2.105f, 
-0.0f, 3.711f, -2.174f, 
-0.0f, 3.6f, -2.25f, 
-0.8242f, 3.6f, -1.937f, 
-0.8128f, 3.711f, -1.91f, 
-0.8261f, 3.748f, -1.942f, 
-0.8532f, 3.711f, -2.005f, 
-0.8831f, 3.6f, -2.076f, 
-1.491f, 3.6f, -1.491f, 
-1.47f, 3.711f, -1.47f, 
-1.494f, 3.748f, -1.494f, 
-1.543f, 3.711f, -1.543f, 
-1.597f, 3.6f, -1.597f, 
-1.937f, 3.6f, -0.8242f, 
-1.91f, 3.711f, -0.8128f, 
-1.942f, 3.748f, -0.8261f, 
-2.005f, 3.711f, -0.8532f, 
-2.076f, 3.6f, -0.8831f, 
-2.525f, 3.011f, 0.0f, 
-2.766f, 2.433f, 0.0f, 
-2.936f, 1.876f, 0.0f, 
-3.0f, 1.35f, 0.0f, 
-2.33f, 3.011f, 0.9912f, 
-2.551f, 2.433f, 1.086f, 
-2.708f, 1.876f, 1.152f, 
-2.767f, 1.35f, 1.178f, 
-1.793f, 3.011f, 1.793f, 
-1.964f, 2.433f, 1.964f, 
-2.084f, 1.876f, 2.084f, 
-2.13f, 1.35f, 2.13f, 
-0.9912f, 3.011f, 2.33f, 
-1.086f, 2.433f, 2.551f, 
-1.152f, 1.876f, 2.708f, 
-1.178f, 1.35f, 2.767f, 
-0.0f, 3.011f, 2.525f, 
-0.0f, 2.433f, 2.766f, 
-0.0f, 1.876f, 2.936f, 
-0.0f, 1.35f, 3.0f, 
--0.9912f, 3.011f, 2.33f, 
--1.086f, 2.433f, 2.551f, 
--1.152f, 1.876f, 2.708f, 
--1.178f, 1.35f, 2.767f, 
--1.793f, 3.011f, 1.793f, 
--1.964f, 2.433f, 1.964f, 
--2.084f, 1.876f, 2.084f, 
--2.13f, 1.35f, 2.13f, 
--2.33f, 3.011f, 0.9912f, 
--2.551f, 2.433f, 1.086f, 
--2.708f, 1.876f, 1.152f, 
--2.767f, 1.35f, 1.178f, 
--2.525f, 3.011f, 0.0f, 
--2.766f, 2.433f, 0.0f, 
--2.936f, 1.876f, 0.0f, 
--3.0f, 1.35f, 0.0f, 
--2.33f, 3.011f, -0.9912f, 
--2.551f, 2.433f, -1.086f, 
--2.708f, 1.876f, -1.152f, 
--2.767f, 1.35f, -1.178f, 
--1.793f, 3.011f, -1.793f, 
--1.964f, 2.433f, -1.964f, 
--2.084f, 1.876f, -2.084f, 
--2.13f, 1.35f, -2.13f, 
--0.9912f, 3.011f, -2.33f, 
--1.086f, 2.433f, -2.551f, 
--1.152f, 1.876f, -2.708f, 
--1.178f, 1.35f, -2.767f, 
-0.0f, 3.011f, -2.525f, 
-0.0f, 2.433f, -2.766f, 
-0.0f, 1.876f, -2.936f, 
-0.0f, 1.35f, -3.0f, 
-0.9912f, 3.011f, -2.33f, 
-1.086f, 2.433f, -2.551f, 
-1.152f, 1.876f, -2.708f, 
-1.178f, 1.35f, -2.767f, 
-1.793f, 3.011f, -1.793f, 
-1.964f, 2.433f, -1.964f, 
-2.084f, 1.876f, -2.084f, 
-2.13f, 1.35f, -2.13f, 
-2.33f, 3.011f, -0.9912f, 
-2.551f, 2.433f, -1.086f, 
-2.708f, 1.876f, -1.152f, 
-2.767f, 1.35f, -1.178f, 
-2.883f, 0.9053f, 0.0f, 
-2.625f, 0.5766f, 0.0f, 
-2.367f, 0.3533f, 0.0f, 
-2.25f, 0.225f, 0.0f, 
-2.659f, 0.9053f, 1.132f, 
-2.422f, 0.5766f, 1.03f, 
-2.184f, 0.3533f, 0.9291f, 
-2.076f, 0.225f, 0.8831f, 
-2.047f, 0.9053f, 2.047f, 
-1.864f, 0.5766f, 1.864f, 
-1.681f, 0.3533f, 1.681f, 
-1.597f, 0.225f, 1.597f, 
-1.132f, 0.9053f, 2.659f, 
-1.03f, 0.5766f, 2.422f, 
-0.9291f, 0.3533f, 2.184f, 
-0.8831f, 0.225f, 2.076f, 
-0.0f, 0.9053f, 2.883f, 
-0.0f, 0.5766f, 2.625f, 
-0.0f, 0.3533f, 2.367f, 
-0.0f, 0.225f, 2.25f, 
--1.132f, 0.9053f, 2.659f, 
--1.03f, 0.5766f, 2.422f, 
--0.9291f, 0.3533f, 2.184f, 
--0.8831f, 0.225f, 2.076f, 
--2.047f, 0.9053f, 2.047f, 
--1.864f, 0.5766f, 1.864f, 
--1.681f, 0.3533f, 1.681f, 
--1.597f, 0.225f, 1.597f, 
--2.659f, 0.9053f, 1.132f, 
--2.422f, 0.5766f, 1.03f, 
--2.184f, 0.3533f, 0.9291f, 
--2.076f, 0.225f, 0.8831f, 
--2.883f, 0.9053f, 0.0f, 
--2.625f, 0.5766f, 0.0f, 
--2.367f, 0.3533f, 0.0f, 
--2.25f, 0.225f, 0.0f, 
--2.659f, 0.9053f, -1.132f, 
--2.422f, 0.5766f, -1.03f, 
--2.184f, 0.3533f, -0.9291f, 
--2.076f, 0.225f, -0.8831f, 
--2.047f, 0.9053f, -2.047f, 
--1.864f, 0.5766f, -1.864f, 
--1.681f, 0.3533f, -1.681f, 
--1.597f, 0.225f, -1.597f, 
--1.132f, 0.9053f, -2.659f, 
--1.03f, 0.5766f, -2.422f, 
--0.9291f, 0.3533f, -2.184f, 
--0.8831f, 0.225f, -2.076f, 
-0.0f, 0.9053f, -2.883f, 
-0.0f, 0.5766f, -2.625f, 
-0.0f, 0.3533f, -2.367f, 
-0.0f, 0.225f, -2.25f, 
-1.132f, 0.9053f, -2.659f, 
-1.03f, 0.5766f, -2.422f, 
-0.9291f, 0.3533f, -2.184f, 
-0.8831f, 0.225f, -2.076f, 
-2.047f, 0.9053f, -2.047f, 
-1.864f, 0.5766f, -1.864f, 
-1.681f, 0.3533f, -1.681f, 
-1.597f, 0.225f, -1.597f, 
-2.659f, 0.9053f, -1.132f, 
-2.422f, 0.5766f, -1.03f, 
-2.184f, 0.3533f, -0.9291f, 
-2.076f, 0.225f, -0.8831f, 
-2.199f, 0.1424f, 0.0f, 
-1.927f, 0.07031f, 0.0f, 
-1.253f, 0.01934f, 0.0f, 
-0.0f, 0.0f, 0.0f, 
-2.029f, 0.1424f, 0.8631f, 
-1.777f, 0.07031f, 0.7562f, 
-1.156f, 0.01934f, 0.4919f, 
-1.561f, 0.1424f, 1.561f, 
-1.368f, 0.07031f, 1.368f, 
-0.8899f, 0.01934f, 0.8899f, 
-0.8631f, 0.1424f, 2.029f, 
-0.7562f, 0.07031f, 1.777f, 
-0.4919f, 0.01934f, 1.156f, 
-0.0f, 0.1424f, 2.199f, 
-0.0f, 0.07031f, 1.927f, 
-0.0f, 0.01934f, 1.253f, 
--0.8631f, 0.1424f, 2.029f, 
--0.7562f, 0.07031f, 1.777f, 
--0.4919f, 0.01934f, 1.156f, 
--1.561f, 0.1424f, 1.561f, 
--1.368f, 0.07031f, 1.368f, 
--0.8899f, 0.01934f, 0.8899f, 
--2.029f, 0.1424f, 0.8631f, 
--1.777f, 0.07031f, 0.7562f, 
--1.156f, 0.01934f, 0.4919f, 
--2.199f, 0.1424f, 0.0f, 
--1.927f, 0.07031f, 0.0f, 
--1.253f, 0.01934f, 0.0f, 
--2.029f, 0.1424f, -0.8631f, 
--1.777f, 0.07031f, -0.7562f, 
--1.156f, 0.01934f, -0.4919f, 
--1.561f, 0.1424f, -1.561f, 
--1.368f, 0.07031f, -1.368f, 
--0.8899f, 0.01934f, -0.8899f, 
--0.8631f, 0.1424f, -2.029f, 
--0.7562f, 0.07031f, -1.777f, 
--0.4919f, 0.01934f, -1.156f, 
-0.0f, 0.1424f, -2.199f, 
-0.0f, 0.07031f, -1.927f, 
-0.0f, 0.01934f, -1.253f, 
-0.8631f, 0.1424f, -2.029f, 
-0.7562f, 0.07031f, -1.777f, 
-0.4919f, 0.01934f, -1.156f, 
-1.561f, 0.1424f, -1.561f, 
-1.368f, 0.07031f, -1.368f, 
-0.8899f, 0.01934f, -0.8899f, 
-2.029f, 0.1424f, -0.8631f, 
-1.777f, 0.07031f, -0.7562f, 
-1.156f, 0.01934f, -0.4919f, 
--2.4f, 3.038f, 0.0f, 
--3.101f, 3.032f, 0.0f, 
--3.619f, 2.995f, 0.0f, 
--3.94f, 2.895f, 0.0f, 
--4.05f, 2.7f, 0.0f, 
--2.377f, 3.09f, 0.2531f, 
--3.122f, 3.084f, 0.2531f, 
--3.669f, 3.041f, 0.2531f, 
--4.005f, 2.926f, 0.2531f, 
--4.12f, 2.7f, 0.2531f, 
--2.325f, 3.206f, 0.3375f, 
--3.168f, 3.198f, 0.3375f, 
--3.778f, 3.143f, 0.3375f, 
--4.15f, 2.993f, 0.3375f, 
--4.275f, 2.7f, 0.3375f, 
--2.273f, 3.322f, 0.2531f, 
--3.214f, 3.313f, 0.2531f, 
--3.888f, 3.244f, 0.2531f, 
--4.294f, 3.06f, 0.2531f, 
--4.43f, 2.7f, 0.2531f, 
--2.25f, 3.375f, 0.0f, 
--3.234f, 3.364f, 0.0f, 
--3.938f, 3.291f, 0.0f, 
--4.359f, 3.09f, 0.0f, 
--4.5f, 2.7f, 0.0f, 
--2.273f, 3.322f, -0.2531f, 
--3.214f, 3.313f, -0.2531f, 
--3.888f, 3.244f, -0.2531f, 
--4.294f, 3.06f, -0.2531f, 
--4.43f, 2.7f, -0.2531f, 
--2.325f, 3.206f, -0.3375f, 
--3.168f, 3.198f, -0.3375f, 
--3.778f, 3.143f, -0.3375f, 
--4.15f, 2.993f, -0.3375f, 
--4.275f, 2.7f, -0.3375f, 
--2.377f, 3.09f, -0.2531f, 
--3.122f, 3.084f, -0.2531f, 
--3.669f, 3.041f, -0.2531f, 
--4.005f, 2.926f, -0.2531f, 
--4.12f, 2.7f, -0.2531f, 
--3.991f, 2.394f, 0.0f, 
--3.806f, 2.025f, 0.0f, 
--3.48f, 1.656f, 0.0f, 
--3.0f, 1.35f, 0.0f, 
--4.055f, 2.365f, 0.2531f, 
--3.852f, 1.98f, 0.2531f, 
--3.496f, 1.6f, 0.2531f, 
--2.977f, 1.28f, 0.2531f, 
--4.196f, 2.3f, 0.3375f, 
--3.952f, 1.881f, 0.3375f, 
--3.531f, 1.478f, 0.3375f, 
--2.925f, 1.125f, 0.3375f, 
--4.336f, 2.235f, 0.2531f, 
--4.051f, 1.782f, 0.2531f, 
--3.566f, 1.356f, 0.2531f, 
--2.873f, 0.9703f, 0.2531f, 
--4.4f, 2.205f, 0.0f, 
--4.097f, 1.737f, 0.0f, 
--3.582f, 1.3f, 0.0f, 
--2.85f, 0.9f, 0.0f, 
--4.336f, 2.235f, -0.2531f, 
--4.051f, 1.782f, -0.2531f, 
--3.566f, 1.356f, -0.2531f, 
--2.873f, 0.9703f, -0.2531f, 
--4.196f, 2.3f, -0.3375f, 
--3.952f, 1.881f, -0.3375f, 
--3.531f, 1.478f, -0.3375f, 
--2.925f, 1.125f, -0.3375f, 
--4.055f, 2.365f, -0.2531f, 
--3.852f, 1.98f, -0.2531f, 
--3.496f, 1.6f, -0.2531f, 
--2.977f, 1.28f, -0.2531f, 
-2.55f, 2.137f, 0.0f, 
-3.27f, 2.303f, 0.0f, 
-3.581f, 2.7f, 0.0f, 
-3.752f, 3.182f, 0.0f, 
-4.05f, 3.6f, 0.0f, 
-2.55f, 1.944f, 0.5569f, 
-3.324f, 2.159f, 0.5028f, 
-3.652f, 2.617f, 0.3839f, 
-3.838f, 3.151f, 0.265f, 
-4.191f, 3.6f, 0.2109f, 
-2.55f, 1.519f, 0.7425f, 
-3.445f, 1.844f, 0.6704f, 
-3.806f, 2.433f, 0.5119f, 
-4.027f, 3.085f, 0.3533f, 
-4.5f, 3.6f, 0.2813f, 
-2.55f, 1.093f, 0.5569f, 
-3.566f, 1.529f, 0.5028f, 
-3.961f, 2.249f, 0.3839f, 
-4.215f, 3.018f, 0.265f, 
-4.809f, 3.6f, 0.2109f, 
-2.55f, 0.9f, 0.0f, 
-3.621f, 1.385f, 0.0f, 
-4.031f, 2.166f, 0.0f, 
-4.301f, 2.988f, 0.0f, 
-4.95f, 3.6f, 0.0f, 
-2.55f, 1.093f, -0.5569f, 
-3.566f, 1.529f, -0.5028f, 
-3.961f, 2.249f, -0.3839f, 
-4.215f, 3.018f, -0.265f, 
-4.809f, 3.6f, -0.2109f, 
-2.55f, 1.519f, -0.7425f, 
-3.445f, 1.844f, -0.6704f, 
-3.806f, 2.433f, -0.5119f, 
-4.027f, 3.085f, -0.3533f, 
-4.5f, 3.6f, -0.2813f, 
-2.55f, 1.944f, -0.5569f, 
-3.324f, 2.159f, -0.5028f, 
-3.652f, 2.617f, -0.3839f, 
-3.838f, 3.151f, -0.265f, 
-4.191f, 3.6f, -0.2109f, 
-4.158f, 3.663f, 0.0f, 
-4.238f, 3.684f, 0.0f, 
-4.261f, 3.663f, 0.0f, 
-4.2f, 3.6f, 0.0f, 
-4.308f, 3.666f, 0.1978f, 
-4.379f, 3.689f, 0.1687f, 
-4.381f, 3.668f, 0.1397f, 
-4.294f, 3.6f, 0.1266f, 
-4.64f, 3.673f, 0.2637f, 
-4.69f, 3.7f, 0.225f, 
-4.645f, 3.677f, 0.1863f, 
-4.5f, 3.6f, 0.1688f, 
-4.971f, 3.68f, 0.1978f, 
-5.001f, 3.711f, 0.1687f, 
-4.909f, 3.687f, 0.1397f, 
-4.706f, 3.6f, 0.1266f, 
-5.122f, 3.683f, 0.0f, 
-5.142f, 3.716f, 0.0f, 
-5.029f, 3.691f, 0.0f, 
-4.8f, 3.6f, 0.0f, 
-4.971f, 3.68f, -0.1978f, 
-5.001f, 3.711f, -0.1687f, 
-4.909f, 3.687f, -0.1397f, 
-4.706f, 3.6f, -0.1266f, 
-4.64f, 3.673f, -0.2637f, 
-4.69f, 3.7f, -0.225f, 
-4.645f, 3.677f, -0.1863f, 
-4.5f, 3.6f, -0.1688f, 
-4.308f, 3.666f, -0.1978f, 
-4.379f, 3.689f, -0.1687f, 
-4.381f, 3.668f, -0.1397f, 
-4.294f, 3.6f, -0.1266f, 
-0.0f, 4.725f, 0.0f, 
-0.5109f, 4.651f, 0.0f, 
-0.4875f, 4.472f, 0.0f, 
-0.2953f, 4.25f, 0.0f, 
-0.3f, 4.05f, 0.0f, 
-0.4715f, 4.651f, 0.2011f, 
-0.4499f, 4.472f, 0.1918f, 
-0.2725f, 4.25f, 0.1161f, 
-0.2768f, 4.05f, 0.1178f, 
-0.3632f, 4.651f, 0.3632f, 
-0.3465f, 4.472f, 0.3465f, 
-0.2098f, 4.25f, 0.2098f, 
-0.213f, 4.05f, 0.213f, 
-0.2011f, 4.651f, 0.4715f, 
-0.1918f, 4.472f, 0.4499f, 
-0.1161f, 4.25f, 0.2725f, 
-0.1178f, 4.05f, 0.2768f, 
-0.0f, 4.651f, 0.5109f, 
-0.0f, 4.472f, 0.4875f, 
-0.0f, 4.25f, 0.2953f, 
-0.0f, 4.05f, 0.3f, 
--0.2011f, 4.651f, 0.4715f, 
--0.1918f, 4.472f, 0.4499f, 
--0.1161f, 4.25f, 0.2725f, 
--0.1178f, 4.05f, 0.2768f, 
--0.3632f, 4.651f, 0.3632f, 
--0.3465f, 4.472f, 0.3465f, 
--0.2098f, 4.25f, 0.2098f, 
--0.213f, 4.05f, 0.213f, 
--0.4715f, 4.651f, 0.2011f, 
--0.4499f, 4.472f, 0.1918f, 
--0.2725f, 4.25f, 0.1161f, 
--0.2768f, 4.05f, 0.1178f, 
--0.5109f, 4.651f, 0.0f, 
--0.4875f, 4.472f, 0.0f, 
--0.2953f, 4.25f, 0.0f, 
--0.3f, 4.05f, 0.0f, 
--0.4715f, 4.651f, -0.2011f, 
--0.4499f, 4.472f, -0.1918f, 
--0.2725f, 4.25f, -0.1161f, 
--0.2768f, 4.05f, -0.1178f, 
--0.3632f, 4.651f, -0.3632f, 
--0.3465f, 4.472f, -0.3465f, 
--0.2098f, 4.25f, -0.2098f, 
--0.213f, 4.05f, -0.213f, 
--0.2011f, 4.651f, -0.4715f, 
--0.1918f, 4.472f, -0.4499f, 
--0.1161f, 4.25f, -0.2725f, 
--0.1178f, 4.05f, -0.2768f, 
-0.0f, 4.651f, -0.5109f, 
-0.0f, 4.472f, -0.4875f, 
-0.0f, 4.25f, -0.2953f, 
-0.0f, 4.05f, -0.3f, 
-0.2011f, 4.651f, -0.4715f, 
-0.1918f, 4.472f, -0.4499f, 
-0.1161f, 4.25f, -0.2725f, 
-0.1178f, 4.05f, -0.2768f, 
-0.3632f, 4.651f, -0.3632f, 
-0.3465f, 4.472f, -0.3465f, 
-0.2098f, 4.25f, -0.2098f, 
-0.213f, 4.05f, -0.213f, 
-0.4715f, 4.651f, -0.2011f, 
-0.4499f, 4.472f, -0.1918f, 
-0.2725f, 4.25f, -0.1161f, 
-0.2768f, 4.05f, -0.1178f, 
-0.6844f, 3.916f, 0.0f, 
-1.237f, 3.825f, 0.0f, 
-1.734f, 3.734f, 0.0f, 
-1.95f, 3.6f, 0.0f, 
-0.6313f, 3.916f, 0.2686f, 
-1.142f, 3.825f, 0.4857f, 
-1.6f, 3.734f, 0.6807f, 
-1.799f, 3.6f, 0.7654f, 
-0.4859f, 3.916f, 0.4859f, 
-0.8786f, 3.825f, 0.8786f, 
-1.231f, 3.734f, 1.231f, 
-1.385f, 3.6f, 1.385f, 
-0.2686f, 3.916f, 0.6313f, 
-0.4857f, 3.825f, 1.142f, 
-0.6807f, 3.734f, 1.6f, 
-0.7654f, 3.6f, 1.799f, 
-0.0f, 3.916f, 0.6844f, 
-0.0f, 3.825f, 1.237f, 
-0.0f, 3.734f, 1.734f, 
-0.0f, 3.6f, 1.95f, 
--0.2686f, 3.916f, 0.6313f, 
--0.4857f, 3.825f, 1.142f, 
--0.6807f, 3.734f, 1.6f, 
--0.7654f, 3.6f, 1.799f, 
--0.4859f, 3.916f, 0.4859f, 
--0.8786f, 3.825f, 0.8786f, 
--1.231f, 3.734f, 1.231f, 
--1.385f, 3.6f, 1.385f, 
--0.6313f, 3.916f, 0.2686f, 
--1.142f, 3.825f, 0.4857f, 
--1.6f, 3.734f, 0.6807f, 
--1.799f, 3.6f, 0.7654f, 
--0.6844f, 3.916f, 0.0f, 
--1.237f, 3.825f, 0.0f, 
--1.734f, 3.734f, 0.0f, 
--1.95f, 3.6f, 0.0f, 
--0.6313f, 3.916f, -0.2686f, 
--1.142f, 3.825f, -0.4857f, 
--1.6f, 3.734f, -0.6807f, 
--1.799f, 3.6f, -0.7654f, 
--0.4859f, 3.916f, -0.4859f, 
--0.8786f, 3.825f, -0.8786f, 
--1.231f, 3.734f, -1.231f, 
--1.385f, 3.6f, -1.385f, 
--0.2686f, 3.916f, -0.6313f, 
--0.4857f, 3.825f, -1.142f, 
--0.6807f, 3.734f, -1.6f, 
--0.7654f, 3.6f, -1.799f, 
-0.0f, 3.916f, -0.6844f, 
-0.0f, 3.825f, -1.237f, 
-0.0f, 3.734f, -1.734f, 
-0.0f, 3.6f, -1.95f, 
-0.2686f, 3.916f, -0.6313f, 
-0.4857f, 3.825f, -1.142f, 
-0.6807f, 3.734f, -1.6f, 
-0.7654f, 3.6f, -1.799f, 
-0.4859f, 3.916f, -0.4859f, 
-0.8786f, 3.825f, -0.8786f, 
-1.231f, 3.734f, -1.231f, 
-1.385f, 3.6f, -1.385f, 
-0.6313f, 3.916f, -0.2686f, 
-1.142f, 3.825f, -0.4857f, 
-1.6f, 3.734f, -0.6807f, 
-1.799f, 3.6f, -0.7654f
-};
-
-
-/* 530 normals */
-const int numNormals = 530;
-const float normals[530][3] = {
-0.0486f, -0.9986f, 0.0168f, 
-0.9976f, -0.0678f, -0.0008f, 
--0.233f, 0.8502f, -0.4719f, 
--0.2299f, 0.9679f, 0.1004f, 
--0.1648f, 0.985f, 0.0501f, 
--0.0117f, 0.7461f, 0.6656f, 
--0.0888f, 0.9692f, 0.2294f, 
-0.6449f, -0.7172f, -0.2637f, 
--0.066f, 0.9851f, 0.1583f, 
--0.6585f, -0.342f, -0.6703f, 
--0.293f, 0.9558f, 0.0209f, 
-0.179f, 0.9825f, -0.0513f, 
--0.0094f, 0.903f, 0.4295f, 
--0.0059f, -0.986f, -0.1662f, 
--0.7355f, 0.6774f, -0.0026f, 
--0.997f, 0.0763f, 0.0019f, 
--0.1478f, 0.9333f, 0.3271f, 
--0.3014f, -0.6034f, -0.7382f, 
--0.7048f, -0.0681f, 0.706f, 
--0.3361f, 0.9332f, 0.1263f, 
-0.3709f, 0.1524f, -0.916f, 
--0.3399f, -0.4121f, 0.8453f, 
-0.1921f, 0.9724f, -0.1316f, 
--0.2671f, 0.7429f, 0.6137f, 
-0.0888f, 0.9692f, -0.2294f, 
-0.066f, 0.9851f, -0.1583f, 
-0.9411f, 0.338f, 0.001f, 
-0.8666f, -0.2559f, 0.4282f, 
--0.8029f, 0.4968f, 0.3293f, 
--0.0008f, -0.0678f, -0.9976f, 
--0.8453f, -0.4121f, -0.3399f, 
--0.4801f, -0.8741f, 0.0733f, 
-0.6355f, -0.772f, 0.0006f, 
--0.9215f, -0.0678f, 0.3822f, 
--0.6698f, -0.6907f, -0.2723f, 
-0.3734f, 0.876f, -0.3051f, 
-0.3548f, -0.4118f, 0.8393f, 
--0.3629f, 0.2429f, 0.8995f, 
-0.9033f, 0.2079f, 0.375f, 
--0.2824f, 0.5939f, 0.7532f, 
-0.8938f, 0.4452f, 0.0532f, 
-0.1478f, 0.9333f, -0.3271f, 
-0.0085f, -0.0031f, -0.9999f, 
-0.3595f, 0.933f, 0.0115f, 
-0.8995f, 0.2429f, 0.3629f, 
-0.7048f, -0.0681f, -0.706f, 
--0.6428f, -0.7172f, -0.2688f, 
-0.6366f, -0.447f, 0.6283f, 
--0.1213f, -0.9861f, -0.1128f, 
-0.8003f, 0.4978f, 0.334f, 
-0.3361f, 0.9332f, -0.1263f, 
-0.3399f, -0.4121f, -0.8453f, 
--0.3909f, 0.4452f, 0.8055f, 
-0.0117f, 0.7462f, -0.6655f, 
-0.9215f, -0.0678f, -0.3822f, 
-0.3582f, -0.7656f, 0.5343f, 
--0.9782f, 0.2075f, -0.0011f, 
-0.2824f, 0.5939f, -0.7532f, 
-0.035f, -0.8413f, 0.5393f, 
--0.8044f, 0.5934f, 0.0262f, 
--0.1128f, -0.9861f, 0.1213f, 
-0.13f, -0.1396f, 0.9816f, 
-0.6644f, 0.3392f, 0.6659f, 
--0.0042f, -0.6898f, -0.7239f, 
--0.1587f, 0.9851f, 0.065f, 
--0.8719f, -0.3415f, 0.3508f, 
-0.6486f, 0.4756f, -0.5941f, 
--0.4991f, 0.8499f, -0.1684f, 
--0.3969f, 0.6342f, -0.6634f, 
-0.7041f, -0.3863f, -0.5956f, 
-0.3909f, 0.4452f, -0.8055f, 
--0.0391f, -0.0113f, 0.9991f, 
--0.3321f, 0.5936f, -0.733f, 
-0.8523f, -0.5219f, -0.0338f, 
-0.329f, 0.4978f, 0.8023f, 
-0.8044f, 0.5934f, -0.0262f, 
-0.1128f, -0.9861f, -0.1213f, 
-0.0178f, 0.9861f, -0.1651f, 
-0.3491f, 0.4045f, 0.8452f, 
--0.2727f, 0.8505f, 0.4496f, 
-0.065f, 0.9851f, 0.1587f, 
--0.0005f, 0.4037f, 0.9148f, 
--0.0077f, -0.4109f, -0.9116f, 
-0.5609f, -0.604f, 0.5661f, 
-0.8236f, 0.5668f, -0.0138f, 
-0.1587f, 0.9851f, -0.065f, 
-0.8719f, -0.3415f, -0.3508f, 
--0.7382f, -0.6034f, 0.3014f, 
-0.0346f, 0.8495f, 0.5263f, 
--0.4373f, -0.7921f, -0.4257f, 
--0.0532f, 0.4452f, 0.8938f, 
-0.0689f, -0.9861f, 0.1509f, 
--0.1509f, -0.9861f, 0.0689f, 
-0.7706f, -0.2424f, -0.5893f, 
--0.7543f, -0.6564f, 0.0105f, 
-0.0005f, 0.4037f, -0.9148f, 
--0.9116f, -0.4109f, 0.0077f, 
-0.0058f, -0.0438f, 0.999f, 
-0.1719f, 0.985f, 0.0005f, 
--0.1697f, 0.9693f, 0.1774f, 
-0.5874f, -0.5124f, 0.6263f, 
-0.7382f, -0.6034f, -0.3014f, 
--0.1518f, 0.985f, -0.081f, 
-0.646f, 0.4051f, 0.6468f, 
-0.334f, 0.4978f, -0.8003f, 
--0.7354f, -0.6034f, -0.3082f, 
--0.6919f, 0.2428f, -0.6798f, 
-0.0532f, 0.4452f, -0.8938f, 
-0.3547f, -0.3173f, 0.8794f, 
-0.9879f, -0.1547f, -0.0033f, 
--0.0462f, -0.9986f, 0.0223f, 
--0.6088f, 0.4806f, 0.6311f, 
--0.109f, -0.1969f, -0.9743f, 
-0.1509f, -0.9861f, -0.0689f, 
--0.0568f, 0.9983f, 0.0009f, 
-0.9074f, -0.3096f, -0.2839f, 
-0.8677f, 0.4969f, 0.0026f, 
--0.2723f, -0.6907f, 0.6698f, 
--0.4734f, -0.6798f, 0.5599f, 
-0.9116f, -0.4109f, -0.0077f, 
-0.1697f, 0.9693f, -0.1774f, 
-0.5875f, 0.5937f, 0.5497f, 
--0.3232f, 0.6846f, 0.6533f, 
--0.5078f, -0.6913f, 0.5139f, 
--0.4612f, 0.7474f, -0.478f, 
--0.2071f, -0.8049f, 0.556f, 
--0.6976f, -0.7164f, -0.0027f, 
--0.8697f, 0.3388f, 0.3587f, 
-0.0462f, -0.9986f, -0.0223f, 
-0.2723f, -0.6907f, -0.6698f, 
--0.829f, -0.4466f, -0.3365f, 
-0.9148f, 0.4037f, 0.0005f, 
--0.1583f, 0.9851f, -0.066f, 
-0.148f, 0.9838f, 0.1002f, 
--0.1717f, 0.985f, -0.0162f, 
--0.4282f, -0.2559f, 0.8666f, 
-0.3094f, -0.2556f, 0.9159f, 
-0.2803f, -0.6907f, 0.6665f, 
--0.6154f, 0.497f, 0.6117f, 
--0.0262f, 0.5934f, -0.8044f, 
-0.0286f, 0.1639f, -0.986f, 
--0.6924f, 0.2083f, 0.6907f, 
--0.0105f, 0.9975f, -0.0685f, 
-0.5078f, -0.6913f, -0.5139f, 
-0.2071f, -0.8049f, -0.556f, 
--0.4903f, -0.7178f, -0.4942f, 
--0.2637f, -0.7172f, -0.6449f, 
--0.3822f, -0.0678f, -0.9215f, 
-0.8697f, 0.3388f, -0.3587f, 
-0.2461f, -0.805f, 0.5397f, 
--0.2615f, 0.9334f, 0.2452f, 
-0.6187f, 0.747f, -0.243f, 
-0.0375f, -0.8401f, -0.5411f, 
-0.0054f, 0.9691f, 0.2464f, 
-0.3587f, 0.3388f, 0.8697f, 
-0.3993f, 0.6582f, -0.6381f, 
--0.3476f, -0.4464f, -0.8245f, 
-0.099f, 0.9692f, 0.2251f, 
--0.3666f, -0.3412f, 0.8655f, 
-0.0396f, 0.153f, -0.9874f, 
-0.0349f, 0.9969f, -0.0698f, 
-0.1096f, 0.985f, 0.1324f, 
--0.0578f, -0.9861f, 0.1556f, 
-0.4479f, -0.5145f, -0.7311f, 
-0.6924f, 0.2083f, -0.6907f, 
-0.6096f, 0.747f, 0.265f, 
--0.3508f, -0.3415f, -0.8719f, 
--0.6215f, 0.4454f, -0.6443f, 
--0.4942f, -0.7178f, 0.4903f, 
--0.9402f, -0.3403f, -0.0085f, 
-0.0056f, -0.0358f, 0.9993f, 
-0.2615f, 0.9334f, -0.2452f, 
--0.0024f, 0.0291f, -0.9995f, 
--0.2667f, 0.9637f, -0.001f, 
-0.0569f, -0.2712f, -0.9608f, 
-0.7463f, 0.254f, 0.615f, 
-0.5153f, 0.6516f, -0.5564f, 
-0.0223f, -0.9986f, 0.0462f, 
-0.3666f, -0.3412f, -0.8655f, 
-0.0578f, -0.9861f, -0.1556f, 
-0.6111f, 0.4984f, 0.6148f, 
--0.243f, 0.747f, -0.6187f, 
--0.0092f, 0.2338f, -0.9722f, 
-0.478f, 0.7474f, -0.4612f, 
--0.0058f, -0.4457f, -0.8951f, 
--0.4856f, -0.6774f, -0.5524f, 
-0.54f, 0.6414f, 0.5448f, 
--0.3365f, -0.4466f, 0.829f, 
--0.2257f, 0.795f, 0.5629f, 
-0.8055f, 0.4452f, 0.3909f, 
-0.3729f, 0.208f, 0.9042f, 
--0.727f, -0.2562f, 0.6369f, 
--0.0514f, -0.9986f, 0.0029f, 
-0.9159f, 0.1555f, -0.3699f, 
-0.0019f, -0.2377f, -0.9713f, 
-0.4942f, -0.7178f, -0.4903f, 
-0.6497f, -0.4127f, 0.6383f, 
-0.0089f, 0.0486f, -0.9987f, 
--0.0213f, 0.6301f, -0.7761f, 
--0.9269f, -0.3751f, 0.0038f, 
--0.1215f, 0.9852f, 0.1207f, 
--0.5856f, 0.5198f, 0.6218f, 
-0.8655f, -0.3412f, 0.3666f, 
--0.2464f, 0.9691f, 0.0054f, 
-0.0123f, 0.1386f, 0.9902f, 
-0.0179f, -0.0369f, 0.9991f, 
--0.1207f, 0.9852f, -0.1215f, 
--0.0081f, 0.5671f, 0.8235f, 
--0.8689f, 0.3387f, -0.3607f, 
-0.0062f, 0.0309f, -0.9995f, 
-0.3365f, -0.4466f, -0.829f, 
--0.3787f, 0.2424f, -0.8931f, 
--0.2904f, 0.4454f, -0.8468f, 
--0.8707f, 0.4915f, 0.0133f, 
-0.163f, -0.8182f, 0.5512f, 
-0.4337f, -0.8052f, 0.4041f, 
-0.0514f, -0.9986f, -0.0029f, 
--0.0084f, 0.1303f, 0.9914f, 
--0.706f, -0.0681f, -0.7048f, 
--0.556f, -0.8049f, -0.2071f, 
-0.8448f, 0.4045f, 0.3501f, 
-0.4259f, -0.5474f, 0.7203f, 
--0.6907f, 0.2083f, -0.6924f, 
-0.1215f, 0.9852f, -0.1207f, 
--0.1263f, 0.9332f, -0.3361f, 
-0.7711f, -0.0741f, -0.6323f, 
-0.2464f, 0.9691f, -0.0054f, 
-0.1774f, 0.9693f, 0.1697f, 
--0.9042f, 0.208f, 0.3729f, 
--0.8393f, -0.4118f, 0.3548f, 
-0.6888f, -0.7219f, -0.0648f, 
-0.1556f, -0.9861f, 0.0578f, 
-0.3271f, 0.9333f, 0.1478f, 
--0.0024f, 0.2379f, 0.9712f, 
--0.0026f, 0.4969f, 0.8677f, 
-0.0f, 1.0f, 0.0f, 
-0.1912f, -0.9815f, -0.0025f, 
--0.3762f, -0.6681f, 0.6418f, 
--0.7759f, 0.0432f, 0.6292f, 
--0.0208f, -0.8044f, -0.5936f, 
--0.2274f, 0.8822f, -0.4122f, 
-0.7532f, 0.5939f, 0.2824f, 
--0.9221f, -0.0681f, -0.3807f, 
--0.2198f, 0.8494f, 0.4796f, 
-0.0065f, -0.7656f, 0.6431f, 
--0.5876f, 0.4472f, -0.6742f, 
-0.7981f, -0.6024f, 0.0036f, 
--0.0383f, -0.9986f, -0.0341f, 
--0.6369f, -0.2562f, -0.727f, 
--0.5497f, 0.5937f, 0.5875f, 
-0.1084f, 0.9431f, 0.314f, 
-0.9042f, 0.208f, -0.3729f, 
--0.6659f, 0.3392f, 0.6644f, 
-0.8393f, -0.4118f, -0.3548f, 
-0.0029f, -0.9986f, 0.0514f, 
--0.9647f, -0.2552f, -0.0635f, 
--0.2294f, 0.9692f, -0.0888f, 
-0.0026f, 0.4969f, -0.8677f, 
-0.2452f, 0.9334f, 0.2615f, 
-0.5171f, -0.4876f, -0.7033f, 
--0.8951f, -0.4457f, 0.0058f, 
--0.5936f, -0.8044f, 0.0208f, 
-0.5642f, -0.5426f, -0.6222f, 
-0.5938f, 0.4451f, 0.6702f, 
-0.5497f, 0.5937f, -0.5875f, 
-0.6657f, 0.4653f, 0.5832f, 
-0.4857f, -0.6243f, 0.6117f, 
--0.0486f, -0.9986f, -0.0168f, 
--0.6468f, 0.4051f, 0.646f, 
-0.6659f, 0.3392f, -0.6644f, 
-0.1833f, 0.9735f, -0.1365f, 
-0.3955f, 0.8505f, 0.3465f, 
-0.5139f, -0.6913f, 0.5078f, 
-0.8023f, 0.4978f, -0.329f, 
--0.001f, 0.338f, 0.9411f, 
--0.2496f, 0.8321f, -0.4951f, 
-0.8951f, -0.4457f, -0.0058f, 
-0.233f, 0.8502f, 0.4719f, 
--0.0168f, -0.9986f, 0.0486f, 
-0.5936f, -0.8044f, -0.0208f, 
--0.05f, 0.3155f, 0.9475f, 
-0.6585f, -0.342f, 0.6703f, 
-0.4909f, -0.1864f, -0.8509f, 
--0.37f, 0.9238f, -0.0973f, 
-0.6468f, 0.4051f, -0.646f, 
-0.0059f, -0.986f, 0.1662f, 
--0.3724f, 0.9278f, -0.0202f, 
--0.3501f, 0.4045f, 0.8448f, 
--0.0425f, 0.8398f, -0.5411f, 
--0.1684f, 0.8499f, 0.4991f, 
--0.6665f, -0.6907f, 0.2803f, 
--0.2251f, 0.9692f, 0.099f, 
-0.9241f, -0.3816f, -0.0169f, 
-0.001f, 0.338f, -0.9411f, 
--0.9411f, 0.338f, -0.001f, 
--0.8666f, -0.2559f, -0.4282f, 
-0.0262f, 0.5183f, -0.8547f, 
-0.3014f, -0.6034f, 0.7382f, 
-0.0168f, -0.9986f, -0.0486f, 
--0.3548f, -0.4118f, -0.8393f, 
--0.6023f, -0.5297f, 0.5971f, 
--0.9033f, 0.2079f, -0.375f, 
--0.8938f, 0.4452f, -0.0532f, 
-0.6044f, 0.7397f, 0.2957f, 
-0.0008f, -0.0678f, 0.9976f, 
-0.7058f, 0.0906f, -0.7025f, 
-0.8453f, -0.4121f, 0.3399f, 
--0.3595f, 0.933f, -0.0115f, 
-0.6698f, -0.6907f, 0.2723f, 
--0.8995f, 0.2429f, -0.3629f, 
--0.6366f, -0.447f, -0.6283f, 
-0.3501f, 0.4045f, -0.8448f, 
--0.01f, -0.0605f, 0.9981f, 
--0.8003f, 0.4978f, -0.334f, 
-0.1684f, 0.8499f, -0.4991f, 
-0.6665f, -0.6907f, -0.2803f, 
-0.2251f, 0.9692f, -0.099f, 
--0.0036f, -0.6024f, 0.7981f, 
-0.6637f, -0.2967f, -0.6865f, 
--0.081f, 0.985f, 0.1518f, 
-0.0084f, 0.2423f, 0.9701f, 
-0.0071f, -0.9029f, -0.4296f, 
--0.8679f, 0.4966f, -0.0026f, 
-0.0123f, 0.5735f, 0.819f, 
--0.0005f, 0.985f, 0.1719f, 
-0.6428f, -0.7172f, 0.2688f, 
-0.6588f, -0.3366f, 0.6727f, 
-0.1213f, -0.9861f, 0.1128f, 
--0.8931f, 0.2424f, 0.3787f, 
--0.1662f, -0.986f, 0.0059f, 
-0.9994f, 0.0313f, 0.0095f, 
-0.762f, -0.146f, 0.6308f, 
--0.7731f, 0.0861f, -0.6283f, 
--0.6644f, 0.3392f, -0.6659f, 
--0.0027f, -0.7164f, 0.6976f, 
-0.0036f, -0.6024f, -0.7981f, 
-0.9782f, 0.2075f, 0.0011f, 
-0.0405f, -0.9991f, -0.0018f, 
-0.6882f, -0.703f, 0.179f, 
--0.0115f, 0.933f, 0.3595f, 
-0.0911f, 0.0518f, -0.9944f, 
-0.0005f, 0.985f, -0.1719f, 
-0.5337f, -0.5852f, -0.6104f, 
-0.0042f, -0.6898f, 0.7239f, 
-0.4863f, 0.2366f, 0.8411f, 
-0.4991f, 0.8499f, 0.1684f, 
--0.6543f, 0.7561f, 0.0071f, 
-0.265f, 0.747f, -0.6096f, 
--0.329f, 0.4978f, -0.8023f, 
-0.1662f, -0.986f, -0.0059f, 
--0.3491f, 0.4045f, -0.8452f, 
-0.3321f, 0.5936f, 0.733f, 
--0.065f, 0.9851f, -0.1587f, 
--0.6283f, -0.447f, 0.6366f, 
-0.0027f, -0.7164f, -0.6976f, 
--0.1316f, 0.6339f, 0.762f, 
--0.5609f, -0.604f, -0.5661f, 
--0.8452f, 0.4045f, 0.3491f, 
--0.5263f, 0.8495f, 0.0346f, 
-0.0115f, 0.933f, -0.3595f, 
--0.0346f, 0.8495f, -0.5263f, 
-0.0077f, -0.4109f, 0.9116f, 
-0.5758f, -0.8175f, -0.0017f, 
--0.0011f, 0.2075f, 0.9782f, 
--0.0689f, -0.9861f, -0.1509f, 
-0.2934f, -0.5928f, -0.7499f, 
-0.0724f, 0.1198f, -0.9901f, 
--0.7367f, -0.275f, -0.6176f, 
--0.3131f, 0.8154f, 0.4868f, 
--0.0114f, 0.0022f, 0.9999f, 
-0.6283f, -0.447f, -0.6366f, 
-0.8452f, 0.4045f, -0.3491f, 
-0.5263f, 0.8495f, -0.0346f, 
--0.6383f, -0.4127f, 0.6497f, 
--0.1719f, 0.985f, -0.0005f, 
--0.6703f, -0.342f, 0.6585f, 
--0.0085f, -0.3403f, 0.9402f, 
--0.646f, 0.4051f, -0.6468f, 
-0.0011f, 0.2075f, -0.9782f, 
--0.7216f, -0.3071f, 0.6204f, 
-0.0282f, 0.0023f, -0.9995f, 
--0.2483f, 0.6806f, -0.6892f, 
-0.1518f, 0.985f, 0.081f, 
-0.047f, 0.0466f, -0.9978f, 
-0.7354f, -0.6034f, 0.3082f, 
-0.6919f, 0.2428f, 0.6798f, 
-0.4086f, -0.3626f, -0.8375f, 
-0.6383f, -0.4127f, -0.6497f, 
--0.5875f, 0.5937f, -0.5497f, 
-0.6703f, -0.342f, -0.6585f, 
--0.8245f, -0.4464f, 0.3476f, 
-0.0085f, -0.3403f, -0.9402f, 
--0.0591f, -0.0663f, 0.996f, 
-0.0f, -1.0f, 0.0f, 
-0.4612f, 0.7474f, 0.478f, 
-0.6976f, -0.7164f, 0.0027f, 
--0.9148f, 0.4037f, -0.0005f, 
-0.173f, -0.8158f, -0.5518f, 
--0.3607f, 0.3387f, 0.8689f, 
-0.7836f, -0.2411f, 0.5724f, 
--0.1985f, 0.8026f, -0.5623f, 
--0.3094f, -0.2556f, -0.9159f, 
--0.2803f, -0.6907f, -0.6665f, 
-0.8245f, -0.4464f, -0.3476f, 
-0.829f, -0.4466f, 0.3365f, 
--0.4848f, 0.7385f, 0.4683f, 
-0.1583f, 0.9851f, 0.066f, 
--0.0077f, 0.7656f, -0.6432f, 
--0.0162f, 0.985f, 0.1717f, 
-0.1717f, 0.985f, 0.0162f, 
-0.0244f, 0.9805f, -0.1949f, 
--0.2461f, -0.805f, -0.5397f, 
-0.0262f, 0.5934f, 0.8044f, 
-0.142f, 0.1881f, 0.9718f, 
-0.1846f, 0.1002f, 0.9776f, 
-0.4903f, -0.7178f, 0.4942f, 
-0.2637f, -0.7172f, 0.6449f, 
-0.3822f, -0.0678f, 0.9215f, 
--0.0054f, 0.9691f, -0.2464f, 
-0.3607f, 0.3387f, -0.8689f, 
--0.3587f, 0.3388f, -0.8697f, 
--0.5694f, -0.8219f, 0.0081f, 
--0.1324f, 0.985f, 0.1096f, 
--0.099f, 0.9692f, -0.2251f, 
--0.6702f, 0.4451f, 0.5938f, 
-0.0077f, -0.9976f, 0.0684f, 
--0.5661f, -0.604f, 0.5609f, 
--0.1096f, 0.985f, -0.1324f, 
--0.6096f, 0.747f, -0.265f, 
--0.0015f, 0.0295f, -0.9995f, 
-0.3476f, -0.4464f, 0.8245f, 
--0.0635f, -0.2552f, 0.9647f, 
--0.8468f, 0.4454f, 0.2904f, 
--0.4719f, 0.8502f, 0.233f, 
--0.0502f, 0.8385f, 0.5425f, 
--0.6671f, 0.7448f, -0.0116f, 
-0.3508f, -0.3415f, 0.8719f, 
--0.4119f, 0.6135f, -0.6736f, 
--0.2688f, -0.7172f, 0.6428f, 
--0.4041f, -0.8052f, 0.4337f, 
--0.375f, 0.2079f, 0.9033f, 
--0.0223f, -0.9986f, -0.0462f, 
-0.6702f, 0.4451f, -0.5938f, 
-0.9402f, -0.3403f, 0.0085f, 
-0.5661f, -0.604f, -0.5609f, 
--0.6252f, 0.7406f, 0.246f, 
--0.0341f, -0.9986f, 0.0383f, 
--0.6111f, 0.4984f, -0.6148f, 
-0.6655f, 0.7462f, 0.0117f, 
-0.1233f, 0.199f, 0.9722f, 
-0.8468f, 0.4454f, -0.2904f, 
-0.7383f, 0.2702f, -0.6179f, 
--0.8055f, 0.4452f, -0.3909f, 
--0.3729f, 0.208f, -0.9042f, 
-0.4719f, 0.8502f, -0.233f, 
-0.243f, 0.747f, 0.6187f, 
--0.6497f, -0.4127f, -0.6383f, 
--0.5406f, 0.5651f, -0.623f, 
-0.0058f, -0.4457f, 0.8951f, 
--0.3082f, -0.6034f, 0.7354f, 
--0.8655f, -0.3412f, -0.3666f, 
-0.2688f, -0.7172f, -0.6428f, 
-0.4041f, -0.8052f, -0.4337f, 
-0.375f, 0.2079f, -0.9033f, 
-0.0341f, -0.9986f, -0.0383f, 
--0.9701f, 0.2423f, 0.0084f, 
--0.3807f, -0.0681f, 0.9221f, 
-0.9643f, -0.2551f, 0.0705f, 
--0.8758f, 0.4808f, 0.0415f, 
-0.1207f, 0.9852f, 0.1215f, 
-0.4821f, 0.7724f, 0.4133f, 
--0.0522f, 0.9982f, 0.0278f, 
--0.4337f, -0.8052f, -0.4041f, 
--0.6164f, 0.4198f, 0.6661f, 
--0.8448f, 0.4045f, -0.3501f, 
-0.3082f, -0.6034f, -0.7354f, 
-0.8689f, 0.3387f, 0.3607f, 
-0.6894f, -0.7242f, 0.0091f, 
-0.3787f, 0.2424f, 0.8931f, 
-0.2904f, 0.4454f, 0.8468f, 
-0.6148f, 0.4984f, -0.6111f, 
-0.0501f, 0.985f, 0.1648f, 
--0.5397f, -0.805f, 0.2461f, 
--0.9159f, -0.2556f, 0.3094f, 
-0.706f, -0.0681f, 0.7048f, 
--0.3341f, 0.4972f, 0.8006f, 
-0.556f, -0.8049f, 0.2071f, 
--0.1774f, 0.9693f, -0.1697f, 
-0.6907f, 0.2083f, 0.6924f, 
-0.1263f, 0.9332f, 0.3361f, 
-0.3807f, -0.0681f, -0.9221f, 
--0.1556f, -0.9861f, -0.0578f, 
--0.3271f, 0.9333f, -0.1478f, 
--0.3465f, 0.8505f, 0.3955f, 
-0.5315f, 0.8438f, -0.0735f, 
-0.9737f, 0.2276f, -0.0003f, 
-0.6441f, 0.7648f, -0.0112f, 
--0.7239f, -0.6898f, 0.0042f, 
--0.7532f, 0.5939f, -0.2824f, 
-0.1093f, 0.1415f, -0.9838f, 
-0.5397f, -0.805f, -0.2461f, 
--0.7981f, -0.6024f, -0.0036f, 
-0.9456f, 0.3251f, -0.0052f, 
-0.1278f, 0.9696f, -0.2085f, 
-0.0208f, -0.8044f, 0.5936f, 
-0.1635f, 0.1348f, -0.9772f, 
--0.733f, 0.5936f, 0.3321f, 
--0.0505f, 0.9852f, -0.1635f, 
-0.4089f, -0.9069f, -0.1015f, 
--0.0029f, -0.9986f, -0.0514f, 
--0.1796f, 0.814f, -0.5522f, 
-0.9221f, -0.0681f, 0.3807f, 
-0.0383f, -0.9986f, 0.0341f, 
-0.6369f, -0.2562f, 0.727f, 
-0.3465f, 0.8505f, -0.3955f, 
--0.2452f, 0.9334f, -0.2615f, 
-0.4921f, -0.247f, 0.8346f, 
--0.9976f, -0.0678f, 0.0008f, 
--0.5396f, 0.8418f, -0.0094f, 
-0.2294f, 0.9692f, 0.0888f, 
-0.7239f, -0.6898f, -0.0042f, 
--0.4472f, 0.5952f, 0.6675f, 
--0.6449f, -0.7172f, 0.2637f, 
-0.4543f, 0.2732f, -0.8478f, 
--0.6798f, 0.2428f, 0.6919f, 
--0.5938f, 0.4451f, -0.6702f, 
-0.733f, 0.5936f, -0.3321f, 
--0.3955f, 0.8505f, -0.3465f, 
--0.5139f, -0.6913f, -0.5078f, 
--0.623f, -0.5156f, -0.5881f
-};
-
-/* 1 color   */
-/*255 255 0  */
-
-/* 1024 faces */
-/* numIdx fidx0 fidx1 fidx2 nidx0 nidx1 nidx2 coloridx */
-
-const int numFaces = 1024;
-const int faces[1024][8] = {
-3, 0, 5, 6, 255, 295, 309, 0,
-3, 6, 1, 0, 309, 465, 255, 0,
-3, 1, 6, 7, 465, 309, 134, 0,
-3, 7, 2, 1, 134, 4, 465, 0,
-3, 2, 7, 8, 4, 134, 165, 0,
-3, 8, 3, 2, 165, 448, 4, 0,
-3, 3, 8, 9, 448, 165, 49, 0,
-3, 9, 4, 3, 49, 116, 448, 0,
-3, 5, 10, 11, 295, 248, 106, 0,
-3, 11, 6, 5, 106, 309, 295, 0,
-3, 6, 11, 12, 309, 106, 102, 0,
-3, 12, 7, 6, 102, 134, 309, 0,
-3, 7, 12, 13, 134, 102, 394, 0,
-3, 13, 8, 7, 394, 165, 134, 0,
-3, 8, 13, 14, 165, 394, 180, 0,
-3, 14, 9, 8, 180, 49, 165, 0,
-3, 10, 15, 16, 248, 401, 211, 0,
-3, 16, 11, 10, 211, 106, 248, 0,
-3, 11, 16, 17, 106, 211, 427, 0,
-3, 17, 12, 11, 427, 102, 106, 0,
-3, 12, 17, 18, 102, 427, 455, 0,
-3, 18, 13, 12, 455, 394, 102, 0,
-3, 13, 18, 19, 394, 455, 74, 0,
-3, 19, 14, 13, 74, 180, 394, 0,
-3, 15, 20, 21, 401, 174, 182, 0,
-3, 21, 16, 15, 182, 211, 401, 0,
-3, 16, 21, 22, 211, 182, 507, 0,
-3, 22, 17, 16, 507, 427, 211, 0,
-3, 17, 22, 23, 427, 507, 5, 0,
-3, 23, 18, 17, 5, 455, 427, 0,
-3, 18, 23, 24, 455, 5, 234, 0,
-3, 24, 19, 18, 234, 74, 455, 0,
-3, 20, 25, 26, 174, 386, 20, 0,
-3, 26, 21, 20, 20, 182, 174, 0,
-3, 21, 26, 27, 182, 20, 410, 0,
-3, 27, 22, 21, 410, 507, 182, 0,
-3, 22, 27, 28, 507, 410, 23, 0,
-3, 28, 23, 22, 23, 5, 507, 0,
-3, 23, 28, 29, 5, 23, 485, 0,
-3, 29, 24, 23, 485, 234, 5, 0,
-3, 25, 30, 31, 386, 69, 305, 0,
-3, 31, 26, 25, 305, 20, 386, 0,
-3, 26, 31, 32, 20, 305, 503, 0,
-3, 32, 27, 26, 503, 410, 20, 0,
-3, 27, 32, 33, 410, 503, 405, 0,
-3, 33, 28, 27, 405, 23, 410, 0,
-3, 28, 33, 34, 23, 405, 138, 0,
-3, 34, 29, 28, 138, 485, 23, 0,
-3, 30, 35, 36, 69, 115, 193, 0,
-3, 36, 31, 30, 193, 305, 69, 0,
-3, 31, 36, 37, 305, 193, 270, 0,
-3, 37, 32, 31, 270, 503, 305, 0,
-3, 32, 37, 38, 503, 270, 445, 0,
-3, 38, 33, 32, 445, 405, 503, 0,
-3, 33, 38, 39, 405, 445, 28, 0,
-3, 39, 34, 33, 28, 138, 405, 0,
-3, 35, 40, 41, 115, 467, 495, 0,
-3, 41, 36, 35, 495, 193, 115, 0,
-3, 36, 41, 42, 193, 495, 11, 0,
-3, 42, 37, 36, 11, 270, 193, 0,
-3, 37, 42, 43, 270, 11, 435, 0,
-3, 43, 38, 37, 435, 445, 270, 0,
-3, 38, 43, 44, 445, 435, 322, 0,
-3, 44, 39, 38, 322, 28, 445, 0,
-3, 40, 45, 46, 467, 27, 44, 0,
-3, 46, 41, 40, 44, 495, 467, 0,
-3, 41, 46, 47, 495, 44, 409, 0,
-3, 47, 42, 41, 409, 11, 495, 0,
-3, 42, 47, 48, 11, 409, 428, 0,
-3, 48, 43, 42, 428, 435, 11, 0,
-3, 43, 48, 49, 435, 428, 313, 0,
-3, 49, 44, 43, 313, 322, 435, 0,
-3, 45, 50, 51, 27, 513, 385, 0,
-3, 51, 46, 45, 385, 44, 27, 0,
-3, 46, 51, 52, 44, 385, 382, 0,
-3, 52, 47, 46, 382, 409, 44, 0,
-3, 47, 52, 53, 409, 382, 124, 0,
-3, 53, 48, 47, 124, 428, 409, 0,
-3, 48, 53, 54, 428, 124, 447, 0,
-3, 54, 49, 48, 447, 313, 428, 0,
-3, 50, 55, 56, 513, 136, 478, 0,
-3, 56, 51, 50, 478, 385, 513, 0,
-3, 51, 56, 57, 385, 478, 161, 0,
-3, 57, 52, 51, 161, 382, 385, 0,
-3, 52, 57, 58, 382, 161, 181, 0,
-3, 58, 53, 52, 181, 124, 382, 0,
-3, 53, 58, 59, 124, 181, 348, 0,
-3, 59, 54, 53, 348, 447, 124, 0,
-3, 55, 60, 61, 136, 431, 320, 0,
-3, 61, 56, 55, 320, 478, 136, 0,
-3, 56, 61, 62, 478, 320, 481, 0,
-3, 62, 57, 56, 481, 161, 478, 0,
-3, 57, 62, 63, 161, 481, 53, 0,
-3, 63, 58, 57, 53, 181, 161, 0,
-3, 58, 63, 64, 181, 53, 257, 0,
-3, 64, 59, 58, 257, 348, 181, 0,
-3, 60, 65, 66, 431, 135, 37, 0,
-3, 66, 61, 60, 37, 320, 431, 0,
-3, 61, 66, 67, 320, 37, 408, 0,
-3, 67, 62, 61, 408, 481, 320, 0,
-3, 62, 67, 68, 481, 408, 347, 0,
-3, 68, 63, 62, 347, 53, 481, 0,
-3, 63, 68, 69, 53, 347, 104, 0,
-3, 69, 64, 63, 104, 257, 53, 0,
-3, 65, 70, 71, 135, 191, 524, 0,
-3, 71, 66, 65, 524, 37, 135, 0,
-3, 66, 71, 72, 37, 524, 319, 0,
-3, 72, 67, 66, 319, 408, 37, 0,
-3, 67, 72, 73, 408, 319, 183, 0,
-3, 73, 68, 67, 183, 347, 408, 0,
-3, 68, 73, 74, 347, 183, 480, 0,
-3, 74, 69, 68, 480, 104, 347, 0,
-3, 70, 75, 76, 191, 483, 328, 0,
-3, 76, 71, 70, 328, 524, 191, 0,
-3, 71, 76, 77, 524, 328, 422, 0,
-3, 77, 72, 71, 422, 319, 524, 0,
-3, 72, 77, 78, 319, 422, 151, 0,
-3, 78, 73, 72, 151, 183, 319, 0,
-3, 73, 78, 79, 183, 151, 273, 0,
-3, 79, 74, 73, 273, 480, 183, 0,
-3, 75, 0, 1, 483, 255, 465, 0,
-3, 1, 76, 75, 465, 328, 483, 0,
-3, 76, 1, 2, 328, 465, 4, 0,
-3, 2, 77, 76, 4, 422, 328, 0,
-3, 77, 2, 3, 422, 4, 448, 0,
-3, 3, 78, 77, 448, 151, 422, 0,
-3, 78, 3, 4, 151, 448, 116, 0,
-3, 4, 79, 78, 116, 273, 151, 0,
-3, 4, 9, 84, 116, 49, 220, 0,
-3, 84, 80, 4, 220, 131, 116, 0,
-3, 80, 84, 85, 131, 220, 476, 0,
-3, 85, 81, 80, 476, 26, 131, 0,
-3, 81, 85, 86, 26, 476, 38, 0,
-3, 86, 82, 81, 38, 336, 26, 0,
-3, 82, 86, 87, 336, 38, 511, 0,
-3, 87, 83, 82, 511, 1, 336, 0,
-3, 9, 14, 88, 49, 180, 103, 0,
-3, 88, 84, 9, 103, 220, 49, 0,
-3, 84, 88, 89, 220, 103, 62, 0,
-3, 89, 85, 84, 62, 476, 220, 0,
-3, 85, 89, 90, 476, 62, 488, 0,
-3, 90, 86, 85, 488, 38, 476, 0,
-3, 86, 90, 91, 38, 488, 484, 0,
-3, 91, 87, 86, 484, 511, 38, 0,
-3, 14, 19, 92, 180, 74, 78, 0,
-3, 92, 88, 14, 78, 103, 180, 0,
-3, 88, 92, 93, 103, 78, 154, 0,
-3, 93, 89, 88, 154, 62, 103, 0,
-3, 89, 93, 94, 62, 154, 190, 0,
-3, 94, 90, 89, 190, 488, 62, 0,
-3, 90, 94, 95, 488, 190, 417, 0,
-3, 95, 91, 90, 417, 484, 488, 0,
-3, 19, 24, 96, 74, 234, 81, 0,
-3, 96, 92, 19, 81, 78, 74, 0,
-3, 92, 96, 97, 78, 81, 274, 0,
-3, 97, 93, 92, 274, 154, 78, 0,
-3, 93, 97, 98, 154, 274, 363, 0,
-3, 98, 94, 93, 363, 190, 154, 0,
-3, 94, 98, 99, 190, 363, 304, 0,
-3, 99, 95, 94, 304, 417, 190, 0,
-3, 24, 29, 100, 234, 485, 287, 0,
-3, 100, 96, 24, 287, 81, 234, 0,
-3, 96, 100, 101, 81, 287, 398, 0,
-3, 101, 97, 96, 398, 274, 81, 0,
-3, 97, 101, 102, 274, 398, 440, 0,
-3, 102, 98, 97, 440, 363, 274, 0,
-3, 98, 102, 103, 363, 440, 466, 0,
-3, 103, 99, 98, 466, 304, 363, 0,
-3, 29, 34, 104, 485, 138, 268, 0,
-3, 104, 100, 29, 268, 287, 485, 0,
-3, 100, 104, 105, 287, 268, 252, 0,
-3, 105, 101, 100, 252, 398, 287, 0,
-3, 101, 105, 106, 398, 252, 141, 0,
-3, 106, 102, 101, 141, 440, 398, 0,
-3, 102, 106, 107, 440, 141, 18, 0,
-3, 107, 103, 102, 18, 466, 440, 0,
-3, 34, 39, 108, 138, 28, 357, 0,
-3, 108, 104, 34, 357, 268, 138, 0,
-3, 104, 108, 109, 268, 357, 127, 0,
-3, 109, 105, 104, 127, 252, 268, 0,
-3, 105, 109, 110, 252, 127, 228, 0,
-3, 110, 106, 105, 228, 141, 252, 0,
-3, 106, 110, 111, 141, 228, 33, 0,
-3, 111, 107, 106, 33, 18, 141, 0,
-3, 39, 44, 112, 28, 322, 396, 0,
-3, 112, 108, 39, 396, 357, 28, 0,
-3, 108, 112, 113, 357, 396, 294, 0,
-3, 113, 109, 108, 294, 127, 357, 0,
-3, 109, 113, 114, 127, 294, 56, 0,
-3, 114, 110, 109, 56, 228, 127, 0,
-3, 110, 114, 115, 228, 56, 517, 0,
-3, 115, 111, 110, 517, 33, 228, 0,
-3, 44, 49, 116, 322, 313, 474, 0,
-3, 116, 112, 44, 474, 396, 322, 0,
-3, 112, 116, 117, 396, 474, 208, 0,
-3, 117, 113, 112, 208, 294, 396, 0,
-3, 113, 117, 118, 294, 208, 301, 0,
-3, 118, 114, 113, 301, 56, 294, 0,
-3, 114, 118, 119, 56, 301, 242, 0,
-3, 119, 115, 114, 242, 517, 56, 0,
-3, 49, 54, 120, 313, 447, 377, 0,
-3, 120, 116, 49, 377, 474, 313, 0,
-3, 116, 120, 121, 474, 377, 333, 0,
-3, 121, 117, 116, 333, 208, 474, 0,
-3, 117, 121, 122, 208, 333, 222, 0,
-3, 122, 118, 117, 222, 301, 208, 0,
-3, 118, 122, 123, 301, 222, 218, 0,
-3, 123, 119, 118, 218, 242, 301, 0,
-3, 54, 59, 124, 447, 348, 350, 0,
-3, 124, 120, 54, 350, 377, 447, 0,
-3, 120, 124, 125, 377, 350, 420, 0,
-3, 125, 121, 120, 420, 333, 377, 0,
-3, 121, 125, 126, 333, 420, 453, 0,
-3, 126, 122, 121, 453, 222, 333, 0,
-3, 122, 126, 127, 222, 453, 147, 0,
-3, 127, 123, 122, 147, 218, 222, 0,
-3, 59, 64, 128, 348, 257, 95, 0,
-3, 128, 124, 59, 95, 350, 348, 0,
-3, 124, 128, 129, 350, 95, 293, 0,
-3, 129, 125, 124, 293, 420, 350, 0,
-3, 125, 129, 130, 420, 293, 378, 0,
-3, 130, 126, 125, 378, 453, 420, 0,
-3, 126, 130, 131, 453, 378, 29, 0,
-3, 131, 127, 126, 29, 147, 453, 0,
-3, 64, 69, 132, 257, 104, 311, 0,
-3, 132, 128, 64, 311, 95, 257, 0,
-3, 128, 132, 133, 95, 311, 419, 0,
-3, 133, 129, 128, 419, 293, 95, 0,
-3, 129, 133, 134, 293, 419, 463, 0,
-3, 134, 130, 129, 463, 378, 293, 0,
-3, 130, 134, 135, 378, 463, 490, 0,
-3, 135, 131, 130, 490, 29, 378, 0,
-3, 69, 74, 136, 104, 480, 284, 0,
-3, 136, 132, 69, 284, 311, 104, 0,
-3, 132, 136, 137, 311, 284, 269, 0,
-3, 137, 133, 132, 269, 419, 311, 0,
-3, 133, 137, 138, 419, 269, 164, 0,
-3, 138, 134, 133, 164, 463, 419, 0,
-3, 134, 138, 139, 463, 164, 45, 0,
-3, 139, 135, 134, 45, 490, 463, 0,
-3, 74, 79, 140, 480, 273, 371, 0,
-3, 140, 136, 74, 371, 284, 480, 0,
-3, 136, 140, 141, 284, 371, 148, 0,
-3, 141, 137, 136, 148, 269, 284, 0,
-3, 137, 141, 142, 269, 148, 251, 0,
-3, 142, 138, 137, 251, 164, 269, 0,
-3, 138, 142, 143, 164, 251, 54, 0,
-3, 143, 139, 138, 54, 45, 164, 0,
-3, 79, 4, 80, 273, 116, 131, 0,
-3, 80, 140, 79, 131, 371, 273, 0,
-3, 140, 80, 81, 371, 131, 26, 0,
-3, 81, 141, 140, 26, 148, 371, 0,
-3, 141, 81, 82, 148, 26, 336, 0,
-3, 82, 142, 141, 336, 251, 148, 0,
-3, 142, 82, 83, 251, 336, 1, 0,
-3, 83, 143, 142, 1, 54, 251, 0,
-3, 83, 87, 148, 1, 511, 404, 0,
-3, 148, 144, 83, 404, 276, 1, 0,
-3, 144, 148, 149, 276, 404, 308, 0,
-3, 149, 145, 144, 308, 520, 276, 0,
-3, 145, 149, 150, 520, 308, 325, 0,
-3, 150, 146, 145, 325, 395, 520, 0,
-3, 146, 150, 151, 395, 325, 384, 0,
-3, 151, 147, 146, 384, 246, 395, 0,
-3, 87, 91, 152, 511, 484, 47, 0,
-3, 152, 148, 87, 47, 404, 511, 0,
-3, 148, 152, 153, 404, 47, 272, 0,
-3, 153, 149, 148, 272, 308, 404, 0,
-3, 149, 153, 154, 308, 272, 415, 0,
-3, 154, 150, 149, 415, 325, 308, 0,
-3, 150, 154, 155, 325, 415, 83, 0,
-3, 155, 151, 150, 83, 384, 325, 0,
-3, 91, 95, 156, 484, 417, 430, 0,
-3, 156, 152, 91, 430, 47, 484, 0,
-3, 152, 156, 157, 47, 430, 137, 0,
-3, 157, 153, 152, 137, 272, 47, 0,
-3, 153, 157, 158, 272, 137, 416, 0,
-3, 158, 154, 153, 416, 415, 272, 0,
-3, 154, 158, 159, 415, 416, 297, 0,
-3, 159, 155, 154, 297, 83, 415, 0,
-3, 95, 99, 160, 417, 304, 458, 0,
-3, 160, 156, 95, 458, 430, 417, 0,
-3, 156, 160, 161, 430, 458, 343, 0,
-3, 161, 157, 156, 343, 137, 430, 0,
-3, 157, 161, 162, 137, 343, 334, 0,
-3, 162, 158, 157, 334, 416, 137, 0,
-3, 158, 162, 163, 416, 334, 317, 0,
-3, 163, 159, 158, 317, 297, 416, 0,
-3, 99, 103, 164, 304, 466, 187, 0,
-3, 164, 160, 99, 187, 458, 304, 0,
-3, 160, 164, 165, 458, 187, 117, 0,
-3, 165, 161, 160, 117, 343, 458, 0,
-3, 161, 165, 166, 343, 117, 438, 0,
-3, 166, 162, 161, 438, 334, 343, 0,
-3, 162, 166, 167, 334, 438, 459, 0,
-3, 167, 163, 162, 459, 317, 334, 0,
-3, 103, 107, 168, 466, 18, 353, 0,
-3, 168, 164, 103, 353, 187, 466, 0,
-3, 164, 168, 169, 187, 353, 123, 0,
-3, 169, 165, 164, 123, 117, 187, 0,
-3, 165, 169, 170, 117, 123, 168, 0,
-3, 170, 166, 165, 168, 438, 117, 0,
-3, 166, 170, 171, 438, 168, 426, 0,
-3, 171, 167, 166, 426, 459, 438, 0,
-3, 107, 111, 172, 18, 33, 390, 0,
-3, 172, 168, 107, 390, 353, 18, 0,
-3, 168, 172, 173, 353, 390, 290, 0,
-3, 173, 169, 168, 290, 123, 353, 0,
-3, 169, 173, 174, 123, 290, 522, 0,
-3, 174, 170, 169, 522, 168, 123, 0,
-3, 170, 174, 175, 168, 522, 87, 0,
-3, 175, 171, 170, 87, 426, 168, 0,
-3, 111, 115, 176, 33, 517, 260, 0,
-3, 176, 172, 111, 260, 390, 33, 0,
-3, 172, 176, 177, 390, 260, 497, 0,
-3, 177, 173, 172, 497, 290, 390, 0,
-3, 173, 177, 178, 290, 497, 126, 0,
-3, 178, 174, 173, 126, 522, 290, 0,
-3, 174, 178, 179, 522, 126, 501, 0,
-3, 179, 175, 174, 501, 87, 522, 0,
-3, 115, 119, 180, 517, 242, 130, 0,
-3, 180, 176, 115, 130, 260, 517, 0,
-3, 176, 180, 181, 260, 130, 34, 0,
-3, 181, 177, 176, 34, 497, 260, 0,
-3, 177, 181, 182, 497, 34, 46, 0,
-3, 182, 178, 177, 46, 126, 497, 0,
-3, 178, 182, 183, 126, 46, 105, 0,
-3, 183, 179, 178, 105, 501, 126, 0,
-3, 119, 123, 184, 242, 218, 310, 0,
-3, 184, 180, 119, 310, 130, 242, 0,
-3, 180, 184, 185, 130, 310, 528, 0,
-3, 185, 181, 180, 528, 34, 130, 0,
-3, 181, 185, 186, 34, 528, 145, 0,
-3, 186, 182, 181, 145, 46, 34, 0,
-3, 182, 186, 187, 46, 145, 356, 0,
-3, 187, 183, 182, 356, 105, 46, 0,
-3, 123, 127, 188, 218, 147, 156, 0,
-3, 188, 184, 123, 156, 310, 218, 0,
-3, 184, 188, 189, 310, 156, 402, 0,
-3, 189, 185, 184, 402, 528, 310, 0,
-3, 185, 189, 190, 528, 402, 146, 0,
-3, 190, 186, 185, 146, 145, 528, 0,
-3, 186, 190, 191, 145, 146, 17, 0,
-3, 191, 187, 186, 17, 356, 145, 0,
-3, 127, 131, 192, 147, 29, 184, 0,
-3, 192, 188, 127, 184, 156, 147, 0,
-3, 188, 192, 193, 156, 184, 63, 0,
-3, 193, 189, 188, 63, 402, 156, 0,
-3, 189, 193, 194, 402, 63, 354, 0,
-3, 194, 190, 189, 354, 146, 402, 0,
-3, 190, 194, 195, 146, 354, 335, 0,
-3, 195, 191, 190, 335, 17, 146, 0,
-3, 131, 135, 196, 29, 490, 210, 0,
-3, 196, 192, 131, 210, 184, 29, 0,
-3, 192, 196, 197, 184, 210, 129, 0,
-3, 197, 193, 192, 129, 63, 184, 0,
-3, 193, 197, 198, 63, 129, 461, 0,
-3, 198, 194, 193, 461, 354, 63, 0,
-3, 194, 198, 199, 354, 461, 475, 0,
-3, 199, 195, 194, 475, 335, 354, 0,
-3, 135, 139, 200, 490, 45, 370, 0,
-3, 200, 196, 135, 370, 210, 490, 0,
-3, 196, 200, 201, 210, 370, 143, 0,
-3, 201, 197, 196, 143, 129, 210, 0,
-3, 197, 201, 202, 129, 143, 195, 0,
-3, 202, 198, 197, 195, 461, 129, 0,
-3, 198, 202, 203, 461, 195, 444, 0,
-3, 203, 199, 198, 444, 475, 461, 0,
-3, 139, 143, 204, 45, 54, 403, 0,
-3, 204, 200, 139, 403, 370, 45, 0,
-3, 200, 204, 205, 370, 403, 315, 0,
-3, 205, 201, 200, 315, 143, 370, 0,
-3, 201, 205, 206, 143, 315, 7, 0,
-3, 206, 202, 201, 7, 195, 143, 0,
-3, 202, 206, 207, 195, 7, 101, 0,
-3, 207, 203, 202, 101, 444, 195, 0,
-3, 143, 83, 144, 54, 1, 276, 0,
-3, 144, 204, 143, 276, 403, 54, 0,
-3, 204, 144, 145, 403, 276, 520, 0,
-3, 145, 205, 204, 520, 315, 403, 0,
-3, 205, 145, 146, 315, 520, 395, 0,
-3, 146, 206, 205, 395, 7, 315, 0,
-3, 206, 146, 147, 7, 395, 246, 0,
-3, 147, 207, 206, 246, 101, 7, 0,
-3, 147, 151, 212, 246, 384, 486, 0,
-3, 212, 208, 147, 486, 279, 246, 0,
-3, 208, 212, 213, 279, 486, 231, 0,
-3, 213, 209, 208, 231, 349, 279, 0,
-3, 209, 213, 214, 349, 231, 0, 0,
-3, 214, 210, 209, 0, 216, 349, 0,
-3, 210, 214, 211, 216, 0, 393, 0,
-3, 211, 211, 210, 393, 393, 216, 0,
-3, 151, 155, 215, 384, 83, 215, 0,
-3, 215, 212, 151, 215, 486, 384, 0,
-3, 212, 215, 216, 486, 215, 327, 0,
-3, 216, 213, 212, 327, 231, 486, 0,
-3, 213, 216, 217, 231, 327, 512, 0,
-3, 217, 214, 213, 512, 0, 231, 0,
-3, 214, 217, 211, 0, 512, 393, 0,
-3, 211, 211, 214, 393, 393, 0, 0,
-3, 155, 159, 218, 83, 297, 149, 0,
-3, 218, 215, 155, 149, 215, 83, 0,
-3, 215, 218, 219, 215, 149, 91, 0,
-3, 219, 216, 215, 91, 327, 215, 0,
-3, 216, 219, 220, 327, 91, 177, 0,
-3, 220, 217, 216, 177, 512, 327, 0,
-3, 217, 220, 211, 512, 177, 393, 0,
-3, 211, 211, 217, 393, 393, 512, 0,
-3, 159, 163, 221, 297, 317, 504, 0,
-3, 221, 218, 159, 504, 149, 297, 0,
-3, 218, 221, 222, 149, 504, 285, 0,
-3, 222, 219, 218, 285, 91, 149, 0,
-3, 219, 222, 223, 91, 285, 254, 0,
-3, 223, 220, 219, 254, 177, 91, 0,
-3, 220, 223, 211, 177, 254, 393, 0,
-3, 211, 211, 220, 393, 393, 177, 0,
-3, 163, 167, 224, 317, 459, 125, 0,
-3, 224, 221, 163, 125, 504, 317, 0,
-3, 221, 224, 225, 504, 125, 162, 0,
-3, 225, 222, 221, 162, 285, 504, 0,
-3, 222, 225, 226, 285, 162, 278, 0,
-3, 226, 223, 222, 278, 254, 285, 0,
-3, 223, 226, 211, 254, 278, 393, 0,
-3, 211, 211, 223, 393, 393, 254, 0,
-3, 167, 171, 227, 459, 426, 439, 0,
-3, 227, 224, 167, 439, 125, 459, 0,
-3, 224, 227, 228, 125, 439, 60, 0,
-3, 228, 225, 224, 60, 162, 125, 0,
-3, 225, 228, 229, 162, 60, 446, 0,
-3, 229, 226, 225, 446, 278, 162, 0,
-3, 226, 229, 211, 278, 446, 393, 0,
-3, 211, 211, 226, 393, 393, 278, 0,
-3, 171, 175, 230, 426, 87, 482, 0,
-3, 230, 227, 171, 482, 439, 426, 0,
-3, 227, 230, 231, 439, 482, 92, 0,
-3, 231, 228, 227, 92, 60, 439, 0,
-3, 228, 231, 232, 60, 92, 110, 0,
-3, 232, 229, 228, 110, 446, 60, 0,
-3, 229, 232, 211, 446, 110, 393, 0,
-3, 211, 211, 229, 393, 393, 446, 0,
-3, 175, 179, 233, 87, 501, 261, 0,
-3, 233, 230, 175, 261, 482, 87, 0,
-3, 230, 233, 234, 482, 261, 329, 0,
-3, 234, 231, 230, 329, 92, 482, 0,
-3, 231, 234, 235, 92, 329, 192, 0,
-3, 235, 232, 231, 192, 110, 92, 0,
-3, 232, 235, 211, 110, 192, 393, 0,
-3, 211, 211, 232, 393, 393, 110, 0,
-3, 179, 183, 236, 501, 105, 219, 0,
-3, 236, 233, 179, 219, 261, 501, 0,
-3, 233, 236, 237, 261, 219, 491, 0,
-3, 237, 234, 233, 491, 329, 261, 0,
-3, 234, 237, 238, 329, 491, 267, 0,
-3, 238, 235, 234, 267, 192, 329, 0,
-3, 235, 238, 211, 192, 267, 393, 0,
-3, 211, 211, 235, 393, 393, 192, 0,
-3, 183, 187, 239, 105, 356, 472, 0,
-3, 239, 236, 183, 472, 219, 105, 0,
-3, 236, 239, 240, 219, 472, 48, 0,
-3, 240, 237, 236, 48, 491, 219, 0,
-3, 237, 240, 241, 491, 48, 247, 0,
-3, 241, 238, 237, 247, 267, 491, 0,
-3, 238, 241, 211, 267, 247, 393, 0,
-3, 211, 211, 238, 393, 393, 267, 0,
-3, 187, 191, 242, 356, 17, 411, 0,
-3, 242, 239, 187, 411, 472, 356, 0,
-3, 239, 242, 243, 472, 411, 364, 0,
-3, 243, 240, 239, 364, 48, 472, 0,
-3, 240, 243, 244, 48, 364, 441, 0,
-3, 244, 241, 240, 441, 247, 48, 0,
-3, 241, 244, 211, 247, 441, 393, 0,
-3, 211, 211, 241, 393, 393, 247, 0,
-3, 191, 195, 245, 17, 335, 239, 0,
-3, 245, 242, 191, 239, 411, 17, 0,
-3, 242, 245, 246, 411, 239, 13, 0,
-3, 246, 243, 242, 13, 364, 411, 0,
-3, 243, 246, 247, 364, 13, 509, 0,
-3, 247, 244, 243, 509, 441, 364, 0,
-3, 244, 247, 211, 441, 509, 393, 0,
-3, 211, 211, 244, 393, 393, 441, 0,
-3, 195, 199, 248, 335, 475, 144, 0,
-3, 248, 245, 195, 144, 239, 335, 0,
-3, 245, 248, 249, 239, 144, 179, 0,
-3, 249, 246, 245, 179, 13, 239, 0,
-3, 246, 249, 250, 13, 179, 298, 0,
-3, 250, 247, 246, 298, 509, 13, 0,
-3, 247, 250, 211, 509, 298, 393, 0,
-3, 211, 211, 247, 393, 393, 509, 0,
-3, 199, 203, 251, 475, 444, 462, 0,
-3, 251, 248, 199, 462, 144, 475, 0,
-3, 248, 251, 252, 144, 462, 76, 0,
-3, 252, 249, 248, 76, 179, 144, 0,
-3, 249, 252, 253, 179, 76, 464, 0,
-3, 253, 250, 249, 464, 298, 179, 0,
-3, 250, 253, 211, 298, 464, 393, 0,
-3, 211, 211, 250, 393, 393, 298, 0,
-3, 203, 207, 254, 444, 101, 500, 0,
-3, 254, 251, 203, 500, 462, 444, 0,
-3, 251, 254, 255, 462, 500, 113, 0,
-3, 255, 252, 251, 113, 76, 462, 0,
-3, 252, 255, 256, 76, 113, 128, 0,
-3, 256, 253, 252, 128, 464, 76, 0,
-3, 253, 256, 211, 464, 128, 393, 0,
-3, 211, 211, 253, 393, 393, 464, 0,
-3, 207, 147, 208, 101, 246, 279, 0,
-3, 208, 254, 207, 279, 500, 101, 0,
-3, 254, 208, 209, 500, 279, 349, 0,
-3, 209, 255, 254, 349, 113, 500, 0,
-3, 255, 209, 210, 113, 349, 216, 0,
-3, 210, 256, 255, 216, 128, 113, 0,
-3, 256, 210, 211, 128, 216, 393, 0,
-3, 211, 211, 256, 393, 393, 128, 0,
-3, 257, 262, 263, 425, 244, 58, 0,
-3, 263, 258, 257, 58, 337, 425, 0,
-3, 258, 263, 264, 337, 58, 214, 0,
-3, 264, 259, 258, 214, 236, 337, 0,
-3, 259, 264, 265, 236, 214, 266, 0,
-3, 265, 260, 259, 266, 32, 236, 0,
-3, 260, 265, 266, 32, 266, 331, 0,
-3, 266, 261, 260, 331, 109, 32, 0,
-3, 262, 267, 268, 244, 233, 369, 0,
-3, 268, 263, 262, 369, 58, 244, 0,
-3, 263, 268, 269, 58, 369, 71, 0,
-3, 269, 264, 263, 71, 214, 58, 0,
-3, 264, 269, 270, 214, 71, 392, 0,
-3, 270, 265, 264, 392, 266, 214, 0,
-3, 265, 270, 271, 266, 392, 312, 0,
-3, 271, 266, 265, 312, 331, 266, 0,
-3, 267, 272, 273, 233, 12, 434, 0,
-3, 273, 268, 267, 434, 369, 233, 0,
-3, 268, 273, 274, 369, 434, 188, 0,
-3, 274, 269, 268, 188, 71, 369, 0,
-3, 269, 274, 275, 71, 188, 201, 0,
-3, 275, 270, 269, 201, 392, 71, 0,
-3, 270, 275, 276, 392, 201, 238, 0,
-3, 276, 271, 270, 238, 312, 392, 0,
-3, 272, 277, 278, 12, 142, 114, 0,
-3, 278, 273, 272, 114, 434, 12, 0,
-3, 273, 278, 279, 434, 114, 173, 0,
-3, 279, 274, 273, 173, 188, 434, 0,
-3, 274, 279, 280, 188, 173, 14, 0,
-3, 280, 275, 274, 14, 201, 188, 0,
-3, 275, 280, 281, 201, 14, 15, 0,
-3, 281, 276, 275, 15, 238, 201, 0,
-3, 277, 282, 283, 142, 407, 288, 0,
-3, 283, 278, 277, 288, 114, 142, 0,
-3, 278, 283, 284, 114, 288, 400, 0,
-3, 284, 279, 278, 400, 173, 114, 0,
-3, 279, 284, 285, 173, 400, 457, 0,
-3, 285, 280, 279, 457, 14, 173, 0,
-3, 280, 285, 286, 14, 457, 332, 0,
-3, 286, 281, 280, 332, 15, 14, 0,
-3, 282, 287, 288, 407, 194, 42, 0,
-3, 288, 283, 282, 42, 288, 407, 0,
-3, 283, 288, 289, 288, 42, 380, 0,
-3, 289, 284, 283, 380, 400, 288, 0,
-3, 284, 289, 290, 400, 380, 383, 0,
-3, 290, 285, 284, 383, 457, 400, 0,
-3, 285, 290, 291, 457, 383, 197, 0,
-3, 291, 286, 285, 197, 332, 457, 0,
-3, 287, 292, 293, 194, 321, 152, 0,
-3, 293, 288, 287, 152, 42, 194, 0,
-3, 288, 293, 294, 42, 152, 397, 0,
-3, 294, 289, 288, 397, 380, 42, 0,
-3, 289, 294, 295, 380, 397, 342, 0,
-3, 295, 290, 289, 342, 383, 380, 0,
-3, 290, 295, 296, 383, 342, 225, 0,
-3, 296, 291, 290, 225, 197, 383, 0,
-3, 292, 257, 258, 321, 425, 337, 0,
-3, 258, 293, 292, 337, 152, 321, 0,
-3, 293, 258, 259, 152, 337, 236, 0,
-3, 259, 294, 293, 236, 397, 152, 0,
-3, 294, 259, 260, 397, 236, 32, 0,
-3, 260, 295, 294, 32, 342, 397, 0,
-3, 295, 260, 261, 342, 32, 109, 0,
-3, 261, 296, 295, 109, 225, 342, 0,
-3, 261, 266, 301, 109, 331, 175, 0,
-3, 301, 297, 261, 175, 502, 109, 0,
-3, 297, 301, 302, 502, 175, 265, 0,
-3, 302, 298, 297, 265, 84, 502, 0,
-3, 298, 302, 303, 84, 265, 186, 0,
-3, 303, 299, 298, 186, 496, 84, 0,
-3, 299, 303, 304, 496, 186, 470, 0,
-3, 304, 300, 299, 470, 494, 496, 0,
-3, 266, 271, 305, 331, 312, 170, 0,
-3, 305, 301, 266, 170, 175, 331, 0,
-3, 301, 305, 306, 175, 170, 97, 0,
-3, 306, 302, 301, 97, 265, 175, 0,
-3, 302, 306, 307, 265, 97, 205, 0,
-3, 307, 303, 302, 205, 186, 265, 0,
-3, 303, 307, 308, 186, 205, 449, 0,
-3, 308, 304, 303, 449, 470, 186, 0,
-3, 271, 276, 309, 312, 238, 379, 0,
-3, 309, 305, 271, 379, 170, 312, 0,
-3, 305, 309, 310, 170, 379, 300, 0,
-3, 310, 306, 305, 300, 97, 170, 0,
-3, 306, 310, 311, 97, 300, 118, 0,
-3, 311, 307, 306, 118, 205, 97, 0,
-3, 307, 311, 312, 205, 118, 237, 0,
-3, 312, 308, 307, 237, 449, 205, 0,
-3, 276, 281, 313, 238, 15, 199, 0,
-3, 313, 309, 276, 199, 379, 238, 0,
-3, 309, 313, 314, 379, 199, 94, 0,
-3, 314, 310, 309, 94, 300, 379, 0,
-3, 310, 314, 315, 300, 94, 421, 0,
-3, 315, 311, 310, 421, 118, 300, 0,
-3, 311, 315, 316, 118, 421, 31, 0,
-3, 316, 312, 311, 31, 237, 118, 0,
-3, 281, 286, 317, 15, 332, 367, 0,
-3, 317, 313, 281, 367, 199, 15, 0,
-3, 313, 317, 318, 199, 367, 529, 0,
-3, 318, 314, 313, 529, 94, 199, 0,
-3, 314, 318, 319, 94, 529, 185, 0,
-3, 319, 315, 314, 185, 421, 94, 0,
-3, 315, 319, 320, 421, 185, 89, 0,
-3, 320, 316, 315, 89, 31, 421, 0,
-3, 286, 291, 321, 332, 197, 172, 0,
-3, 321, 317, 286, 172, 367, 332, 0,
-3, 317, 321, 322, 367, 172, 209, 0,
-3, 322, 318, 317, 209, 529, 367, 0,
-3, 318, 322, 323, 529, 209, 429, 0,
-3, 323, 319, 318, 429, 185, 529, 0,
-3, 319, 323, 324, 185, 429, 112, 0,
-3, 324, 320, 319, 112, 89, 185, 0,
-3, 291, 296, 325, 197, 225, 451, 0,
-3, 325, 321, 291, 451, 172, 197, 0,
-3, 321, 325, 326, 172, 451, 66, 0,
-3, 326, 322, 321, 66, 209, 172, 0,
-3, 322, 326, 327, 209, 66, 176, 0,
-3, 327, 323, 322, 176, 429, 209, 0,
-3, 323, 327, 328, 429, 176, 155, 0,
-3, 328, 324, 323, 155, 112, 429, 0,
-3, 296, 261, 297, 225, 109, 502, 0,
-3, 297, 325, 296, 502, 451, 225, 0,
-3, 325, 297, 298, 451, 502, 84, 0,
-3, 298, 326, 325, 84, 66, 451, 0,
-3, 326, 298, 299, 66, 84, 496, 0,
-3, 299, 327, 326, 496, 176, 66, 0,
-3, 327, 299, 300, 176, 496, 494, 0,
-3, 300, 328, 327, 494, 155, 176, 0,
-3, 329, 334, 335, 3, 355, 122, 0,
-3, 335, 330, 329, 122, 518, 3, 0,
-3, 330, 335, 336, 518, 122, 111, 0,
-3, 336, 331, 330, 111, 213, 518, 0,
-3, 331, 336, 337, 213, 111, 473, 0,
-3, 337, 332, 331, 473, 468, 213, 0,
-3, 332, 337, 338, 468, 473, 521, 0,
-3, 338, 333, 332, 521, 346, 468, 0,
-3, 334, 339, 340, 355, 61, 414, 0,
-3, 340, 335, 334, 414, 122, 355, 0,
-3, 335, 340, 341, 122, 414, 413, 0,
-3, 341, 336, 335, 413, 111, 122, 0,
-3, 336, 341, 342, 111, 413, 204, 0,
-3, 342, 337, 336, 204, 473, 111, 0,
-3, 337, 342, 343, 473, 204, 217, 0,
-3, 343, 338, 337, 217, 521, 473, 0,
-3, 339, 344, 345, 61, 55, 100, 0,
-3, 345, 340, 339, 100, 414, 61, 0,
-3, 340, 345, 346, 414, 100, 399, 0,
-3, 346, 341, 340, 399, 413, 414, 0,
-3, 341, 346, 347, 413, 399, 326, 0,
-3, 347, 342, 341, 326, 204, 413, 0,
-3, 342, 347, 348, 204, 326, 221, 0,
-3, 348, 343, 342, 221, 217, 204, 0,
-3, 344, 349, 350, 55, 508, 477, 0,
-3, 350, 345, 344, 477, 100, 55, 0,
-3, 345, 350, 351, 100, 477, 292, 0,
-3, 351, 346, 345, 292, 399, 100, 0,
-3, 346, 351, 352, 399, 292, 73, 0,
-3, 352, 347, 346, 73, 326, 399, 0,
-3, 347, 352, 353, 326, 73, 362, 0,
-3, 353, 348, 347, 362, 221, 326, 0,
-3, 349, 354, 355, 508, 365, 262, 0,
-3, 355, 350, 349, 262, 477, 508, 0,
-3, 350, 355, 356, 477, 262, 93, 0,
-3, 356, 351, 350, 93, 292, 477, 0,
-3, 351, 356, 357, 292, 93, 318, 0,
-3, 357, 352, 351, 318, 73, 292, 0,
-3, 352, 357, 358, 73, 318, 163, 0,
-3, 358, 353, 352, 163, 362, 73, 0,
-3, 354, 359, 360, 365, 140, 340, 0,
-3, 360, 355, 354, 340, 262, 365, 0,
-3, 355, 360, 361, 262, 340, 505, 0,
-3, 361, 356, 355, 505, 93, 262, 0,
-3, 356, 361, 362, 93, 505, 499, 0,
-3, 362, 357, 356, 499, 318, 93, 0,
-3, 357, 362, 363, 318, 499, 159, 0,
-3, 363, 358, 357, 159, 163, 318, 0,
-3, 359, 364, 365, 140, 510, 68, 0,
-3, 365, 360, 359, 68, 340, 140, 0,
-3, 360, 365, 366, 340, 68, 167, 0,
-3, 366, 361, 360, 167, 505, 340, 0,
-3, 361, 366, 367, 505, 167, 245, 0,
-3, 367, 362, 361, 245, 499, 505, 0,
-3, 362, 367, 368, 499, 245, 437, 0,
-3, 368, 363, 362, 437, 159, 499, 0,
-3, 364, 329, 330, 510, 3, 518, 0,
-3, 330, 365, 364, 518, 68, 510, 0,
-3, 365, 330, 331, 68, 518, 213, 0,
-3, 331, 366, 365, 213, 167, 68, 0,
-3, 366, 331, 332, 167, 213, 468, 0,
-3, 332, 367, 366, 468, 245, 167, 0,
-3, 367, 332, 333, 245, 468, 346, 0,
-3, 333, 368, 367, 346, 437, 245, 0,
-3, 333, 338, 373, 346, 521, 79, 0,
-3, 373, 369, 333, 79, 286, 346, 0,
-3, 369, 373, 374, 286, 79, 77, 0,
-3, 374, 370, 369, 77, 22, 286, 0,
-3, 370, 374, 375, 22, 77, 523, 0,
-3, 375, 371, 370, 523, 330, 22, 0,
-3, 371, 375, 376, 330, 523, 259, 0,
-3, 376, 372, 371, 259, 338, 330, 0,
-3, 338, 343, 377, 521, 217, 207, 0,
-3, 377, 373, 338, 207, 79, 521, 0,
-3, 373, 377, 378, 79, 207, 471, 0,
-3, 378, 374, 373, 471, 77, 79, 0,
-3, 374, 378, 379, 77, 471, 198, 0,
-3, 379, 375, 374, 198, 523, 77, 0,
-3, 375, 379, 380, 523, 198, 366, 0,
-3, 380, 376, 375, 366, 259, 523, 0,
-3, 343, 348, 381, 217, 221, 516, 0,
-3, 381, 377, 343, 516, 207, 217, 0,
-3, 377, 381, 382, 207, 516, 250, 0,
-3, 382, 378, 377, 250, 471, 207, 0,
-3, 378, 382, 383, 471, 250, 240, 0,
-3, 383, 379, 378, 240, 198, 471, 0,
-3, 379, 383, 384, 198, 240, 381, 0,
-3, 384, 380, 379, 381, 366, 198, 0,
-3, 348, 353, 385, 221, 362, 230, 0,
-3, 385, 381, 348, 230, 516, 221, 0,
-3, 381, 385, 386, 516, 230, 303, 0,
-3, 386, 382, 381, 303, 250, 516, 0,
-3, 382, 386, 387, 250, 303, 10, 0,
-3, 387, 383, 382, 10, 240, 250, 0,
-3, 383, 387, 388, 240, 10, 283, 0,
-3, 388, 384, 383, 283, 381, 240, 0,
-3, 353, 358, 389, 362, 163, 282, 0,
-3, 389, 385, 353, 282, 230, 362, 0,
-3, 385, 389, 390, 230, 282, 35, 0,
-3, 390, 386, 385, 35, 303, 230, 0,
-3, 386, 390, 391, 303, 35, 243, 0,
-3, 391, 387, 386, 243, 10, 303, 0,
-3, 387, 391, 392, 10, 243, 368, 0,
-3, 392, 388, 387, 368, 283, 10, 0,
-3, 358, 363, 393, 163, 159, 296, 0,
-3, 393, 389, 358, 296, 282, 163, 0,
-3, 389, 393, 394, 282, 296, 160, 0,
-3, 394, 390, 389, 160, 35, 282, 0,
-3, 390, 394, 395, 35, 160, 323, 0,
-3, 395, 391, 390, 323, 243, 35, 0,
-3, 391, 395, 396, 243, 323, 280, 0,
-3, 396, 392, 391, 280, 368, 243, 0,
-3, 363, 368, 397, 159, 437, 275, 0,
-3, 397, 393, 363, 275, 296, 159, 0,
-3, 393, 397, 398, 296, 275, 133, 0,
-3, 398, 394, 393, 133, 160, 296, 0,
-3, 394, 398, 399, 160, 133, 344, 0,
-3, 399, 395, 394, 344, 323, 160, 0,
-3, 395, 399, 400, 323, 344, 108, 0,
-3, 400, 396, 395, 108, 280, 323, 0,
-3, 368, 333, 369, 437, 346, 286, 0,
-3, 369, 397, 368, 286, 275, 437, 0,
-3, 397, 369, 370, 275, 286, 22, 0,
-3, 370, 398, 397, 22, 133, 275, 0,
-3, 398, 370, 371, 133, 22, 330, 0,
-3, 371, 399, 398, 330, 344, 133, 0,
-3, 399, 371, 372, 344, 330, 338, 0,
-3, 372, 400, 399, 338, 108, 344, 0,
-3, 401, 401, 406, 235, 235, 189, 0,
-3, 406, 402, 401, 189, 40, 235, 0,
-3, 402, 406, 407, 40, 189, 306, 0,
-3, 407, 403, 402, 306, 119, 40, 0,
-3, 403, 407, 408, 119, 306, 202, 0,
-3, 408, 404, 403, 202, 443, 119, 0,
-3, 404, 408, 409, 443, 202, 241, 0,
-3, 409, 405, 404, 241, 75, 443, 0,
-3, 401, 401, 410, 235, 235, 263, 0,
-3, 410, 406, 401, 263, 189, 235, 0,
-3, 406, 410, 411, 189, 263, 196, 0,
-3, 411, 407, 406, 196, 306, 189, 0,
-3, 407, 411, 412, 306, 196, 281, 0,
-3, 412, 408, 407, 281, 202, 306, 0,
-3, 408, 412, 413, 202, 281, 121, 0,
-3, 413, 409, 408, 121, 241, 202, 0,
-3, 401, 401, 414, 235, 235, 479, 0,
-3, 414, 410, 401, 479, 263, 235, 0,
-3, 410, 414, 415, 263, 479, 36, 0,
-3, 415, 411, 410, 36, 196, 263, 0,
-3, 411, 415, 416, 196, 36, 436, 0,
-3, 416, 412, 411, 436, 281, 196, 0,
-3, 412, 416, 417, 281, 436, 351, 0,
-3, 417, 413, 412, 351, 121, 281, 0,
-3, 401, 401, 418, 235, 235, 90, 0,
-3, 418, 414, 401, 90, 479, 235, 0,
-3, 414, 418, 419, 479, 90, 361, 0,
-3, 419, 415, 414, 361, 36, 479, 0,
-3, 415, 419, 420, 36, 361, 376, 0,
-3, 420, 416, 415, 376, 436, 36, 0,
-3, 416, 420, 421, 436, 376, 412, 0,
-3, 421, 417, 416, 412, 351, 436, 0,
-3, 401, 401, 422, 235, 235, 52, 0,
-3, 422, 418, 401, 52, 90, 235, 0,
-3, 418, 422, 423, 90, 52, 21, 0,
-3, 423, 419, 418, 21, 361, 90, 0,
-3, 419, 423, 424, 361, 21, 158, 0,
-3, 424, 420, 419, 158, 376, 361, 0,
-3, 420, 424, 425, 376, 158, 39, 0,
-3, 425, 421, 420, 39, 412, 376, 0,
-3, 401, 401, 426, 235, 235, 424, 0,
-3, 426, 422, 401, 424, 52, 235, 0,
-3, 422, 426, 427, 52, 424, 373, 0,
-3, 427, 423, 422, 373, 21, 52, 0,
-3, 423, 427, 428, 21, 373, 375, 0,
-3, 428, 424, 423, 375, 158, 21, 0,
-3, 424, 428, 429, 158, 375, 249, 0,
-3, 429, 425, 424, 249, 39, 158, 0,
-3, 401, 401, 430, 235, 235, 432, 0,
-3, 430, 426, 401, 432, 424, 235, 0,
-3, 426, 430, 431, 424, 432, 229, 0,
-3, 431, 427, 426, 229, 373, 424, 0,
-3, 427, 431, 432, 373, 229, 65, 0,
-3, 432, 428, 427, 65, 375, 373, 0,
-3, 428, 432, 433, 375, 65, 506, 0,
-3, 433, 429, 428, 506, 249, 375, 0,
-3, 401, 401, 434, 235, 235, 302, 0,
-3, 434, 430, 401, 302, 432, 235, 0,
-3, 430, 434, 435, 432, 302, 96, 0,
-3, 435, 431, 430, 96, 229, 432, 0,
-3, 431, 435, 436, 229, 96, 169, 0,
-3, 436, 432, 431, 169, 65, 229, 0,
-3, 432, 436, 437, 65, 169, 59, 0,
-3, 437, 433, 432, 59, 506, 65, 0,
-3, 401, 401, 438, 235, 235, 452, 0,
-3, 438, 434, 401, 452, 302, 235, 0,
-3, 434, 438, 439, 302, 452, 30, 0,
-3, 439, 435, 434, 30, 96, 302, 0,
-3, 435, 439, 440, 96, 30, 460, 0,
-3, 440, 436, 435, 460, 169, 96, 0,
-3, 436, 440, 441, 169, 460, 498, 0,
-3, 441, 437, 436, 498, 59, 169, 0,
-3, 401, 401, 442, 235, 235, 525, 0,
-3, 442, 438, 401, 525, 452, 235, 0,
-3, 438, 442, 443, 452, 525, 456, 0,
-3, 443, 439, 438, 456, 30, 452, 0,
-3, 439, 443, 444, 30, 456, 9, 0,
-3, 444, 440, 439, 9, 460, 30, 0,
-3, 440, 444, 445, 460, 9, 388, 0,
-3, 445, 441, 440, 388, 498, 460, 0,
-3, 401, 401, 446, 235, 235, 212, 0,
-3, 446, 442, 401, 212, 525, 235, 0,
-3, 442, 446, 447, 525, 212, 299, 0,
-3, 447, 443, 442, 299, 456, 525, 0,
-3, 443, 447, 448, 456, 299, 166, 0,
-3, 448, 444, 443, 166, 9, 456, 0,
-3, 444, 448, 449, 9, 166, 72, 0,
-3, 449, 445, 444, 72, 388, 9, 0,
-3, 401, 401, 450, 235, 235, 107, 0,
-3, 450, 446, 401, 107, 212, 235, 0,
-3, 446, 450, 451, 212, 107, 82, 0,
-3, 451, 447, 446, 82, 299, 212, 0,
-3, 447, 451, 452, 299, 82, 391, 0,
-3, 452, 448, 447, 391, 166, 299, 0,
-3, 448, 452, 453, 166, 391, 139, 0,
-3, 453, 449, 448, 139, 72, 166, 0,
-3, 401, 401, 454, 235, 235, 70, 0,
-3, 454, 450, 401, 70, 107, 235, 0,
-3, 450, 454, 455, 107, 70, 51, 0,
-3, 455, 451, 450, 51, 82, 107, 0,
-3, 451, 455, 456, 82, 51, 178, 0,
-3, 456, 452, 451, 178, 391, 82, 0,
-3, 452, 456, 457, 391, 178, 57, 0,
-3, 457, 453, 452, 57, 139, 391, 0,
-3, 401, 401, 458, 235, 235, 442, 0,
-3, 458, 454, 401, 442, 70, 235, 0,
-3, 454, 458, 459, 70, 442, 387, 0,
-3, 459, 455, 454, 387, 51, 70, 0,
-3, 455, 459, 460, 51, 387, 389, 0,
-3, 460, 456, 455, 389, 178, 51, 0,
-3, 456, 460, 461, 178, 389, 264, 0,
-3, 461, 457, 456, 264, 57, 178, 0,
-3, 401, 401, 462, 235, 235, 450, 0,
-3, 462, 458, 401, 450, 442, 235, 0,
-3, 458, 462, 463, 442, 450, 253, 0,
-3, 463, 459, 458, 253, 387, 442, 0,
-3, 459, 463, 464, 387, 253, 86, 0,
-3, 464, 460, 459, 86, 389, 387, 0,
-3, 460, 464, 465, 389, 86, 526, 0,
-3, 465, 461, 460, 526, 264, 389, 0,
-3, 401, 401, 402, 235, 235, 40, 0,
-3, 402, 462, 401, 40, 450, 235, 0,
-3, 462, 402, 403, 450, 40, 119, 0,
-3, 403, 463, 462, 119, 253, 450, 0,
-3, 463, 403, 404, 253, 119, 443, 0,
-3, 404, 464, 463, 443, 86, 253, 0,
-3, 464, 404, 405, 86, 443, 75, 0,
-3, 405, 465, 464, 75, 526, 86, 0,
-3, 405, 409, 470, 75, 241, 519, 0,
-3, 470, 466, 405, 519, 226, 75, 0,
-3, 466, 470, 471, 226, 519, 406, 0,
-3, 471, 467, 466, 406, 98, 226, 0,
-3, 467, 471, 472, 98, 406, 232, 0,
-3, 472, 468, 467, 232, 43, 98, 0,
-3, 468, 472, 473, 43, 232, 345, 0,
-3, 473, 469, 468, 345, 372, 43, 0,
-3, 409, 413, 474, 241, 121, 227, 0,
-3, 474, 470, 409, 227, 519, 241, 0,
-3, 470, 474, 475, 519, 227, 469, 0,
-3, 475, 471, 470, 469, 406, 519, 0,
-3, 471, 475, 476, 406, 469, 258, 0,
-3, 476, 472, 471, 258, 232, 406, 0,
-3, 472, 476, 477, 232, 258, 271, 0,
-3, 477, 473, 472, 271, 345, 232, 0,
-3, 413, 417, 478, 121, 351, 157, 0,
-3, 478, 474, 413, 157, 227, 121, 0,
-3, 474, 478, 479, 227, 157, 80, 0,
-3, 479, 475, 474, 80, 469, 227, 0,
-3, 475, 479, 480, 469, 80, 489, 0,
-3, 480, 476, 475, 489, 258, 469, 0,
-3, 476, 480, 481, 258, 489, 277, 0,
-3, 481, 477, 476, 277, 271, 258, 0,
-3, 417, 421, 482, 351, 412, 153, 0,
-3, 482, 478, 417, 153, 157, 351, 0,
-3, 478, 482, 483, 157, 153, 324, 0,
-3, 483, 479, 478, 324, 80, 157, 0,
-3, 479, 483, 484, 80, 324, 339, 0,
-3, 484, 480, 479, 339, 489, 80, 0,
-3, 480, 484, 485, 489, 339, 88, 0,
-3, 485, 481, 480, 88, 277, 489, 0,
-3, 421, 425, 486, 412, 39, 6, 0,
-3, 486, 482, 421, 6, 153, 412, 0,
-3, 482, 486, 487, 153, 6, 8, 0,
-3, 487, 483, 482, 8, 324, 153, 0,
-3, 483, 487, 488, 324, 8, 16, 0,
-3, 488, 484, 483, 16, 339, 324, 0,
-3, 484, 488, 489, 339, 16, 289, 0,
-3, 489, 485, 484, 289, 88, 339, 0,
-3, 425, 429, 490, 39, 249, 99, 0,
-3, 490, 486, 425, 99, 6, 39, 0,
-3, 486, 490, 491, 6, 99, 200, 0,
-3, 491, 487, 486, 200, 8, 6, 0,
-3, 487, 491, 492, 8, 200, 150, 0,
-3, 492, 488, 487, 150, 16, 8, 0,
-3, 488, 492, 493, 16, 150, 493, 0,
-3, 493, 489, 488, 493, 289, 16, 0,
-3, 429, 433, 494, 249, 506, 291, 0,
-3, 494, 490, 429, 291, 99, 249, 0,
-3, 490, 494, 495, 99, 291, 64, 0,
-3, 495, 491, 490, 64, 200, 99, 0,
-3, 491, 495, 496, 200, 64, 19, 0,
-3, 496, 492, 491, 19, 150, 200, 0,
-3, 492, 496, 497, 150, 19, 433, 0,
-3, 497, 493, 492, 433, 493, 150, 0,
-3, 433, 437, 498, 506, 59, 203, 0,
-3, 498, 494, 433, 203, 291, 506, 0,
-3, 494, 498, 499, 291, 203, 374, 0,
-3, 499, 495, 494, 374, 64, 291, 0,
-3, 495, 499, 500, 64, 374, 307, 0,
-3, 500, 496, 495, 307, 19, 64, 0,
-3, 496, 500, 501, 19, 307, 358, 0,
-3, 501, 497, 496, 358, 433, 19, 0,
-3, 437, 441, 502, 59, 498, 256, 0,
-3, 502, 498, 437, 256, 203, 59, 0,
-3, 498, 502, 503, 203, 256, 132, 0,
-3, 503, 499, 498, 132, 374, 203, 0,
-3, 499, 503, 504, 374, 132, 492, 0,
-3, 504, 500, 499, 492, 307, 374, 0,
-3, 500, 504, 505, 307, 492, 67, 0,
-3, 505, 501, 500, 67, 358, 307, 0,
-3, 441, 445, 506, 498, 388, 487, 0,
-3, 506, 502, 441, 487, 256, 498, 0,
-3, 502, 506, 507, 256, 487, 206, 0,
-3, 507, 503, 502, 206, 132, 256, 0,
-3, 503, 507, 508, 132, 206, 515, 0,
-3, 508, 504, 503, 515, 492, 132, 0,
-3, 504, 508, 509, 492, 515, 527, 0,
-3, 509, 505, 504, 527, 67, 492, 0,
-3, 445, 449, 510, 388, 72, 423, 0,
-3, 510, 506, 445, 423, 487, 388, 0,
-3, 506, 510, 511, 487, 423, 352, 0,
-3, 511, 507, 506, 352, 206, 487, 0,
-3, 507, 511, 512, 206, 352, 224, 0,
-3, 512, 508, 507, 224, 515, 206, 0,
-3, 508, 512, 513, 515, 224, 2, 0,
-3, 513, 509, 508, 2, 527, 515, 0,
-3, 449, 453, 514, 72, 139, 418, 0,
-3, 514, 510, 449, 418, 423, 72, 0,
-3, 510, 514, 515, 423, 418, 341, 0,
-3, 515, 511, 510, 341, 352, 423, 0,
-3, 511, 515, 516, 352, 341, 359, 0,
-3, 516, 512, 511, 359, 224, 352, 0,
-3, 512, 516, 517, 224, 359, 360, 0,
-3, 517, 513, 512, 360, 2, 224, 0,
-3, 453, 457, 518, 139, 57, 24, 0,
-3, 518, 514, 453, 24, 418, 139, 0,
-3, 514, 518, 519, 418, 24, 25, 0,
-3, 519, 515, 514, 25, 341, 418, 0,
-3, 515, 519, 520, 341, 25, 41, 0,
-3, 520, 516, 515, 41, 359, 341, 0,
-3, 516, 520, 521, 359, 41, 314, 0,
-3, 521, 517, 516, 314, 360, 359, 0,
-3, 457, 461, 522, 57, 264, 120, 0,
-3, 522, 518, 457, 120, 24, 57, 0,
-3, 518, 522, 523, 24, 120, 223, 0,
-3, 523, 519, 518, 223, 25, 24, 0,
-3, 519, 523, 524, 25, 223, 171, 0,
-3, 524, 520, 519, 171, 41, 25, 0,
-3, 520, 524, 525, 41, 171, 514, 0,
-3, 525, 521, 520, 514, 314, 41, 0,
-3, 461, 465, 526, 264, 526, 316, 0,
-3, 526, 522, 461, 316, 120, 264, 0,
-3, 522, 526, 527, 120, 316, 85, 0,
-3, 527, 523, 522, 85, 223, 120, 0,
-3, 523, 527, 528, 223, 85, 50, 0,
-3, 528, 524, 523, 50, 171, 223, 0,
-3, 524, 528, 529, 171, 50, 454, 0,
-3, 529, 525, 524, 454, 514, 171, 0,
-3, 465, 405, 466, 526, 75, 226, 0,
-3, 466, 526, 465, 226, 316, 526, 0,
-3, 526, 466, 467, 316, 226, 98, 0,
-3, 467, 527, 526, 98, 85, 316, 0,
-3, 527, 467, 468, 85, 98, 43, 0,
-3, 468, 528, 527, 43, 50, 85, 0,
-3, 528, 468, 469, 50, 43, 372, 0,
-3, 469, 529, 528, 372, 454, 50, 0
-};
-
-
-const int strip_vertices[] = {
-508, 508, 504, 509, 504, 505, 500, 501, 496, 497, 492, 493, 488, 489, 484, 485, 480, 481, 476, 477, 472, 473, -1,
-476, 475, 480, 479, 484, 483, 488, 487, 492, 491, 496, 495, 500, 499, 504, 499, 503, 498, 502, 437, 441, -1,
-527, 526, 467, 466, 471, 470, 475, 474, 479, 478, 483, 482, 487, 486, 491, 490, 495, 494, 499, 494, 498, -1,
-490, 490, 425, 486, 421, 482, 417, 478, 413, 474, 409, 470, 405, 466, 465, 526, 465, 461, 460, 456, 455, 451, -1,
-405, 465, 464, 460, 459, 455, 454, 450, -1,
-455, 451, 450, 446, 450, 401, 454, 458, 459, 463, 464, 404, 405, 404, 409, 408, 413, 412, 417, 416, 421, 420, -1,
-421, 420, 425, 420, 424, 419, 423, 418, 422, 418, 401, 414, 410, 415, 411, 416, 411, 412, 407, 408, 403, 404, 403, 463, -1,
-418, 418, 414, 419, 415, 420, 416, -1,
-407, 403, 402, 462, -1,
-403, 463, 462, 458, 462, 401, 402, 406, 407, 406, 411, 406, 410, 401, -1,
-494, 494, 498, 433, 437, 432, 436, 431, 435, 430, 434, 430, 401, 426, 422, 427, 423, 428, 424, 429, 425, 490, -1,
-430, 430, 426, 431, 427, 432, 428, 433, 429, 494, 490, -1,
-437, 437, 441, 436, 440, 435, 439, 434, 438, 401, 442, 446, 447, 451, 452, 456, 457, 461, 522, 526, 527, -1,
-452, 448, 447, -1,
-510, 445, 449, 444, 448, 443, 447, 443, 442, 443, 438, 443, 439, 444, 440, 445, 441, 506, 502, 507, 503, -1,
-510, 506, 445, -1,
-507, 506, 511, 510, 515, 510, 514, 449, 453, 448, 453, 452, 457, -1,
-527, 523, 522, 518, 457, 518, 453, 518, 514, 519, 515, -1,
-523, 519, 518, -1,
-504, 503, 508, 507, 512, 511, 516, 515, 520, 519, 524, 523, 528, 527, 468, 467, 472, 471, 476, 475, -1,
-472, 473, 468, 469, 528, 529, 524, 525, 520, 521, 516, 517, 512, 513, 508, 509, -1,
-211, 211, 214, 210, 209, -1,
-212, 215, 216, 219, 220, 223, 220, 211, 217, 214, 213, 209, 213, 208, 212, 147, -1,
-220, 217, 216, 213, 212, -1,
-251, 251, 248, 252, 249, 253, 250, 253, 211, 256, 210, 255, 209, 254, 208, 207, 147, 206, 147, 146, 147, 151, 212, 215, -1,
-206, 206, 202, 207, 203, 254, 251, 255, 252, 256, 253, -1,
-223, 223, 222, 219, 218, 215, 155, 151, 150, 146, 145, 146, 205, 206, 201, 202, 197, 202, 198, 203, 199, 251, 248, -1,
-145, 149, 150, 154, 155, 159, 218, 221, 222, 225, 226, 229, -1,
-204, 204, 145, 144, 149, 148, 149, 153, 154, 158, 159, 163, 221, 224, 225, 228, 229, 232, 229, 211, 226, 223, 222, -1,
-224, 224, 167, 163, 162, 158, 157, 153, 152, 148, 87, 148, 83, 144, 143, 204, 139, 200, 135, 196, 131, 192, -1,
-82, 83, 142, 143, 138, 139, 134, 135, 130, 131, 126, 127, 122, 123, 118, 123, 119, 184, 180, 185, 181, -1,
-81, 82, 141, 142, 137, 138, 133, 134, 129, 130, 125, 126, 121, 122, 117, 118, 113, 114, 109, 110, -1,
-80, 81, 140, 141, 136, 137, 132, 133, 128, 129, 124, 125, 120, 121, 116, 117, 112, 113, 108, 109, -1,
-4, 80, 79, 140, 74, 136, 69, 132, 64, 128, 59, 124, 54, 120, 49, 116, 44, 112, 39, 108, -1,
-79, 79, 73, 74, 68, 69, 63, 64, 58, 59, 53, 54, 48, 49, 48, 43, 42, 37, 36, 31, 30, 31, 25, -1,
-42, 42, 48, 47, 53, 52, 58, 57, 63, 62, 68, 67, 73, 72, 78, 77, 3, 2, 8, 7, 13, -1,
-36, 36, 42, 41, 47, 46, 52, 51, 57, 56, 62, 61, 67, 66, 72, 71, 77, 76, 2, 1, 7, -1,
-66, 66, 60, 61, 55, 56, 50, 51, 45, 46, 40, 41, 35, 36, 30, -1,
-31, 31, 25, 26, 20, 21, 15, 16, 10, 11, 5, 6, 0, 1, 75, 76, 70, 71, 65, 66, 60, -1,
-1, 1, 7, 6, 12, 11, 17, 16, 22, 21, 27, 26, 32, 31, 32, 37, 38, 43, 44, 49, -1,
-7, 7, 13, 12, 18, 17, 23, 22, 28, 27, 33, 32, 33, 38, -1,
-44, 44, 38, 39, 33, 34, 28, 29, 23, 24, 18, 19, 13, 14, 8, 9, 3, 4, 78, 79, 73, -1,
-39, 108, 34, 104, 29, 100, 24, 96, 19, 92, 14, 88, 9, 84, 4, 84, 80, 85, 81, 86, 81, 82, -1,
-108, 109, 104, 105, 100, 101, 96, 97, 92, 93, 88, 89, 84, 85, -1,
-109, 110, 105, 106, 101, 102, 97, 98, 93, 94, 89, 90, 85, 86, -1,
-118, 119, 114, 115, 110, 111, 106, 107, 102, 103, 98, 99, 94, 95, 90, 91, 86, 87, 82, 83, -1,
-111, 115, 176, -1,
-107, 111, 172, 176, 177, -1,
-103, 107, 168, 172, 173, 177, 178, -1,
-99, 103, 164, 168, 169, 173, 174, 178, 179, -1,
-95, 99, 160, 164, 165, 169, 170, 174, 175, 179, 233, -1,
-91, 95, 156, 160, 161, 165, 166, 170, 171, 175, 230, 233, 234, -1,
-87, 91, 152, 156, 157, 161, 162, 166, 167, 171, 227, 230, 231, 234, 235, 234, 238, 234, 237, 233, 236, 179, -1,
-185, 185, 181, 186, 182, 187, 183, 239, 236, 240, 237, 241, 238, 211, 235, 232, 231, 228, 227, 224, 167, -1,
-236, 179, 183, 178, 182, 177, 181, 176, 180, 115, 119, -1,
-131, 192, 127, 188, 123, 188, 184, 189, 185, 190, 186, 191, 187, 242, 239, 243, 240, 244, 241, 244, 211, 247, -1,
-192, 192, 188, 193, 189, 194, 190, 195, 191, 245, 242, 246, 243, 247, 244, -1,
-211, 247, 250, 246, 249, 245, 248, 195, 199, 194, 198, 193, 197, 192, 197, 196, 201, 200, 205, 204, 145, -1,
-393, 393, 394, 398, 399, 371, -1,
-399, 395, 394, -1,
-363, 363, 393, 397, 398, 370, 371, 375, -1,
-379, 375, 374, 370, 369, 397, 368, 363, 362, -1,
-396, 395, 400, 399, 372, 371, 376, 375, 380, 379, 384, 383, 388, 387, 392, 391, 396, 391, 395, 390, 394, -1,
-374, 378, 379, 378, 383, 382, 387, 386, 391, 386, 390, 385, 389, 353, 358, 352, 357, 351, 356, 350, 355, -1,
-341, 341, 347, 346, 352, 346, 351, 345, 350, -1,
-335, 334, 340, 339, 345, 344, 350, 349, 355, 354, -1,
-390, 390, 394, 389, 393, 358, 363, 357, 362, 356, 361, 355, 360, 354, 360, 359, 365, 364, 330, 329, 335, 334, -1,
-345, 346, 340, 341, 335, 336, 330, 331, 365, 366, 360, 366, 361, 367, 362, 367, 368, 333, 369, 373, 374, 378, -1,
-353, 353, 348, 385, 381, 386, 381, 382, 377, 378, 377, 373, 338, 333, 332, 367, 332, 366, 332, 331, 337, 336, 342, 341, 347, -1,
-332, 337, 338, 343, 377, 343, 381, 343, 348, 342, 348, 347, 353, 352, -1,
-337, 342, 343, -1,
-314, 314, 319, 318, 323, 322, 323, 327, -1,
-309, 309, 314, 313, 318, 317, 322, 321, 322, 326, 327, 299, -1,
-271, 271, 309, 276, 313, 281, 317, 286, 321, 291, 321, 325, 326, 298, 299, 303, -1,
-265, 265, 271, 270, 276, 275, 281, 280, 286, 285, 291, 290, 291, 296, 325, 297, 298, 302, 303, 307, -1,
-259, 259, 265, 264, 270, 269, 275, 274, 280, 279, 285, 284, 290, 289, 290, 295, 296, 261, 297, 301, 302, 306, 307, 311, -1,
-293, 293, 259, 258, 264, 263, 269, 268, 274, 273, 279, 278, 284, 283, 289, 288, 289, 294, 295, 260, 261, 266, -1,
-309, 305, 271, 266, 265, 260, 259, 294, 293, 288, 287, 288, 282, 283, 277, 278, 272, 273, 267, 268, 262, -1,
-268, 268, 262, 263, 257, 258, 292, 293, 287, -1,
-261, 266, 301, 305, 306, 310, 311, 315, 316, 320, -1,
-316, 316, 311, 312, 307, 308, 303, 304, 299, 300, 327, 328, 323, 324, 319, 320, 319, 315, 314, 310, 309, 305, -1
-};
-
-
-const int strip_normals[] = {
-515, 515, 492, 527, 492, 67, 307, 358, 19, 433, 150, 493, 16, 289, 339, 88, 489, 277, 258, 271, 232, 345, -1,
-258, 469, 489, 80, 339, 324, 16, 8, 150, 200, 19, 64, 307, 374, 492, 374, 132, 203, 256, 59, 498, -1,
-85, 316, 98, 226, 406, 519, 469, 227, 80, 157, 324, 153, 8, 6, 200, 99, 64, 291, 374, 291, 203, -1,
-99, 99, 39, 6, 412, 153, 351, 157, 121, 227, 241, 519, 75, 226, 526, 316, 526, 264, 389, 178, 51, 82, -1,
-75, 526, 86, 389, 387, 51, 70, 107, -1,
-51, 82, 107, 212, 107, 235, 70, 442, 387, 253, 86, 443, 75, 443, 241, 202, 121, 281, 351, 436, 412, 376, -1,
-412, 376, 39, 376, 158, 361, 21, 90, 52, 90, 235, 479, 263, 36, 196, 436, 196, 281, 306, 202, 119, 443, 119, 253, -1,
-90, 90, 479, 361, 36, 376, 436, -1,
-306, 119, 40, 450, -1,
-119, 253, 450, 442, 450, 235, 40, 189, 306, 189, 196, 189, 263, 235, -1,
-291, 291, 203, 506, 59, 65, 169, 229, 96, 432, 302, 432, 235, 424, 52, 373, 21, 375, 158, 249, 39, 99, -1,
-432, 432, 424, 229, 373, 65, 375, 506, 249, 291, 99, -1,
-59, 59, 498, 169, 460, 96, 30, 302, 452, 235, 525, 212, 299, 82, 391, 178, 57, 264, 120, 316, 85, -1,
-391, 166, 299, -1,
-423, 388, 72, 9, 166, 456, 299, 456, 525, 456, 452, 456, 30, 9, 460, 388, 498, 487, 256, 206, 132, -1,
-423, 487, 388, -1,
-206, 487, 352, 423, 341, 423, 418, 72, 139, 166, 139, 391, 57, -1,
-85, 223, 120, 24, 57, 24, 139, 24, 418, 25, 341, -1,
-223, 25, 24, -1,
-492, 132, 515, 206, 224, 352, 359, 341, 41, 25, 171, 223, 50, 85, 43, 98, 232, 406, 258, 469, -1,
-232, 345, 43, 372, 50, 454, 171, 514, 41, 314, 359, 360, 224, 2, 515, 527, -1,
-393, 393, 0, 216, 349, -1,
-486, 215, 327, 91, 177, 254, 177, 393, 512, 0, 231, 349, 231, 279, 486, 246, -1,
-177, 512, 327, 231, 486, -1,
-462, 462, 144, 76, 179, 464, 298, 464, 393, 128, 216, 113, 349, 500, 279, 101, 246, 7, 246, 395, 246, 384, 486, 215, -1,
-7, 7, 195, 101, 444, 500, 462, 113, 76, 128, 464, -1,
-254, 254, 285, 91, 149, 215, 83, 384, 325, 395, 520, 395, 315, 7, 143, 195, 129, 195, 461, 444, 475, 462, 144, -1,
-520, 308, 325, 415, 83, 297, 149, 504, 285, 162, 278, 446, -1,
-403, 403, 520, 276, 308, 404, 308, 272, 415, 416, 297, 317, 504, 125, 162, 60, 446, 110, 446, 393, 278, 254, 285, -1,
-125, 125, 459, 317, 334, 416, 137, 272, 47, 404, 511, 404, 1, 276, 54, 403, 45, 370, 490, 210, 29, 184, -1,
-336, 1, 251, 54, 164, 45, 463, 490, 378, 29, 453, 147, 222, 218, 301, 218, 242, 310, 130, 528, 34, -1,
-26, 336, 148, 251, 269, 164, 419, 463, 293, 378, 420, 453, 333, 222, 208, 301, 294, 56, 127, 228, -1,
-131, 26, 371, 148, 284, 269, 311, 419, 95, 293, 350, 420, 377, 333, 474, 208, 396, 294, 357, 127, -1,
-116, 131, 273, 371, 480, 284, 104, 311, 257, 95, 348, 350, 447, 377, 313, 474, 322, 396, 28, 357, -1,
-273, 273, 183, 480, 347, 104, 53, 257, 181, 348, 124, 447, 428, 313, 428, 435, 11, 270, 193, 305, 69, 305, 386, -1,
-11, 11, 428, 409, 124, 382, 181, 161, 53, 481, 347, 408, 183, 319, 151, 422, 448, 4, 165, 134, 394, -1,
-193, 193, 11, 495, 409, 44, 382, 385, 161, 478, 481, 320, 408, 37, 319, 524, 422, 328, 4, 465, 134, -1,
-37, 37, 431, 320, 136, 478, 513, 385, 27, 44, 467, 495, 115, 193, 69, -1,
-305, 305, 386, 20, 174, 182, 401, 211, 248, 106, 295, 309, 255, 465, 483, 328, 191, 524, 135, 37, 431, -1,
-465, 465, 134, 309, 102, 106, 427, 211, 507, 182, 410, 20, 503, 305, 503, 270, 445, 435, 322, 313, -1,
-134, 134, 394, 102, 455, 427, 5, 507, 23, 410, 405, 503, 405, 445, -1,
-322, 322, 445, 28, 405, 138, 23, 485, 5, 234, 455, 74, 394, 180, 165, 49, 448, 116, 151, 273, 183, -1,
-28, 357, 138, 268, 485, 287, 234, 81, 74, 78, 180, 103, 49, 220, 116, 220, 131, 476, 26, 38, 26, 336, -1,
-357, 127, 268, 252, 287, 398, 81, 274, 78, 154, 103, 62, 220, 476, -1,
-127, 228, 252, 141, 398, 440, 274, 363, 154, 190, 62, 488, 476, 38, -1,
-301, 242, 56, 517, 228, 33, 141, 18, 440, 466, 363, 304, 190, 417, 488, 484, 38, 511, 336, 1, -1,
-33, 517, 260, -1,
-18, 33, 390, 260, 497, -1,
-466, 18, 353, 390, 290, 497, 126, -1,
-304, 466, 187, 353, 123, 290, 522, 126, 501, -1,
-417, 304, 458, 187, 117, 123, 168, 522, 87, 501, 261, -1,
-484, 417, 430, 458, 343, 117, 438, 168, 426, 87, 482, 261, 329, -1,
-511, 484, 47, 430, 137, 343, 334, 438, 459, 426, 439, 482, 92, 329, 192, 329, 267, 329, 491, 261, 219, 501, -1,
-528, 528, 34, 145, 46, 356, 105, 472, 219, 48, 491, 247, 267, 393, 192, 110, 92, 60, 439, 125, 459, -1,
-219, 501, 105, 126, 46, 497, 34, 260, 130, 517, 242, -1,
-29, 184, 147, 156, 218, 156, 310, 402, 528, 146, 145, 17, 356, 411, 472, 364, 48, 441, 247, 441, 393, 509, -1,
-184, 184, 156, 63, 402, 354, 146, 335, 17, 239, 411, 13, 364, 509, 441, -1,
-393, 509, 298, 13, 179, 239, 144, 335, 475, 354, 461, 63, 129, 184, 129, 210, 143, 370, 315, 403, 520, -1,
-296, 296, 160, 133, 344, 330, -1,
-344, 323, 160, -1,
-159, 159, 296, 275, 133, 22, 330, 523, -1,
-198, 523, 77, 22, 286, 275, 437, 159, 499, -1,
-280, 323, 108, 344, 338, 330, 259, 523, 366, 198, 381, 240, 283, 10, 368, 243, 280, 243, 323, 35, 160, -1,
-77, 471, 198, 471, 240, 250, 10, 303, 243, 303, 35, 230, 282, 362, 163, 73, 318, 292, 93, 477, 262, -1,
-413, 413, 326, 399, 73, 399, 292, 100, 477, -1,
-122, 355, 414, 61, 100, 55, 477, 508, 262, 365, -1,
-35, 35, 160, 282, 296, 163, 159, 318, 499, 93, 505, 262, 340, 365, 340, 140, 68, 510, 518, 3, 122, 355, -1,
-100, 399, 414, 413, 122, 111, 518, 213, 68, 167, 340, 167, 505, 245, 499, 245, 437, 346, 286, 79, 77, 471, -1,
-362, 362, 221, 230, 516, 303, 516, 250, 207, 471, 207, 79, 521, 346, 468, 245, 468, 167, 468, 213, 473, 111, 204, 413, 326, -1,
-468, 473, 521, 217, 207, 217, 516, 217, 221, 204, 221, 326, 362, 73, -1,
-473, 204, 217, -1,
-94, 94, 185, 529, 429, 209, 429, 176, -1,
-379, 379, 94, 199, 529, 367, 209, 172, 209, 66, 176, 496, -1,
-312, 312, 379, 238, 199, 15, 367, 332, 172, 197, 172, 451, 66, 84, 496, 186, -1,
-266, 266, 312, 392, 238, 201, 15, 14, 332, 457, 197, 383, 197, 225, 451, 502, 84, 265, 186, 205, -1,
-236, 236, 266, 214, 392, 71, 201, 188, 14, 173, 457, 400, 383, 380, 383, 342, 225, 109, 502, 175, 265, 97, 205, 118, -1,
-152, 152, 236, 337, 214, 58, 71, 369, 188, 434, 173, 114, 400, 288, 380, 42, 380, 397, 342, 32, 109, 331, -1,
-379, 170, 312, 331, 266, 32, 236, 397, 152, 42, 194, 42, 407, 288, 142, 114, 12, 434, 233, 369, 244, -1,
-369, 369, 244, 58, 425, 337, 321, 152, 194, -1,
-109, 331, 175, 170, 97, 300, 118, 421, 31, 89, -1,
-31, 31, 118, 237, 205, 449, 186, 470, 496, 494, 176, 155, 429, 112, 185, 89, 185, 421, 94, 300, 379, 170, -1
-};
-
-#else  /* defined(_WIN32_WCE) */
-
-/*
- * Original teapot code copyright follows:
- */
-
-/*
- * (c) Copyright 1993, Silicon Graphics, Inc.
- *
- * ALL RIGHTS RESERVED
- *
- * Permission to use, copy, modify, and distribute this software
- * for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that
- * both the copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Silicon
- * Graphics, Inc. not be used in advertising or publicity
- * pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU
- * "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR
- * OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF
- * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  IN NO
- * EVENT SHALL SILICON GRAPHICS, INC.  BE LIABLE TO YOU OR ANYONE
- * ELSE FOR ANY DIRECT, SPECIAL, INCIDENTAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER,
- * INCLUDING WITHOUT LIMITATION, LOSS OF PROFIT, LOSS OF USE,
- * SAVINGS OR REVENUE, OR THE CLAIMS OF THIRD PARTIES, WHETHER OR
- * NOT SILICON GRAPHICS, INC.  HAS BEEN ADVISED OF THE POSSIBILITY
- * OF SUCH LOSS, HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * ARISING OUT OF OR IN CONNECTION WITH THE POSSESSION, USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- *
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer
- * Software clause at DFARS 252.227-7013 and/or in similar or
- * successor clauses in the FAR or the DOD or NASA FAR
- * Supplement.  Unpublished-- rights reserved under the copyright
- * laws of the United States.  Contractor/manufacturer is Silicon
- * Graphics, Inc., 2011 N.  Shoreline Blvd., Mountain View, CA
- * 94039-7311.
- *
- * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
- */
-
-/*
- * Rim, body, lid, and bottom data must be reflected in x and y;
- * handle and spout data across the y axis only.
- */
-static int patchdata[][16] =
-{
-    { 102, 103, 104, 105,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15 }, /* rim    */
-    {  12,  13,  14,  15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27 }, /* body   */
-    {  24,  25,  26,  27,  29,  30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40 },
-    {  96,  96,  96,  96,  97,  98,  99, 100, 101, 101, 101, 101,   0,   1,   2,   3 }, /* lid    */
-    {   0,   1,   2,   3, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117 },
-    { 118, 118, 118, 118, 124, 122, 119, 121, 123, 126, 125, 120,  40,  39,  38,  37 }, /* bottom */
-    {  41,  42,  43,  44,  45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56 }, /* handle */
-    {  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,  64,  28,  65,  66,  67 },
-    {  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,  80,  81,  82,  83 }, /* spout  */
-    {  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95 }
-};
-
-static double cpdata[][3] =
-{
-    {0.2, 0, 2.7}, {0.2, -0.112, 2.7}, {0.112, -0.2, 2.7}, {0,
-    -0.2, 2.7}, {1.3375, 0, 2.53125}, {1.3375, -0.749, 2.53125},
-    {0.749, -1.3375, 2.53125}, {0, -1.3375, 2.53125}, {1.4375,
-    0, 2.53125}, {1.4375, -0.805, 2.53125}, {0.805, -1.4375,
-    2.53125}, {0, -1.4375, 2.53125}, {1.5, 0, 2.4}, {1.5, -0.84,
-    2.4}, {0.84, -1.5, 2.4}, {0, -1.5, 2.4}, {1.75, 0, 1.875},
-    {1.75, -0.98, 1.875}, {0.98, -1.75, 1.875}, {0, -1.75,
-    1.875}, {2, 0, 1.35}, {2, -1.12, 1.35}, {1.12, -2, 1.35},
-    {0, -2, 1.35}, {2, 0, 0.9}, {2, -1.12, 0.9}, {1.12, -2,
-    0.9}, {0, -2, 0.9}, {-2, 0, 0.9}, {2, 0, 0.45}, {2, -1.12,
-    0.45}, {1.12, -2, 0.45}, {0, -2, 0.45}, {1.5, 0, 0.225},
-    {1.5, -0.84, 0.225}, {0.84, -1.5, 0.225}, {0, -1.5, 0.225},
-    {1.5, 0, 0.15}, {1.5, -0.84, 0.15}, {0.84, -1.5, 0.15}, {0,
-    -1.5, 0.15}, {-1.6, 0, 2.025}, {-1.6, -0.3, 2.025}, {-1.5,
-    -0.3, 2.25}, {-1.5, 0, 2.25}, {-2.3, 0, 2.025}, {-2.3, -0.3,
-    2.025}, {-2.5, -0.3, 2.25}, {-2.5, 0, 2.25}, {-2.7, 0,
-    2.025}, {-2.7, -0.3, 2.025}, {-3, -0.3, 2.25}, {-3, 0,
-    2.25}, {-2.7, 0, 1.8}, {-2.7, -0.3, 1.8}, {-3, -0.3, 1.8},
-    {-3, 0, 1.8}, {-2.7, 0, 1.575}, {-2.7, -0.3, 1.575}, {-3,
-    -0.3, 1.35}, {-3, 0, 1.35}, {-2.5, 0, 1.125}, {-2.5, -0.3,
-    1.125}, {-2.65, -0.3, 0.9375}, {-2.65, 0, 0.9375}, {-2,
-    -0.3, 0.9}, {-1.9, -0.3, 0.6}, {-1.9, 0, 0.6}, {1.7, 0,
-    1.425}, {1.7, -0.66, 1.425}, {1.7, -0.66, 0.6}, {1.7, 0,
-    0.6}, {2.6, 0, 1.425}, {2.6, -0.66, 1.425}, {3.1, -0.66,
-    0.825}, {3.1, 0, 0.825}, {2.3, 0, 2.1}, {2.3, -0.25, 2.1},
-    {2.4, -0.25, 2.025}, {2.4, 0, 2.025}, {2.7, 0, 2.4}, {2.7,
-    -0.25, 2.4}, {3.3, -0.25, 2.4}, {3.3, 0, 2.4}, {2.8, 0,
-    2.475}, {2.8, -0.25, 2.475}, {3.525, -0.25, 2.49375},
-    {3.525, 0, 2.49375}, {2.9, 0, 2.475}, {2.9, -0.15, 2.475},
-    {3.45, -0.15, 2.5125}, {3.45, 0, 2.5125}, {2.8, 0, 2.4},
-    {2.8, -0.15, 2.4}, {3.2, -0.15, 2.4}, {3.2, 0, 2.4}, {0, 0,
-    3.15}, {0.8, 0, 3.15}, {0.8, -0.45, 3.15}, {0.45, -0.8,
-    3.15}, {0, -0.8, 3.15}, {0, 0, 2.85}, {1.4, 0, 2.4}, {1.4,
-    -0.784, 2.4}, {0.784, -1.4, 2.4}, {0, -1.4, 2.4}, {0.4, 0,
-    2.55}, {0.4, -0.224, 2.55}, {0.224, -0.4, 2.55}, {0, -0.4,
-    2.55}, {1.3, 0, 2.55}, {1.3, -0.728, 2.55}, {0.728, -1.3,
-    2.55}, {0, -1.3, 2.55}, {1.3, 0, 2.4}, {1.3, -0.728, 2.4},
-    {0.728, -1.3, 2.4}, {0, -1.3, 2.4}, {0, 0, 0}, {1.425,
-    -0.798, 0}, {1.5, 0, 0.075}, {1.425, 0, 0}, {0.798, -1.425,
-    0}, {0, -1.5, 0.075}, {0, -1.425, 0}, {1.5, -0.84, 0.075},
-    {0.84, -1.5, 0.075}
-};
-
-static double tex[2][2][2] =
-{
-    { {0.0, 0.0}, {1.0, 0.0} },
-    { {0.0, 1.0}, {1.0, 1.0} }
-};
-#endif  /* defined(_WIN32_WCE) */
-
-
-#endif  /* FREEGLUT_TEAPOT_DATA_H */
-
diff --git a/src/Common/freeglut_videoresize.c b/src/Common/freeglut_videoresize.c
deleted file mode 100644 (file)
index c367d92..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * freeglut_videoresize.c
- *
- * Video resize functions (as defined by GLUT API)
- *
- * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
- * Written by Pawel W. Olszta, <olszta@sourceforge.net>
- * Creation date: Thu Dec 16 1999
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#include <GL/freeglut.h>
-#include "freeglut_internal.h"
-
-/*
- * NOTE: functions declared in this file probably will not be implemented.
- */
-
-/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
-
-int  FGAPIENTRY glutVideoResizeGet( GLenum eWhat )            {    return( 0x00 );    }
-void FGAPIENTRY glutSetupVideoResizing( void )                { /* Not implemented */ }
-void FGAPIENTRY glutStopVideoResizing( void )                 { /* Not implemented */ }
-void FGAPIENTRY glutVideoResize( int x, int y, int w, int h ) { /* Not implemented */ }
-void FGAPIENTRY glutVideoPan( int x, int y, int w, int h )    { /* Not implemented */ }
-
-/*** END OF FILE ***/
-
diff --git a/src/Common/freeglut_window.c b/src/Common/freeglut_window.c
deleted file mode 100644 (file)
index bcbe44d..0000000
+++ /dev/null
@@ -1,498 +0,0 @@
-/*
- * freeglut_window.c
- *
- * Window management methods.
- *
- * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
- * Written by Pawel W. Olszta, <olszta@sourceforge.net>
- * Creation date: Fri Dec 3 1999
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#define FREEGLUT_BUILDING_LIB
-#include <GL/freeglut.h>
-#include "freeglut_internal.h"
-
-/*
- * TODO BEFORE THE STABLE RELEASE:
- *
- *  fgSetupPixelFormat      -- ignores the display mode settings
- *  fgOpenWindow()          -- check the Win32 version, -iconic handling!
- *  fgCloseWindow()         -- check the Win32 version
- *  glutCreateWindow()      -- Check when default position and size is {-1,-1}
- *  glutCreateSubWindow()   -- Check when default position and size is {-1,-1}
- *  glutDestroyWindow()     -- check the Win32 version
- *  glutSetWindow()         -- check the Win32 version
- *  glutSetWindowTitle()    -- check the Win32 version
- *  glutSetIconTitle()      -- check the Win32 version
- *  glutShowWindow()        -- check the Win32 version
- *  glutHideWindow()        -- check the Win32 version
- *  glutIconifyWindow()     -- check the Win32 version
- *  glutPushWindow()        -- check the Win32 version
- *  glutPopWindow()         -- check the Win32 version
- */
-
-
-extern void fgPlatformSetWindow ( SFG_Window *window );
-extern void fgPlatformOpenWindow( SFG_Window* window, const char* title,
-                                  GLboolean positionUse, int x, int y,
-                                  GLboolean sizeUse, int w, int h,
-                                  GLboolean gameMode, GLboolean isSubWindow );
-extern void fgPlatformCloseWindow( SFG_Window* window );
-extern void fgPlatformGlutShowWindow( void );
-extern void fgPlatformGlutHideWindow( void );
-extern void fgPlatformGlutIconifyWindow( void );
-extern void fgPlatformGlutSetWindowTitle( const char* title );
-extern void fgPlatformGlutSetIconTitle( const char* title );
-extern void fgPlatformGlutPositionWindow( int x, int y );
-extern void fgPlatformGlutPushWindow( void );
-extern void fgPlatformGlutPopWindow( void );
-extern void fgPlatformGlutFullScreen( SFG_Window *win );
-extern void fgPlatformGlutLeaveFullScreen( SFG_Window *win );
-extern void fgPlatformGlutFullScreenToggle( SFG_Window *win );
-
-
-/* -- PRIVATE FUNCTIONS ---------------------------------------------------- */
-
-int fghIsLegacyContextVersionRequested( void )
-{
-  return fgState.MajorVersion < 2 || (fgState.MajorVersion == 2 && fgState.MinorVersion <= 1);
-}
-
-int fghIsLegacyContextRequested( void )
-{
-  return fghIsLegacyContextVersionRequested() &&
-         fgState.ContextFlags == 0 &&
-         fgState.ContextProfile == 0;
-}
-
-int fghNumberOfAuxBuffersRequested( void )
-{
-  if ( fgState.DisplayMode & GLUT_AUX4 ) {
-    return 4;
-  }
-  if ( fgState.DisplayMode & GLUT_AUX3 ) {
-    return 3;
-  }
-  if ( fgState.DisplayMode & GLUT_AUX2 ) {
-    return 2;
-  }
-  if ( fgState.DisplayMode & GLUT_AUX1 ) { /* NOTE: Same as GLUT_AUX! */
-    return fgState.AuxiliaryBufferNumber;
-  }
-  return 0;
-}
-
-int fghMapBit( int mask, int from, int to )
-{
-  return ( mask & from ) ? to : 0;
-
-}
-
-void fghContextCreationError( void )
-{
-    fgError( "Unable to create OpenGL %d.%d context (flags %x, profile %x)",
-             fgState.MajorVersion, fgState.MinorVersion, fgState.ContextFlags,
-             fgState.ContextProfile );
-}
-
-
-/* -- SYSTEM-DEPENDENT PRIVATE FUNCTIONS ------------------------------------ */
-
-/*
- * Sets the OpenGL context and the fgStructure "Current Window" pointer to
- * the window structure passed in.
- */
-void fgSetWindow ( SFG_Window *window )
-{
-       fgPlatformSetWindow ( window );
-
-    fgStructure.CurrentWindow = window;
-}
-
-/*
- * Opens a window. Requires a SFG_Window object created and attached
- * to the freeglut structure. OpenGL context is created here.
- */
-void fgOpenWindow( SFG_Window* window, const char* title,
-                   GLboolean positionUse, int x, int y,
-                   GLboolean sizeUse, int w, int h,
-                   GLboolean gameMode, GLboolean isSubWindow )
-{
-       fgPlatformOpenWindow( window, title,
-                   positionUse, x, y,
-                   sizeUse, w, h,
-                   gameMode, isSubWindow );
-
-    fgSetWindow( window );
-
-    window->Window.DoubleBuffered =
-        ( fgState.DisplayMode & GLUT_DOUBLE ) ? 1 : 0;
-
-#ifndef EGL_VERSION_1_0  /* No glDrawBuffer/glReadBuffer in GLES */
-    if ( ! window->Window.DoubleBuffered )
-    {
-        glDrawBuffer ( GL_FRONT );
-        glReadBuffer ( GL_FRONT );
-    }
-#endif
-}
-
-/*
- * Closes a window, destroying the frame and OpenGL context
- */
-void fgCloseWindow( SFG_Window* window )
-{
-    /* if we're in gamemode and we're closing the gamemode window,
-     * call glutLeaveGameMode first to make sure the gamemode is
-     * properly closed before closing the window
-     */
-    if (fgStructure.GameModeWindow != NULL && fgStructure.GameModeWindow->ID==window->ID)
-        glutLeaveGameMode();
-
-       fgPlatformCloseWindow ( window );
-}
-
-
-/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
-
-/*
- * Creates a new top-level freeglut window
- */
-int FGAPIENTRY glutCreateWindow( const char* title )
-{
-    /* XXX GLUT does not exit; it simply calls "glutInit" quietly if the
-     * XXX application has not already done so.  The "freeglut" community
-     * XXX decided not to go this route (freeglut-developer e-mail from
-     * XXX Steve Baker, 12/16/04, 4:22 PM CST, "Re: [Freeglut-developer]
-     * XXX Desired 'freeglut' behaviour when there is no current window"
-     */
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutCreateWindow" );
-
-    return fgCreateWindow( NULL, title, fgState.Position.Use,
-                           fgState.Position.X, fgState.Position.Y,
-                           fgState.Size.Use, fgState.Size.X, fgState.Size.Y,
-                           GL_FALSE, GL_FALSE )->ID;
-}
-
-/*
- * This function creates a sub window.
- */
-int FGAPIENTRY glutCreateSubWindow( int parentID, int x, int y, int w, int h )
-{
-    int ret = 0;
-    SFG_Window* window = NULL;
-    SFG_Window* parent = NULL;
-
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutCreateSubWindow" );
-    parent = fgWindowByID( parentID );
-    freeglut_return_val_if_fail( parent != NULL, 0 );
-    if ( x < 0 )
-    {
-        x = parent->State.Width + x ;
-        if ( w >= 0 ) x -= w ;
-    }
-
-    if ( w < 0 ) w = parent->State.Width - x + w ;
-    if ( w < 0 )
-    {
-        x += w ;
-        w = -w ;
-    }
-
-    if ( y < 0 )
-    {
-        y = parent->State.Height + y ;
-        if ( h >= 0 ) y -= h ;
-    }
-
-    if ( h < 0 ) h = parent->State.Height - y + h ;
-    if ( h < 0 )
-    {
-        y += h ;
-        h = -h ;
-    }
-
-    window = fgCreateWindow( parent, "", GL_TRUE, x, y, GL_TRUE, w, h, GL_FALSE, GL_FALSE );
-    ret = window->ID;
-
-    return ret;
-}
-
-/*
- * Destroys a window and all of its subwindows
- */
-void FGAPIENTRY glutDestroyWindow( int windowID )
-{
-    SFG_Window* window;
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutDestroyWindow" );
-    window = fgWindowByID( windowID );
-    freeglut_return_if_fail( window != NULL );
-    {
-        fgExecutionState ExecState = fgState.ExecState;
-        fgAddToWindowDestroyList( window );
-        fgState.ExecState = ExecState;
-    }
-}
-
-/*
- * This function selects the specified window as the current window
- */
-void FGAPIENTRY glutSetWindow( int ID )
-{
-    SFG_Window* window = NULL;
-
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSetWindow" );
-    if( fgStructure.CurrentWindow != NULL )
-        if( fgStructure.CurrentWindow->ID == ID )
-            return;
-
-    window = fgWindowByID( ID );
-    if( window == NULL )
-    {
-        fgWarning( "glutSetWindow(): window ID %d not found!", ID );
-        return;
-    }
-
-    fgSetWindow( window );
-}
-
-/*
- * This function returns the ID number of the current window, 0 if none exists
- */
-int FGAPIENTRY glutGetWindow( void )
-{
-    SFG_Window *win = fgStructure.CurrentWindow;
-    /*
-     * Since GLUT did not throw an error if this function was called without a prior call to
-     * "glutInit", this function shouldn't do so here.  Instead let us return a zero.
-     * See Feature Request "[ 1307049 ] glutInit check".
-     */
-    if ( ! fgState.Initialised )
-        return 0;
-
-    while ( win && win->IsMenu )
-        win = win->Parent;
-    return win ? win->ID : 0;
-}
-
-/*
- * This function makes the current window visible
- */
-void FGAPIENTRY glutShowWindow( void )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutShowWindow" );
-    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutShowWindow" );
-
-       fgPlatformGlutShowWindow ();
-
-    fgStructure.CurrentWindow->State.Redisplay = GL_TRUE;
-}
-
-/*
- * This function hides the current window
- */
-void FGAPIENTRY glutHideWindow( void )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutHideWindow" );
-    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutHideWindow" );
-
-       fgPlatformGlutHideWindow ();
-
-    fgStructure.CurrentWindow->State.Redisplay = GL_FALSE;
-}
-
-/*
- * Iconify the current window (top-level windows only)
- */
-void FGAPIENTRY glutIconifyWindow( void )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutIconifyWindow" );
-    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutIconifyWindow" );
-
-    fgStructure.CurrentWindow->State.Visible   = GL_FALSE;
-
-       fgPlatformGlutIconifyWindow ();
-
-    fgStructure.CurrentWindow->State.Redisplay = GL_FALSE;
-}
-
-/*
- * Set the current window's title
- */
-void FGAPIENTRY glutSetWindowTitle( const char* title )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSetWindowTitle" );
-    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutSetWindowTitle" );
-    if( ! fgStructure.CurrentWindow->Parent )
-    {
-               fgPlatformGlutSetWindowTitle ( title );
-    }
-}
-
-/*
- * Set the current window's iconified title
- */
-void FGAPIENTRY glutSetIconTitle( const char* title )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSetIconTitle" );
-    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutSetIconTitle" );
-
-    if( ! fgStructure.CurrentWindow->Parent )
-    {
-               fgPlatformGlutSetIconTitle ( title );
-    }
-}
-
-/*
- * Change the current window's size
- */
-void FGAPIENTRY glutReshapeWindow( int width, int height )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutReshapeWindow" );
-    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutReshapeWindow" );
-
-    if (glutGet(GLUT_FULL_SCREEN))
-    {
-      /*  Leave full screen state before resizing. */
-      glutLeaveFullScreen();
-    }
-
-    fgStructure.CurrentWindow->State.NeedToResize = GL_TRUE;
-    fgStructure.CurrentWindow->State.Width  = width ;
-    fgStructure.CurrentWindow->State.Height = height;
-}
-
-/*
- * Change the current window's position
- */
-void FGAPIENTRY glutPositionWindow( int x, int y )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutPositionWindow" );
-    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutPositionWindow" );
-
-    if (glutGet(GLUT_FULL_SCREEN))
-    {
-      /*  Leave full screen state before moving. */
-      glutLeaveFullScreen();
-    }
-
-       fgPlatformGlutPositionWindow ( x, y );
-}
-
-/*
- * Lowers the current window (by Z order change)
- */
-void FGAPIENTRY glutPushWindow( void )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutPushWindow" );
-    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutPushWindow" );
-
-       fgPlatformGlutPushWindow ();
-}
-
-/*
- * Raises the current window (by Z order change)
- */
-void FGAPIENTRY glutPopWindow( void )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutPopWindow" );
-    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutPopWindow" );
-
-       fgPlatformGlutPopWindow ();
-}
-
-/*
- * Resize the current window so that it fits the whole screen
- */
-void FGAPIENTRY glutFullScreen( void )
-{
-    SFG_Window *win;
-
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutFullScreen" );
-    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutFullScreen" );
-
-    win = fgStructure.CurrentWindow;
-
-    if (win->Parent)
-    {
-        /* Child windows cannot be made fullscreen, consistent with GLUT's behavior
-         * Also, what would it mean for a child window to be fullscreen, given that it
-         * is confined to its parent?
-         */
-        fgWarning("glutFullScreen called on a child window, ignoring...");
-        return;
-    }
-    else if (fgStructure.GameModeWindow != NULL && fgStructure.GameModeWindow->ID==win->ID)
-    {
-        /* Ignore fullscreen call on GameMode window, those are always fullscreen already */
-        return;
-    }
-
-       fgPlatformGlutFullScreen ( win );
-}
-
-/*
- * If we are fullscreen, resize the current window back to its original size
- */
-void FGAPIENTRY glutLeaveFullScreen( void )
-{
-    SFG_Window *win;
-
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutFullScreen" );
-    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutFullScreen" );
-
-    win = fgStructure.CurrentWindow;
-
-       fgPlatformGlutLeaveFullScreen ( win );
-}
-
-/*
- * Toggle the window's full screen state.
- */
-void FGAPIENTRY glutFullScreenToggle( void )
-{
-    SFG_Window *win;
-
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutFullScreenToggle" );
-    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutFullScreenToggle" );
-
-    win = fgStructure.CurrentWindow;
-
-       fgPlatformGlutFullScreenToggle ( win );
-}
-
-/*
- * A.Donev: Set and retrieve the window's user data
- */
-void* FGAPIENTRY glutGetWindowData( void )
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutGetWindowData" );
-    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutGetWindowData" );
-    return fgStructure.CurrentWindow->UserData;
-}
-
-void FGAPIENTRY glutSetWindowData(void* data)
-{
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSetWindowData" );
-    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutSetWindowData" );
-    fgStructure.CurrentWindow->UserData = data;
-}
-
-/*** END OF FILE ***/
diff --git a/src/Common/freeglutdll.def b/src/Common/freeglutdll.def
deleted file mode 100644 (file)
index ac52730..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-LIBRARY freeglut
-VERSION 2.6
-EXPORTS
-       glutInit
-       glutInitWindowPosition
-       glutInitWindowSize
-       glutInitDisplayMode
-       glutInitDisplayString
-       glutMainLoop
-       glutMainLoopEvent
-       glutLeaveMainLoop
-       glutCreateWindow
-       glutCreateSubWindow
-       glutDestroyWindow
-       glutSetWindow
-       glutGetWindow
-       glutSetWindowData
-       glutGetWindowData
-       glutSetWindowTitle
-       glutSetIconTitle
-       glutReshapeWindow
-       glutPositionWindow
-       glutShowWindow
-       glutHideWindow
-       glutIconifyWindow
-       glutPushWindow
-       glutPopWindow
-       glutFullScreen
-       glutPostWindowRedisplay
-       glutPostRedisplay
-       glutSwapBuffers
-       glutWarpPointer
-       glutSetCursor
-       glutEstablishOverlay
-       glutRemoveOverlay
-       glutUseLayer
-       glutPostOverlayRedisplay
-       glutPostWindowOverlayRedisplay
-       glutShowOverlay
-       glutHideOverlay
-       glutCreateMenu
-       glutDestroyMenu
-       glutGetMenu
-       glutSetMenu
-       glutGetMenuData
-       glutSetMenuData
-       glutAddMenuEntry
-       glutAddSubMenu
-       glutChangeToMenuEntry
-       glutChangeToSubMenu
-       glutRemoveMenuItem
-       glutAttachMenu
-       glutDetachMenu
-       glutTimerFunc
-       glutIdleFunc
-       glutKeyboardFunc
-       glutSpecialFunc
-       glutReshapeFunc
-       glutVisibilityFunc
-       glutDisplayFunc
-       glutMouseFunc
-       glutMouseWheelFunc
-       glutMotionFunc
-       glutPassiveMotionFunc
-       glutEntryFunc
-       glutCloseFunc
-       glutWMCloseFunc
-       glutKeyboardUpFunc
-       glutSpecialUpFunc
-       glutJoystickFunc
-       glutMenuStateFunc
-       glutMenuStatusFunc
-       glutMenuDestroyFunc
-       glutOverlayDisplayFunc
-       glutWindowStatusFunc
-       glutSpaceballMotionFunc
-       glutSpaceballRotateFunc
-       glutSpaceballButtonFunc
-       glutButtonBoxFunc
-       glutDialsFunc
-       glutTabletMotionFunc
-       glutTabletButtonFunc
-       glutSetOption
-       glutGet
-       glutDeviceGet
-       glutGetModifiers
-       glutLayerGet
-       glutBitmapCharacter
-       glutBitmapWidth
-       glutStrokeCharacter
-       glutStrokeWidth
-       glutBitmapLength
-       glutStrokeLength
-       glutBitmapHeight
-       glutStrokeHeight
-       glutBitmapString
-       glutStrokeString
-       glutWireCube
-       glutSolidCube
-       glutWireSphere
-       glutSolidSphere
-       glutWireCone
-       glutSolidCone
-       glutWireTorus
-       glutSolidTorus
-       glutWireDodecahedron
-       glutSolidDodecahedron
-       glutWireOctahedron
-       glutSolidOctahedron
-       glutWireTetrahedron
-       glutSolidTetrahedron
-       glutWireIcosahedron
-       glutSolidIcosahedron
-       glutWireRhombicDodecahedron
-       glutSolidRhombicDodecahedron
-       glutWireSierpinskiSponge
-       glutSolidSierpinskiSponge
-       glutWireTeapot
-       glutSolidTeapot
-       glutWireCylinder
-       glutSolidCylinder
-       glutGameModeString
-       glutEnterGameMode
-       glutLeaveGameMode
-       glutGameModeGet
-       glutVideoResizeGet
-       glutSetupVideoResizing
-       glutStopVideoResizing
-       glutVideoResize
-       glutVideoPan
-       glutSetColor
-       glutGetColor
-       glutCopyColormap
-       glutIgnoreKeyRepeat
-       glutSetKeyRepeat
-       glutForceJoystickFunc
-       glutExtensionSupported
-       glutReportErrors
-       glutGetProcAddress
-       glutExit
-       glutFullScreenToggle
-       glutLeaveFullScreen
-       glutGetModeValues
-       glutInitContextFlags
-       glutInitContextVersion
-       glutInitContextProfile
-        glutInitErrorFunc
-        glutInitWarningFunc
-       __glutInitWithExit
-       __glutCreateWindowWithExit
-       __glutCreateMenuWithExit
-       glutMultiButtonFunc
-       glutMultiEntryFunc
-       glutMultiMotionFunc
-       glutMultiPassiveFunc
diff --git a/src/Common/xparsegeometry_repl.c b/src/Common/xparsegeometry_repl.c
deleted file mode 100644 (file)
index daacf44..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-#include <stdlib.h>
-
-/*
- * Everything down to the end of the next two functions is copied from the X sources.
- */
-
-/*
-
-Copyright 1985, 1986, 1987,1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#include "../Common/xparsegeometry_repl.h"
-
-/*
- *   XParseGeometry parses strings of the form
- *   "=<width>x<height>{+-}<xoffset>{+-}<yoffset>", where
- *   width, height, xoffset, and yoffset are unsigned integers.
- *   Example:  "=80x24+300-49"
- *   The equal sign is optional.
- *   It returns a bitmask that indicates which of the four values
- *   were actually found in the string.  For each value found,
- *   the corresponding argument is updated;  for each value
- *   not found, the corresponding argument is left unchanged.
- */
-
-static int
-ReadInteger(char *string, char **NextString)
-{
-    register int Result = 0;
-    int Sign = 1;
-
-    if (*string == '+')
-        string++;
-    else if (*string == '-')
-    {
-        string++;
-        Sign = -1;
-    }
-    for (; (*string >= '0') && (*string <= '9'); string++)
-    {
-        Result = (Result * 10) + (*string - '0');
-    }
-    *NextString = string;
-    if (Sign >= 0)
-        return Result;
-    else
-        return -Result;
-}
-
-int XParseGeometry (
-    const char *string,
-    int *x,
-    int *y,
-    unsigned int *width,    /* RETURN */
-    unsigned int *height)    /* RETURN */
-{
-    int mask = NoValue;
-    register char *strind;
-    unsigned int tempWidth = 0, tempHeight = 0;
-    int tempX = 0, tempY = 0;
-    char *nextCharacter;
-
-    if ( (string == NULL) || (*string == '\0'))
-      return mask;
-    if (*string == '=')
-        string++;  /* ignore possible '=' at beg of geometry spec */
-
-    strind = (char *)string;
-    if (*strind != '+' && *strind != '-' && *strind != 'x') {
-        tempWidth = ReadInteger(strind, &nextCharacter);
-        if (strind == nextCharacter)
-            return 0;
-        strind = nextCharacter;
-        mask |= WidthValue;
-    }
-
-    if (*strind == 'x' || *strind == 'X') {
-        strind++;
-        tempHeight = ReadInteger(strind, &nextCharacter);
-        if (strind == nextCharacter)
-            return 0;
-        strind = nextCharacter;
-        mask |= HeightValue;
-    }
-
-    if ((*strind == '+') || (*strind == '-')) {
-        if (*strind == '-') {
-            strind++;
-            tempX = -ReadInteger(strind, &nextCharacter);
-            if (strind == nextCharacter)
-                return 0;
-            strind = nextCharacter;
-            mask |= XNegative;
-        }
-        else
-        {
-            strind++;
-            tempX = ReadInteger(strind, &nextCharacter);
-            if (strind == nextCharacter)
-                return 0;
-            strind = nextCharacter;
-        }
-        mask |= XValue;
-        if ((*strind == '+') || (*strind == '-')) {
-            if (*strind == '-') {
-                strind++;
-                tempY = -ReadInteger(strind, &nextCharacter);
-                if (strind == nextCharacter)
-                    return 0;
-                strind = nextCharacter;
-                mask |= YNegative;
-            }
-            else
-            {
-                strind++;
-                tempY = ReadInteger(strind, &nextCharacter);
-                if (strind == nextCharacter)
-                    return 0;
-                strind = nextCharacter;
-            }
-            mask |= YValue;
-        }
-    }
-
-    /* If strind isn't at the end of the string the it's an invalid
-       geometry specification. */
-
-    if (*strind != '\0') return 0;
-
-    if (mask & XValue)
-        *x = tempX;
-    if (mask & YValue)
-        *y = tempY;
-    if (mask & WidthValue)
-        *width = tempWidth;
-    if (mask & HeightValue)
-        *height = tempHeight;
-    return mask;
-}
diff --git a/src/Common/xparsegeometry_repl.h b/src/Common/xparsegeometry_repl.h
deleted file mode 100644 (file)
index 75ebad1..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copied from the X sources.
- */
-
-/*
-
-Copyright 1985, 1986, 1987,1998  The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from The Open Group.
-
-*/
-
-#ifndef  XPARSEGEOMETRY_REPL_H
-#define  XPARSEGEOMETRY_REPL_H
-
-#define NoValue         0x0000
-#define XValue          0x0001
-#define YValue          0x0002
-#define WidthValue      0x0004
-#define HeightValue     0x0008
-#define AllValues       0x000F
-#define XNegative       0x0010
-#define YNegative       0x0020
-
-extern int XParseGeometry (const char *string,                         /* INPUT */
-                           int *x, int *y,                             /* RETURN */
-                           unsigned int *width, unsigned int *height); /* RETURN */
-
-
-#endif
diff --git a/src/fg_callbacks.c b/src/fg_callbacks.c
new file mode 100644 (file)
index 0000000..7e399a9
--- /dev/null
@@ -0,0 +1,412 @@
+/*
+ * freeglut_callbacks.c
+ *
+ * The callbacks setting methods.
+ *
+ * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
+ * Written by Pawel W. Olszta, <olszta@sourceforge.net>
+ * Creation date: Fri Dec 3 1999
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include <GL/freeglut.h>
+#include "fg_internal.h"
+
+/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
+
+/*
+ * All of the callbacks setting methods can be generalized to this:
+ */
+#define SET_CALLBACK(a)                                         \
+do                                                              \
+{                                                               \
+    if( fgStructure.CurrentWindow == NULL )                     \
+        return;                                                 \
+    SET_WCB( ( *( fgStructure.CurrentWindow ) ), a, callback ); \
+} while( 0 )
+
+/*
+ * Sets the Display callback for the current window
+ */
+void FGAPIENTRY glutDisplayFunc( void (* callback)( void ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutDisplayFunc" );
+    if( !callback )
+        fgError( "Fatal error in program.  NULL display callback not "
+                 "permitted in GLUT 3.0+ or freeglut 2.0.1+" );
+    SET_CALLBACK( Display );
+}
+
+/*
+ * Sets the Reshape callback for the current window
+ */
+void FGAPIENTRY glutReshapeFunc( void (* callback)( int, int ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutReshapeFunc" );
+    SET_CALLBACK( Reshape );
+}
+
+/*
+ * Sets the Keyboard callback for the current window
+ */
+void FGAPIENTRY glutKeyboardFunc( void (* callback)
+                                  ( unsigned char, int, int ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutKeyboardFunc" );
+    SET_CALLBACK( Keyboard );
+}
+
+/*
+ * Sets the Special callback for the current window
+ */
+void FGAPIENTRY glutSpecialFunc( void (* callback)( int, int, int ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSpecialFunc" );
+    SET_CALLBACK( Special );
+}
+
+/*
+ * Sets the global idle callback
+ */
+void FGAPIENTRY glutIdleFunc( void (* callback)( void ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutIdleFunc" );
+    fgState.IdleCallback = callback;
+}
+
+/*
+ * Sets the Timer callback for the current window
+ */
+void FGAPIENTRY glutTimerFunc( unsigned int timeOut, void (* callback)( int ),
+                               int timerID )
+{
+    SFG_Timer *timer, *node;
+
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutTimerFunc" );
+
+    if( (timer = fgState.FreeTimers.Last) )
+    {
+        fgListRemove( &fgState.FreeTimers, &timer->Node );
+    }
+    else
+    {
+        if( ! (timer = malloc(sizeof(SFG_Timer))) )
+            fgError( "Fatal error: "
+                     "Memory allocation failure in glutTimerFunc()" );
+    }
+
+    timer->Callback  = callback;
+    timer->ID        = timerID;
+    timer->TriggerTime = fgElapsedTime() + timeOut;
+
+    for( node = fgState.Timers.First; node; node = node->Node.Next )
+    {
+        if( node->TriggerTime > timer->TriggerTime )
+            break;
+    }
+
+    fgListInsert( &fgState.Timers, &node->Node, &timer->Node );
+}
+
+/*
+ * Sets the Visibility callback for the current window.
+ */
+static void fghVisibility( int status )
+{
+    int glut_status = GLUT_VISIBLE;
+
+    FREEGLUT_INTERNAL_ERROR_EXIT_IF_NOT_INITIALISED ( "Visibility Callback" );
+    freeglut_return_if_fail( fgStructure.CurrentWindow );
+
+    if( ( GLUT_HIDDEN == status )  || ( GLUT_FULLY_COVERED == status ) )
+        glut_status = GLUT_NOT_VISIBLE;
+    INVOKE_WCB( *( fgStructure.CurrentWindow ), Visibility, ( glut_status ) );
+}
+
+void FGAPIENTRY glutVisibilityFunc( void (* callback)( int ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutVisibilityFunc" );
+    SET_CALLBACK( Visibility );
+
+    if( callback )
+        glutWindowStatusFunc( fghVisibility );
+    else
+        glutWindowStatusFunc( NULL );
+}
+
+/*
+ * Sets the keyboard key release callback for the current window
+ */
+void FGAPIENTRY glutKeyboardUpFunc( void (* callback)
+                                    ( unsigned char, int, int ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutKeyboardUpFunc" );
+    SET_CALLBACK( KeyboardUp );
+}
+
+/*
+ * Sets the special key release callback for the current window
+ */
+void FGAPIENTRY glutSpecialUpFunc( void (* callback)( int, int, int ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSpecialUpFunc" );
+    SET_CALLBACK( SpecialUp );
+}
+
+/*
+ * Sets the joystick callback and polling rate for the current window
+ */
+void FGAPIENTRY glutJoystickFunc( void (* callback)
+                                  ( unsigned int, int, int, int ),
+                                  int pollInterval )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutJoystickFunc" );
+    fgInitialiseJoysticks ();
+
+    if ( ( ( fgStructure.CurrentWindow->State.JoystickPollRate < 0 ) ||
+           !FETCH_WCB(*fgStructure.CurrentWindow,Joystick) ) &&  /* Joystick callback was disabled */
+         ( callback && ( pollInterval >= 0 ) ) )               /* but is now enabled */
+        ++fgState.NumActiveJoysticks;
+    else if ( ( ( fgStructure.CurrentWindow->State.JoystickPollRate >= 0 ) &&
+                FETCH_WCB(*fgStructure.CurrentWindow,Joystick) ) &&  /* Joystick callback was enabled */
+              ( !callback || ( pollInterval < 0 ) ) )              /* but is now disabled */
+        --fgState.NumActiveJoysticks;
+
+    SET_CALLBACK( Joystick );
+    fgStructure.CurrentWindow->State.JoystickPollRate = pollInterval;
+
+    fgStructure.CurrentWindow->State.JoystickLastPoll =
+        fgElapsedTime() - fgStructure.CurrentWindow->State.JoystickPollRate;
+
+    if( fgStructure.CurrentWindow->State.JoystickLastPoll < 0 )
+        fgStructure.CurrentWindow->State.JoystickLastPoll = 0;
+}
+
+/*
+ * Sets the mouse callback for the current window
+ */
+void FGAPIENTRY glutMouseFunc( void (* callback)( int, int, int, int ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutMouseFunc" );
+    SET_CALLBACK( Mouse );
+}
+
+/*
+ * Sets the mouse wheel callback for the current window
+ */
+void FGAPIENTRY glutMouseWheelFunc( void (* callback)( int, int, int, int ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutMouseWheelFunc" );
+    SET_CALLBACK( MouseWheel );
+}
+
+/*
+ * Sets the mouse motion callback for the current window (one or more buttons
+ * are pressed)
+ */
+void FGAPIENTRY glutMotionFunc( void (* callback)( int, int ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutMotionFunc" );
+    SET_CALLBACK( Motion );
+}
+
+/*
+ * Sets the passive mouse motion callback for the current window (no mouse
+ * buttons are pressed)
+ */
+void FGAPIENTRY glutPassiveMotionFunc( void (* callback)( int, int ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutPassiveMotionFunc" );
+    SET_CALLBACK( Passive );
+}
+
+/*
+ * Window mouse entry/leave callback
+ */
+void FGAPIENTRY glutEntryFunc( void (* callback)( int ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutEntryFunc" );
+    SET_CALLBACK( Entry );
+}
+
+/*
+ * Window destruction callbacks
+ */
+void FGAPIENTRY glutCloseFunc( void (* callback)( void ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutCloseFunc" );
+    SET_CALLBACK( Destroy );
+}
+
+void FGAPIENTRY glutWMCloseFunc( void (* callback)( void ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWMCloseFunc" );
+    glutCloseFunc( callback );
+}
+
+/* A. Donev: Destruction callback for menus */
+void FGAPIENTRY glutMenuDestroyFunc( void (* callback)( void ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutMenuDestroyFunc" );
+    if( fgStructure.CurrentMenu )
+        fgStructure.CurrentMenu->Destroy = callback;
+}
+
+/*
+ * Deprecated version of glutMenuStatusFunc callback setting method
+ */
+void FGAPIENTRY glutMenuStateFunc( void (* callback)( int ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutMenuStateFunc" );
+    fgState.MenuStateCallback = callback;
+}
+
+/*
+ * Sets the global menu status callback for the current window
+ */
+void FGAPIENTRY glutMenuStatusFunc( void (* callback)( int, int, int ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutMenuStatusFunc" );
+    fgState.MenuStatusCallback = callback;
+}
+
+/*
+ * Sets the overlay display callback for the current window
+ */
+void FGAPIENTRY glutOverlayDisplayFunc( void (* callback)( void ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutOverlayDisplayFunc" );
+    SET_CALLBACK( OverlayDisplay );
+}
+
+/*
+ * Sets the window status callback for the current window
+ */
+void FGAPIENTRY glutWindowStatusFunc( void (* callback)( int ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWindowStatusFunc" );
+    SET_CALLBACK( WindowStatus );
+}
+
+/*
+ * Sets the spaceball motion callback for the current window
+ */
+void FGAPIENTRY glutSpaceballMotionFunc( void (* callback)( int, int, int ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSpaceballMotionFunc" );
+    fgInitialiseSpaceball();
+
+    SET_CALLBACK( SpaceMotion );
+}
+
+/*
+ * Sets the spaceball rotate callback for the current window
+ */
+void FGAPIENTRY glutSpaceballRotateFunc( void (* callback)( int, int, int ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSpaceballRotateFunc" );
+    fgInitialiseSpaceball();
+
+    SET_CALLBACK( SpaceRotation );
+}
+
+/*
+ * Sets the spaceball button callback for the current window
+ */
+void FGAPIENTRY glutSpaceballButtonFunc( void (* callback)( int, int ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSpaceballButtonFunc" );
+    fgInitialiseSpaceball();
+
+    SET_CALLBACK( SpaceButton );
+}
+
+/*
+ * Sets the button box callback for the current window
+ */
+void FGAPIENTRY glutButtonBoxFunc( void (* callback)( int, int ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutButtonBoxFunc" );
+    SET_CALLBACK( ButtonBox );
+}
+
+/*
+ * Sets the dials box callback for the current window
+ */
+void FGAPIENTRY glutDialsFunc( void (* callback)( int, int ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutDialsFunc" );
+    SET_CALLBACK( Dials );
+}
+
+/*
+ * Sets the tablet motion callback for the current window
+ */
+void FGAPIENTRY glutTabletMotionFunc( void (* callback)( int, int ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutTabletMotionFunc" );
+    SET_CALLBACK( TabletMotion );
+}
+
+/*
+ * Sets the tablet buttons callback for the current window
+ */
+void FGAPIENTRY glutTabletButtonFunc( void (* callback)( int, int, int, int ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutTabletButtonFunc" );
+    SET_CALLBACK( TabletButton );
+}
+
+/*
+ * Sets the multi-pointer entry callback for the current window
+ */
+void FGAPIENTRY glutMultiEntryFunc( void (* callback)(int, int ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutMultiEntryFunc" );
+    SET_CALLBACK( MultiEntry );
+}
+
+/*
+ * Sets the multi-pointer button callback for the current window
+ */
+void FGAPIENTRY glutMultiButtonFunc( void (* callback)(int, int, int, int, int ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutMultiButtonFunc" );
+    SET_CALLBACK( MultiButton );
+}
+
+/*
+ * Sets the multi-pointer motion callback for the current window
+ */
+void FGAPIENTRY glutMultiMotionFunc( void (* callback)(int, int, int ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutMultiMotionFunc" );
+    SET_CALLBACK( MultiMotion );
+}
+
+/*
+ * Sets the multi-pointer passive motion callback for the current window
+ */
+void FGAPIENTRY glutMultiPassiveFunc( void (* callback)(int, int, int ) )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutMultiPassiveFunc" );
+    SET_CALLBACK( MultiPassive );
+}
+
+/*** END OF FILE ***/
diff --git a/src/fg_cursor.c b/src/fg_cursor.c
new file mode 100644 (file)
index 0000000..007898f
--- /dev/null
@@ -0,0 +1,79 @@
+/*
+ * freeglut_cursor.c
+ *
+ * The mouse cursor related stuff.
+ *
+ * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
+ * Written by Pawel W. Olszta, <olszta@sourceforge.net>
+ * Creation date: Thu Dec 16 1999
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include <GL/freeglut.h>
+#include "fg_internal.h"
+
+/*
+ * TODO BEFORE THE STABLE RELEASE:
+ *  glutSetCursor()     -- Win32 mappings are incomplete.
+ *
+ * It would be good to use custom mouse cursor shapes, and introduce
+ * an option to display them using glBitmap() and/or texture mapping,
+ * apart from the windowing system version.
+ */
+
+/* -- PRIVATE FUNCTIONS --------------------------------------------------- */
+
+extern void fgPlatformSetCursor ( SFG_Window *window, int cursorID );
+extern void fgPlatformWarpPointer ( int x, int y );
+
+
+
+/* -- INTERNAL FUNCTIONS ---------------------------------------------------- */
+void fgSetCursor ( SFG_Window *window, int cursorID )
+{
+    fgPlatformSetCursor ( window, cursorID );
+}
+
+
+/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
+
+/*
+ * Set the cursor image to be used for the current window
+ */
+void FGAPIENTRY glutSetCursor( int cursorID )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSetCursor" );
+    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutSetCursor" );
+
+    fgPlatformSetCursor ( fgStructure.CurrentWindow, cursorID );
+    fgStructure.CurrentWindow->State.Cursor = cursorID;
+}
+
+/*
+ * Moves the mouse pointer to given window coordinates
+ */
+void FGAPIENTRY glutWarpPointer( int x, int y )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWarpPointer" );
+    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutWarpPointer" );
+
+    fgPlatformWarpPointer ( x, y );
+}
+
+/*** END OF FILE ***/
diff --git a/src/fg_display.c b/src/fg_display.c
new file mode 100644 (file)
index 0000000..9b8bd42
--- /dev/null
@@ -0,0 +1,104 @@
+/*
+ * freeglut_display.c
+ *
+ * Display message posting, context buffer swapping.
+ *
+ * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
+ * Written by Pawel W. Olszta, <olszta@sourceforge.net>
+ * Creation date: Fri Dec 3 1999
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include <GL/freeglut.h>
+#include "fg_internal.h"
+
+
+/* Function prototypes */
+extern void fgPlatformGlutSwapBuffers( SFG_PlatformDisplay *pDisplayPtr, SFG_Window* CurrentWindow );
+
+
+/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
+
+/*
+ * Marks the current window to have the redisplay performed when possible...
+ */
+void FGAPIENTRY glutPostRedisplay( void )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutPostRedisplay" );
+    if ( ! fgStructure.CurrentWindow )
+       {
+      fgError ( " ERROR:  Function <%s> called"
+                " with no current window defined.", "glutPostRedisplay" ) ;
+       }
+
+    fgStructure.CurrentWindow->State.Redisplay = GL_TRUE;
+}
+
+/*
+ * Swaps the buffers for the current window (if any)
+ */
+void FGAPIENTRY glutSwapBuffers( void )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSwapBuffers" );
+    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutSwapBuffers" );
+
+    /*
+     * "glXSwapBuffers" already performs an implicit call to "glFlush". What
+     * about "SwapBuffers"?
+     */
+    glFlush( );
+    if( ! fgStructure.CurrentWindow->Window.DoubleBuffered )
+        return;
+
+    fgPlatformGlutSwapBuffers( &fgDisplay.pDisplay, fgStructure.CurrentWindow );
+
+    /* GLUT_FPS env var support */
+    if( fgState.FPSInterval )
+    {
+        GLint t = glutGet( GLUT_ELAPSED_TIME );
+        fgState.SwapCount++;
+        if( fgState.SwapTime == 0 )
+            fgState.SwapTime = t;
+        else if( t - fgState.SwapTime > fgState.FPSInterval )
+        {
+            float time = 0.001f * ( t - fgState.SwapTime );
+            float fps = ( float )fgState.SwapCount / time;
+            fprintf( stderr,
+                     "freeglut: %d frames in %.2f seconds = %.2f FPS\n",
+                     fgState.SwapCount, time, fps );
+            fgState.SwapTime = t;
+            fgState.SwapCount = 0;
+        }
+    }
+}
+
+/*
+ * Mark appropriate window to be displayed
+ */
+void FGAPIENTRY glutPostWindowRedisplay( int windowID )
+{
+    SFG_Window* window;
+
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutPostWindowRedisplay" );
+    window = fgWindowByID( windowID );
+    freeglut_return_if_fail( window );
+    window->State.Redisplay = GL_TRUE;
+}
+
+/*** END OF FILE ***/
diff --git a/src/fg_ext.c b/src/fg_ext.c
new file mode 100644 (file)
index 0000000..a9a8a11
--- /dev/null
@@ -0,0 +1,221 @@
+/*
+ * freeglut_ext.c
+ *
+ * Functions related to OpenGL extensions.
+ *
+ * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
+ * Written by Pawel W. Olszta, <olszta@sourceforge.net>
+ * Creation date: Thu Dec 9 1999
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#define GLX_GLXEXT_PROTOTYPES
+#include <GL/freeglut.h>
+#include "fg_internal.h"
+
+extern SFG_Proc fgPlatformGetProcAddress( const char *procName );
+extern GLUTproc fgPlatformGetGLUTProcAddress( const char *procName );
+
+static GLUTproc fghGetGLUTProcAddress( const char* procName )
+{
+    /* optimization: quick initial check */
+    if( strncmp( procName, "glut", 4 ) != 0 )
+        return NULL;
+
+#define CHECK_NAME(x) if( strcmp( procName, #x ) == 0) return (GLUTproc)x;
+    CHECK_NAME(glutInit);
+    CHECK_NAME(glutInitDisplayMode);
+    CHECK_NAME(glutInitDisplayString);
+    CHECK_NAME(glutInitWindowPosition);
+    CHECK_NAME(glutInitWindowSize);
+    CHECK_NAME(glutMainLoop);
+    CHECK_NAME(glutExit);
+    CHECK_NAME(glutCreateWindow);
+    CHECK_NAME(glutCreateSubWindow);
+    CHECK_NAME(glutDestroyWindow);
+    CHECK_NAME(glutPostRedisplay);
+    CHECK_NAME(glutPostWindowRedisplay);
+    CHECK_NAME(glutSwapBuffers);
+    CHECK_NAME(glutGetWindow);
+    CHECK_NAME(glutSetWindow);
+    CHECK_NAME(glutSetWindowTitle);
+    CHECK_NAME(glutSetIconTitle);
+    CHECK_NAME(glutPositionWindow);
+    CHECK_NAME(glutReshapeWindow);
+    CHECK_NAME(glutPopWindow);
+    CHECK_NAME(glutPushWindow);
+    CHECK_NAME(glutIconifyWindow);
+    CHECK_NAME(glutShowWindow);
+    CHECK_NAME(glutHideWindow);
+    CHECK_NAME(glutFullScreen);
+    CHECK_NAME(glutSetCursor);
+    CHECK_NAME(glutWarpPointer);
+    CHECK_NAME(glutEstablishOverlay);
+    CHECK_NAME(glutRemoveOverlay);
+    CHECK_NAME(glutUseLayer);
+    CHECK_NAME(glutPostOverlayRedisplay);
+    CHECK_NAME(glutPostWindowOverlayRedisplay);
+    CHECK_NAME(glutShowOverlay);
+    CHECK_NAME(glutHideOverlay);
+    CHECK_NAME(glutCreateMenu);
+    CHECK_NAME(glutDestroyMenu);
+    CHECK_NAME(glutGetMenu);
+    CHECK_NAME(glutSetMenu);
+    CHECK_NAME(glutAddMenuEntry);
+    CHECK_NAME(glutAddSubMenu);
+    CHECK_NAME(glutChangeToMenuEntry);
+    CHECK_NAME(glutChangeToSubMenu);
+    CHECK_NAME(glutRemoveMenuItem);
+    CHECK_NAME(glutAttachMenu);
+    CHECK_NAME(glutDetachMenu);
+    CHECK_NAME(glutDisplayFunc);
+    CHECK_NAME(glutReshapeFunc);
+    CHECK_NAME(glutKeyboardFunc);
+    CHECK_NAME(glutMouseFunc);
+    CHECK_NAME(glutMultiEntryFunc);
+    CHECK_NAME(glutMultiMotionFunc);
+    CHECK_NAME(glutMultiButtonFunc);
+    CHECK_NAME(glutMultiPassiveFunc);
+    CHECK_NAME(glutMotionFunc);
+    CHECK_NAME(glutPassiveMotionFunc);
+    CHECK_NAME(glutEntryFunc);
+    CHECK_NAME(glutVisibilityFunc);
+    CHECK_NAME(glutIdleFunc);
+    CHECK_NAME(glutTimerFunc);
+    CHECK_NAME(glutMenuStateFunc);
+    CHECK_NAME(glutSpecialFunc);
+    CHECK_NAME(glutSpaceballMotionFunc);
+    CHECK_NAME(glutSpaceballRotateFunc);
+    CHECK_NAME(glutSpaceballButtonFunc);
+    CHECK_NAME(glutButtonBoxFunc);
+    CHECK_NAME(glutDialsFunc);
+    CHECK_NAME(glutTabletMotionFunc);
+    CHECK_NAME(glutTabletButtonFunc);
+    CHECK_NAME(glutMenuStatusFunc);
+    CHECK_NAME(glutOverlayDisplayFunc);
+    CHECK_NAME(glutWindowStatusFunc);
+    CHECK_NAME(glutKeyboardUpFunc);
+    CHECK_NAME(glutSpecialUpFunc);
+    CHECK_NAME(glutSetColor);
+    CHECK_NAME(glutGetColor);
+    CHECK_NAME(glutCopyColormap);
+    CHECK_NAME(glutGet);
+    CHECK_NAME(glutDeviceGet);
+    CHECK_NAME(glutExtensionSupported);
+    CHECK_NAME(glutGetModifiers);
+    CHECK_NAME(glutLayerGet);
+    CHECK_NAME(glutBitmapCharacter);
+    CHECK_NAME(glutBitmapWidth);
+    CHECK_NAME(glutStrokeCharacter);
+    CHECK_NAME(glutStrokeWidth);
+    CHECK_NAME(glutBitmapLength);
+    CHECK_NAME(glutStrokeLength);
+    CHECK_NAME(glutWireSphere);
+    CHECK_NAME(glutSolidSphere);
+    CHECK_NAME(glutWireCone);
+    CHECK_NAME(glutSolidCone);
+    CHECK_NAME(glutWireCube);
+    CHECK_NAME(glutSolidCube);
+    CHECK_NAME(glutWireTorus);
+    CHECK_NAME(glutSolidTorus);
+    CHECK_NAME(glutWireDodecahedron);
+    CHECK_NAME(glutSolidDodecahedron);
+    CHECK_NAME(glutWireTeapot);
+    CHECK_NAME(glutSolidTeapot);
+    CHECK_NAME(glutWireOctahedron);
+    CHECK_NAME(glutSolidOctahedron);
+    CHECK_NAME(glutWireTetrahedron);
+    CHECK_NAME(glutSolidTetrahedron);
+    CHECK_NAME(glutWireIcosahedron);
+    CHECK_NAME(glutSolidIcosahedron);
+    CHECK_NAME(glutVideoResizeGet);
+    CHECK_NAME(glutSetupVideoResizing);
+    CHECK_NAME(glutStopVideoResizing);
+    CHECK_NAME(glutVideoResize);
+    CHECK_NAME(glutVideoPan);
+    CHECK_NAME(glutReportErrors);
+    CHECK_NAME(glutIgnoreKeyRepeat);
+    CHECK_NAME(glutSetKeyRepeat);
+
+    /* freeglut extensions */
+    CHECK_NAME(glutMainLoopEvent);
+    CHECK_NAME(glutLeaveMainLoop);
+    CHECK_NAME(glutCloseFunc);
+    CHECK_NAME(glutWMCloseFunc);
+    CHECK_NAME(glutMenuDestroyFunc);
+    CHECK_NAME(glutFullScreenToggle);
+    CHECK_NAME(glutLeaveFullScreen);
+    CHECK_NAME(glutSetOption);
+    CHECK_NAME(glutGetModeValues);
+    CHECK_NAME(glutSetWindowData);
+    CHECK_NAME(glutGetWindowData);
+    CHECK_NAME(glutSetMenuData);
+    CHECK_NAME(glutGetMenuData);
+    CHECK_NAME(glutBitmapHeight);
+    CHECK_NAME(glutStrokeHeight);
+    CHECK_NAME(glutBitmapString);
+    CHECK_NAME(glutStrokeString);
+    CHECK_NAME(glutWireRhombicDodecahedron);
+    CHECK_NAME(glutSolidRhombicDodecahedron);
+    CHECK_NAME(glutWireSierpinskiSponge);
+    CHECK_NAME(glutSolidSierpinskiSponge);
+    CHECK_NAME(glutWireCylinder);
+    CHECK_NAME(glutSolidCylinder);
+    CHECK_NAME(glutGetProcAddress);
+    CHECK_NAME(glutMouseWheelFunc);
+    CHECK_NAME(glutJoystickGetNumAxes);
+    CHECK_NAME(glutJoystickGetNumButtons);
+    CHECK_NAME(glutJoystickNotWorking);
+    CHECK_NAME(glutJoystickGetDeadBand);
+    CHECK_NAME(glutJoystickSetDeadBand);
+    CHECK_NAME(glutJoystickGetSaturation);
+    CHECK_NAME(glutJoystickSetSaturation);
+    CHECK_NAME(glutJoystickSetMinRange);
+    CHECK_NAME(glutJoystickSetMaxRange);
+    CHECK_NAME(glutJoystickSetCenter);
+    CHECK_NAME(glutJoystickGetMinRange);
+    CHECK_NAME(glutJoystickGetMaxRange);
+    CHECK_NAME(glutJoystickGetCenter);
+    CHECK_NAME(glutInitContextVersion);
+    CHECK_NAME(glutInitContextFlags);
+    CHECK_NAME(glutInitContextProfile);
+    CHECK_NAME(glutInitErrorFunc);
+    CHECK_NAME(glutInitWarningFunc);
+#undef CHECK_NAME
+
+    return NULL;
+}
+
+
+
+GLUTproc FGAPIENTRY
+glutGetProcAddress( const char *procName )
+{
+    GLUTproc p;
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutGetProcAddress" );
+
+    /* Try GLUT functions first, then core GL functions */
+    p = fghGetGLUTProcAddress( procName );
+
+       /* Some GLUT functions are platform-specific: */
+       if ( !p )
+      p = fgPlatformGetGLUTProcAddress( procName );
+
+    return ( p != NULL ) ? p : fgPlatformGetProcAddress( procName );
+}
diff --git a/src/fg_font.c b/src/fg_font.c
new file mode 100644 (file)
index 0000000..507397e
--- /dev/null
@@ -0,0 +1,384 @@
+/*
+ * freeglut_font.c
+ *
+ * Bitmap and stroke fonts displaying.
+ *
+ * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
+ * Written by Pawel W. Olszta, <olszta@sourceforge.net>
+ * Creation date: Thu Dec 16 1999
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include <GL/freeglut.h>
+#include "fg_internal.h"
+
+/*
+ * TODO BEFORE THE STABLE RELEASE:
+ *
+ *  Test things out ...
+ */
+
+/* -- IMPORT DECLARATIONS -------------------------------------------------- */
+
+/*
+ * These are the font faces defined in freeglut_font_data.c file:
+ */
+extern SFG_Font fgFontFixed8x13;
+extern SFG_Font fgFontFixed9x15;
+extern SFG_Font fgFontHelvetica10;
+extern SFG_Font fgFontHelvetica12;
+extern SFG_Font fgFontHelvetica18;
+extern SFG_Font fgFontTimesRoman10;
+extern SFG_Font fgFontTimesRoman24;
+extern SFG_StrokeFont fgStrokeRoman;
+extern SFG_StrokeFont fgStrokeMonoRoman;
+
+
+/* -- PRIVATE FUNCTIONS ---------------------------------------------------- */
+
+/*
+ * Matches a font ID with a SFG_Font structure pointer.
+ * This was changed to match the GLUT header style.
+ */
+static SFG_Font* fghFontByID( void* font )
+{
+    if( font == GLUT_BITMAP_8_BY_13        )
+        return &fgFontFixed8x13;
+    if( font == GLUT_BITMAP_9_BY_15        )
+        return &fgFontFixed9x15;
+    if( font == GLUT_BITMAP_HELVETICA_10   )
+        return &fgFontHelvetica10;
+    if( font == GLUT_BITMAP_HELVETICA_12   )
+        return &fgFontHelvetica12;
+    if( font == GLUT_BITMAP_HELVETICA_18   )
+        return &fgFontHelvetica18;
+    if( font == GLUT_BITMAP_TIMES_ROMAN_10 )
+        return &fgFontTimesRoman10;
+    if( font == GLUT_BITMAP_TIMES_ROMAN_24 )
+        return &fgFontTimesRoman24;
+
+    fgWarning( "font 0x%08x not found", font );
+    return 0;
+}
+
+/*
+ * Matches a font ID with a SFG_StrokeFont structure pointer.
+ * This was changed to match the GLUT header style.
+ */
+static SFG_StrokeFont* fghStrokeByID( void* font )
+{
+    if( font == GLUT_STROKE_ROMAN      )
+        return &fgStrokeRoman;
+    if( font == GLUT_STROKE_MONO_ROMAN )
+        return &fgStrokeMonoRoman;
+
+    fgWarning( "stroke font 0x%08x not found", font );
+    return 0;
+}
+
+
+/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
+
+/*
+ * Draw a bitmap character
+ */
+void FGAPIENTRY glutBitmapCharacter( void* fontID, int character )
+{
+    const GLubyte* face;
+    SFG_Font* font;
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutBitmapCharacter" );
+    font = fghFontByID( fontID );
+    freeglut_return_if_fail( ( character >= 1 )&&( character < 256 ) );
+    freeglut_return_if_fail( font );
+
+    /*
+     * Find the character we want to draw (???)
+     */
+    face = font->Characters[ character ];
+
+    glPushClientAttrib( GL_CLIENT_PIXEL_STORE_BIT );
+    glPixelStorei( GL_UNPACK_SWAP_BYTES,  GL_FALSE );
+    glPixelStorei( GL_UNPACK_LSB_FIRST,   GL_FALSE );
+    glPixelStorei( GL_UNPACK_ROW_LENGTH,  0        );
+    glPixelStorei( GL_UNPACK_SKIP_ROWS,   0        );
+    glPixelStorei( GL_UNPACK_SKIP_PIXELS, 0        );
+    glPixelStorei( GL_UNPACK_ALIGNMENT,   1        );
+    glBitmap(
+        face[ 0 ], font->Height,      /* The bitmap's width and height  */
+        font->xorig, font->yorig,     /* The origin in the font glyph   */
+        ( float )( face[ 0 ] ), 0.0,  /* The raster advance -- inc. x,y */
+        ( face + 1 )                  /* The packed bitmap data...      */
+    );
+    glPopClientAttrib( );
+}
+
+void FGAPIENTRY glutBitmapString( void* fontID, const unsigned char *string )
+{
+    unsigned char c;
+    float x = 0.0f ;
+    SFG_Font* font;
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutBitmapString" );
+    font = fghFontByID( fontID );
+    freeglut_return_if_fail( font );
+    if ( !string || ! *string )
+        return;
+
+    glPushClientAttrib( GL_CLIENT_PIXEL_STORE_BIT );
+    glPixelStorei( GL_UNPACK_SWAP_BYTES,  GL_FALSE );
+    glPixelStorei( GL_UNPACK_LSB_FIRST,   GL_FALSE );
+    glPixelStorei( GL_UNPACK_ROW_LENGTH,  0        );
+    glPixelStorei( GL_UNPACK_SKIP_ROWS,   0        );
+    glPixelStorei( GL_UNPACK_SKIP_PIXELS, 0        );
+    glPixelStorei( GL_UNPACK_ALIGNMENT,   1        );
+
+    /*
+     * Step through the string, drawing each character.
+     * A newline will simply translate the next character's insertion
+     * point back to the start of the line and down one line.
+     */
+    while( ( c = *string++) )
+        if( c == '\n' )
+        {
+            glBitmap ( 0, 0, 0, 0, -x, (float) -font->Height, NULL );
+            x = 0.0f;
+        }
+        else  /* Not an EOL, draw the bitmap character */
+        {
+            const GLubyte* face = font->Characters[ c ];
+
+            glBitmap(
+                face[ 0 ], font->Height,     /* Bitmap's width and height    */
+                font->xorig, font->yorig,    /* The origin in the font glyph */
+                ( float )( face[ 0 ] ), 0.0, /* The raster advance; inc. x,y */
+                ( face + 1 )                 /* The packed bitmap data...    */
+            );
+
+            x += ( float )( face[ 0 ] );
+        }
+
+    glPopClientAttrib( );
+}
+
+/*
+ * Returns the width in pixels of a font's character
+ */
+int FGAPIENTRY glutBitmapWidth( void* fontID, int character )
+{
+    SFG_Font* font;
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutBitmapWidth" );
+    font = fghFontByID( fontID );
+    freeglut_return_val_if_fail( character > 0 && character < 256, 0 );
+    freeglut_return_val_if_fail( font, 0 );
+    return *( font->Characters[ character ] );
+}
+
+/*
+ * Return the width of a string drawn using a bitmap font
+ */
+int FGAPIENTRY glutBitmapLength( void* fontID, const unsigned char* string )
+{
+    unsigned char c;
+    int length = 0, this_line_length = 0;
+    SFG_Font* font;
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutBitmapLength" );
+    font = fghFontByID( fontID );
+    freeglut_return_val_if_fail( font, 0 );
+    if ( !string || ! *string )
+        return 0;
+
+    while( ( c = *string++) )
+    {
+        if( c != '\n' )/* Not an EOL, increment length of line */
+            this_line_length += *( font->Characters[ c ]);
+        else  /* EOL; reset the length of this line */
+        {
+            if( length < this_line_length )
+                length = this_line_length;
+            this_line_length = 0;
+        }
+    }
+    if ( length < this_line_length )
+        length = this_line_length;
+
+    return length;
+}
+
+/*
+ * Returns the height of a bitmap font
+ */
+int FGAPIENTRY glutBitmapHeight( void* fontID )
+{
+    SFG_Font* font;
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutBitmapHeight" );
+    font = fghFontByID( fontID );
+    freeglut_return_val_if_fail( font, 0 );
+    return font->Height;
+}
+
+/*
+ * Draw a stroke character
+ */
+void FGAPIENTRY glutStrokeCharacter( void* fontID, int character )
+{
+    const SFG_StrokeChar *schar;
+    const SFG_StrokeStrip *strip;
+    int i, j;
+    SFG_StrokeFont* font;
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutStrokeCharacter" );
+    font = fghStrokeByID( fontID );
+    freeglut_return_if_fail( character >= 0 );
+    freeglut_return_if_fail( character < font->Quantity );
+    freeglut_return_if_fail( font );
+
+    schar = font->Characters[ character ];
+    freeglut_return_if_fail( schar );
+    strip = schar->Strips;
+
+    for( i = 0; i < schar->Number; i++, strip++ )
+    {
+        glBegin( GL_LINE_STRIP );
+        for( j = 0; j < strip->Number; j++ )
+            glVertex2f( strip->Vertices[ j ].X, strip->Vertices[ j ].Y );
+        glEnd( );
+                               glBegin( GL_POINTS );
+        for( j = 0; j < strip->Number; j++ )
+            glVertex2f( strip->Vertices[ j ].X, strip->Vertices[ j ].Y );
+                               glEnd( );
+    }
+    glTranslatef( schar->Right, 0.0, 0.0 );
+}
+
+void FGAPIENTRY glutStrokeString( void* fontID, const unsigned char *string )
+{
+    unsigned char c;
+    int i, j;
+    float length = 0.0;
+    SFG_StrokeFont* font;
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutStrokeString" );
+    font = fghStrokeByID( fontID );
+    freeglut_return_if_fail( font );
+    if ( !string || ! *string )
+        return;
+
+    /*
+     * Step through the string, drawing each character.
+     * A newline will simply translate the next character's insertion
+     * point back to the start of the line and down one line.
+     */
+    while( ( c = *string++) )
+        if( c < font->Quantity )
+        {
+            if( c == '\n' )
+            {
+                glTranslatef ( -length, -( float )( font->Height ), 0.0 );
+                length = 0.0;
+            }
+            else  /* Not an EOL, draw the bitmap character */
+            {
+                const SFG_StrokeChar *schar = font->Characters[ c ];
+                if( schar )
+                {
+                    const SFG_StrokeStrip *strip = schar->Strips;
+
+                    for( i = 0; i < schar->Number; i++, strip++ )
+                    {
+                        glBegin( GL_LINE_STRIP );
+                        for( j = 0; j < strip->Number; j++ )
+                            glVertex2f( strip->Vertices[ j ].X,
+                                        strip->Vertices[ j ].Y);
+
+                        glEnd( );
+                    }
+
+                    length += schar->Right;
+                    glTranslatef( schar->Right, 0.0, 0.0 );
+                }
+            }
+        }
+}
+
+/*
+ * Return the width in pixels of a stroke character
+ */
+int FGAPIENTRY glutStrokeWidth( void* fontID, int character )
+{
+    const SFG_StrokeChar *schar;
+    SFG_StrokeFont* font;
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutStrokeWidth" );
+    font = fghStrokeByID( fontID );
+    freeglut_return_val_if_fail( ( character >= 0 ) &&
+                                 ( character < font->Quantity ),
+                                 0
+    );
+    freeglut_return_val_if_fail( font, 0 );
+    schar = font->Characters[ character ];
+    freeglut_return_val_if_fail( schar, 0 );
+
+    return ( int )( schar->Right + 0.5 );
+}
+
+/*
+ * Return the width of a string drawn using a stroke font
+ */
+int FGAPIENTRY glutStrokeLength( void* fontID, const unsigned char* string )
+{
+    unsigned char c;
+    float length = 0.0;
+    float this_line_length = 0.0;
+    SFG_StrokeFont* font;
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutStrokeLength" );
+    font = fghStrokeByID( fontID );
+    freeglut_return_val_if_fail( font, 0 );
+    if ( !string || ! *string )
+        return 0;
+
+    while( ( c = *string++) )
+        if( c < font->Quantity )
+        {
+            if( c == '\n' ) /* EOL; reset the length of this line */
+            {
+                if( length < this_line_length )
+                    length = this_line_length;
+                this_line_length = 0.0;
+            }
+            else  /* Not an EOL, increment the length of this line */
+            {
+                const SFG_StrokeChar *schar = font->Characters[ c ];
+                if( schar )
+                    this_line_length += schar->Right;
+            }
+        }
+    if( length < this_line_length )
+        length = this_line_length;
+    return( int )( length + 0.5 );
+}
+
+/*
+ * Returns the height of a stroke font
+ */
+GLfloat FGAPIENTRY glutStrokeHeight( void* fontID )
+{
+    SFG_StrokeFont* font;
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutStrokeHeight" );
+    font = fghStrokeByID( fontID );
+    freeglut_return_val_if_fail( font, 0.0 );
+    return font->Height;
+}
+
+/*** END OF FILE ***/
diff --git a/src/fg_font_data.c b/src/fg_font_data.c
new file mode 100644 (file)
index 0000000..d4e16db
--- /dev/null
@@ -0,0 +1,2020 @@
+/*
+    \file  og_font_data.c
+    \brief Bitmapped font data for OpenGLUT fonts.
+*/
+
+/*
+ * This file has been automatically generated by the 
+ * genfonts utility.
+ *
+ * The legal status of this file is a bit vague.  The font glyphs
+ * themselves come from XFree86 v4.3.0 (as of this writing), and as
+ * part of the X server may be subject to the XFree86 copyrights.
+ * The original freeglut fonts were extracted by a utility written
+ * by Pawel W. Olszta (see below) and the generated fonts contained
+ * his copyright exclusively.  Steve Baker asserts that Pawel
+ * assigned intellectual property rights to Steve Baker.  Steve
+ * Baker also asserts that fonts cannot be copyrighted.  He has
+ * neither stripped the copyright from the freeglut fonts nor
+ * formally retitled anything in his name.  Since that time, the
+ * OpenGLUT project has branched from freeglut, and has made
+ * necessary modifications to Pawel's ``genfonts'' utility.
+ * To that extent, OpenGLUT may have some title to this file.
+ * What is fairly clear is that the font data is licensed under
+ * the XFree86 license (which is variously termed ``XFree'' and
+ * ``MIT'' by the freeglut project).  It is believed that all
+ * title holders wish this file to be as useful as possible, and
+ * that either the ``XFree'' or ``MIT'' license works.
+ *
+ * Portions copyright (c) 2004, the OpenGLUT project contributors.
+ * OpenGLUT branched from freeglut in February, 2004.
+ *
+ * Copyright (c) 1999-2000 by Pawel W. Olszta
+ * Written by Pawel W. Olszta, <olszta@sourceforge.net>
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Sotware.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include <GL/freeglut.h>
+#include "fg_internal.h"
+
+/*
+ * The following bitmapped fonts are defined in this file:
+ * 
+ * 1. fgFontFixed8x13
+ *       -misc-fixed-medium-r-normal--13-120-75-75-C-80-iso8859-1
+ * 2. fgFontFixed9x15
+ *       -misc-fixed-medium-r-normal--15-140-75-75-C-90-iso8859-1
+ * 3. fgFontHelvetica10
+ *       -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
+ * 4. fgFontHelvetica12
+ *       -adobe-helvetica-medium-r-normal--12-120-75-75-p-67-iso8859-1
+ * 5. fgFontHelvetica18
+ *       -adobe-helvetica-medium-r-normal--18-180-75-75-p-98-iso8859-1
+ * 6. fgFontTimesRoman10
+ *       -adobe-times-medium-r-normal--10-100-75-75-p-54-iso8859-1
+ * 7. fgFontTimesRoman24
+ *       -adobe-times-medium-r-normal--24-240-75-75-p-124-iso8859-1
+ */
+
+static const GLubyte Fixed8x13_Character_000[] = {  8,  0,  0,  0,170,  0,130,  0,130,  0,130,  0,170,  0,  0};
+static const GLubyte Fixed8x13_Character_001[] = {  8,  0,  0,  0,  0, 16, 56,124,254,124, 56, 16,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_002[] = {  8,  0,170, 85,170, 85,170, 85,170, 85,170, 85,170, 85,170};
+static const GLubyte Fixed8x13_Character_003[] = {  8,  0,  0,  0,  4,  4,  4,  4,174,160,224,160,160,  0,  0};
+static const GLubyte Fixed8x13_Character_004[] = {  8,  0,  0,  0,  8,  8, 12,  8,142,128,192,128,224,  0,  0};
+static const GLubyte Fixed8x13_Character_005[] = {  8,  0,  0,  0, 10, 10, 12, 10,108,128,128,128, 96,  0,  0};
+static const GLubyte Fixed8x13_Character_006[] = {  8,  0,  0,  0,  8,  8, 12,  8,238,128,128,128,128,  0,  0};
+static const GLubyte Fixed8x13_Character_007[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0, 24, 36, 36, 24,  0,  0};
+static const GLubyte Fixed8x13_Character_008[] = {  8,  0,  0,  0,  0,124,  0, 16, 16,124, 16, 16,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_009[] = {  8,  0,  0,  0, 14,  8,  8,  8,168,160,160,160,192,  0,  0};
+static const GLubyte Fixed8x13_Character_010[] = {  8,  0,  0,  0,  4,  4,  4,  4, 46, 80, 80,136,136,  0,  0};
+static const GLubyte Fixed8x13_Character_011[] = {  8,  0,  0,  0,  0,  0,  0,  0,240, 16, 16, 16, 16, 16, 16};
+static const GLubyte Fixed8x13_Character_012[] = {  8,  0, 16, 16, 16, 16, 16, 16,240,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_013[] = {  8,  0, 16, 16, 16, 16, 16, 16, 31,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_014[] = {  8,  0,  0,  0,  0,  0,  0,  0, 31, 16, 16, 16, 16, 16, 16};
+static const GLubyte Fixed8x13_Character_015[] = {  8,  0, 16, 16, 16, 16, 16, 16,255, 16, 16, 16, 16, 16, 16};
+static const GLubyte Fixed8x13_Character_016[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,255};
+static const GLubyte Fixed8x13_Character_017[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,255,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_018[] = {  8,  0,  0,  0,  0,  0,  0,  0,255,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_019[] = {  8,  0,  0,  0,  0,255,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_020[] = {  8,  0,255,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_021[] = {  8,  0, 16, 16, 16, 16, 16, 16, 31, 16, 16, 16, 16, 16, 16};
+static const GLubyte Fixed8x13_Character_022[] = {  8,  0, 16, 16, 16, 16, 16, 16,240, 16, 16, 16, 16, 16, 16};
+static const GLubyte Fixed8x13_Character_023[] = {  8,  0,  0,  0,  0,  0,  0,  0,255, 16, 16, 16, 16, 16, 16};
+static const GLubyte Fixed8x13_Character_024[] = {  8,  0, 16, 16, 16, 16, 16, 16,255,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_025[] = {  8,  0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16};
+static const GLubyte Fixed8x13_Character_026[] = {  8,  0,  0,  0,254,  0, 14, 48,192, 48, 14,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_027[] = {  8,  0,  0,  0,254,  0,224, 24,  6, 24,224,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_028[] = {  8,  0,  0,  0, 68, 68, 68, 68, 68,254,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_029[] = {  8,  0,  0,  0, 32, 32,126, 16,  8,126,  4,  4,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_030[] = {  8,  0,  0,  0,220, 98, 32, 32, 32,112, 32, 34, 28,  0,  0};
+static const GLubyte Fixed8x13_Character_031[] = {  8,  0,  0,  0,  0,  0,  0,  0, 24,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_032[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_033[] = {  8,  0,  0,  0, 16,  0, 16, 16, 16, 16, 16, 16, 16,  0,  0};
+static const GLubyte Fixed8x13_Character_034[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0, 36, 36, 36,  0,  0};
+static const GLubyte Fixed8x13_Character_035[] = {  8,  0,  0,  0,  0, 36, 36,126, 36,126, 36, 36,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_036[] = {  8,  0,  0,  0, 16,120, 20, 20, 56, 80, 80, 60, 16,  0,  0};
+static const GLubyte Fixed8x13_Character_037[] = {  8,  0,  0,  0, 68, 42, 36, 16,  8,  8, 36, 82, 34,  0,  0};
+static const GLubyte Fixed8x13_Character_038[] = {  8,  0,  0,  0, 58, 68, 74, 48, 72, 72, 48,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_039[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64, 48, 56,  0,  0};
+static const GLubyte Fixed8x13_Character_040[] = {  8,  0,  0,  0,  4,  8,  8, 16, 16, 16,  8,  8,  4,  0,  0};
+static const GLubyte Fixed8x13_Character_041[] = {  8,  0,  0,  0, 32, 16, 16,  8,  8,  8, 16, 16, 32,  0,  0};
+static const GLubyte Fixed8x13_Character_042[] = {  8,  0,  0,  0,  0,  0, 36, 24,126, 24, 36,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_043[] = {  8,  0,  0,  0,  0,  0, 16, 16,124, 16, 16,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_044[] = {  8,  0,  0, 64, 48, 56,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_045[] = {  8,  0,  0,  0,  0,  0,  0,  0,126,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_046[] = {  8,  0,  0, 16, 56, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_047[] = {  8,  0,  0,  0,128,128, 64, 32, 16,  8,  4,  2,  2,  0,  0};
+static const GLubyte Fixed8x13_Character_048[] = {  8,  0,  0,  0, 24, 36, 66, 66, 66, 66, 66, 36, 24,  0,  0};
+static const GLubyte Fixed8x13_Character_049[] = {  8,  0,  0,  0,124, 16, 16, 16, 16, 16, 80, 48, 16,  0,  0};
+static const GLubyte Fixed8x13_Character_050[] = {  8,  0,  0,  0,126, 64, 32, 24,  4,  2, 66, 66, 60,  0,  0};
+static const GLubyte Fixed8x13_Character_051[] = {  8,  0,  0,  0, 60, 66,  2,  2, 28,  8,  4,  2,126,  0,  0};
+static const GLubyte Fixed8x13_Character_052[] = {  8,  0,  0,  0,  4,  4,126, 68, 68, 36, 20, 12,  4,  0,  0};
+static const GLubyte Fixed8x13_Character_053[] = {  8,  0,  0,  0, 60, 66,  2,  2, 98, 92, 64, 64,126,  0,  0};
+static const GLubyte Fixed8x13_Character_054[] = {  8,  0,  0,  0, 60, 66, 66, 98, 92, 64, 64, 32, 28,  0,  0};
+static const GLubyte Fixed8x13_Character_055[] = {  8,  0,  0,  0, 32, 32, 16, 16,  8,  8,  4,  2,126,  0,  0};
+static const GLubyte Fixed8x13_Character_056[] = {  8,  0,  0,  0, 60, 66, 66, 66, 60, 66, 66, 66, 60,  0,  0};
+static const GLubyte Fixed8x13_Character_057[] = {  8,  0,  0,  0, 56,  4,  2,  2, 58, 70, 66, 66, 60,  0,  0};
+static const GLubyte Fixed8x13_Character_058[] = {  8,  0,  0, 16, 56, 16,  0,  0, 16, 56, 16,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_059[] = {  8,  0,  0, 64, 48, 56,  0,  0, 16, 56, 16,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_060[] = {  8,  0,  0,  0,  2,  4,  8, 16, 32, 16,  8,  4,  2,  0,  0};
+static const GLubyte Fixed8x13_Character_061[] = {  8,  0,  0,  0,  0,  0,126,  0,  0,126,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_062[] = {  8,  0,  0,  0, 64, 32, 16,  8,  4,  8, 16, 32, 64,  0,  0};
+static const GLubyte Fixed8x13_Character_063[] = {  8,  0,  0,  0,  8,  0,  8,  8,  4,  2, 66, 66, 60,  0,  0};
+static const GLubyte Fixed8x13_Character_064[] = {  8,  0,  0,  0, 60, 64, 74, 86, 82, 78, 66, 66, 60,  0,  0};
+static const GLubyte Fixed8x13_Character_065[] = {  8,  0,  0,  0, 66, 66, 66,126, 66, 66, 66, 36, 24,  0,  0};
+static const GLubyte Fixed8x13_Character_066[] = {  8,  0,  0,  0,252, 66, 66, 66,124, 66, 66, 66,252,  0,  0};
+static const GLubyte Fixed8x13_Character_067[] = {  8,  0,  0,  0, 60, 66, 64, 64, 64, 64, 64, 66, 60,  0,  0};
+static const GLubyte Fixed8x13_Character_068[] = {  8,  0,  0,  0,252, 66, 66, 66, 66, 66, 66, 66,252,  0,  0};
+static const GLubyte Fixed8x13_Character_069[] = {  8,  0,  0,  0,126, 64, 64, 64,120, 64, 64, 64,126,  0,  0};
+static const GLubyte Fixed8x13_Character_070[] = {  8,  0,  0,  0, 64, 64, 64, 64,120, 64, 64, 64,126,  0,  0};
+static const GLubyte Fixed8x13_Character_071[] = {  8,  0,  0,  0, 58, 70, 66, 78, 64, 64, 64, 66, 60,  0,  0};
+static const GLubyte Fixed8x13_Character_072[] = {  8,  0,  0,  0, 66, 66, 66, 66,126, 66, 66, 66, 66,  0,  0};
+static const GLubyte Fixed8x13_Character_073[] = {  8,  0,  0,  0,124, 16, 16, 16, 16, 16, 16, 16,124,  0,  0};
+static const GLubyte Fixed8x13_Character_074[] = {  8,  0,  0,  0, 56, 68,  4,  4,  4,  4,  4,  4, 31,  0,  0};
+static const GLubyte Fixed8x13_Character_075[] = {  8,  0,  0,  0, 66, 68, 72, 80, 96, 80, 72, 68, 66,  0,  0};
+static const GLubyte Fixed8x13_Character_076[] = {  8,  0,  0,  0,126, 64, 64, 64, 64, 64, 64, 64, 64,  0,  0};
+static const GLubyte Fixed8x13_Character_077[] = {  8,  0,  0,  0,130,130,130,146,146,170,198,130,130,  0,  0};
+static const GLubyte Fixed8x13_Character_078[] = {  8,  0,  0,  0, 66, 66, 66, 70, 74, 82, 98, 66, 66,  0,  0};
+static const GLubyte Fixed8x13_Character_079[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 66, 60,  0,  0};
+static const GLubyte Fixed8x13_Character_080[] = {  8,  0,  0,  0, 64, 64, 64, 64,124, 66, 66, 66,124,  0,  0};
+static const GLubyte Fixed8x13_Character_081[] = {  8,  0,  0,  2, 60, 74, 82, 66, 66, 66, 66, 66, 60,  0,  0};
+static const GLubyte Fixed8x13_Character_082[] = {  8,  0,  0,  0, 66, 68, 72, 80,124, 66, 66, 66,124,  0,  0};
+static const GLubyte Fixed8x13_Character_083[] = {  8,  0,  0,  0, 60, 66,  2,  2, 60, 64, 64, 66, 60,  0,  0};
+static const GLubyte Fixed8x13_Character_084[] = {  8,  0,  0,  0, 16, 16, 16, 16, 16, 16, 16, 16,254,  0,  0};
+static const GLubyte Fixed8x13_Character_085[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 66, 66,  0,  0};
+static const GLubyte Fixed8x13_Character_086[] = {  8,  0,  0,  0, 16, 40, 40, 40, 68, 68, 68,130,130,  0,  0};
+static const GLubyte Fixed8x13_Character_087[] = {  8,  0,  0,  0, 68,170,146,146,146,130,130,130,130,  0,  0};
+static const GLubyte Fixed8x13_Character_088[] = {  8,  0,  0,  0,130,130, 68, 40, 16, 40, 68,130,130,  0,  0};
+static const GLubyte Fixed8x13_Character_089[] = {  8,  0,  0,  0, 16, 16, 16, 16, 16, 40, 68,130,130,  0,  0};
+static const GLubyte Fixed8x13_Character_090[] = {  8,  0,  0,  0,126, 64, 64, 32, 16,  8,  4,  2,126,  0,  0};
+static const GLubyte Fixed8x13_Character_091[] = {  8,  0,  0,  0, 60, 32, 32, 32, 32, 32, 32, 32, 60,  0,  0};
+static const GLubyte Fixed8x13_Character_092[] = {  8,  0,  0,  0,  2,  2,  4,  8, 16, 32, 64,128,128,  0,  0};
+static const GLubyte Fixed8x13_Character_093[] = {  8,  0,  0,  0,120,  8,  8,  8,  8,  8,  8,  8,120,  0,  0};
+static const GLubyte Fixed8x13_Character_094[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 40, 16,  0,  0};
+static const GLubyte Fixed8x13_Character_095[] = {  8,  0,  0,254,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_096[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4, 24, 56,  0,  0};
+static const GLubyte Fixed8x13_Character_097[] = {  8,  0,  0,  0, 58, 70, 66, 62,  2, 60,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_098[] = {  8,  0,  0,  0, 92, 98, 66, 66, 98, 92, 64, 64, 64,  0,  0};
+static const GLubyte Fixed8x13_Character_099[] = {  8,  0,  0,  0, 60, 66, 64, 64, 66, 60,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_100[] = {  8,  0,  0,  0, 58, 70, 66, 66, 70, 58,  2,  2,  2,  0,  0};
+static const GLubyte Fixed8x13_Character_101[] = {  8,  0,  0,  0, 60, 66, 64,126, 66, 60,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_102[] = {  8,  0,  0,  0, 32, 32, 32, 32,124, 32, 32, 34, 28,  0,  0};
+static const GLubyte Fixed8x13_Character_103[] = {  8,  0, 60, 66, 60, 64, 56, 68, 68, 58,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_104[] = {  8,  0,  0,  0, 66, 66, 66, 66, 98, 92, 64, 64, 64,  0,  0};
+static const GLubyte Fixed8x13_Character_105[] = {  8,  0,  0,  0,124, 16, 16, 16, 16, 48,  0, 16,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_106[] = {  8,  0, 56, 68, 68,  4,  4,  4,  4, 12,  0,  4,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_107[] = {  8,  0,  0,  0, 66, 68, 72,112, 72, 68, 64, 64, 64,  0,  0};
+static const GLubyte Fixed8x13_Character_108[] = {  8,  0,  0,  0,124, 16, 16, 16, 16, 16, 16, 16, 48,  0,  0};
+static const GLubyte Fixed8x13_Character_109[] = {  8,  0,  0,  0,130,146,146,146,146,236,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_110[] = {  8,  0,  0,  0, 66, 66, 66, 66, 98, 92,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_111[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 60,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_112[] = {  8,  0, 64, 64, 64, 92, 98, 66, 98, 92,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_113[] = {  8,  0,  2,  2,  2, 58, 70, 66, 70, 58,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_114[] = {  8,  0,  0,  0, 32, 32, 32, 32, 34, 92,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_115[] = {  8,  0,  0,  0, 60, 66, 12, 48, 66, 60,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_116[] = {  8,  0,  0,  0, 28, 34, 32, 32, 32,124, 32, 32,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_117[] = {  8,  0,  0,  0, 58, 68, 68, 68, 68, 68,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_118[] = {  8,  0,  0,  0, 16, 40, 40, 68, 68, 68,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_119[] = {  8,  0,  0,  0, 68,170,146,146,130,130,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_120[] = {  8,  0,  0,  0, 66, 36, 24, 24, 36, 66,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_121[] = {  8,  0, 60, 66,  2, 58, 70, 66, 66, 66,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_122[] = {  8,  0,  0,  0,126, 32, 16,  8,  4,126,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_123[] = {  8,  0,  0,  0, 14, 16, 16,  8, 48,  8, 16, 16, 14,  0,  0};
+static const GLubyte Fixed8x13_Character_124[] = {  8,  0,  0,  0, 16, 16, 16, 16, 16, 16, 16, 16, 16,  0,  0};
+static const GLubyte Fixed8x13_Character_125[] = {  8,  0,  0,  0,112,  8,  8, 16, 12, 16,  8,  8,112,  0,  0};
+static const GLubyte Fixed8x13_Character_126[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0, 72, 84, 36,  0,  0};
+static const GLubyte Fixed8x13_Character_127[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_128[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_129[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_130[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_131[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_132[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_133[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_134[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_135[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_136[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_137[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_138[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_139[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_140[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_141[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_142[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_143[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_144[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_145[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_146[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_147[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_148[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_149[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_150[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_151[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_152[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_153[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_154[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_155[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_156[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_157[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_158[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_159[] = {  9,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_160[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_161[] = {  8,  0,  0,  0, 16, 16, 16, 16, 16, 16, 16,  0, 16,  0,  0};
+static const GLubyte Fixed8x13_Character_162[] = {  8,  0,  0,  0,  0, 16, 56, 84, 80, 80, 84, 56, 16,  0,  0};
+static const GLubyte Fixed8x13_Character_163[] = {  8,  0,  0,  0,220, 98, 32, 32, 32,112, 32, 34, 28,  0,  0};
+static const GLubyte Fixed8x13_Character_164[] = {  8,  0,  0,  0,  0, 66, 60, 36, 36, 60, 66,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_165[] = {  8,  0,  0,  0, 16, 16,124, 16,124, 40, 68,130,130,  0,  0};
+static const GLubyte Fixed8x13_Character_166[] = {  8,  0,  0,  0, 16, 16, 16, 16,  0, 16, 16, 16, 16,  0,  0};
+static const GLubyte Fixed8x13_Character_167[] = {  8,  0,  0,  0, 24, 36,  4, 24, 36, 36, 24, 32, 36, 24,  0};
+static const GLubyte Fixed8x13_Character_168[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,108,  0,  0};
+static const GLubyte Fixed8x13_Character_169[] = {  8,  0,  0,  0,  0, 56, 68,146,170,162,170,146, 68, 56,  0};
+static const GLubyte Fixed8x13_Character_170[] = {  8,  0,  0,  0,  0,  0,124,  0, 60, 68, 60,  4, 56,  0,  0};
+static const GLubyte Fixed8x13_Character_171[] = {  8,  0,  0,  0,  0, 18, 36, 72,144, 72, 36, 18,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_172[] = {  8,  0,  0,  0,  0,  2,  2,  2,126,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_173[] = {  8,  0,  0,  0,  0,  0,  0,  0, 60,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_174[] = {  8,  0,  0,  0,  0, 56, 68,170,178,170,170,146, 68, 56,  0};
+static const GLubyte Fixed8x13_Character_175[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126,  0,  0};
+static const GLubyte Fixed8x13_Character_176[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0, 24, 36, 36, 24,  0,  0};
+static const GLubyte Fixed8x13_Character_177[] = {  8,  0,  0,  0,  0,124,  0, 16, 16,124, 16, 16,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_178[] = {  8,  0,  0,  0,  0,  0,  0,  0,120, 64, 48,  8, 72, 48,  0};
+static const GLubyte Fixed8x13_Character_179[] = {  8,  0,  0,  0,  0,  0,  0,  0, 48, 72,  8, 16, 72, 48,  0};
+static const GLubyte Fixed8x13_Character_180[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  8,  0};
+static const GLubyte Fixed8x13_Character_181[] = {  8,  0,  0, 64, 90,102, 66, 66, 66, 66,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_182[] = {  8,  0,  0,  0, 20, 20, 20, 20, 52,116,116,116, 62,  0,  0};
+static const GLubyte Fixed8x13_Character_183[] = {  8,  0,  0,  0,  0,  0,  0,  0, 24,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_184[] = {  8,  0, 24,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_185[] = {  8,  0,  0,  0,  0,  0,  0,  0,112, 32, 32, 32, 96, 32,  0};
+static const GLubyte Fixed8x13_Character_186[] = {  8,  0,  0,  0,  0,  0,  0,120,  0, 48, 72, 72, 48,  0,  0};
+static const GLubyte Fixed8x13_Character_187[] = {  8,  0,  0,  0,  0,144, 72, 36, 18, 36, 72,144,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_188[] = {  8,  0,  0,  0,  6, 26, 18, 10,230, 66, 64, 64,192, 64,  0};
+static const GLubyte Fixed8x13_Character_189[] = {  8,  0,  0,  0, 30, 16, 12,  2,242, 76, 64, 64,192, 64,  0};
+static const GLubyte Fixed8x13_Character_190[] = {  8,  0,  0,  0,  6, 26, 18, 10,102,146, 16, 32,144, 96,  0};
+static const GLubyte Fixed8x13_Character_191[] = {  8,  0,  0,  0, 60, 66, 66, 64, 32, 16, 16,  0, 16,  0,  0};
+static const GLubyte Fixed8x13_Character_192[] = {  8,  0,  0,  0, 66, 66,126, 66, 66, 36, 24,  0,  8, 16,  0};
+static const GLubyte Fixed8x13_Character_193[] = {  8,  0,  0,  0, 66, 66,126, 66, 66, 36, 24,  0, 16,  8,  0};
+static const GLubyte Fixed8x13_Character_194[] = {  8,  0,  0,  0, 66, 66,126, 66, 66, 36, 24,  0, 36, 24,  0};
+static const GLubyte Fixed8x13_Character_195[] = {  8,  0,  0,  0, 66, 66,126, 66, 66, 36, 24,  0, 76, 50,  0};
+static const GLubyte Fixed8x13_Character_196[] = {  8,  0,  0,  0, 66, 66,126, 66, 66, 36, 24,  0, 36, 36,  0};
+static const GLubyte Fixed8x13_Character_197[] = {  8,  0,  0,  0, 66, 66,126, 66, 66, 36, 24, 24, 36, 24,  0};
+static const GLubyte Fixed8x13_Character_198[] = {  8,  0,  0,  0,158,144,144,240,156,144,144,144,110,  0,  0};
+static const GLubyte Fixed8x13_Character_199[] = {  8,  0, 16,  8, 60, 66, 64, 64, 64, 64, 64, 66, 60,  0,  0};
+static const GLubyte Fixed8x13_Character_200[] = {  8,  0,  0,  0,126, 64, 64,120, 64, 64,126,  0,  8, 16,  0};
+static const GLubyte Fixed8x13_Character_201[] = {  8,  0,  0,  0,126, 64, 64,120, 64, 64,126,  0, 16,  8,  0};
+static const GLubyte Fixed8x13_Character_202[] = {  8,  0,  0,  0,126, 64, 64,120, 64, 64,126,  0, 36, 24,  0};
+static const GLubyte Fixed8x13_Character_203[] = {  8,  0,  0,  0,126, 64, 64,120, 64, 64,126,  0, 36, 36,  0};
+static const GLubyte Fixed8x13_Character_204[] = {  8,  0,  0,  0,124, 16, 16, 16, 16, 16,124,  0, 16, 32,  0};
+static const GLubyte Fixed8x13_Character_205[] = {  8,  0,  0,  0,124, 16, 16, 16, 16, 16,124,  0, 16,  8,  0};
+static const GLubyte Fixed8x13_Character_206[] = {  8,  0,  0,  0,124, 16, 16, 16, 16, 16,124,  0, 36, 24,  0};
+static const GLubyte Fixed8x13_Character_207[] = {  8,  0,  0,  0,124, 16, 16, 16, 16, 16,124,  0, 40, 40,  0};
+static const GLubyte Fixed8x13_Character_208[] = {  8,  0,  0,  0,120, 68, 66, 66,226, 66, 66, 68,120,  0,  0};
+static const GLubyte Fixed8x13_Character_209[] = {  8,  0,  0,  0,130,134,138,146,162,194,130,  0,152,100,  0};
+static const GLubyte Fixed8x13_Character_210[] = {  8,  0,  0,  0,124,130,130,130,130,130,124,  0, 16, 32,  0};
+static const GLubyte Fixed8x13_Character_211[] = {  8,  0,  0,  0,124,130,130,130,130,130,124,  0, 16,  8,  0};
+static const GLubyte Fixed8x13_Character_212[] = {  8,  0,  0,  0,124,130,130,130,130,130,124,  0, 36, 24,  0};
+static const GLubyte Fixed8x13_Character_213[] = {  8,  0,  0,  0,124,130,130,130,130,130,124,  0,152,100,  0};
+static const GLubyte Fixed8x13_Character_214[] = {  8,  0,  0,  0,124,130,130,130,130,130,124,  0, 40, 40,  0};
+static const GLubyte Fixed8x13_Character_215[] = {  8,  0,  0,  0,  0, 66, 36, 24, 24, 36, 66,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_216[] = {  8,  0,  0, 64, 60, 98, 82, 82, 82, 74, 74, 70, 60,  2,  0};
+static const GLubyte Fixed8x13_Character_217[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66,  0,  8, 16,  0};
+static const GLubyte Fixed8x13_Character_218[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66,  0, 16,  8,  0};
+static const GLubyte Fixed8x13_Character_219[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66,  0, 36, 24,  0};
+static const GLubyte Fixed8x13_Character_220[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66,  0, 36, 36,  0};
+static const GLubyte Fixed8x13_Character_221[] = {  8,  0,  0,  0, 16, 16, 16, 16, 40, 68, 68,  0, 16,  8,  0};
+static const GLubyte Fixed8x13_Character_222[] = {  8,  0,  0,  0, 64, 64, 64,124, 66, 66, 66,124, 64,  0,  0};
+static const GLubyte Fixed8x13_Character_223[] = {  8,  0,  0,  0, 92, 66, 66, 76, 80, 72, 68, 68, 56,  0,  0};
+static const GLubyte Fixed8x13_Character_224[] = {  8,  0,  0,  0, 58, 70, 66, 62,  2, 60,  0,  0,  8, 16,  0};
+static const GLubyte Fixed8x13_Character_225[] = {  8,  0,  0,  0, 58, 70, 66, 62,  2, 60,  0,  0,  8,  4,  0};
+static const GLubyte Fixed8x13_Character_226[] = {  8,  0,  0,  0, 58, 70, 66, 62,  2, 60,  0,  0, 36, 24,  0};
+static const GLubyte Fixed8x13_Character_227[] = {  8,  0,  0,  0, 58, 70, 66, 62,  2, 60,  0,  0, 76, 50,  0};
+static const GLubyte Fixed8x13_Character_228[] = {  8,  0,  0,  0, 58, 70, 66, 62,  2, 60,  0,  0, 36, 36,  0};
+static const GLubyte Fixed8x13_Character_229[] = {  8,  0,  0,  0, 58, 70, 66, 62,  2, 60,  0, 24, 36, 24,  0};
+static const GLubyte Fixed8x13_Character_230[] = {  8,  0,  0,  0,108,146,144,124, 18,108,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_231[] = {  8,  0, 16,  8, 60, 66, 64, 64, 66, 60,  0,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_232[] = {  8,  0,  0,  0, 60, 66, 64,126, 66, 60,  0,  0,  8, 16,  0};
+static const GLubyte Fixed8x13_Character_233[] = {  8,  0,  0,  0, 60, 66, 64,126, 66, 60,  0,  0, 16,  8,  0};
+static const GLubyte Fixed8x13_Character_234[] = {  8,  0,  0,  0, 60, 66, 64,126, 66, 60,  0,  0, 36, 24,  0};
+static const GLubyte Fixed8x13_Character_235[] = {  8,  0,  0,  0, 60, 66, 64,126, 66, 60,  0,  0, 36, 36,  0};
+static const GLubyte Fixed8x13_Character_236[] = {  8,  0,  0,  0,124, 16, 16, 16, 16, 48,  0,  0, 16, 32,  0};
+static const GLubyte Fixed8x13_Character_237[] = {  8,  0,  0,  0,124, 16, 16, 16, 16, 48,  0,  0, 32, 16,  0};
+static const GLubyte Fixed8x13_Character_238[] = {  8,  0,  0,  0,124, 16, 16, 16, 16, 48,  0,  0, 72, 48,  0};
+static const GLubyte Fixed8x13_Character_239[] = {  8,  0,  0,  0,124, 16, 16, 16, 16, 48,  0,  0, 40, 40,  0};
+static const GLubyte Fixed8x13_Character_240[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 60,  4, 40, 24, 36,  0};
+static const GLubyte Fixed8x13_Character_241[] = {  8,  0,  0,  0, 66, 66, 66, 66, 98, 92,  0,  0, 76, 50,  0};
+static const GLubyte Fixed8x13_Character_242[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 60,  0,  0, 16, 32,  0};
+static const GLubyte Fixed8x13_Character_243[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 60,  0,  0, 16,  8,  0};
+static const GLubyte Fixed8x13_Character_244[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 60,  0,  0, 36, 24,  0};
+static const GLubyte Fixed8x13_Character_245[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 60,  0,  0, 76, 50,  0};
+static const GLubyte Fixed8x13_Character_246[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 60,  0,  0, 36, 36,  0};
+static const GLubyte Fixed8x13_Character_247[] = {  8,  0,  0,  0,  0, 16, 16,  0,124,  0, 16, 16,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_248[] = {  8,  0,  0, 64, 60, 98, 82, 74, 70, 60,  2,  0,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_249[] = {  8,  0,  0,  0, 58, 68, 68, 68, 68, 68,  0,  0, 16, 32,  0};
+static const GLubyte Fixed8x13_Character_250[] = {  8,  0,  0,  0, 58, 68, 68, 68, 68, 68,  0,  0, 16,  8,  0};
+static const GLubyte Fixed8x13_Character_251[] = {  8,  0,  0,  0, 58, 68, 68, 68, 68, 68,  0,  0, 36, 24,  0};
+static const GLubyte Fixed8x13_Character_252[] = {  8,  0,  0,  0, 58, 68, 68, 68, 68, 68,  0,  0, 40, 40,  0};
+static const GLubyte Fixed8x13_Character_253[] = {  8,  0, 60, 66,  2, 58, 70, 66, 66, 66,  0,  0, 16,  8,  0};
+static const GLubyte Fixed8x13_Character_254[] = {  8,  0, 64, 64, 92, 98, 66, 66, 98, 92, 64, 64,  0,  0,  0};
+static const GLubyte Fixed8x13_Character_255[] = {  8,  0, 60, 66,  2, 58, 70, 66, 66, 66,  0,  0, 36, 36,  0};
+
+/* The font characters mapping: */
+static const GLubyte* Fixed8x13_Character_Map[] = {Fixed8x13_Character_000,Fixed8x13_Character_001,Fixed8x13_Character_002,Fixed8x13_Character_003,Fixed8x13_Character_004,Fixed8x13_Character_005,Fixed8x13_Character_006,Fixed8x13_Character_007,Fixed8x13_Character_008,Fixed8x13_Character_009,Fixed8x13_Character_010,Fixed8x13_Character_011,Fixed8x13_Character_012,Fixed8x13_Character_013,Fixed8x13_Character_014,Fixed8x13_Character_015,
+                                                   Fixed8x13_Character_016,Fixed8x13_Character_017,Fixed8x13_Character_018,Fixed8x13_Character_019,Fixed8x13_Character_020,Fixed8x13_Character_021,Fixed8x13_Character_022,Fixed8x13_Character_023,Fixed8x13_Character_024,Fixed8x13_Character_025,Fixed8x13_Character_026,Fixed8x13_Character_027,Fixed8x13_Character_028,Fixed8x13_Character_029,Fixed8x13_Character_030,Fixed8x13_Character_031,
+                                                   Fixed8x13_Character_032,Fixed8x13_Character_033,Fixed8x13_Character_034,Fixed8x13_Character_035,Fixed8x13_Character_036,Fixed8x13_Character_037,Fixed8x13_Character_038,Fixed8x13_Character_039,Fixed8x13_Character_040,Fixed8x13_Character_041,Fixed8x13_Character_042,Fixed8x13_Character_043,Fixed8x13_Character_044,Fixed8x13_Character_045,Fixed8x13_Character_046,Fixed8x13_Character_047,
+                                                   Fixed8x13_Character_048,Fixed8x13_Character_049,Fixed8x13_Character_050,Fixed8x13_Character_051,Fixed8x13_Character_052,Fixed8x13_Character_053,Fixed8x13_Character_054,Fixed8x13_Character_055,Fixed8x13_Character_056,Fixed8x13_Character_057,Fixed8x13_Character_058,Fixed8x13_Character_059,Fixed8x13_Character_060,Fixed8x13_Character_061,Fixed8x13_Character_062,Fixed8x13_Character_063,
+                                                   Fixed8x13_Character_064,Fixed8x13_Character_065,Fixed8x13_Character_066,Fixed8x13_Character_067,Fixed8x13_Character_068,Fixed8x13_Character_069,Fixed8x13_Character_070,Fixed8x13_Character_071,Fixed8x13_Character_072,Fixed8x13_Character_073,Fixed8x13_Character_074,Fixed8x13_Character_075,Fixed8x13_Character_076,Fixed8x13_Character_077,Fixed8x13_Character_078,Fixed8x13_Character_079,
+                                                   Fixed8x13_Character_080,Fixed8x13_Character_081,Fixed8x13_Character_082,Fixed8x13_Character_083,Fixed8x13_Character_084,Fixed8x13_Character_085,Fixed8x13_Character_086,Fixed8x13_Character_087,Fixed8x13_Character_088,Fixed8x13_Character_089,Fixed8x13_Character_090,Fixed8x13_Character_091,Fixed8x13_Character_092,Fixed8x13_Character_093,Fixed8x13_Character_094,Fixed8x13_Character_095,
+                                                   Fixed8x13_Character_096,Fixed8x13_Character_097,Fixed8x13_Character_098,Fixed8x13_Character_099,Fixed8x13_Character_100,Fixed8x13_Character_101,Fixed8x13_Character_102,Fixed8x13_Character_103,Fixed8x13_Character_104,Fixed8x13_Character_105,Fixed8x13_Character_106,Fixed8x13_Character_107,Fixed8x13_Character_108,Fixed8x13_Character_109,Fixed8x13_Character_110,Fixed8x13_Character_111,
+                                                   Fixed8x13_Character_112,Fixed8x13_Character_113,Fixed8x13_Character_114,Fixed8x13_Character_115,Fixed8x13_Character_116,Fixed8x13_Character_117,Fixed8x13_Character_118,Fixed8x13_Character_119,Fixed8x13_Character_120,Fixed8x13_Character_121,Fixed8x13_Character_122,Fixed8x13_Character_123,Fixed8x13_Character_124,Fixed8x13_Character_125,Fixed8x13_Character_126,Fixed8x13_Character_032,
+                                                   Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,
+                                                   Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,Fixed8x13_Character_032,
+                                                   Fixed8x13_Character_160,Fixed8x13_Character_161,Fixed8x13_Character_162,Fixed8x13_Character_163,Fixed8x13_Character_164,Fixed8x13_Character_165,Fixed8x13_Character_166,Fixed8x13_Character_167,Fixed8x13_Character_168,Fixed8x13_Character_169,Fixed8x13_Character_170,Fixed8x13_Character_171,Fixed8x13_Character_172,Fixed8x13_Character_173,Fixed8x13_Character_174,Fixed8x13_Character_175,
+                                                   Fixed8x13_Character_176,Fixed8x13_Character_177,Fixed8x13_Character_178,Fixed8x13_Character_179,Fixed8x13_Character_180,Fixed8x13_Character_181,Fixed8x13_Character_182,Fixed8x13_Character_183,Fixed8x13_Character_184,Fixed8x13_Character_185,Fixed8x13_Character_186,Fixed8x13_Character_187,Fixed8x13_Character_188,Fixed8x13_Character_189,Fixed8x13_Character_190,Fixed8x13_Character_191,
+                                                   Fixed8x13_Character_192,Fixed8x13_Character_193,Fixed8x13_Character_194,Fixed8x13_Character_195,Fixed8x13_Character_196,Fixed8x13_Character_197,Fixed8x13_Character_198,Fixed8x13_Character_199,Fixed8x13_Character_200,Fixed8x13_Character_201,Fixed8x13_Character_202,Fixed8x13_Character_203,Fixed8x13_Character_204,Fixed8x13_Character_205,Fixed8x13_Character_206,Fixed8x13_Character_207,
+                                                   Fixed8x13_Character_208,Fixed8x13_Character_209,Fixed8x13_Character_210,Fixed8x13_Character_211,Fixed8x13_Character_212,Fixed8x13_Character_213,Fixed8x13_Character_214,Fixed8x13_Character_215,Fixed8x13_Character_216,Fixed8x13_Character_217,Fixed8x13_Character_218,Fixed8x13_Character_219,Fixed8x13_Character_220,Fixed8x13_Character_221,Fixed8x13_Character_222,Fixed8x13_Character_223,
+                                                   Fixed8x13_Character_224,Fixed8x13_Character_225,Fixed8x13_Character_226,Fixed8x13_Character_227,Fixed8x13_Character_228,Fixed8x13_Character_229,Fixed8x13_Character_230,Fixed8x13_Character_231,Fixed8x13_Character_232,Fixed8x13_Character_233,Fixed8x13_Character_234,Fixed8x13_Character_235,Fixed8x13_Character_236,Fixed8x13_Character_237,Fixed8x13_Character_238,Fixed8x13_Character_239,
+                                                   Fixed8x13_Character_240,Fixed8x13_Character_241,Fixed8x13_Character_242,Fixed8x13_Character_243,Fixed8x13_Character_244,Fixed8x13_Character_245,Fixed8x13_Character_246,Fixed8x13_Character_247,Fixed8x13_Character_248,Fixed8x13_Character_249,Fixed8x13_Character_250,Fixed8x13_Character_251,Fixed8x13_Character_252,Fixed8x13_Character_253,Fixed8x13_Character_254,Fixed8x13_Character_255,NULL};
+
+/* The font structure: */
+const SFG_Font fgFontFixed8x13 = { "-misc-fixed-medium-r-normal--13-120-75-75-C-80-iso8859-1", 256, 14, Fixed8x13_Character_Map, 0, 3 };
+
+static const GLubyte Fixed9x15_Character_000[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_001[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0, 28,  0, 62,  0,127,  0,255,128,127,  0, 62,  0, 28,  0,  8,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_002[] = {  9,  0,  0,170,128, 85,  0,170,128, 85,  0,170,128, 85,  0,170,128, 85,  0,170,128, 85,  0,170,128, 85,  0,170,128, 85,  0,170,128};
+static const GLubyte Fixed9x15_Character_003[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  4,  0,  4,  0,  4,  0, 31,  0,  0,  0, 72,  0, 72,  0,120,  0, 72,  0, 72,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_004[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0,  8,  0, 14,  0, 72,  0, 79,  0, 64,  0,112,  0, 64,  0,120,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_005[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  9,  0,  9,  0, 14,  0,  9,  0, 14,  0,  0,  0, 56,  0, 64,  0, 64,  0, 64,  0, 56,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_006[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0, 14,  0,  8,  0, 15,  0,  0,  0,120,  0, 64,  0, 64,  0, 64,  0, 64,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_007[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0, 18,  0, 18,  0, 12,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_008[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,  0,  0,  0,  8,  0,  8,  0,  8,  0,127,  0,  8,  0,  8,  0,  8,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_009[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0,  8,  0,  8,  0,  8,  0,  8,  0,  0,  0, 68,  0, 76,  0, 84,  0,100,  0, 68,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_010[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  4,  0,  4,  0,  4,  0, 31,  0,  0,  0, 16,  0, 40,  0, 40,  0, 68,  0, 68,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_011[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,248,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0};
+static const GLubyte Fixed9x15_Character_012[] = {  9,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,248,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_013[] = {  9,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 15,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_014[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,128,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0};
+static const GLubyte Fixed9x15_Character_015[] = {  9,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,255,128,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0};
+static const GLubyte Fixed9x15_Character_016[] = {  9,  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,255,128};
+static const GLubyte Fixed9x15_Character_017[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,255,128,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_018[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,255,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_019[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,255,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_020[] = {  9,  0,  0,255,128,  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};
+static const GLubyte Fixed9x15_Character_021[] = {  9,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 15,128,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0};
+static const GLubyte Fixed9x15_Character_022[] = {  9,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,248,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0};
+static const GLubyte Fixed9x15_Character_023[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,255,128,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0};
+static const GLubyte Fixed9x15_Character_024[] = {  9,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,255,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_025[] = {  9,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0};
+static const GLubyte Fixed9x15_Character_026[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,  0,  0,  0,  3,  0, 28,  0, 96,  0, 28,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_027[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,  0,  0,  0, 96,  0, 28,  0,  3,  0, 28,  0, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_028[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 34,  0, 34,  0, 34,  0, 34,  0, 34,  0, 34,  0,127,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_029[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0, 16,  0,127,  0,  8,  0,127,  0,  4,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_030[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 46,  0, 81,  0, 48,  0, 16,  0, 16,  0,124,  0, 16,  0, 16,  0, 17,  0, 14,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_031[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_032[] = {  9,  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};
+static const GLubyte Fixed9x15_Character_033[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0,  0,  0,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_034[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 18,  0, 18,  0, 18,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_035[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 36,  0, 36,  0,126,  0, 36,  0, 36,  0,126,  0, 36,  0, 36,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_036[] = {  9,  0,  0,  0,  0,  0,  0,  8,  0, 62,  0, 73,  0,  9,  0,  9,  0, 10,  0, 28,  0, 40,  0, 72,  0, 73,  0, 62,  0,  8,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_037[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 66,  0, 37,  0, 37,  0, 18,  0,  8,  0,  8,  0, 36,  0, 82,  0, 82,  0, 33,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_038[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 49,  0, 74,  0, 68,  0, 74,  0, 49,  0, 48,  0, 72,  0, 72,  0, 72,  0, 48,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_039[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  8,  0,  4,  0,  6,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_040[] = {  9,  0,  0,  0,  0,  0,  0,  4,  0,  8,  0,  8,  0, 16,  0, 16,  0, 16,  0, 16,  0, 16,  0, 16,  0,  8,  0,  8,  0,  4,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_041[] = {  9,  0,  0,  0,  0,  0,  0, 16,  0,  8,  0,  8,  0,  4,  0,  4,  0,  4,  0,  4,  0,  4,  0,  4,  0,  8,  0,  8,  0, 16,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_042[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0, 73,  0, 42,  0, 28,  0, 42,  0, 73,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_043[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0,  8,  0,127,  0,  8,  0,  8,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_044[] = {  9,  0,  0,  8,  0,  4,  0,  4,  0, 12,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_045[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_046[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_047[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0, 32,  0, 32,  0, 16,  0,  8,  0,  8,  0,  4,  0,  2,  0,  2,  0,  1,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_048[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 28,  0, 34,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 34,  0, 28,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_049[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,127,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 72,  0, 40,  0, 24,  0,  8,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_050[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,127,  0, 64,  0, 32,  0, 16,  0,  8,  0,  4,  0,  2,  0, 65,  0, 65,  0, 62,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_051[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0,  1,  0,  1,  0,  1,  0, 14,  0,  4,  0,  2,  0,  1,  0,127,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_052[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  2,  0,  2,  0,127,  0, 66,  0, 34,  0, 18,  0, 10,  0,  6,  0,  2,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_053[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0,  1,  0,  1,  0,  1,  0, 97,  0, 94,  0, 64,  0, 64,  0,127,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_054[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 97,  0, 94,  0, 64,  0, 64,  0, 32,  0, 30,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_055[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0, 32,  0, 16,  0, 16,  0,  8,  0,  4,  0,  2,  0,  1,  0,  1,  0,127,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_056[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 28,  0, 34,  0, 65,  0, 65,  0, 34,  0, 28,  0, 34,  0, 65,  0, 34,  0, 28,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_057[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 60,  0,  2,  0,  1,  0,  1,  0, 61,  0, 67,  0, 65,  0, 65,  0, 65,  0, 62,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_058[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0, 12,  0,  0,  0,  0,  0,  0,  0, 12,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_059[] = {  9,  0,  0,  8,  0,  4,  0,  4,  0, 12,  0, 12,  0,  0,  0,  0,  0,  0,  0, 12,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_060[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  4,  0,  8,  0, 16,  0, 32,  0, 32,  0, 16,  0,  8,  0,  4,  0,  2,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_061[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,  0,  0,  0,  0,  0,127,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_062[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0, 16,  0,  8,  0,  4,  0,  2,  0,  2,  0,  4,  0,  8,  0, 16,  0, 32,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_063[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  0,  0,  8,  0,  8,  0,  4,  0,  2,  0,  1,  0, 65,  0, 65,  0, 62,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_064[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 64,  0, 64,  0, 77,  0, 83,  0, 81,  0, 79,  0, 65,  0, 65,  0, 62,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_065[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0,127,  0, 65,  0, 65,  0, 65,  0, 34,  0, 20,  0,  8,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_066[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,126,  0, 33,  0, 33,  0, 33,  0, 33,  0,126,  0, 33,  0, 33,  0, 33,  0,126,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_067[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 64,  0, 64,  0, 64,  0, 64,  0, 64,  0, 64,  0, 65,  0, 62,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_068[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,126,  0, 33,  0, 33,  0, 33,  0, 33,  0, 33,  0, 33,  0, 33,  0, 33,  0,126,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_069[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,127,  0, 32,  0, 32,  0, 32,  0, 32,  0, 60,  0, 32,  0, 32,  0, 32,  0,127,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_070[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0, 32,  0, 32,  0, 32,  0, 32,  0, 60,  0, 32,  0, 32,  0, 32,  0,127,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_071[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 71,  0, 64,  0, 64,  0, 64,  0, 65,  0, 62,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_072[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0,127,  0, 65,  0, 65,  0, 65,  0, 65,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_073[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 62,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_074[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 60,  0, 66,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0, 15,128,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_075[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 66,  0, 68,  0, 72,  0, 80,  0,112,  0, 72,  0, 68,  0, 66,  0, 65,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_076[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,127,  0, 64,  0, 64,  0, 64,  0, 64,  0, 64,  0, 64,  0, 64,  0, 64,  0, 64,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_077[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0, 73,  0, 73,  0, 85,  0, 85,  0, 99,  0, 65,  0, 65,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_078[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0, 67,  0, 69,  0, 73,  0, 81,  0, 97,  0, 65,  0, 65,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_079[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 62,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_080[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0, 64,  0, 64,  0, 64,  0, 64,  0,126,  0, 65,  0, 65,  0, 65,  0,126,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_081[] = {  9,  0,  0,  0,  0,  3,  0,  4,  0, 62,  0, 73,  0, 81,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 62,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_082[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 66,  0, 68,  0, 72,  0,126,  0, 65,  0, 65,  0, 65,  0,126,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_083[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0,  1,  0,  6,  0, 56,  0, 64,  0, 65,  0, 65,  0, 62,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_084[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,127,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_085[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_086[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0, 20,  0, 20,  0, 20,  0, 34,  0, 34,  0, 34,  0, 65,  0, 65,  0, 65,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_087[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 34,  0, 85,  0, 73,  0, 73,  0, 73,  0, 73,  0, 65,  0, 65,  0, 65,  0, 65,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_088[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 34,  0, 20,  0,  8,  0,  8,  0, 20,  0, 34,  0, 65,  0, 65,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_089[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 20,  0, 34,  0, 65,  0, 65,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_090[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,127,  0, 64,  0, 64,  0, 32,  0, 16,  0,  8,  0,  4,  0,  2,  0,  1,  0,127,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_091[] = {  9,  0,  0,  0,  0,  0,  0, 30,  0, 16,  0, 16,  0, 16,  0, 16,  0, 16,  0, 16,  0, 16,  0, 16,  0, 16,  0, 16,  0, 30,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_092[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  2,  0,  2,  0,  4,  0,  8,  0,  8,  0, 16,  0, 32,  0, 32,  0, 64,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_093[] = {  9,  0,  0,  0,  0,  0,  0, 60,  0,  4,  0,  4,  0,  4,  0,  4,  0,  4,  0,  4,  0,  4,  0,  4,  0,  4,  0,  4,  0, 60,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_094[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 34,  0, 20,  0,  8,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_095[] = {  9,  0,  0,  0,  0,  0,  0,255,  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};
+static const GLubyte Fixed9x15_Character_096[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  8,  0, 16,  0, 48,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_097[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 61,  0, 67,  0, 65,  0, 63,  0,  1,  0,  1,  0, 62,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_098[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 94,  0, 97,  0, 65,  0, 65,  0, 65,  0, 97,  0, 94,  0, 64,  0, 64,  0, 64,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_099[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 64,  0, 64,  0, 64,  0, 65,  0, 62,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_100[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 61,  0, 67,  0, 65,  0, 65,  0, 65,  0, 67,  0, 61,  0,  1,  0,  1,  0,  1,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_101[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 64,  0, 64,  0,127,  0, 65,  0, 65,  0, 62,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_102[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0, 16,  0, 16,  0, 16,  0,124,  0, 16,  0, 16,  0, 17,  0, 17,  0, 14,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_103[] = {  9,  0,  0, 62,  0, 65,  0, 65,  0, 62,  0, 64,  0, 60,  0, 66,  0, 66,  0, 66,  0, 61,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_104[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 97,  0, 94,  0, 64,  0, 64,  0, 64,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_105[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 56,  0,  0,  0,  0,  0, 24,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_106[] = {  9,  0,  0, 60,  0, 66,  0, 66,  0, 66,  0,  2,  0,  2,  0,  2,  0,  2,  0,  2,  0, 14,  0,  0,  0,  0,  0,  6,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_107[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 70,  0, 88,  0, 96,  0, 88,  0, 70,  0, 65,  0, 64,  0, 64,  0, 64,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_108[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 56,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_109[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 73,  0, 73,  0, 73,  0, 73,  0, 73,  0,118,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_110[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 97,  0, 94,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_111[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 62,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_112[] = {  9,  0,  0, 64,  0, 64,  0, 64,  0, 94,  0, 97,  0, 65,  0, 65,  0, 65,  0, 97,  0, 94,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_113[] = {  9,  0,  0,  1,  0,  1,  0,  1,  0, 61,  0, 67,  0, 65,  0, 65,  0, 65,  0, 67,  0, 61,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_114[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0, 32,  0, 32,  0, 32,  0, 33,  0, 49,  0, 78,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_115[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0,  1,  0, 62,  0, 64,  0, 65,  0, 62,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_116[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 14,  0, 17,  0, 16,  0, 16,  0, 16,  0, 16,  0,126,  0, 16,  0, 16,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_117[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 61,  0, 66,  0, 66,  0, 66,  0, 66,  0, 66,  0, 66,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_118[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0, 20,  0, 20,  0, 34,  0, 34,  0, 65,  0, 65,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_119[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 34,  0, 85,  0, 73,  0, 73,  0, 73,  0, 65,  0, 65,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_120[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 34,  0, 20,  0,  8,  0, 20,  0, 34,  0, 65,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_121[] = {  9,  0,  0, 60,  0, 66,  0,  2,  0, 58,  0, 70,  0, 66,  0, 66,  0, 66,  0, 66,  0, 66,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_122[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,127,  0, 32,  0, 16,  0,  8,  0,  4,  0,  2,  0,127,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_123[] = {  9,  0,  0,  0,  0,  0,  0,  7,  0,  8,  0,  8,  0,  8,  0,  4,  0, 24,  0, 24,  0,  4,  0,  8,  0,  8,  0,  8,  0,  7,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_124[] = {  9,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_125[] = {  9,  0,  0,  0,  0,  0,  0,112,  0,  8,  0,  8,  0,  8,  0, 16,  0, 12,  0, 12,  0, 16,  0,  8,  0,  8,  0,  8,  0,112,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_126[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 70,  0, 73,  0, 49,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_127[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_128[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_129[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_130[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_131[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_132[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_133[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_134[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_135[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_136[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_137[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_138[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_139[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_140[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_141[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_142[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_143[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_144[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_145[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_146[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_147[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_148[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_149[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_150[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_151[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_152[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_153[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_154[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_155[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_156[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_157[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_158[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_159[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 91,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0, 65,  0, 64,  0,  1,  0,109,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_160[] = {  9,  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};
+static const GLubyte Fixed9x15_Character_161[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  0,  0,  0,  0,  8,  0,  8,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_162[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0, 60,  0, 82,  0, 80,  0, 72,  0, 74,  0, 60,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_163[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 46,  0, 81,  0, 48,  0, 16,  0, 16,  0,124,  0, 16,  0, 16,  0, 17,  0, 14,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_164[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 62,  0, 34,  0, 34,  0, 62,  0, 65,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_165[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0,  8,  0, 62,  0,  8,  0, 62,  0, 20,  0, 34,  0, 65,  0, 65,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_166[] = {  9,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_167[] = {  9,  0,  0,  0,  0,  0,  0, 24,  0, 36,  0,  4,  0, 24,  0, 36,  0, 36,  0, 36,  0, 24,  0, 32,  0, 36,  0, 24,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_168[] = {  9,  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, 34,  0, 34,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_169[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 60,  0, 66,  0,153,  0,165,  0,161,  0,165,  0,153,  0, 66,  0, 60,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_170[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,124,  0,  0,  0, 60,  0, 72,  0, 56,  0, 72,  0, 48,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_171[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  9,  0, 18,  0, 36,  0, 72,  0, 72,  0, 36,  0, 18,  0,  9,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_172[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  2,  0,  2,  0,126,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_173[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_174[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 60,  0, 66,  0,165,  0,169,  0,185,  0,165,  0,185,  0, 66,  0, 60,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_175[] = {  9,  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,126,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_176[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0, 18,  0, 18,  0, 12,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_177[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,  0,  0,  0,  8,  0,  8,  0,  8,  0,127,  0,  8,  0,  8,  0,  8,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_178[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,120,  0, 64,  0, 48,  0,  8,  0, 72,  0, 48,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_179[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48,  0, 72,  0,  8,  0, 16,  0, 72,  0, 48,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_180[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  8,  0,  4,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_181[] = {  9,  0,  0,  0,  0, 64,  0, 64,  0, 93,  0, 99,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_182[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  5,  0,  5,  0,  5,  0,  5,  0,  5,  0, 61,  0, 69,  0, 69,  0, 69,  0, 63,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_183[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_184[] = {  9,  0,  0, 24,  0, 36,  0, 12,  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};
+static const GLubyte Fixed9x15_Character_185[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,112,  0, 32,  0, 32,  0, 32,  0, 96,  0, 32,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_186[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,124,  0,  0,  0, 56,  0, 68,  0, 68,  0, 56,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_187[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 72,  0, 36,  0, 18,  0,  9,  0,  9,  0, 18,  0, 36,  0, 72,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_188[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  3,  0, 13,  0,  9,  0,  5,  0,115,  0, 33,  0, 32,  0, 32,  0, 96,  0, 32,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_189[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0,  8,  0,  6,  0,  1,  0,121,  0, 38,  0, 32,  0, 32,  0, 96,  0, 32,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_190[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  3,  0, 13,  0,  9,  0,  5,  0, 51,  0, 73,  0,  8,  0, 16,  0, 72,  0, 48,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_191[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 64,  0, 32,  0, 16,  0,  8,  0,  8,  0,  0,  0,  8,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_192[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0,127,  0, 65,  0, 65,  0, 34,  0, 28,  0,  0,  0,  8,  0, 16,  0, 32,  0};
+static const GLubyte Fixed9x15_Character_193[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0,127,  0, 65,  0, 65,  0, 34,  0, 28,  0,  0,  0,  8,  0,  4,  0,  2,  0};
+static const GLubyte Fixed9x15_Character_194[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0,127,  0, 65,  0, 65,  0, 34,  0, 28,  0,  0,  0, 34,  0, 20,  0,  8,  0};
+static const GLubyte Fixed9x15_Character_195[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0,127,  0, 65,  0, 65,  0, 34,  0, 28,  0,  0,  0, 78,  0, 49,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_196[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0,127,  0, 65,  0, 65,  0, 34,  0, 28,  0,  0,  0, 34,  0, 34,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_197[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0,127,  0, 65,  0, 65,  0, 34,  0, 20,  0, 28,  0, 34,  0, 28,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_198[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 79,  0, 72,  0, 72,  0, 72,  0,126,  0, 72,  0, 72,  0, 72,  0, 72,  0, 55,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_199[] = {  9,  0,  0, 24,  0, 36,  0, 12,  0, 62,  0, 65,  0, 64,  0, 64,  0, 64,  0, 64,  0, 64,  0, 64,  0, 65,  0, 62,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_200[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,127,  0, 32,  0, 32,  0, 32,  0, 60,  0, 32,  0, 32,  0,127,  0,  0,  0,  8,  0, 16,  0, 32,  0};
+static const GLubyte Fixed9x15_Character_201[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,127,  0, 32,  0, 32,  0, 32,  0, 60,  0, 32,  0, 32,  0,127,  0,  0,  0,  8,  0,  4,  0,  2,  0};
+static const GLubyte Fixed9x15_Character_202[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,127,  0, 32,  0, 32,  0, 32,  0, 60,  0, 32,  0, 32,  0,127,  0,  0,  0, 34,  0, 20,  0,  8,  0};
+static const GLubyte Fixed9x15_Character_203[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,127,  0, 32,  0, 32,  0, 32,  0, 60,  0, 32,  0, 32,  0,127,  0,  0,  0, 34,  0, 34,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_204[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 62,  0,  0,  0,  8,  0, 16,  0, 32,  0};
+static const GLubyte Fixed9x15_Character_205[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 62,  0,  0,  0,  8,  0,  4,  0,  2,  0};
+static const GLubyte Fixed9x15_Character_206[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 62,  0,  0,  0, 34,  0, 20,  0,  8,  0};
+static const GLubyte Fixed9x15_Character_207[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 62,  0,  0,  0, 34,  0, 34,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_208[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,124,  0, 33,  0, 33,  0, 33,  0, 33,  0,225,  0, 33,  0, 33,  0, 33,  0,124,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_209[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 67,  0, 69,  0, 73,  0, 73,  0, 81,  0, 97,  0, 65,  0,  0,  0, 78,  0, 49,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_210[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 62,  0,  0,  0,  8,  0, 16,  0, 32,  0};
+static const GLubyte Fixed9x15_Character_211[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 62,  0,  0,  0,  8,  0,  4,  0,  2,  0};
+static const GLubyte Fixed9x15_Character_212[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 62,  0,  0,  0, 34,  0, 20,  0,  8,  0};
+static const GLubyte Fixed9x15_Character_213[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 62,  0,  0,  0, 78,  0, 49,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_214[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 62,  0,  0,  0, 34,  0, 34,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_215[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 34,  0, 20,  0,  8,  0, 20,  0, 34,  0, 65,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_216[] = {  9,  0,  0,  0,  0,  0,  0, 64,  0, 62,  0, 97,  0, 81,  0, 81,  0, 73,  0, 73,  0, 69,  0, 69,  0, 67,  0, 62,  0,  1,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_217[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0,  0,  0,  8,  0, 16,  0, 32,  0};
+static const GLubyte Fixed9x15_Character_218[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0,  0,  0,  8,  0,  4,  0,  2,  0};
+static const GLubyte Fixed9x15_Character_219[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0,  0,  0, 34,  0, 20,  0,  8,  0};
+static const GLubyte Fixed9x15_Character_220[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0,  0,  0, 34,  0, 34,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_221[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0, 20,  0, 34,  0, 65,  0, 65,  0,  0,  0,  8,  0,  4,  0,  2,  0};
+static const GLubyte Fixed9x15_Character_222[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 64,  0, 64,  0, 64,  0,126,  0, 65,  0, 65,  0, 65,  0,126,  0, 64,  0, 64,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_223[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 44,  0, 34,  0, 34,  0, 34,  0, 36,  0,104,  0, 36,  0, 34,  0, 34,  0, 28,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_224[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 61,  0, 67,  0, 65,  0, 63,  0,  1,  0,  1,  0, 62,  0,  0,  0,  4,  0,  8,  0, 16,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_225[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 61,  0, 67,  0, 65,  0, 63,  0,  1,  0,  1,  0, 62,  0,  0,  0,  8,  0,  4,  0,  2,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_226[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 61,  0, 67,  0, 65,  0, 63,  0,  1,  0,  1,  0, 62,  0,  0,  0, 34,  0, 20,  0,  8,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_227[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 61,  0, 67,  0, 65,  0, 63,  0,  1,  0,  1,  0, 62,  0,  0,  0, 38,  0, 25,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_228[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 61,  0, 67,  0, 65,  0, 63,  0,  1,  0,  1,  0, 62,  0,  0,  0, 34,  0, 34,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_229[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 61,  0, 67,  0, 65,  0, 63,  0,  1,  0,  1,  0, 62,  0,  0,  0, 12,  0, 18,  0, 12,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_230[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 55,  0, 73,  0, 72,  0, 62,  0,  9,  0, 73,  0, 54,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_231[] = {  9,  0,  0, 24,  0, 36,  0, 12,  0, 62,  0, 65,  0, 64,  0, 64,  0, 64,  0, 65,  0, 62,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_232[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 64,  0, 64,  0,127,  0, 65,  0, 65,  0, 62,  0,  0,  0,  8,  0, 16,  0, 32,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_233[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 64,  0, 64,  0,127,  0, 65,  0, 65,  0, 62,  0,  0,  0,  8,  0,  4,  0,  2,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_234[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 64,  0, 64,  0,127,  0, 65,  0, 65,  0, 62,  0,  0,  0, 34,  0, 20,  0,  8,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_235[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 64,  0, 64,  0,127,  0, 65,  0, 65,  0, 62,  0,  0,  0, 34,  0, 34,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_236[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 56,  0,  0,  0,  8,  0, 16,  0, 32,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_237[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 56,  0,  0,  0, 16,  0,  8,  0,  4,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_238[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 56,  0,  0,  0, 68,  0, 40,  0, 16,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_239[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0,  8,  0,  8,  0,  8,  0,  8,  0,  8,  0, 56,  0,  0,  0, 36,  0, 36,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_240[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 62,  0,  4,  0, 40,  0, 24,  0, 36,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_241[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 97,  0, 94,  0,  0,  0, 78,  0, 49,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_242[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 62,  0,  0,  0,  8,  0, 16,  0, 32,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_243[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 62,  0,  0,  0,  8,  0,  4,  0,  2,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_244[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 62,  0,  0,  0, 34,  0, 20,  0,  8,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_245[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 62,  0,  0,  0, 78,  0, 49,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_246[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 62,  0,  0,  0, 34,  0, 34,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_247[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0, 28,  0,  8,  0,  0,  0,127,  0,  0,  0,  8,  0, 28,  0,  8,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_248[] = {  9,  0,  0,  0,  0,  0,  0, 64,  0, 62,  0, 81,  0, 81,  0, 73,  0, 69,  0, 69,  0, 62,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_249[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 61,  0, 66,  0, 66,  0, 66,  0, 66,  0, 66,  0, 66,  0,  0,  0,  8,  0, 16,  0, 32,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_250[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 61,  0, 66,  0, 66,  0, 66,  0, 66,  0, 66,  0, 66,  0,  0,  0,  8,  0,  4,  0,  2,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_251[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 61,  0, 66,  0, 66,  0, 66,  0, 66,  0, 66,  0, 66,  0,  0,  0, 34,  0, 20,  0,  8,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_252[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 61,  0, 66,  0, 66,  0, 66,  0, 66,  0, 66,  0, 66,  0,  0,  0, 36,  0, 36,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_253[] = {  9,  0,  0, 60,  0, 66,  0,  2,  0, 58,  0, 70,  0, 66,  0, 66,  0, 66,  0, 66,  0, 66,  0,  0,  0, 16,  0,  8,  0,  4,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_254[] = {  9,  0,  0, 64,  0, 64,  0, 64,  0, 94,  0, 97,  0, 65,  0, 65,  0, 97,  0, 94,  0, 64,  0, 64,  0, 64,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Fixed9x15_Character_255[] = {  9,  0,  0, 60,  0, 66,  0,  2,  0, 58,  0, 70,  0, 66,  0, 66,  0, 66,  0, 66,  0, 66,  0,  0,  0, 36,  0, 36,  0,  0,  0,  0,  0};
+
+/* The font characters mapping: */
+static const GLubyte* Fixed9x15_Character_Map[] = {Fixed9x15_Character_000,Fixed9x15_Character_001,Fixed9x15_Character_002,Fixed9x15_Character_003,Fixed9x15_Character_004,Fixed9x15_Character_005,Fixed9x15_Character_006,Fixed9x15_Character_007,Fixed9x15_Character_008,Fixed9x15_Character_009,Fixed9x15_Character_010,Fixed9x15_Character_011,Fixed9x15_Character_012,Fixed9x15_Character_013,Fixed9x15_Character_014,Fixed9x15_Character_015,
+                                                   Fixed9x15_Character_016,Fixed9x15_Character_017,Fixed9x15_Character_018,Fixed9x15_Character_019,Fixed9x15_Character_020,Fixed9x15_Character_021,Fixed9x15_Character_022,Fixed9x15_Character_023,Fixed9x15_Character_024,Fixed9x15_Character_025,Fixed9x15_Character_026,Fixed9x15_Character_027,Fixed9x15_Character_028,Fixed9x15_Character_029,Fixed9x15_Character_030,Fixed9x15_Character_031,
+                                                   Fixed9x15_Character_032,Fixed9x15_Character_033,Fixed9x15_Character_034,Fixed9x15_Character_035,Fixed9x15_Character_036,Fixed9x15_Character_037,Fixed9x15_Character_038,Fixed9x15_Character_039,Fixed9x15_Character_040,Fixed9x15_Character_041,Fixed9x15_Character_042,Fixed9x15_Character_043,Fixed9x15_Character_044,Fixed9x15_Character_045,Fixed9x15_Character_046,Fixed9x15_Character_047,
+                                                   Fixed9x15_Character_048,Fixed9x15_Character_049,Fixed9x15_Character_050,Fixed9x15_Character_051,Fixed9x15_Character_052,Fixed9x15_Character_053,Fixed9x15_Character_054,Fixed9x15_Character_055,Fixed9x15_Character_056,Fixed9x15_Character_057,Fixed9x15_Character_058,Fixed9x15_Character_059,Fixed9x15_Character_060,Fixed9x15_Character_061,Fixed9x15_Character_062,Fixed9x15_Character_063,
+                                                   Fixed9x15_Character_064,Fixed9x15_Character_065,Fixed9x15_Character_066,Fixed9x15_Character_067,Fixed9x15_Character_068,Fixed9x15_Character_069,Fixed9x15_Character_070,Fixed9x15_Character_071,Fixed9x15_Character_072,Fixed9x15_Character_073,Fixed9x15_Character_074,Fixed9x15_Character_075,Fixed9x15_Character_076,Fixed9x15_Character_077,Fixed9x15_Character_078,Fixed9x15_Character_079,
+                                                   Fixed9x15_Character_080,Fixed9x15_Character_081,Fixed9x15_Character_082,Fixed9x15_Character_083,Fixed9x15_Character_084,Fixed9x15_Character_085,Fixed9x15_Character_086,Fixed9x15_Character_087,Fixed9x15_Character_088,Fixed9x15_Character_089,Fixed9x15_Character_090,Fixed9x15_Character_091,Fixed9x15_Character_092,Fixed9x15_Character_093,Fixed9x15_Character_094,Fixed9x15_Character_095,
+                                                   Fixed9x15_Character_096,Fixed9x15_Character_097,Fixed9x15_Character_098,Fixed9x15_Character_099,Fixed9x15_Character_100,Fixed9x15_Character_101,Fixed9x15_Character_102,Fixed9x15_Character_103,Fixed9x15_Character_104,Fixed9x15_Character_105,Fixed9x15_Character_106,Fixed9x15_Character_107,Fixed9x15_Character_108,Fixed9x15_Character_109,Fixed9x15_Character_110,Fixed9x15_Character_111,
+                                                   Fixed9x15_Character_112,Fixed9x15_Character_113,Fixed9x15_Character_114,Fixed9x15_Character_115,Fixed9x15_Character_116,Fixed9x15_Character_117,Fixed9x15_Character_118,Fixed9x15_Character_119,Fixed9x15_Character_120,Fixed9x15_Character_121,Fixed9x15_Character_122,Fixed9x15_Character_123,Fixed9x15_Character_124,Fixed9x15_Character_125,Fixed9x15_Character_126,Fixed9x15_Character_032,
+                                                   Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,
+                                                   Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,Fixed9x15_Character_032,
+                                                   Fixed9x15_Character_160,Fixed9x15_Character_161,Fixed9x15_Character_162,Fixed9x15_Character_163,Fixed9x15_Character_164,Fixed9x15_Character_165,Fixed9x15_Character_166,Fixed9x15_Character_167,Fixed9x15_Character_168,Fixed9x15_Character_169,Fixed9x15_Character_170,Fixed9x15_Character_171,Fixed9x15_Character_172,Fixed9x15_Character_173,Fixed9x15_Character_174,Fixed9x15_Character_175,
+                                                   Fixed9x15_Character_176,Fixed9x15_Character_177,Fixed9x15_Character_178,Fixed9x15_Character_179,Fixed9x15_Character_180,Fixed9x15_Character_181,Fixed9x15_Character_182,Fixed9x15_Character_183,Fixed9x15_Character_184,Fixed9x15_Character_185,Fixed9x15_Character_186,Fixed9x15_Character_187,Fixed9x15_Character_188,Fixed9x15_Character_189,Fixed9x15_Character_190,Fixed9x15_Character_191,
+                                                   Fixed9x15_Character_192,Fixed9x15_Character_193,Fixed9x15_Character_194,Fixed9x15_Character_195,Fixed9x15_Character_196,Fixed9x15_Character_197,Fixed9x15_Character_198,Fixed9x15_Character_199,Fixed9x15_Character_200,Fixed9x15_Character_201,Fixed9x15_Character_202,Fixed9x15_Character_203,Fixed9x15_Character_204,Fixed9x15_Character_205,Fixed9x15_Character_206,Fixed9x15_Character_207,
+                                                   Fixed9x15_Character_208,Fixed9x15_Character_209,Fixed9x15_Character_210,Fixed9x15_Character_211,Fixed9x15_Character_212,Fixed9x15_Character_213,Fixed9x15_Character_214,Fixed9x15_Character_215,Fixed9x15_Character_216,Fixed9x15_Character_217,Fixed9x15_Character_218,Fixed9x15_Character_219,Fixed9x15_Character_220,Fixed9x15_Character_221,Fixed9x15_Character_222,Fixed9x15_Character_223,
+                                                   Fixed9x15_Character_224,Fixed9x15_Character_225,Fixed9x15_Character_226,Fixed9x15_Character_227,Fixed9x15_Character_228,Fixed9x15_Character_229,Fixed9x15_Character_230,Fixed9x15_Character_231,Fixed9x15_Character_232,Fixed9x15_Character_233,Fixed9x15_Character_234,Fixed9x15_Character_235,Fixed9x15_Character_236,Fixed9x15_Character_237,Fixed9x15_Character_238,Fixed9x15_Character_239,
+                                                   Fixed9x15_Character_240,Fixed9x15_Character_241,Fixed9x15_Character_242,Fixed9x15_Character_243,Fixed9x15_Character_244,Fixed9x15_Character_245,Fixed9x15_Character_246,Fixed9x15_Character_247,Fixed9x15_Character_248,Fixed9x15_Character_249,Fixed9x15_Character_250,Fixed9x15_Character_251,Fixed9x15_Character_252,Fixed9x15_Character_253,Fixed9x15_Character_254,Fixed9x15_Character_255,NULL};
+
+/* The font structure: */
+const SFG_Font fgFontFixed9x15 = { "-misc-fixed-medium-r-normal--15-140-75-75-C-90-iso8859-1", 256, 16, Fixed9x15_Character_Map, 0, 4 };
+
+static const GLubyte Helvetica10_Character_000[] = {  8,  0,  0,  0, 84,  0, 68,  0, 68,  0, 84,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_001[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_002[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_003[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_004[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_005[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_006[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_007[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_008[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_009[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_010[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_011[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_012[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_013[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_014[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_015[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_016[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_017[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_018[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_019[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_020[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_021[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_022[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_023[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_024[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_025[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_026[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_027[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_028[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_029[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_030[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_031[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_032[] = {  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_033[] = {  3,  0,  0,  0, 64,  0, 64, 64, 64, 64, 64, 64,  0,  0,  0};
+static const GLubyte Helvetica10_Character_034[] = {  4,  0,  0,  0,  0,  0,  0,  0,  0,  0, 80, 80,  0,  0,  0};
+static const GLubyte Helvetica10_Character_035[] = {  6,  0,  0,  0, 80, 80,248, 40,124, 40, 40,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_036[] = {  6,  0,  0, 32,112,168, 40,112,160,168,112, 32,  0,  0,  0};
+static const GLubyte Helvetica10_Character_037[] = {  9,  0,  0,  0,  0,  0,  0, 38,  0, 41,  0, 22,  0, 16,  0,  8,  0,104,  0,148,  0,100,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_038[] = {  8,  0,  0,  0, 50, 76, 76, 82, 48, 40, 40, 16,  0,  0,  0};
+static const GLubyte Helvetica10_Character_039[] = {  3,  0,  0,  0,  0,  0,  0,  0,  0, 64, 32, 32,  0,  0,  0};
+static const GLubyte Helvetica10_Character_040[] = {  4,  0, 32, 64, 64,128,128,128,128, 64, 64, 32,  0,  0,  0};
+static const GLubyte Helvetica10_Character_041[] = {  4,  0, 64, 32, 32, 16, 16, 16, 16, 32, 32, 64,  0,  0,  0};
+static const GLubyte Helvetica10_Character_042[] = {  4,  0,  0,  0,  0,  0,  0,  0,  0,160, 64,160,  0,  0,  0};
+static const GLubyte Helvetica10_Character_043[] = {  6,  0,  0,  0,  0, 32, 32,248, 32, 32,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_044[] = {  3,  0,128, 64, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_045[] = {  7,  0,  0,  0,  0,  0,  0,124,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_046[] = {  3,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_047[] = {  3,  0,  0,  0,128,128, 64, 64, 64, 64, 32, 32,  0,  0,  0};
+static const GLubyte Helvetica10_Character_048[] = {  6,  0,  0,  0,112,136,136,136,136,136,136,112,  0,  0,  0};
+static const GLubyte Helvetica10_Character_049[] = {  6,  0,  0,  0, 32, 32, 32, 32, 32, 32, 96, 32,  0,  0,  0};
+static const GLubyte Helvetica10_Character_050[] = {  6,  0,  0,  0,248,128, 64, 48,  8,  8,136,112,  0,  0,  0};
+static const GLubyte Helvetica10_Character_051[] = {  6,  0,  0,  0,112,136,  8,  8, 48,  8,136,112,  0,  0,  0};
+static const GLubyte Helvetica10_Character_052[] = {  6,  0,  0,  0, 16, 16,248,144, 80, 80, 48, 16,  0,  0,  0};
+static const GLubyte Helvetica10_Character_053[] = {  6,  0,  0,  0,112,136,  8,  8,240,128,128,248,  0,  0,  0};
+static const GLubyte Helvetica10_Character_054[] = {  6,  0,  0,  0,112,136,136,200,176,128,136,112,  0,  0,  0};
+static const GLubyte Helvetica10_Character_055[] = {  6,  0,  0,  0, 64, 64, 32, 32, 16, 16,  8,248,  0,  0,  0};
+static const GLubyte Helvetica10_Character_056[] = {  6,  0,  0,  0,112,136,136,136,112,136,136,112,  0,  0,  0};
+static const GLubyte Helvetica10_Character_057[] = {  6,  0,  0,  0,112,136,  8,104,152,136,136,112,  0,  0,  0};
+static const GLubyte Helvetica10_Character_058[] = {  3,  0,  0,  0, 64,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_059[] = {  3,  0,128, 64, 64,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_060[] = {  6,  0,  0,  0,  0, 16, 32, 64, 32, 16,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_061[] = {  5,  0,  0,  0,  0,  0,240,  0,240,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_062[] = {  6,  0,  0,  0,  0, 64, 32, 16, 32, 64,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_063[] = {  6,  0,  0,  0, 32,  0, 32, 32, 16,  8, 72, 48,  0,  0,  0};
+static const GLubyte Helvetica10_Character_064[] = { 11,  0,  0, 62,  0, 64,  0,155,  0,164,128,164,128,162, 64,146, 64, 77, 64, 32,128, 31,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_065[] = {  7,  0,  0,  0,130,130,124, 68, 40, 40, 16, 16,  0,  0,  0};
+static const GLubyte Helvetica10_Character_066[] = {  7,  0,  0,  0,120, 68, 68, 68,120, 68, 68,120,  0,  0,  0};
+static const GLubyte Helvetica10_Character_067[] = {  8,  0,  0,  0, 60, 66, 64, 64, 64, 64, 66, 60,  0,  0,  0};
+static const GLubyte Helvetica10_Character_068[] = {  8,  0,  0,  0,120, 68, 66, 66, 66, 66, 68,120,  0,  0,  0};
+static const GLubyte Helvetica10_Character_069[] = {  7,  0,  0,  0,124, 64, 64, 64,124, 64, 64,124,  0,  0,  0};
+static const GLubyte Helvetica10_Character_070[] = {  6,  0,  0,  0, 64, 64, 64, 64,120, 64, 64,124,  0,  0,  0};
+static const GLubyte Helvetica10_Character_071[] = {  8,  0,  0,  0, 58, 70, 66, 70, 64, 64, 66, 60,  0,  0,  0};
+static const GLubyte Helvetica10_Character_072[] = {  8,  0,  0,  0, 66, 66, 66, 66,126, 66, 66, 66,  0,  0,  0};
+static const GLubyte Helvetica10_Character_073[] = {  3,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64, 64,  0,  0,  0};
+static const GLubyte Helvetica10_Character_074[] = {  5,  0,  0,  0, 96,144, 16, 16, 16, 16, 16, 16,  0,  0,  0};
+static const GLubyte Helvetica10_Character_075[] = {  7,  0,  0,  0, 68, 68, 72, 72,112, 80, 72, 68,  0,  0,  0};
+static const GLubyte Helvetica10_Character_076[] = {  6,  0,  0,  0,120, 64, 64, 64, 64, 64, 64, 64,  0,  0,  0};
+static const GLubyte Helvetica10_Character_077[] = {  9,  0,  0,  0,  0,  0,  0, 73,  0, 73,  0, 73,  0, 85,  0, 85,  0, 99,  0, 99,  0, 65,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_078[] = {  8,  0,  0,  0, 70, 70, 74, 74, 82, 82, 98, 98,  0,  0,  0};
+static const GLubyte Helvetica10_Character_079[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 60,  0,  0,  0};
+static const GLubyte Helvetica10_Character_080[] = {  7,  0,  0,  0, 64, 64, 64, 64,120, 68, 68,120,  0,  0,  0};
+static const GLubyte Helvetica10_Character_081[] = {  8,  0,  0,  1, 62, 70, 74, 66, 66, 66, 66, 60,  0,  0,  0};
+static const GLubyte Helvetica10_Character_082[] = {  7,  0,  0,  0, 68, 68, 68, 68,120, 68, 68,120,  0,  0,  0};
+static const GLubyte Helvetica10_Character_083[] = {  7,  0,  0,  0, 56, 68, 68,  4, 56, 64, 68, 56,  0,  0,  0};
+static const GLubyte Helvetica10_Character_084[] = {  5,  0,  0,  0, 32, 32, 32, 32, 32, 32, 32,248,  0,  0,  0};
+static const GLubyte Helvetica10_Character_085[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 66,  0,  0,  0};
+static const GLubyte Helvetica10_Character_086[] = {  7,  0,  0,  0, 16, 40, 40, 68, 68, 68,130,130,  0,  0,  0};
+static const GLubyte Helvetica10_Character_087[] = {  9,  0,  0,  0,  0,  0,  0, 34,  0, 34,  0, 34,  0, 85,  0, 73,  0, 73,  0,136,128,136,128,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_088[] = {  7,  0,  0,  0, 68, 68, 40, 40, 16, 40, 68, 68,  0,  0,  0};
+static const GLubyte Helvetica10_Character_089[] = {  7,  0,  0,  0, 16, 16, 16, 40, 40, 68, 68,130,  0,  0,  0};
+static const GLubyte Helvetica10_Character_090[] = {  7,  0,  0,  0,124, 64, 32, 16, 16,  8,  4,124,  0,  0,  0};
+static const GLubyte Helvetica10_Character_091[] = {  3,  0, 96, 64, 64, 64, 64, 64, 64, 64, 64, 96,  0,  0,  0};
+static const GLubyte Helvetica10_Character_092[] = {  3,  0,  0,  0, 32, 32, 64, 64, 64, 64,128,128,  0,  0,  0};
+static const GLubyte Helvetica10_Character_093[] = {  3,  0,192, 64, 64, 64, 64, 64, 64, 64, 64,192,  0,  0,  0};
+static const GLubyte Helvetica10_Character_094[] = {  6,  0,  0,  0,  0,  0,  0,136, 80, 80, 32, 32,  0,  0,  0};
+static const GLubyte Helvetica10_Character_095[] = {  6,  0,252,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_096[] = {  3,  0,  0,  0,  0,  0,  0,  0,  0, 63, 64, 32,  0,  0,  0};
+static const GLubyte Helvetica10_Character_097[] = {  5,  0,  0,  0,104,144,144,112, 16,224,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_098[] = {  6,  0,  0,  0,176,200,136,136,200,176,128,128,  0,  0,  0};
+static const GLubyte Helvetica10_Character_099[] = {  5,  0,  0,  0, 96,144,128,128,144, 96,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_100[] = {  6,  0,  0,  0,104,152,136,136,152,104,  8,  8,  0,  0,  0};
+static const GLubyte Helvetica10_Character_101[] = {  5,  0,  0,  0, 96,144,128,240,144, 96,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_102[] = {  4,  0,  0,  0, 64, 64, 64, 64, 64,224, 64, 48,  0,  0,  0};
+static const GLubyte Helvetica10_Character_103[] = {  6,  0,112,  8,104,152,136,136,152,104,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_104[] = {  6,  0,  0,  0,136,136,136,136,200,176,128,128,  0,  0,  0};
+static const GLubyte Helvetica10_Character_105[] = {  2,  0,  0,  0,128,128,128,128,128,128,  0,128,  0,  0,  0};
+static const GLubyte Helvetica10_Character_106[] = {  2,  0,  0,128,128,128,128,128,128,128,  0,128,  0,  0,  0};
+static const GLubyte Helvetica10_Character_107[] = {  5,  0,  0,  0,144,144,160,192,160,144,128,128,  0,  0,  0};
+static const GLubyte Helvetica10_Character_108[] = {  2,  0,  0,  0,128,128,128,128,128,128,128,128,  0,  0,  0};
+static const GLubyte Helvetica10_Character_109[] = {  8,  0,  0,  0,146,146,146,146,146,236,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_110[] = {  6,  0,  0,  0,136,136,136,136,200,176,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_111[] = {  6,  0,  0,  0,112,136,136,136,136,112,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_112[] = {  6,  0,128,128,176,200,136,136,200,176,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_113[] = {  6,  0,  8,  8,104,152,136,136,152,104,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_114[] = {  4,  0,  0,  0,128,128,128,128,192,160,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_115[] = {  5,  0,  0,  0, 96,144, 16, 96,144, 96,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_116[] = {  4,  0,  0,  0, 96, 64, 64, 64, 64,224, 64, 64,  0,  0,  0};
+static const GLubyte Helvetica10_Character_117[] = {  5,  0,  0,  0,112,144,144,144,144,144,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_118[] = {  6,  0,  0,  0, 32, 32, 80, 80,136,136,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_119[] = {  8,  0,  0,  0, 40, 40, 84, 84,146,146,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_120[] = {  6,  0,  0,  0,136,136, 80, 32, 80,136,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_121[] = {  5,  0,128, 64, 64, 96,160,160,144,144,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_122[] = {  5,  0,  0,  0,240,128, 64, 32, 16,240,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_123[] = {  3,  0, 32, 64, 64, 64, 64,128, 64, 64, 64, 32,  0,  0,  0};
+static const GLubyte Helvetica10_Character_124[] = {  3,  0, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  0,  0,  0};
+static const GLubyte Helvetica10_Character_125[] = {  3,  0,128, 64, 64, 64, 64, 32, 64, 64, 64,128,  0,  0,  0};
+static const GLubyte Helvetica10_Character_126[] = {  7,  0,  0,  0,  0,  0,  0,152,100,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_127[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_128[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_129[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_130[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_131[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_132[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_133[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_134[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_135[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_136[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_137[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_138[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_139[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_140[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_141[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_142[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_143[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_144[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_145[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_146[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_147[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_148[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_149[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_150[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_151[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_152[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_153[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_154[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_155[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_156[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_157[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_158[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_159[] = { 13,  0,  0,  0,  0,  0,  0, 84,  0,  0,  0, 68,  0,  0,  0, 68,  0,  0,  0, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_160[] = {  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_161[] = {  3,  0, 64, 64, 64, 64, 64, 64,  0, 64,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_162[] = {  6,  0,  0, 64,112,168,160,160,168,112, 16,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_163[] = {  6,  0,  0,  0,176, 72, 64, 64,224, 64, 72, 48,  0,  0,  0};
+static const GLubyte Helvetica10_Character_164[] = {  5,  0,  0,  0,  0,144, 96,144,144, 96,144,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_165[] = {  6,  0,  0,  0, 32,248, 32,248, 80, 80,136,136,  0,  0,  0};
+static const GLubyte Helvetica10_Character_166[] = {  3,  0, 64, 64, 64, 64,  0,  0, 64, 64, 64, 64,  0,  0,  0};
+static const GLubyte Helvetica10_Character_167[] = {  6,  0,112,136, 24,112,200,152,112,192,136,112,  0,  0,  0};
+static const GLubyte Helvetica10_Character_168[] = {  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,160,  0,  0,  0};
+static const GLubyte Helvetica10_Character_169[] = {  9,  0,  0,  0,  0,  0,  0, 28,  0, 34,  0, 77,  0, 81,  0, 77,  0, 34,  0, 28,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_170[] = {  4,  0,  0,  0,  0,  0,  0,224,  0,160, 32,224,  0,  0,  0};
+static const GLubyte Helvetica10_Character_171[] = {  6,  0,  0,  0, 40, 80,160, 80, 40,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_172[] = {  7,  0,  0,  0,  0,  0,  4,  4,124,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_173[] = {  4,  0,  0,  0,  0,  0,  0,224,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_174[] = {  9,  0,  0,  0,  0,  0,  0, 28,  0, 34,  0, 85,  0, 89,  0, 93,  0, 34,  0, 28,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_175[] = {  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,224,  0,  0,  0};
+static const GLubyte Helvetica10_Character_176[] = {  4,  0,  0,  0,  0,  0,  0, 96,144,144, 96,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_177[] = {  6,  0,  0,  0,248,  0, 32, 32,248, 32, 32,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_178[] = {  3,  0,  0,  0,  0,  0,  0,224, 64,160, 96,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_179[] = {  3,  0,  0,  0,  0,  0,  0,192, 32, 64,224,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_180[] = {  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 64,  0,  0,  0};
+static const GLubyte Helvetica10_Character_181[] = {  5,  0,128,128,240,144,144,144,144,144,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_182[] = {  6,  0, 40, 40, 40, 40, 40,104,232,232,232,124,  0,  0,  0};
+static const GLubyte Helvetica10_Character_183[] = {  3,  0,  0,  0,  0,  0,  0,192,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_184[] = {  3,  0,192, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_185[] = {  3,  0,  0,  0,  0,  0,  0, 64, 64,192, 64,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_186[] = {  4,  0,  0,  0,  0,  0,  0,224,  0,224,160,224,  0,  0,  0};
+static const GLubyte Helvetica10_Character_187[] = {  6,  0,  0,  0,160, 80, 40, 80,160,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_188[] = {  9,  0,  0,  0,  0,  0,  0, 33,  0, 23,128, 19,  0,  9,  0, 72,  0, 68,  0,196,  0, 66,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_189[] = {  9,  0,  0,  0,  0,  0,  0, 39,  0, 18,  0, 21,  0, 11,  0, 72,  0, 68,  0,196,  0, 66,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_190[] = {  9,  0,  0,  0,  0,  0,  0, 33,  0, 23,128, 19,  0,  9,  0,200,  0, 36,  0, 68,  0,226,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_191[] = {  6,  0, 48, 72, 64, 32, 16, 16,  0, 16,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_192[] = {  7,  0,  0,  0,130,130,124, 68, 40, 40, 16, 16,  0, 16, 32};
+static const GLubyte Helvetica10_Character_193[] = {  7,  0,  0,  0,130,130,124, 68, 40, 40, 16, 16,  0, 16,  8};
+static const GLubyte Helvetica10_Character_194[] = {  7,  0,  0,  0,130,130,124, 68, 40, 40, 16, 16,  0, 40, 16};
+static const GLubyte Helvetica10_Character_195[] = {  7,  0,  0,  0,130,130,124, 68, 40, 40, 16, 16,  0, 40, 20};
+static const GLubyte Helvetica10_Character_196[] = {  7,  0,  0,  0,130,130,124, 68, 40, 40, 16, 16,  0, 40,  0};
+static const GLubyte Helvetica10_Character_197[] = {  7,  0,  0,  0,130,130,124, 68, 40, 40, 16, 16, 16, 40, 16};
+static const GLubyte Helvetica10_Character_198[] = { 10,  0,  0,  0,  0,  0,  0,143,128,136,  0,120,  0, 72,  0, 47,128, 40,  0, 24,  0, 31,128,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_199[] = {  8,  0, 24,  8, 60, 66, 64, 64, 64, 64, 66, 60,  0,  0,  0};
+static const GLubyte Helvetica10_Character_200[] = {  7,  0,  0,  0,124, 64, 64, 64,124, 64, 64,124,  0, 16, 32};
+static const GLubyte Helvetica10_Character_201[] = {  7,  0,  0,  0,124, 64, 64, 64,124, 64, 64,124,  0, 16,  8};
+static const GLubyte Helvetica10_Character_202[] = {  7,  0,  0,  0,124, 64, 64,124, 64, 64, 64,124,  0, 40, 16};
+static const GLubyte Helvetica10_Character_203[] = {  7,  0,  0,  0,124, 64, 64, 64,124, 64, 64,124,  0, 40,  0};
+static const GLubyte Helvetica10_Character_204[] = {  3,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64, 64,  0, 64,128};
+static const GLubyte Helvetica10_Character_205[] = {  3,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64, 64,  0, 64, 32};
+static const GLubyte Helvetica10_Character_206[] = {  3,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64, 64,  0,160, 64};
+static const GLubyte Helvetica10_Character_207[] = {  3,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64, 64,  0,160,  0};
+static const GLubyte Helvetica10_Character_208[] = {  8,  0,  0,  0,120, 68, 66, 66,242, 66, 68,120,  0,  0,  0};
+static const GLubyte Helvetica10_Character_209[] = {  8,  0,  0,  0, 70, 70, 74, 74, 82, 82, 98, 98,  0, 40, 20};
+static const GLubyte Helvetica10_Character_210[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 60,  0,  8, 16};
+static const GLubyte Helvetica10_Character_211[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 60,  0,  8,  4};
+static const GLubyte Helvetica10_Character_212[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 60,  0, 20,  8};
+static const GLubyte Helvetica10_Character_213[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 60,  0, 40, 20};
+static const GLubyte Helvetica10_Character_214[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 60,  0, 36,  0};
+static const GLubyte Helvetica10_Character_215[] = {  6,  0,  0,  0,  0,136, 80, 32, 80,136,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_216[] = {  8,  0,  0, 64, 60, 98, 82, 82, 74, 74, 70, 60,  2,  0,  0};
+static const GLubyte Helvetica10_Character_217[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 66,  0,  8, 16};
+static const GLubyte Helvetica10_Character_218[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 66,  0, 16,  8};
+static const GLubyte Helvetica10_Character_219[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 66,  0, 20,  8};
+static const GLubyte Helvetica10_Character_220[] = {  8,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 66,  0, 36,  0};
+static const GLubyte Helvetica10_Character_221[] = {  7,  0,  0,  0, 16, 16, 16, 40, 40, 68, 68,130,  0, 16,  8};
+static const GLubyte Helvetica10_Character_222[] = {  7,  0,  0,  0, 64, 64,120, 68, 68,120, 64, 64,  0,  0,  0};
+static const GLubyte Helvetica10_Character_223[] = {  5,  0,  0,  0,160,144,144,144,160,144,144, 96,  0,  0,  0};
+static const GLubyte Helvetica10_Character_224[] = {  5,  0,  0,  0,104,144,144,112, 16,224,  0, 32, 64,  0,  0};
+static const GLubyte Helvetica10_Character_225[] = {  5,  0,  0,  0,104,144,144,112, 16,224,  0, 32, 16,  0,  0};
+static const GLubyte Helvetica10_Character_226[] = {  5,  0,  0,  0,104,144,144,112, 16,224,  0, 80, 32,  0,  0};
+static const GLubyte Helvetica10_Character_227[] = {  5,  0,  0,  0,104,144,144,112, 16,224,  0,160, 80,  0,  0};
+static const GLubyte Helvetica10_Character_228[] = {  5,  0,  0,  0,104,144,144,112, 16,224,  0, 80,  0,  0,  0};
+static const GLubyte Helvetica10_Character_229[] = {  5,  0,  0,  0,104,144,144,112, 16,224, 32, 80, 32,  0,  0};
+static const GLubyte Helvetica10_Character_230[] = {  8,  0,  0,  0,108,146,144,126, 18,236,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_231[] = {  5,  0, 96, 32, 96,144,128,128,144, 96,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_232[] = {  5,  0,  0,  0, 96,144,128,240,144, 96,  0, 32, 64,  0,  0};
+static const GLubyte Helvetica10_Character_233[] = {  5,  0,  0,  0, 96,144,128,240,144, 96,  0, 64, 32,  0,  0};
+static const GLubyte Helvetica10_Character_234[] = {  5,  0,  0,  0, 96,144,128,240,144, 96,  0, 80, 32,  0,  0};
+static const GLubyte Helvetica10_Character_235[] = {  5,  0,  0,  0, 96,144,128,240,144, 96,  0, 80,  0,  0,  0};
+static const GLubyte Helvetica10_Character_236[] = {  2,  0,  0,  0,128,128,128,128,128,128,  0,128,  0,  0,  0};
+static const GLubyte Helvetica10_Character_237[] = {  2,  0,  0,  0,128,128,128,128,128,128,  0,128, 64,  0,  0};
+static const GLubyte Helvetica10_Character_238[] = {  2,  0,  0,  0,128,128,128,128,128,128,  0, 64,128,  0,  0};
+static const GLubyte Helvetica10_Character_239[] = {  2,  0,  0,  0, 64, 64, 64, 64, 64, 64,  0,160,  0,  0,  0};
+static const GLubyte Helvetica10_Character_240[] = {  6,  0,  0,  0,112,136,136,136,136,120,144, 96, 80,  0,  0};
+static const GLubyte Helvetica10_Character_241[] = {  5,  0,  0,  0,144,144,144,144,144,224,  0,160, 80,  0,  0};
+static const GLubyte Helvetica10_Character_242[] = {  6,  0,  0,  0,112,136,136,136,136,112,  0, 32, 64,  0,  0};
+static const GLubyte Helvetica10_Character_243[] = {  6,  0,  0,  0,112,136,136,136,136,112,  0, 32, 16,  0,  0};
+static const GLubyte Helvetica10_Character_244[] = {  6,  0,  0,  0,112,136,136,136,136,112,  0, 80, 32,  0,  0};
+static const GLubyte Helvetica10_Character_245[] = {  6,  0,  0,  0,112,136,136,136,136,112,  0, 80, 40,  0,  0};
+static const GLubyte Helvetica10_Character_246[] = {  6,  0,  0,  0,112,136,136,136,136,112,  0, 80,  0,  0,  0};
+static const GLubyte Helvetica10_Character_247[] = {  6,  0,  0,  0,  0, 32,  0,248,  0, 32,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_248[] = {  6,  0,  0,  0,112,136,200,168,152,116,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica10_Character_249[] = {  5,  0,  0,  0,112,144,144,144,144,144,  0, 32, 64,  0,  0};
+static const GLubyte Helvetica10_Character_250[] = {  5,  0,  0,  0,112,144,144,144,144,144,  0, 64, 32,  0,  0};
+static const GLubyte Helvetica10_Character_251[] = {  5,  0,  0,  0,112,144,144,144,144,144,  0, 80, 32,  0,  0};
+static const GLubyte Helvetica10_Character_252[] = {  5,  0,  0,  0,112,144,144,144,144,144,  0, 80,  0,  0,  0};
+static const GLubyte Helvetica10_Character_253[] = {  5,  0,128, 64, 64, 96,160,160,144,144,  0, 32, 16,  0,  0};
+static const GLubyte Helvetica10_Character_254[] = {  6,  0,128,128,176,200,136,136,200,176,128,128,  0,  0,  0};
+static const GLubyte Helvetica10_Character_255[] = {  5,  0,128, 64, 64, 96,160,160,144,144,  0, 80,  0,  0,  0};
+
+/* The font characters mapping: */
+static const GLubyte* Helvetica10_Character_Map[] = {Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,
+                                                     Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,
+                                                     Helvetica10_Character_032,Helvetica10_Character_033,Helvetica10_Character_034,Helvetica10_Character_035,Helvetica10_Character_036,Helvetica10_Character_037,Helvetica10_Character_038,Helvetica10_Character_039,Helvetica10_Character_040,Helvetica10_Character_041,Helvetica10_Character_042,Helvetica10_Character_043,Helvetica10_Character_044,Helvetica10_Character_045,Helvetica10_Character_046,Helvetica10_Character_047,
+                                                     Helvetica10_Character_048,Helvetica10_Character_049,Helvetica10_Character_050,Helvetica10_Character_051,Helvetica10_Character_052,Helvetica10_Character_053,Helvetica10_Character_054,Helvetica10_Character_055,Helvetica10_Character_056,Helvetica10_Character_057,Helvetica10_Character_058,Helvetica10_Character_059,Helvetica10_Character_060,Helvetica10_Character_061,Helvetica10_Character_062,Helvetica10_Character_063,
+                                                     Helvetica10_Character_064,Helvetica10_Character_065,Helvetica10_Character_066,Helvetica10_Character_067,Helvetica10_Character_068,Helvetica10_Character_069,Helvetica10_Character_070,Helvetica10_Character_071,Helvetica10_Character_072,Helvetica10_Character_073,Helvetica10_Character_074,Helvetica10_Character_075,Helvetica10_Character_076,Helvetica10_Character_077,Helvetica10_Character_078,Helvetica10_Character_079,
+                                                     Helvetica10_Character_080,Helvetica10_Character_081,Helvetica10_Character_082,Helvetica10_Character_083,Helvetica10_Character_084,Helvetica10_Character_085,Helvetica10_Character_086,Helvetica10_Character_087,Helvetica10_Character_088,Helvetica10_Character_089,Helvetica10_Character_090,Helvetica10_Character_091,Helvetica10_Character_092,Helvetica10_Character_093,Helvetica10_Character_094,Helvetica10_Character_095,
+                                                     Helvetica10_Character_096,Helvetica10_Character_097,Helvetica10_Character_098,Helvetica10_Character_099,Helvetica10_Character_100,Helvetica10_Character_101,Helvetica10_Character_102,Helvetica10_Character_103,Helvetica10_Character_104,Helvetica10_Character_105,Helvetica10_Character_106,Helvetica10_Character_107,Helvetica10_Character_108,Helvetica10_Character_109,Helvetica10_Character_110,Helvetica10_Character_111,
+                                                     Helvetica10_Character_112,Helvetica10_Character_113,Helvetica10_Character_114,Helvetica10_Character_115,Helvetica10_Character_116,Helvetica10_Character_117,Helvetica10_Character_118,Helvetica10_Character_119,Helvetica10_Character_120,Helvetica10_Character_121,Helvetica10_Character_122,Helvetica10_Character_123,Helvetica10_Character_124,Helvetica10_Character_125,Helvetica10_Character_126,Helvetica10_Character_032,
+                                                     Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,
+                                                     Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,Helvetica10_Character_032,
+                                                     Helvetica10_Character_160,Helvetica10_Character_161,Helvetica10_Character_162,Helvetica10_Character_163,Helvetica10_Character_164,Helvetica10_Character_165,Helvetica10_Character_166,Helvetica10_Character_167,Helvetica10_Character_168,Helvetica10_Character_169,Helvetica10_Character_170,Helvetica10_Character_171,Helvetica10_Character_172,Helvetica10_Character_173,Helvetica10_Character_174,Helvetica10_Character_175,
+                                                     Helvetica10_Character_176,Helvetica10_Character_177,Helvetica10_Character_178,Helvetica10_Character_179,Helvetica10_Character_180,Helvetica10_Character_181,Helvetica10_Character_182,Helvetica10_Character_183,Helvetica10_Character_184,Helvetica10_Character_185,Helvetica10_Character_186,Helvetica10_Character_187,Helvetica10_Character_188,Helvetica10_Character_189,Helvetica10_Character_190,Helvetica10_Character_191,
+                                                     Helvetica10_Character_192,Helvetica10_Character_193,Helvetica10_Character_194,Helvetica10_Character_195,Helvetica10_Character_196,Helvetica10_Character_197,Helvetica10_Character_198,Helvetica10_Character_199,Helvetica10_Character_200,Helvetica10_Character_201,Helvetica10_Character_202,Helvetica10_Character_203,Helvetica10_Character_204,Helvetica10_Character_205,Helvetica10_Character_206,Helvetica10_Character_207,
+                                                     Helvetica10_Character_208,Helvetica10_Character_209,Helvetica10_Character_210,Helvetica10_Character_211,Helvetica10_Character_212,Helvetica10_Character_213,Helvetica10_Character_214,Helvetica10_Character_215,Helvetica10_Character_216,Helvetica10_Character_217,Helvetica10_Character_218,Helvetica10_Character_219,Helvetica10_Character_220,Helvetica10_Character_221,Helvetica10_Character_222,Helvetica10_Character_223,
+                                                     Helvetica10_Character_224,Helvetica10_Character_225,Helvetica10_Character_226,Helvetica10_Character_227,Helvetica10_Character_228,Helvetica10_Character_229,Helvetica10_Character_230,Helvetica10_Character_231,Helvetica10_Character_232,Helvetica10_Character_233,Helvetica10_Character_234,Helvetica10_Character_235,Helvetica10_Character_236,Helvetica10_Character_237,Helvetica10_Character_238,Helvetica10_Character_239,
+                                                     Helvetica10_Character_240,Helvetica10_Character_241,Helvetica10_Character_242,Helvetica10_Character_243,Helvetica10_Character_244,Helvetica10_Character_245,Helvetica10_Character_246,Helvetica10_Character_247,Helvetica10_Character_248,Helvetica10_Character_249,Helvetica10_Character_250,Helvetica10_Character_251,Helvetica10_Character_252,Helvetica10_Character_253,Helvetica10_Character_254,Helvetica10_Character_255,NULL};
+
+/* The font structure: */
+const SFG_Font fgFontHelvetica10 = { "-adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1", 256, 14, Helvetica10_Character_Map, 0, 3 };
+
+static const GLubyte Helvetica12_Character_000[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_001[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_002[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_003[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_004[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_005[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_006[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_007[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_008[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_009[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_010[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_011[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_012[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_013[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_014[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_015[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_016[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_017[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_018[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_019[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_020[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_021[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_022[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_023[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_024[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_025[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_026[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_027[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_028[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_029[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_030[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_031[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_032[] = {  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_033[] = {  3,  0,  0,  0,  0, 64,  0, 64, 64, 64, 64, 64, 64, 64,  0,  0,  0};
+static const GLubyte Helvetica12_Character_034[] = {  5,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 80, 80, 80,  0,  0,  0};
+static const GLubyte Helvetica12_Character_035[] = {  7,  0,  0,  0,  0, 80, 80, 80,252, 40,252, 40, 40,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_036[] = {  7,  0,  0,  0, 16, 56, 84, 84, 20, 56, 80, 84, 56, 16,  0,  0,  0};
+static const GLubyte Helvetica12_Character_037[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0, 17,128, 10, 64, 10, 64,  9,128,  4,  0, 52,  0, 74,  0, 74,  0, 49,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_038[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 57,  0, 70,  0, 66,  0, 69,  0, 40,  0, 24,  0, 36,  0, 36,  0, 24,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_039[] = {  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64, 32, 96,  0,  0,  0};
+static const GLubyte Helvetica12_Character_040[] = {  4,  0, 16, 32, 32, 64, 64, 64, 64, 64, 64, 32, 32, 16,  0,  0,  0};
+static const GLubyte Helvetica12_Character_041[] = {  4,  0,128, 64, 64, 32, 32, 32, 32, 32, 32, 64, 64,128,  0,  0,  0};
+static const GLubyte Helvetica12_Character_042[] = {  5,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 80, 32, 80,  0,  0,  0};
+static const GLubyte Helvetica12_Character_043[] = {  7,  0,  0,  0,  0,  0, 16, 16,124, 16, 16,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_044[] = {  4,  0,  0, 64, 32, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_045[] = {  8,  0,  0,  0,  0,  0,  0,  0,124,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_046[] = {  3,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_047[] = {  4,  0,  0,  0,  0,128,128, 64, 64, 64, 32, 32, 16, 16,  0,  0,  0};
+static const GLubyte Helvetica12_Character_048[] = {  7,  0,  0,  0,  0, 56, 68, 68, 68, 68, 68, 68, 68, 56,  0,  0,  0};
+static const GLubyte Helvetica12_Character_049[] = {  7,  0,  0,  0,  0, 16, 16, 16, 16, 16, 16, 16,112, 16,  0,  0,  0};
+static const GLubyte Helvetica12_Character_050[] = {  7,  0,  0,  0,  0,124, 64, 64, 32, 16,  8,  4, 68, 56,  0,  0,  0};
+static const GLubyte Helvetica12_Character_051[] = {  7,  0,  0,  0,  0, 56, 68, 68,  4,  4, 24,  4, 68, 56,  0,  0,  0};
+static const GLubyte Helvetica12_Character_052[] = {  7,  0,  0,  0,  0,  8,  8,252,136, 72, 40, 40, 24,  8,  0,  0,  0};
+static const GLubyte Helvetica12_Character_053[] = {  7,  0,  0,  0,  0, 56, 68, 68,  4,  4,120, 64, 64,124,  0,  0,  0};
+static const GLubyte Helvetica12_Character_054[] = {  7,  0,  0,  0,  0, 56, 68, 68, 68,100, 88, 64, 68, 56,  0,  0,  0};
+static const GLubyte Helvetica12_Character_055[] = {  7,  0,  0,  0,  0, 32, 32, 16, 16, 16,  8,  8,  4,124,  0,  0,  0};
+static const GLubyte Helvetica12_Character_056[] = {  7,  0,  0,  0,  0, 56, 68, 68, 68, 68, 56, 68, 68, 56,  0,  0,  0};
+static const GLubyte Helvetica12_Character_057[] = {  7,  0,  0,  0,  0, 56, 68,  4,  4, 60, 68, 68, 68, 56,  0,  0,  0};
+static const GLubyte Helvetica12_Character_058[] = {  3,  0,  0,  0,  0, 64,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_059[] = {  3,  0,  0,128, 64, 64,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_060[] = {  7,  0,  0,  0,  0,  0, 12, 48,192, 48, 12,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_061[] = {  7,  0,  0,  0,  0,  0,  0,124,  0,124,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_062[] = {  7,  0,  0,  0,  0,  0, 96, 24,  6, 24, 96,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_063[] = {  7,  0,  0,  0,  0, 16,  0, 16, 16,  8,  8, 68, 68, 56,  0,  0,  0};
+static const GLubyte Helvetica12_Character_064[] = { 12,  0,  0,  0,  0,  0,  0, 31,  0, 32,  0, 77,128, 83, 64, 81, 32, 81, 32, 73, 32, 38,160, 48, 64, 15,128,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_065[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0, 62,  0, 34,  0, 34,  0, 20,  0, 20,  0,  8,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_066[] = {  8,  0,  0,  0,  0,124, 66, 66, 66,124, 66, 66, 66,124,  0,  0,  0};
+static const GLubyte Helvetica12_Character_067[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 33,  0, 64,  0, 64,  0, 64,  0, 64,  0, 64,  0, 33,  0, 30,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_068[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,124,  0, 66,  0, 65,  0, 65,  0, 65,  0, 65,  0, 65,  0, 66,  0,124,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_069[] = {  8,  0,  0,  0,  0,126, 64, 64, 64,126, 64, 64, 64,126,  0,  0,  0};
+static const GLubyte Helvetica12_Character_070[] = {  8,  0,  0,  0,  0, 64, 64, 64, 64,124, 64, 64, 64,126,  0,  0,  0};
+static const GLubyte Helvetica12_Character_071[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 29,  0, 35,  0, 65,  0, 65,  0, 71,  0, 64,  0, 64,  0, 33,  0, 30,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_072[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0, 65,  0,127,  0, 65,  0, 65,  0, 65,  0, 65,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_073[] = {  3,  0,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64, 64, 64,  0,  0,  0};
+static const GLubyte Helvetica12_Character_074[] = {  7,  0,  0,  0,  0, 56, 68, 68,  4,  4,  4,  4,  4,  4,  0,  0,  0};
+static const GLubyte Helvetica12_Character_075[] = {  8,  0,  0,  0,  0, 65, 66, 68, 72,112, 80, 72, 68, 66,  0,  0,  0};
+static const GLubyte Helvetica12_Character_076[] = {  7,  0,  0,  0,  0,124, 64, 64, 64, 64, 64, 64, 64, 64,  0,  0,  0};
+static const GLubyte Helvetica12_Character_077[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0, 68, 64, 68, 64, 74, 64, 74, 64, 81, 64, 81, 64, 96,192, 96,192, 64, 64,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_078[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 67,  0, 69,  0, 69,  0, 73,  0, 81,  0, 81,  0, 97,  0, 65,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_079[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 33,  0, 64,128, 64,128, 64,128, 64,128, 64,128, 33,  0, 30,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_080[] = {  8,  0,  0,  0,  0, 64, 64, 64, 64,124, 66, 66, 66,124,  0,  0,  0};
+static const GLubyte Helvetica12_Character_081[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 30,128, 33,  0, 66,128, 68,128, 64,128, 64,128, 64,128, 33,  0, 30,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_082[] = {  8,  0,  0,  0,  0, 66, 66, 66, 68,124, 66, 66, 66,124,  0,  0,  0};
+static const GLubyte Helvetica12_Character_083[] = {  8,  0,  0,  0,  0, 60, 66, 66,  2, 12, 48, 64, 66, 60,  0,  0,  0};
+static const GLubyte Helvetica12_Character_084[] = {  7,  0,  0,  0,  0, 16, 16, 16, 16, 16, 16, 16, 16,254,  0,  0,  0};
+static const GLubyte Helvetica12_Character_085[] = {  8,  0,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 66, 66,  0,  0,  0};
+static const GLubyte Helvetica12_Character_086[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0, 20,  0, 20,  0, 34,  0, 34,  0, 34,  0, 65,  0, 65,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_087[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0, 17,  0, 17,  0, 17,  0, 42,128, 42,128, 36,128, 68, 64, 68, 64, 68, 64,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_088[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 34,  0, 34,  0, 20,  0,  8,  0, 20,  0, 34,  0, 34,  0, 65,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_089[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0, 20,  0, 34,  0, 34,  0, 65,  0, 65,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_090[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,127,  0, 64,  0, 32,  0, 16,  0,  8,  0,  4,  0,  2,  0,  1,  0,127,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_091[] = {  3,  0, 96, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 96,  0,  0,  0};
+static const GLubyte Helvetica12_Character_092[] = {  4,  0,  0,  0,  0, 16, 16, 32, 32, 32, 64, 64,128,128,  0,  0,  0};
+static const GLubyte Helvetica12_Character_093[] = {  3,  0,192, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,192,  0,  0,  0};
+static const GLubyte Helvetica12_Character_094[] = {  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,136, 80, 32,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_095[] = {  7,  0,  0,254,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_096[] = {  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192,128, 64,  0,  0,  0};
+static const GLubyte Helvetica12_Character_097[] = {  7,  0,  0,  0,  0, 58, 68, 68, 60,  4, 68, 56,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_098[] = {  7,  0,  0,  0,  0, 88,100, 68, 68, 68,100, 88, 64, 64,  0,  0,  0};
+static const GLubyte Helvetica12_Character_099[] = {  7,  0,  0,  0,  0, 56, 68, 64, 64, 64, 68, 56,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_100[] = {  7,  0,  0,  0,  0, 52, 76, 68, 68, 68, 76, 52,  4,  4,  0,  0,  0};
+static const GLubyte Helvetica12_Character_101[] = {  7,  0,  0,  0,  0, 56, 68, 64,124, 68, 68, 56,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_102[] = {  3,  0,  0,  0,  0, 64, 64, 64, 64, 64, 64,224, 64, 48,  0,  0,  0};
+static const GLubyte Helvetica12_Character_103[] = {  7,  0, 56, 68,  4, 52, 76, 68, 68, 68, 76, 52,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_104[] = {  7,  0,  0,  0,  0, 68, 68, 68, 68, 68,100, 88, 64, 64,  0,  0,  0};
+static const GLubyte Helvetica12_Character_105[] = {  3,  0,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64,  0, 64,  0,  0,  0};
+static const GLubyte Helvetica12_Character_106[] = {  3,  0,128, 64, 64, 64, 64, 64, 64, 64, 64, 64,  0, 64,  0,  0,  0};
+static const GLubyte Helvetica12_Character_107[] = {  6,  0,  0,  0,  0, 68, 72, 80, 96, 96, 80, 72, 64, 64,  0,  0,  0};
+static const GLubyte Helvetica12_Character_108[] = {  3,  0,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64, 64, 64,  0,  0,  0};
+static const GLubyte Helvetica12_Character_109[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 73,  0, 73,  0, 73,  0, 73,  0, 73,  0,109,  0, 82,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_110[] = {  7,  0,  0,  0,  0, 68, 68, 68, 68, 68,100, 88,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_111[] = {  7,  0,  0,  0,  0, 56, 68, 68, 68, 68, 68, 56,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_112[] = {  7,  0, 64, 64, 64, 88,100, 68, 68, 68,100, 88,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_113[] = {  7,  0,  4,  4,  4, 52, 76, 68, 68, 68, 76, 52,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_114[] = {  4,  0,  0,  0,  0, 64, 64, 64, 64, 64, 96, 80,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_115[] = {  6,  0,  0,  0,  0, 48, 72,  8, 48, 64, 72, 48,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_116[] = {  3,  0,  0,  0,  0, 96, 64, 64, 64, 64, 64,224, 64, 64,  0,  0,  0};
+static const GLubyte Helvetica12_Character_117[] = {  7,  0,  0,  0,  0, 52, 76, 68, 68, 68, 68, 68,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_118[] = {  7,  0,  0,  0,  0, 16, 16, 40, 40, 68, 68, 68,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_119[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 34,  0, 34,  0, 85,  0, 73,  0, 73,  0,136,128,136,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_120[] = {  6,  0,  0,  0,  0,132,132, 72, 48, 48, 72,132,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_121[] = {  7,  0, 64, 32, 16, 16, 40, 40, 72, 68, 68, 68,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_122[] = {  6,  0,  0,  0,  0,120, 64, 32, 32, 16,  8,120,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_123[] = {  4,  0, 48, 64, 64, 64, 64, 64,128, 64, 64, 64, 64, 48,  0,  0,  0};
+static const GLubyte Helvetica12_Character_124[] = {  3,  0, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  0,  0,  0};
+static const GLubyte Helvetica12_Character_125[] = {  4,  0,192, 32, 32, 32, 32, 32, 16, 32, 32, 32, 32,192,  0,  0,  0};
+static const GLubyte Helvetica12_Character_126[] = {  7,  0,  0,  0,  0,  0,  0,  0,152,100,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_127[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_128[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_129[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_130[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_131[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_132[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_133[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_134[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_135[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_136[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_137[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_138[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_139[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_140[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_141[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_142[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_143[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_144[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_145[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_146[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_147[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_148[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_149[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_150[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_151[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_152[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_153[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_154[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_155[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_156[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_157[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_158[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_159[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0, 85,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 65,  0,  0,  0, 85,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_160[] = {  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_161[] = {  3,  0, 64, 64, 64, 64, 64, 64, 64, 64,  0, 64,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_162[] = {  7,  0,  0,  0, 32, 56,100, 80, 80, 80, 84, 56,  8,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_163[] = {  7,  0,  0,  0,  0, 88, 36, 16, 16,120, 32, 32, 36, 24,  0,  0,  0};
+static const GLubyte Helvetica12_Character_164[] = {  7,  0,  0,  0,  0,  0,132,120, 72, 72,120,132,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_165[] = {  7,  0,  0,  0,  0, 16, 16,124, 16,124, 16, 40, 68, 68,  0,  0,  0};
+static const GLubyte Helvetica12_Character_166[] = {  3,  0,  0, 64, 64, 64, 64,  0,  0,  0, 64, 64, 64, 64,  0,  0,  0};
+static const GLubyte Helvetica12_Character_167[] = {  6,  0,112,136,  8, 48, 72,136,136,144, 96,128,136,112,  0,  0,  0};
+static const GLubyte Helvetica12_Character_168[] = {  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,160,  0,  0,  0};
+static const GLubyte Helvetica12_Character_169[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0, 31,  0, 32,128, 78, 64, 81, 64, 80, 64, 81, 64, 78, 64, 32,128, 31,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_170[] = {  5,  0,  0,  0,  0,  0,  0,  0,  0,112,  0, 80, 16,112,  0,  0,  0};
+static const GLubyte Helvetica12_Character_171[] = {  7,  0,  0,  0,  0,  0, 20, 40, 80, 40, 20,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_172[] = {  8,  0,  0,  0,  0,  0,  0,  2,  2,  2,126,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_173[] = {  5,  0,  0,  0,  0,  0,  0,  0,240,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_174[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0, 31,  0, 32,128, 74, 64, 74, 64, 76, 64, 74, 64, 78, 64, 32,128, 31,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_175[] = {  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,240,  0,  0,  0};
+static const GLubyte Helvetica12_Character_176[] = {  5,  0,  0,  0,  0,  0,  0,  0,  0, 96,144,144, 96,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_177[] = {  7,  0,  0,  0,  0,124,  0, 16, 16,124, 16, 16,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_178[] = {  4,  0,  0,  0,  0,  0,  0,  0,240, 64, 32,144, 96,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_179[] = {  4,  0,  0,  0,  0,  0,  0,  0,192, 32, 64, 32,224,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_180[] = {  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 64,  0,  0};
+static const GLubyte Helvetica12_Character_181[] = {  7,  0, 64, 64, 64,116, 76, 68, 68, 68, 68, 68,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_182[] = {  7,  0, 40, 40, 40, 40, 40, 40,104,232,232,232,104, 60,  0,  0,  0};
+static const GLubyte Helvetica12_Character_183[] = {  3,  0,  0,  0,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_184[] = {  3,  0,192, 32, 32, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_185[] = {  4,  0,  0,  0,  0,  0,  0,  0, 32, 32, 32, 96, 32,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_186[] = {  5,  0,  0,  0,  0,  0,  0,  0,  0,112,  0,112, 80,112,  0,  0,  0};
+static const GLubyte Helvetica12_Character_187[] = {  7,  0,  0,  0,  0,  0, 80, 40, 20, 40, 80,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_188[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 39,128, 21,  0, 19,  0, 73,  0, 68,  0, 68,  0,194,  0, 65,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_189[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 71,128, 34,  0, 17,  0, 20,128, 75,  0, 72,  0, 68,  0,194,  0, 65,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_190[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 33,  0, 23,128, 21,  0, 11,  0,201,  0, 36,  0, 68,  0, 34,  0,225,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_191[] = {  7,  0, 56, 68, 68, 32, 32, 16, 16,  0, 16,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_192[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0, 62,  0, 34,  0, 34,  0, 20,  0,  8,  0,  8,  0,  0,  0,  8,  0, 16,  0};
+static const GLubyte Helvetica12_Character_193[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0, 62,  0, 34,  0, 34,  0, 20,  0,  8,  0,  8,  0,  0,  0,  8,  0,  4,  0};
+static const GLubyte Helvetica12_Character_194[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0, 62,  0, 34,  0, 34,  0, 20,  0,  8,  0,  8,  0,  0,  0, 20,  0,  8,  0};
+static const GLubyte Helvetica12_Character_195[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0, 62,  0, 34,  0, 34,  0, 20,  0,  8,  0,  8,  0,  0,  0, 20,  0, 10,  0};
+static const GLubyte Helvetica12_Character_196[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0, 62,  0, 34,  0, 34,  0, 20,  0,  8,  0,  8,  0,  0,  0, 20,  0,  0,  0};
+static const GLubyte Helvetica12_Character_197[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 65,  0, 65,  0, 62,  0, 34,  0, 34,  0, 20,  0,  8,  0,  8,  0,  8,  0, 20,  0,  8,  0};
+static const GLubyte Helvetica12_Character_198[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0, 71,192, 68,  0, 68,  0, 60,  0, 39,192, 36,  0, 20,  0, 20,  0, 15,192,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_199[] = {  9,  0,  0, 24,  0,  4,  0,  4,  0, 30,  0, 33,  0, 64,  0, 64,  0, 64,  0, 64,  0, 64,  0, 33,  0, 30,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_200[] = {  8,  0,  0,  0,  0,126, 64, 64, 64,126, 64, 64, 64,126,  0,  8, 16};
+static const GLubyte Helvetica12_Character_201[] = {  8,  0,  0,  0,  0,126, 64, 64, 64,126, 64, 64, 64,126,  0,  8,  4};
+static const GLubyte Helvetica12_Character_202[] = {  8,  0,  0,  0,  0,126, 64, 64, 64,126, 64, 64, 64,126,  0, 20,  8};
+static const GLubyte Helvetica12_Character_203[] = {  8,  0,  0,  0,  0,126, 64, 64, 64,126, 64, 64, 64,126,  0, 20,  0};
+static const GLubyte Helvetica12_Character_204[] = {  3,  0,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64, 64, 64,  0, 64,128};
+static const GLubyte Helvetica12_Character_205[] = {  3,  0,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64, 64, 64,  0, 64, 32};
+static const GLubyte Helvetica12_Character_206[] = {  3,  0,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64, 64, 64,  0,160, 64};
+static const GLubyte Helvetica12_Character_207[] = {  3,  0,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64, 64, 64,  0,160,  0};
+static const GLubyte Helvetica12_Character_208[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,124,  0, 66,  0, 65,  0, 65,  0,241,  0, 65,  0, 65,  0, 66,  0,124,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_209[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0, 67,  0, 69,  0, 69,  0, 73,  0, 81,  0, 81,  0, 97,  0, 65,  0,  0,  0, 20,  0, 10,  0};
+static const GLubyte Helvetica12_Character_210[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 33,  0, 64,128, 64,128, 64,128, 64,128, 64,128, 33,  0, 30,  0,  0,  0,  4,  0,  8,  0};
+static const GLubyte Helvetica12_Character_211[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 33,  0, 64,128, 64,128, 64,128, 64,128, 64,128, 33,  0, 30,  0,  0,  0,  4,  0,  2,  0};
+static const GLubyte Helvetica12_Character_212[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 33,  0, 64,128, 64,128, 64,128, 64,128, 64,128, 33,  0, 30,  0,  0,  0, 10,  0,  4,  0};
+static const GLubyte Helvetica12_Character_213[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 33,  0, 64,128, 64,128, 64,128, 64,128, 64,128, 33,  0, 30,  0,  0,  0, 20,  0, 10,  0};
+static const GLubyte Helvetica12_Character_214[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 33,  0, 64,128, 64,128, 64,128, 64,128, 64,128, 33,  0, 30,  0,  0,  0, 18,  0,  0,  0};
+static const GLubyte Helvetica12_Character_215[] = {  7,  0,  0,  0,  0,  0, 68, 40, 16, 40, 68,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_216[] = { 10,  0,  0,  0,  0,  0,  0,128,  0, 94,  0, 33,  0, 80,128, 72,128, 68,128, 68,128, 66,128, 33,  0, 30,128,  0, 64,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_217[] = {  8,  0,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 66, 66,  0,  8, 16};
+static const GLubyte Helvetica12_Character_218[] = {  8,  0,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 66, 66,  0,  8,  4};
+static const GLubyte Helvetica12_Character_219[] = {  8,  0,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 66, 66,  0, 20,  8};
+static const GLubyte Helvetica12_Character_220[] = {  8,  0,  0,  0,  0, 60, 66, 66, 66, 66, 66, 66, 66, 66,  0, 36,  0};
+static const GLubyte Helvetica12_Character_221[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0,  8,  0,  8,  0, 20,  0, 34,  0, 34,  0, 65,  0, 65,  0,  0,  0,  8,  0,  4,  0};
+static const GLubyte Helvetica12_Character_222[] = {  8,  0,  0,  0,  0, 64, 64,124, 66, 66, 66,124, 64, 64,  0,  0,  0};
+static const GLubyte Helvetica12_Character_223[] = {  7,  0,  0,  0,  0, 88, 68, 68, 68, 88, 68, 68, 68, 56,  0,  0,  0};
+static const GLubyte Helvetica12_Character_224[] = {  7,  0,  0,  0,  0, 58, 68, 68, 60,  4, 68, 56,  0,  8, 16,  0,  0};
+static const GLubyte Helvetica12_Character_225[] = {  7,  0,  0,  0,  0, 58, 68, 68, 60,  4, 68, 56,  0, 16,  8,  0,  0};
+static const GLubyte Helvetica12_Character_226[] = {  7,  0,  0,  0,  0, 58, 68, 68, 60,  4, 68, 56,  0, 40, 16,  0,  0};
+static const GLubyte Helvetica12_Character_227[] = {  7,  0,  0,  0,  0, 58, 68, 68, 60,  4, 68, 56,  0, 40, 20,  0,  0};
+static const GLubyte Helvetica12_Character_228[] = {  7,  0,  0,  0,  0, 58, 68, 68, 60,  4, 68, 56,  0, 40,  0,  0,  0};
+static const GLubyte Helvetica12_Character_229[] = {  7,  0,  0,  0,  0, 58, 68, 68, 60,  4, 68, 56, 24, 36, 24,  0,  0};
+static const GLubyte Helvetica12_Character_230[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0, 59,128, 68, 64, 68,  0, 63,192,  4, 64, 68, 64, 59,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_231[] = {  7,  0, 48,  8, 16, 56, 68, 64, 64, 64, 68, 56,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_232[] = {  7,  0,  0,  0,  0, 56, 68, 64,124, 68, 68, 56,  0, 16, 32,  0,  0};
+static const GLubyte Helvetica12_Character_233[] = {  7,  0,  0,  0,  0, 56, 68, 64,124, 68, 68, 56,  0, 16,  8,  0,  0};
+static const GLubyte Helvetica12_Character_234[] = {  7,  0,  0,  0,  0, 56, 68, 64,124, 68, 68, 56,  0, 40, 16,  0,  0};
+static const GLubyte Helvetica12_Character_235[] = {  7,  0,  0,  0,  0, 56, 68, 64,124, 68, 68, 56,  0, 40,  0,  0,  0};
+static const GLubyte Helvetica12_Character_236[] = {  3,  0,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64,  0, 64,128,  0,  0};
+static const GLubyte Helvetica12_Character_237[] = {  3,  0,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64,  0, 64, 32,  0,  0};
+static const GLubyte Helvetica12_Character_238[] = {  3,  0,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64,  0,160, 64,  0,  0};
+static const GLubyte Helvetica12_Character_239[] = {  3,  0,  0,  0,  0, 64, 64, 64, 64, 64, 64, 64,  0,160,  0,  0,  0};
+static const GLubyte Helvetica12_Character_240[] = {  7,  0,  0,  0,  0, 56, 68, 68, 68, 68, 60,  4, 40, 24, 52,  0,  0};
+static const GLubyte Helvetica12_Character_241[] = {  7,  0,  0,  0,  0, 68, 68, 68, 68, 68,100, 88,  0, 40, 20,  0,  0};
+static const GLubyte Helvetica12_Character_242[] = {  7,  0,  0,  0,  0, 56, 68, 68, 68, 68, 68, 56,  0, 16, 32,  0,  0};
+static const GLubyte Helvetica12_Character_243[] = {  7,  0,  0,  0,  0, 56, 68, 68, 68, 68, 68, 56,  0, 16,  8,  0,  0};
+static const GLubyte Helvetica12_Character_244[] = {  7,  0,  0,  0,  0, 56, 68, 68, 68, 68, 68, 56,  0, 40, 16,  0,  0};
+static const GLubyte Helvetica12_Character_245[] = {  7,  0,  0,  0,  0, 56, 68, 68, 68, 68, 68, 56,  0, 40, 20,  0,  0};
+static const GLubyte Helvetica12_Character_246[] = {  7,  0,  0,  0,  0, 56, 68, 68, 68, 68, 68, 56,  0, 40,  0,  0,  0};
+static const GLubyte Helvetica12_Character_247[] = {  7,  0,  0,  0,  0,  0, 16,  0,124,  0, 16,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_248[] = {  7,  0,  0,  0,  0,184, 68,100, 84, 76, 68, 58,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica12_Character_249[] = {  7,  0,  0,  0,  0, 52, 76, 68, 68, 68, 68, 68,  0, 16, 32,  0,  0};
+static const GLubyte Helvetica12_Character_250[] = {  7,  0,  0,  0,  0, 52, 76, 68, 68, 68, 68, 68,  0, 16,  8,  0,  0};
+static const GLubyte Helvetica12_Character_251[] = {  7,  0,  0,  0,  0, 52, 76, 68, 68, 68, 68, 68,  0, 40, 16,  0,  0};
+static const GLubyte Helvetica12_Character_252[] = {  7,  0,  0,  0,  0, 52, 76, 68, 68, 68, 68, 68,  0, 40,  0,  0,  0};
+static const GLubyte Helvetica12_Character_253[] = {  7,  0, 64, 32, 16, 16, 40, 40, 72, 68, 68, 68,  0, 16,  8,  0,  0};
+static const GLubyte Helvetica12_Character_254[] = {  7,  0, 64, 64, 64, 88,100, 68, 68, 68,100, 88, 64, 64,  0,  0,  0};
+static const GLubyte Helvetica12_Character_255[] = {  7,  0, 96, 16, 16, 16, 24, 40, 40, 36, 68, 68,  0, 40,  0,  0,  0};
+
+/* The font characters mapping: */
+static const GLubyte* Helvetica12_Character_Map[] = {Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,
+                                                     Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,
+                                                     Helvetica12_Character_032,Helvetica12_Character_033,Helvetica12_Character_034,Helvetica12_Character_035,Helvetica12_Character_036,Helvetica12_Character_037,Helvetica12_Character_038,Helvetica12_Character_039,Helvetica12_Character_040,Helvetica12_Character_041,Helvetica12_Character_042,Helvetica12_Character_043,Helvetica12_Character_044,Helvetica12_Character_045,Helvetica12_Character_046,Helvetica12_Character_047,
+                                                     Helvetica12_Character_048,Helvetica12_Character_049,Helvetica12_Character_050,Helvetica12_Character_051,Helvetica12_Character_052,Helvetica12_Character_053,Helvetica12_Character_054,Helvetica12_Character_055,Helvetica12_Character_056,Helvetica12_Character_057,Helvetica12_Character_058,Helvetica12_Character_059,Helvetica12_Character_060,Helvetica12_Character_061,Helvetica12_Character_062,Helvetica12_Character_063,
+                                                     Helvetica12_Character_064,Helvetica12_Character_065,Helvetica12_Character_066,Helvetica12_Character_067,Helvetica12_Character_068,Helvetica12_Character_069,Helvetica12_Character_070,Helvetica12_Character_071,Helvetica12_Character_072,Helvetica12_Character_073,Helvetica12_Character_074,Helvetica12_Character_075,Helvetica12_Character_076,Helvetica12_Character_077,Helvetica12_Character_078,Helvetica12_Character_079,
+                                                     Helvetica12_Character_080,Helvetica12_Character_081,Helvetica12_Character_082,Helvetica12_Character_083,Helvetica12_Character_084,Helvetica12_Character_085,Helvetica12_Character_086,Helvetica12_Character_087,Helvetica12_Character_088,Helvetica12_Character_089,Helvetica12_Character_090,Helvetica12_Character_091,Helvetica12_Character_092,Helvetica12_Character_093,Helvetica12_Character_094,Helvetica12_Character_095,
+                                                     Helvetica12_Character_096,Helvetica12_Character_097,Helvetica12_Character_098,Helvetica12_Character_099,Helvetica12_Character_100,Helvetica12_Character_101,Helvetica12_Character_102,Helvetica12_Character_103,Helvetica12_Character_104,Helvetica12_Character_105,Helvetica12_Character_106,Helvetica12_Character_107,Helvetica12_Character_108,Helvetica12_Character_109,Helvetica12_Character_110,Helvetica12_Character_111,
+                                                     Helvetica12_Character_112,Helvetica12_Character_113,Helvetica12_Character_114,Helvetica12_Character_115,Helvetica12_Character_116,Helvetica12_Character_117,Helvetica12_Character_118,Helvetica12_Character_119,Helvetica12_Character_120,Helvetica12_Character_121,Helvetica12_Character_122,Helvetica12_Character_123,Helvetica12_Character_124,Helvetica12_Character_125,Helvetica12_Character_126,Helvetica12_Character_032,
+                                                     Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,
+                                                     Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,Helvetica12_Character_032,
+                                                     Helvetica12_Character_160,Helvetica12_Character_161,Helvetica12_Character_162,Helvetica12_Character_163,Helvetica12_Character_164,Helvetica12_Character_165,Helvetica12_Character_166,Helvetica12_Character_167,Helvetica12_Character_168,Helvetica12_Character_169,Helvetica12_Character_170,Helvetica12_Character_171,Helvetica12_Character_172,Helvetica12_Character_173,Helvetica12_Character_174,Helvetica12_Character_175,
+                                                     Helvetica12_Character_176,Helvetica12_Character_177,Helvetica12_Character_178,Helvetica12_Character_179,Helvetica12_Character_180,Helvetica12_Character_181,Helvetica12_Character_182,Helvetica12_Character_183,Helvetica12_Character_184,Helvetica12_Character_185,Helvetica12_Character_186,Helvetica12_Character_187,Helvetica12_Character_188,Helvetica12_Character_189,Helvetica12_Character_190,Helvetica12_Character_191,
+                                                     Helvetica12_Character_192,Helvetica12_Character_193,Helvetica12_Character_194,Helvetica12_Character_195,Helvetica12_Character_196,Helvetica12_Character_197,Helvetica12_Character_198,Helvetica12_Character_199,Helvetica12_Character_200,Helvetica12_Character_201,Helvetica12_Character_202,Helvetica12_Character_203,Helvetica12_Character_204,Helvetica12_Character_205,Helvetica12_Character_206,Helvetica12_Character_207,
+                                                     Helvetica12_Character_208,Helvetica12_Character_209,Helvetica12_Character_210,Helvetica12_Character_211,Helvetica12_Character_212,Helvetica12_Character_213,Helvetica12_Character_214,Helvetica12_Character_215,Helvetica12_Character_216,Helvetica12_Character_217,Helvetica12_Character_218,Helvetica12_Character_219,Helvetica12_Character_220,Helvetica12_Character_221,Helvetica12_Character_222,Helvetica12_Character_223,
+                                                     Helvetica12_Character_224,Helvetica12_Character_225,Helvetica12_Character_226,Helvetica12_Character_227,Helvetica12_Character_228,Helvetica12_Character_229,Helvetica12_Character_230,Helvetica12_Character_231,Helvetica12_Character_232,Helvetica12_Character_233,Helvetica12_Character_234,Helvetica12_Character_235,Helvetica12_Character_236,Helvetica12_Character_237,Helvetica12_Character_238,Helvetica12_Character_239,
+                                                     Helvetica12_Character_240,Helvetica12_Character_241,Helvetica12_Character_242,Helvetica12_Character_243,Helvetica12_Character_244,Helvetica12_Character_245,Helvetica12_Character_246,Helvetica12_Character_247,Helvetica12_Character_248,Helvetica12_Character_249,Helvetica12_Character_250,Helvetica12_Character_251,Helvetica12_Character_252,Helvetica12_Character_253,Helvetica12_Character_254,Helvetica12_Character_255,NULL};
+
+/* The font structure: */
+const SFG_Font fgFontHelvetica12 = { "-adobe-helvetica-medium-r-normal--12-120-75-75-p-67-iso8859-1", 256, 16, Helvetica12_Character_Map, 0, 4 };
+
+static const GLubyte Helvetica18_Character_000[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0, 64, 16,  0,  0, 64, 16,  0,  0, 64, 16,  0,  0, 64, 16,  0,  0, 64, 16,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_001[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_002[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_003[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_004[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_005[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_006[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_007[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_008[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_009[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_010[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_011[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_012[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_013[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_014[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_015[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_016[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_017[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_018[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_019[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_020[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_021[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_022[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_023[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_024[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_025[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_026[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_027[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_028[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_029[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_030[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_031[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_032[] = {  5,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_033[] = {  6,  0,  0,  0,  0,  0, 48, 48,  0,  0, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_034[] = {  5,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,144,144,216,216,216,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_035[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 36,  0, 36,  0, 36,  0,255,128,255,128, 18,  0, 18,  0, 18,  0,127,192,127,192,  9,  0,  9,  0,  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_036[] = { 10,  0,  0,  0,  0,  0,  0,  4,  0,  4,  0, 31,  0, 63,128,117,192,100,192,  4,192,  7,128, 31,  0, 60,  0,116,  0,100,  0,101,128, 63,128, 31,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_037[] = { 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12, 60, 12,126,  6,102,  6,102,  3,126,  3, 60,  1,128, 61,128,126,192,102,192,102, 96,126, 96, 60, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_038[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30, 56, 63,112,115,224, 97,192, 97,224, 99, 96,119, 96, 62,  0, 30,  0, 51,  0, 51,  0, 63,  0, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_039[] = {  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64, 32, 32, 96, 96,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_040[] = {  6,  0,  8, 24, 48, 48, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 48, 48, 24,  8,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_041[] = {  6,  0, 64, 96, 48, 48, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 48, 48, 96, 64,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_042[] = {  7,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68, 56, 56,124, 16, 16,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_043[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0, 12,  0, 12,  0, 12,  0,127,128,127,128, 12,  0, 12,  0, 12,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_044[] = {  5,  0,  0, 64, 32, 32, 96, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_045[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,128,127,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_046[] = {  5,  0,  0,  0,  0,  0, 96, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_047[] = {  5,  0,  0,  0,  0,  0,192,192, 64, 64, 96, 96, 32, 32, 48, 48, 16, 16, 24, 24,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_048[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 63,  0, 51,  0, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128, 51,  0, 63,  0, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_049[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0, 62,  0, 62,  0,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_050[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,128,127,128, 96,  0,112,  0, 56,  0, 28,  0, 14,  0,  7,  0,  3,128,  1,128, 97,128,127,  0, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_051[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 63,  0, 99,128, 97,128,  1,128,  3,128, 15,  0, 14,  0,  3,  0, 97,128, 97,128, 63,  0, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_052[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,128,  1,128,  1,128,127,192,127,192, 97,128, 49,128, 25,128, 25,128, 13,128,  7,128,  3,128,  1,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_053[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0,127,  0, 99,128, 97,128,  1,128,  1,128, 99,128,127,  0,126,  0, 96,  0, 96,  0,127,  0,127,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_054[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 63,  0,113,128, 97,128, 97,128, 97,128,127,  0,110,  0, 96,  0, 96,  0, 49,128, 63,128, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_055[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48,  0, 48,  0, 24,  0, 24,  0, 24,  0, 12,  0, 12,  0,  6,  0,  6,  0,  3,  0,  1,128,127,128,127,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_056[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 63,  0,115,128, 97,128, 97,128, 51,  0, 63,  0, 51,  0, 97,128, 97,128,115,128, 63,  0, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_057[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 62,  0,127,  0, 99,  0,  1,128,  1,128, 29,128, 63,128, 97,128, 97,128, 97,128, 99,128, 63,  0, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_058[] = {  5,  0,  0,  0,  0,  0, 96, 96,  0,  0,  0,  0,  0,  0, 96, 96,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_059[] = {  5,  0,  0, 64, 32, 32, 96, 96,  0,  0,  0,  0,  0,  0, 96, 96,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_060[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,128,  7,128, 30,  0, 56,  0, 96,  0, 56,  0, 30,  0,  7,128,  1,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_061[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 63,128, 63,128,  0,  0,  0,  0, 63,128, 63,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_062[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,  0,120,  0, 30,  0,  7,  0,  1,128,  7,  0, 30,  0,120,  0, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_063[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24,  0, 24,  0,  0,  0,  0,  0, 24,  0, 24,  0, 24,  0, 28,  0, 14,  0,  7,  0, 99,  0, 99,  0,127,  0, 62,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_064[] = { 18,  0,  0,  0,  0,  0,  0,  3,240,  0, 15,248,  0, 28,  0,  0, 56,  0,  0, 51,184,  0,103,252,  0,102,102,  0,102, 51,  0,102, 51,  0,102, 49,128, 99, 25,128, 51,185,128, 49,217,128, 24,  3,  0, 14,  7,  0,  7,254,  0,  1,248,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_065[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192, 48,192, 48, 96, 96, 96, 96,127,224, 63,192, 48,192, 48,192, 25,128, 25,128, 15,  0, 15,  0,  6,  0,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_066[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,192,127,224, 96,112, 96, 48, 96, 48, 96,112,127,224,127,192, 96,192, 96, 96, 96, 96, 96,224,127,192,127,128,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_067[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,192, 31,240, 56, 56, 48, 24,112,  0, 96,  0, 96,  0, 96,  0, 96,  0,112,  0, 48, 24, 56, 56, 31,240,  7,192,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_068[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,128,127,192, 96,224, 96, 96, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 96, 96,224,127,192,127,128,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_069[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,192,127,192, 96,  0, 96,  0, 96,  0, 96,  0,127,128,127,128, 96,  0, 96,  0, 96,  0, 96,  0,127,192,127,192,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_070[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0,127,128,127,128, 96,  0, 96,  0, 96,  0, 96,  0,127,192,127,192,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_071[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,216, 31,248, 56, 56, 48, 24,112, 24, 96,248, 96,248, 96,  0, 96,  0,112, 24, 48, 24, 56, 56, 31,240,  7,192,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_072[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48,127,240,127,240, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_073[] = {  6,  0,  0,  0,  0,  0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_074[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 63,  0,115,128, 97,128, 97,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_075[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96, 56, 96,112, 96,224, 97,192, 99,128,103,  0,126,  0,124,  0,110,  0,103,  0, 99,128, 97,192, 96,224, 96,112,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_076[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,128,127,128, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_077[] = { 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 97,134, 97,134, 99,198, 98, 70,102,102,102,102,108, 54,108, 54,120, 30,120, 30,112, 14,112, 14, 96,  6, 96,  6,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_078[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96, 48, 96,112, 96,240, 96,240, 97,176, 99, 48, 99, 48,102, 48,102, 48,108, 48,120, 48,120, 48,112, 48, 96, 48,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_079[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,192, 31,240, 56, 56, 48, 24,112, 28, 96, 12, 96, 12, 96, 12, 96, 12,112, 28, 48, 24, 56, 56, 31,240,  7,192,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_080[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0,127,128,127,192, 96,224, 96, 96, 96, 96, 96,224,127,192,127,128,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_081[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24,  7,216, 31,240, 56,120, 48,216,112,220, 96, 12, 96, 12, 96, 12, 96, 12,112, 28, 48, 24, 56, 56, 31,240,  7,192,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_082[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96, 96, 96, 96, 96, 96, 96, 96, 96,192, 96,192,127,128,127,192, 96,224, 96, 96, 96, 96, 96,224,127,192,127,128,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_083[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31,128, 63,224,112,112, 96, 48,  0, 48,  0,112,  1,224, 15,128, 62,  0,112,  0, 96, 48,112,112, 63,224, 15,128,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_084[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,127,224,127,224,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_085[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,128, 63,224, 48, 96, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_086[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  0,  7,128,  7,128, 12,192, 12,192, 12,192, 24, 96, 24, 96, 24, 96, 48, 48, 48, 48, 48, 48, 96, 24, 96, 24,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_087[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12, 12,  0, 12, 12,  0, 14, 28,  0, 26, 22,  0, 27, 54,  0, 27, 54,  0, 51, 51,  0, 51, 51,  0, 49, 35,  0, 49,227,  0, 97,225,128, 96,193,128, 96,193,128, 96,193,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_088[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96, 48,112,112, 48, 96, 56,224, 24,192, 13,128,  7,  0,  7,  0, 13,128, 24,192, 56,224, 48, 96,112,112, 96, 48,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_089[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  7,128, 12,192, 24, 96, 24, 96, 48, 48, 48, 48, 96, 24, 96, 24,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_090[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,224,127,224, 96,  0, 48,  0, 24,  0, 12,  0, 14,  0,  6,  0,  3,  0,  1,128,  0,192,  0, 96,127,224,127,224,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_091[] = {  5,  0,120,120, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,120,120,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_092[] = {  5,  0,  0,  0,  0,  0, 24, 24, 16, 16, 48, 48, 32, 32, 96, 96, 64, 64,192,192,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_093[] = {  5,  0,240,240, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,240,240,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_094[] = {  9,  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, 65,  0, 99,  0, 54,  0, 28,  0,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_095[] = { 10,  0,  0,255,192,255,192,  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};
+static const GLubyte Helvetica18_Character_096[] = {  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96, 96, 64, 64, 32,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_097[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 59,  0,119,  0, 99,  0, 99,  0,115,  0, 63,  0,  7,  0, 99,  0,119,  0, 62,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_098[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,111,  0,127,128,113,128, 96,192, 96,192, 96,192, 96,192,113,128,127,128,111,  0, 96,  0, 96,  0, 96,  0, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_099[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31,  0, 63,128, 49,128, 96,  0, 96,  0, 96,  0, 96,  0, 49,128, 63,128, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_100[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30,192, 63,192, 49,192, 96,192, 96,192, 96,192, 96,192, 49,192, 63,192, 30,192,  0,192,  0,192,  0,192,  0,192,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_101[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 63,128,113,128, 96,  0, 96,  0,127,128, 97,128, 97,128, 63,  0, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_102[] = {  6,  0,  0,  0,  0,  0, 48, 48, 48, 48, 48, 48, 48, 48,252,252, 48, 48, 60, 28,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_103[] = { 11,  0,  0, 14,  0, 63,128, 49,128,  0,192, 30,192, 63,192, 49,192, 96,192, 96,192, 96,192, 96,192, 48,192, 63,192, 30,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_104[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128,113,128,111,128,103,  0, 96,  0, 96,  0, 96,  0, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_105[] = {  4,  0,  0,  0,  0,  0, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,  0,  0, 96, 96,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_106[] = {  4,  0,192,224, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,  0,  0, 96, 96,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_107[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 99,128, 99,  0,103,  0,102,  0,108,  0,124,  0,120,  0,108,  0,102,  0, 99,  0, 96,  0, 96,  0, 96,  0, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_108[] = {  4,  0,  0,  0,  0,  0, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_109[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 99, 24, 99, 24, 99, 24, 99, 24, 99, 24, 99, 24, 99, 24,115,152,111,120,102, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_110[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128,113,128,111,128,103,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_111[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31,  0, 63,128, 49,128, 96,192, 96,192, 96,192, 96,192, 49,128, 63,128, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_112[] = { 11,  0,  0, 96,  0, 96,  0, 96,  0, 96,  0,111,  0,127,128,113,128, 96,192, 96,192, 96,192, 96,192,113,128,127,128,111,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_113[] = { 11,  0,  0,  0,192,  0,192,  0,192,  0,192, 30,192, 63,192, 49,192, 96,192, 96,192, 96,192, 96,192, 49,192, 63,192, 30,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_114[] = {  6,  0,  0,  0,  0,  0, 96, 96, 96, 96, 96, 96, 96,112,108,108,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_115[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 60,  0,126,  0, 99,  0,  3,  0, 31,  0,126,  0, 96,  0, 99,  0, 63,  0, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_116[] = {  6,  0,  0,  0,  0,  0, 24, 56, 48, 48, 48, 48, 48, 48,252,252, 48, 48, 48,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_117[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 57,128,125,128, 99,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_118[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0, 12,  0, 30,  0, 18,  0, 51,  0, 51,  0, 51,  0, 97,128, 97,128, 97,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_119[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,192, 12,192, 28,224, 20,160, 52,176, 51, 48, 51, 48, 99, 24, 99, 24, 99, 24,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_120[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 97,128,115,128, 51,  0, 30,  0, 12,  0, 12,  0, 30,  0, 51,  0,115,128, 97,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_121[] = { 10,  0,  0, 56,  0, 56,  0, 12,  0, 12,  0, 12,  0, 12,  0, 30,  0, 18,  0, 51,  0, 51,  0, 51,  0, 97,128, 97,128, 97,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_122[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,  0,127,  0, 96,  0, 48,  0, 24,  0, 12,  0,  6,  0,  3,  0,127,  0,127,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_123[] = {  6,  0, 12, 24, 48, 48, 48, 48, 48, 48, 96,192, 96, 48, 48, 48, 48, 48, 24, 12,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_124[] = {  4,  0, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_125[] = {  6,  0,192, 96, 48, 48, 48, 48, 48, 48, 24, 12, 24, 48, 48, 48, 48, 48, 96,192,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_126[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,102,  0, 63,  0, 25,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_127[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_128[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_129[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_130[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_131[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_132[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_133[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_134[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_135[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_136[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_137[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_138[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_139[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_140[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_141[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_142[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_143[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_144[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_145[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_146[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_147[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_148[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_149[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_150[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_151[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_152[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_153[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_154[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_155[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_156[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_157[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_158[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_159[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 64, 16,  0,  0,  0,  0, 85, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_160[] = {  5,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_161[] = {  6,  0, 48, 48, 48, 48, 48, 48, 48, 48, 16, 16,  0,  0, 48, 48,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_162[] = { 10,  0,  0,  0,  0,  0,  0,  8,  0,  8,  0, 31,  0, 63,128, 53,128,100,  0,100,  0,100,  0,100,  0, 53,128, 63,128, 31,  0,  2,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_163[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,223,  0,255,128, 96,128, 48,  0, 24,  0, 24,  0,126,  0, 48,  0, 96,  0, 97,128, 97,128, 63,  0, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_164[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 97,128,127,128, 51,  0, 51,  0, 51,  0,127,128, 97,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_165[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0, 12,  0, 12,  0, 12,  0,127,128, 12,  0,127,128, 30,  0, 51,  0, 51,  0, 51,  0, 97,128, 97,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_166[] = {  4,  0,  0, 96, 96, 96, 96, 96, 96,  0,  0,  0,  0, 96, 96, 96, 96, 96, 96, 96,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_167[] = { 10,  0,  0, 30,  0, 63,  0, 97,128, 97,128,  3,128,  7,  0, 31,  0, 57,128,113,128, 97,128, 99,128, 55,  0, 62,  0,120,  0, 97,128, 97,128, 63,  0, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_168[] = {  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,216,216,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_169[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,192, 24, 48, 32,  8, 35,136, 68, 68, 72,  4, 72,  4, 72,  4, 68, 68, 35,136, 32,  8, 24, 48,  7,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_170[] = {  7,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,124,  0, 52,108, 36, 28,100, 56,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_171[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  9,  0, 27,  0, 54,  0,108,  0,108,  0, 54,  0, 27,  0,  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_172[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192,  0,192,  0,192,127,192,127,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_173[] = {  7,  0,  0,  0,  0,  0,  0,  0,  0,  0,124,124,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_174[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,192, 24, 48, 32,  8, 36, 40, 68, 68, 68,132, 71,196, 68, 36, 68, 36, 39,200, 32,  8, 24, 48,  7,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_175[] = {  5,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,248,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_176[] = {  7,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 56,108, 68,108, 56,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_177[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,128,127,128,  0,  0, 12,  0, 12,  0, 12,  0,127,128,127,128, 12,  0, 12,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_178[] = {  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,248,248, 96, 48, 24,152,248,112,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_179[] = {  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,112,248,152, 48, 48,152,248,112,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_180[] = {  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192, 96, 48,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_181[] = { 10,  0,  0, 96,  0, 96,  0, 96,  0, 96,  0,109,128,127,128,115,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_182[] = { 10,  0,  0,  9,  0,  9,  0,  9,  0,  9,  0,  9,  0,  9,  0,  9,  0,  9,  0,  9,  0,  9,  0, 25,  0, 57,  0,121,  0,121,  0,121,  0,121,  0, 57,  0, 31,128,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_183[] = {  4,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_184[] = {  5,  0,240,216, 24,112, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_185[] = {  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48, 48, 48, 48, 48,112,112, 48,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_186[] = {  7,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,124,  0, 56,108, 68, 68,108, 56,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_187[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 72,  0,108,  0, 54,  0, 27,  0, 27,  0, 54,  0,108,  0, 72,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_188[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24, 24, 24, 24, 12,252,  6,216,  6,120, 51, 56, 49, 24, 49,136, 48,192, 48,192,112, 96,112, 48, 48, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_189[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24,124, 24,124, 12, 48,  6, 24,  6, 12, 51, 76, 49,124, 49,184, 48,192, 48,192,112, 96,112, 48, 48, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_190[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24, 24, 24, 24, 12,252,  6,216,  6,120,115, 56,249, 24,153,136, 48,192, 48,192,152, 96,248, 48,112, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_191[] = { 10,  0,  0, 62,  0,127,  0, 99,  0, 99,  0,112,  0, 56,  0, 28,  0, 12,  0, 12,  0, 12,  0,  0,  0,  0,  0, 12,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_192[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192, 48,192, 48, 96, 96, 96, 96,127,224, 63,192, 48,192, 48,192, 25,128, 25,128, 15,  0, 15,  0,  6,  0,  6,  0,  0,  0,  6,  0, 12,  0, 24,  0};
+static const GLubyte Helvetica18_Character_193[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192, 48,192, 48, 96, 96, 96, 96,127,224, 63,192, 48,192, 48,192, 25,128, 25,128, 15,  0, 15,  0,  6,  0,  6,  0,  0,  0,  6,  0,  3,  0,  1,128};
+static const GLubyte Helvetica18_Character_194[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192, 48,192, 48, 96, 96, 96, 96,127,224, 63,192, 48,192, 48,192, 25,128, 25,128, 15,  0, 15,  0,  6,  0,  6,  0,  0,  0, 25,128, 15,  0,  6,  0};
+static const GLubyte Helvetica18_Character_195[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192, 48,192, 48, 96, 96, 96, 96,127,224, 63,192, 48,192, 48,192, 25,128, 25,128, 15,  0, 15,  0,  6,  0,  6,  0,  0,  0, 19,  0, 22,128, 12,128};
+static const GLubyte Helvetica18_Character_196[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192, 48,192, 48, 96, 96, 96, 96,127,224, 63,192, 48,192, 48,192, 25,128, 25,128, 15,  0, 15,  0,  6,  0,  6,  0,  0,  0, 25,128, 25,128,  0,  0};
+static const GLubyte Helvetica18_Character_197[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192, 48,192, 48, 96, 96, 96, 96,127,224, 63,192, 48,192, 48,192, 25,128, 25,128, 15,  0, 15,  0,  6,  0,  6,  0, 15,  0, 25,128, 25,128, 15,  0};
+static const GLubyte Helvetica18_Character_198[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,255,128, 96,255,128, 48,192,  0, 48,192,  0, 63,192,  0, 31,192,  0, 24,255,  0, 24,255,  0, 12,192,  0, 12,192,  0,  6,192,  0,  6,192,  0,  3,255,128,  3,255,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_199[] = { 14,  0,  0, 15,  0, 13,128,  1,128,  7,  0,  7,192, 31,240, 56, 56, 48, 24,112,  0, 96,  0, 96,  0, 96,  0, 96,  0,112,  0, 48, 24, 56, 56, 31,240,  7,192,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_200[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,192,127,192, 96,  0, 96,  0, 96,  0, 96,  0,127,128,127,128, 96,  0, 96,  0, 96,  0, 96,  0,127,192,127,192,  0,  0,  6,  0, 12,  0, 24,  0};
+static const GLubyte Helvetica18_Character_201[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,192,127,192, 96,  0, 96,  0, 96,  0, 96,  0,127,128,127,128, 96,  0, 96,  0, 96,  0, 96,  0,127,192,127,192,  0,  0,  6,  0,  3,  0,  1,128};
+static const GLubyte Helvetica18_Character_202[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,192,127,192, 96,  0, 96,  0, 96,  0, 96,  0,127,128,127,128, 96,  0, 96,  0, 96,  0, 96,  0,127,192,127,192,  0,  0, 25,128, 15,  0,  6,  0};
+static const GLubyte Helvetica18_Character_203[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,192,127,192, 96,  0, 96,  0, 96,  0, 96,  0,127,128,127,128, 96,  0, 96,  0, 96,  0, 96,  0,127,192,127,192,  0,  0, 25,128, 25,128,  0,  0};
+static const GLubyte Helvetica18_Character_204[] = {  6,  0,  0,  0,  0,  0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,  0, 48, 96,192};
+static const GLubyte Helvetica18_Character_205[] = {  6,  0,  0,  0,  0,  0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,  0, 48, 24, 12};
+static const GLubyte Helvetica18_Character_206[] = {  6,  0,  0,  0,  0,  0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,  0,204,120, 48};
+static const GLubyte Helvetica18_Character_207[] = {  6,  0,  0,  0,  0,  0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,  0,204,204,  0};
+static const GLubyte Helvetica18_Character_208[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,128,127,192, 96,224, 96, 96, 96, 48, 96, 48,252, 48,252, 48, 96, 48, 96, 48, 96, 96, 96,224,127,192,127,128,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_209[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96, 48, 96,112, 96,240, 96,240, 97,176, 99, 48, 99, 48,102, 48,102, 48,108, 48,108, 48,120, 48,112, 48,112, 48,  0,  0,  9,128, 11, 64,  6, 64};
+static const GLubyte Helvetica18_Character_210[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,192, 31,240, 56, 56, 48, 24,112, 28, 96, 12, 96, 12, 96, 12, 96, 12,112, 28, 48, 24, 56, 56, 31,240,  7,192,  0,  0,  1,128,  3,  0,  6,  0};
+static const GLubyte Helvetica18_Character_211[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,192, 31,240, 56, 56, 48, 24,112, 28, 96, 12, 96, 12, 96, 12, 96, 12,112, 28, 48, 24, 56, 56, 31,240,  7,192,  0,  0,  1,128,  0,192,  0, 96};
+static const GLubyte Helvetica18_Character_212[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,192, 31,240, 56, 56, 48, 24,112, 28, 96, 12, 96, 12, 96, 12, 96, 12,112, 28, 48, 24, 56, 56, 31,240,  7,192,  0,  0,  6, 96,  3,192,  1,128};
+static const GLubyte Helvetica18_Character_213[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,192, 31,240, 56, 56, 48, 24,112, 28, 96, 12, 96, 12, 96, 12, 96, 12,112, 28, 48, 24, 56, 56, 31,240,  7,192,  0,  0,  4,192,  5,160,  3, 32};
+static const GLubyte Helvetica18_Character_214[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,192, 31,240, 56, 56, 48, 24,112, 28, 96, 12, 96, 12, 96, 12, 96, 12,112, 28, 48, 24, 56, 56, 31,240,  7,192,  0,  0,  6,192,  6,192,  0,  0};
+static const GLubyte Helvetica18_Character_215[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192,192, 97,128, 51,  0, 30,  0, 12,  0, 30,  0, 51,  0, 97,128,192,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_216[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,199,192,255,240,120, 56, 56, 24,108, 28,110, 12,103, 12, 99,140, 97,204,112,220, 48,120, 56, 56, 31,252,  7,204,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_217[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,128, 63,224, 48, 96, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48,  0,  0,  3,  0,  6,  0, 12,  0};
+static const GLubyte Helvetica18_Character_218[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,128, 63,224, 48, 96, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48,  0,  0,  6,  0,  3,  0,  1,128};
+static const GLubyte Helvetica18_Character_219[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,128, 63,224, 48, 96, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48,  0,  0, 12,192,  7,128,  3,  0};
+static const GLubyte Helvetica18_Character_220[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,128, 63,224, 48, 96, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48,  0,  0, 12,192, 12,192,  0,  0};
+static const GLubyte Helvetica18_Character_221[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  7,128, 12,192, 24, 96, 24, 96, 48, 48, 48, 48, 96, 24, 96, 24,  0,  0,  3,  0,  1,128,  0,192};
+static const GLubyte Helvetica18_Character_222[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,  0, 96,  0, 96,  0,127,128,127,192, 96,224, 96, 96, 96, 96, 96,224,127,192,127,128, 96,  0, 96,  0, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_223[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,110,  0,111,  0, 99,  0, 99,  0, 99,  0, 99,  0,110,  0,110,  0, 99,  0, 99,  0, 99,  0, 99,  0, 62,  0, 28,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_224[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 59,  0,119,  0, 99,  0, 99,  0,115,  0, 63,  0,  7,  0, 99,  0,119,  0, 62,  0,  0,  0, 12,  0, 24,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_225[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 59,  0,119,  0, 99,  0, 99,  0,115,  0, 63,  0,  7,  0, 99,  0,119,  0, 62,  0,  0,  0, 24,  0, 12,  0,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_226[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 59,  0,119,  0, 99,  0, 99,  0,115,  0, 63,  0,  7,  0, 99,  0,119,  0, 62,  0,  0,  0, 51,  0, 30,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_227[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 59,  0,119,  0, 99,  0, 99,  0,115,  0, 63,  0,  7,  0, 99,  0,119,  0, 62,  0,  0,  0, 38,  0, 45,  0, 25,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_228[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 59,  0,119,  0, 99,  0, 99,  0,115,  0, 63,  0,  7,  0, 99,  0,119,  0, 62,  0,  0,  0, 54,  0, 54,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_229[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 59,  0,119,  0, 99,  0, 99,  0,115,  0, 63,  0,  7,  0, 99,  0,119,  0, 62,  0, 28,  0, 54,  0, 54,  0, 28,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_230[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 58,240,119,252, 99,140, 99,  0,115,  0, 63,252,  7, 12, 99, 12,119,248, 62,240,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_231[] = { 10,  0,  0, 60,  0, 54,  0,  6,  0, 28,  0, 31,  0, 63,128, 49,128, 96,  0, 96,  0, 96,  0, 96,  0, 49,128, 63,128, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_232[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 63,128,113,128, 96,  0, 96,  0,127,128, 97,128, 97,128, 63,  0, 30,  0,  0,  0, 12,  0, 24,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_233[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 63,128,113,128, 96,  0, 96,  0,127,128, 97,128, 97,128, 63,  0, 30,  0,  0,  0, 12,  0,  6,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_234[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 63,128,113,128, 96,  0, 96,  0,127,128, 97,128, 97,128, 63,  0, 30,  0,  0,  0, 51,  0, 30,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_235[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30,  0, 63,128,113,128, 96,  0, 96,  0,127,128, 97,128, 97,128, 63,  0, 30,  0,  0,  0, 27,  0, 27,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_236[] = {  4,  0,  0,  0,  0,  0, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,  0, 48, 96,192,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_237[] = {  4,  0,  0,  0,  0,  0, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,  0,192, 96, 48,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_238[] = {  4,  0,  0,  0,  0,  0, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,  0,144,240, 96,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_239[] = {  4,  0,  0,  0,  0,  0, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,  0,216,216,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_240[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31,  0, 63,128, 49,128, 96,192, 96,192, 96,192, 96,192, 49,128, 63,128, 31,  0, 38,  0, 28,  0, 27,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_241[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128,113,128,111,128,103,  0,  0,  0, 38,  0, 45,  0, 25,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_242[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31,  0, 63,128, 49,128, 96,192, 96,192, 96,192, 96,192, 49,128, 63,128, 31,  0,  0,  0,  6,  0, 12,  0, 24,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_243[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31,  0, 63,128, 49,128, 96,192, 96,192, 96,192, 96,192, 49,128, 63,128, 31,  0,  0,  0, 12,  0,  6,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_244[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31,  0, 63,128, 49,128, 96,192, 96,192, 96,192, 96,192, 49,128, 63,128, 31,  0,  0,  0, 25,128, 15,  0,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_245[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31,  0, 63,128, 49,128, 96,192, 96,192, 96,192, 96,192, 49,128, 63,128, 31,  0,  0,  0, 19,  0, 22,128, 12,128,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_246[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 31,  0, 63,128, 49,128, 96,192, 96,192, 96,192, 96,192, 49,128, 63,128, 31,  0,  0,  0, 27,  0, 27,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_247[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0, 12,  0,  0,  0,127,128,127,128,  0,  0, 12,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_248[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,206,  0,127,128, 49,128,120,192,108,192,102,192, 99,192, 49,128, 63,192, 14, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_249[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 57,128,125,128, 99,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128,  0,  0,  6,  0, 12,  0, 24,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_250[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 57,128,125,128, 99,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128,  0,  0, 12,  0,  6,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_251[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 57,128,125,128, 99,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128,  0,  0, 51,  0, 30,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_252[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 57,128,125,128, 99,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128, 97,128,  0,  0, 51,  0, 51,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_253[] = { 10,  0,  0, 56,  0, 56,  0, 12,  0, 12,  0, 12,  0, 12,  0, 30,  0, 18,  0, 51,  0, 51,  0, 51,  0, 97,128, 97,128, 97,128,  0,  0, 12,  0,  6,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_254[] = { 11,  0,  0, 96,  0, 96,  0, 96,  0, 96,  0,111,  0,127,128,113,128, 96,192, 96,192, 96,192, 96,192,113,128,127,128,111,  0, 96,  0, 96,  0, 96,  0, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte Helvetica18_Character_255[] = { 10,  0,  0, 56,  0, 56,  0, 12,  0, 12,  0, 12,  0, 12,  0, 30,  0, 18,  0, 51,  0, 51,  0, 51,  0, 97,128, 97,128, 97,128,  0,  0, 51,  0, 51,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+
+/* The font characters mapping: */
+static const GLubyte* Helvetica18_Character_Map[] = {Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,
+                                                     Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,
+                                                     Helvetica18_Character_032,Helvetica18_Character_033,Helvetica18_Character_034,Helvetica18_Character_035,Helvetica18_Character_036,Helvetica18_Character_037,Helvetica18_Character_038,Helvetica18_Character_039,Helvetica18_Character_040,Helvetica18_Character_041,Helvetica18_Character_042,Helvetica18_Character_043,Helvetica18_Character_044,Helvetica18_Character_045,Helvetica18_Character_046,Helvetica18_Character_047,
+                                                     Helvetica18_Character_048,Helvetica18_Character_049,Helvetica18_Character_050,Helvetica18_Character_051,Helvetica18_Character_052,Helvetica18_Character_053,Helvetica18_Character_054,Helvetica18_Character_055,Helvetica18_Character_056,Helvetica18_Character_057,Helvetica18_Character_058,Helvetica18_Character_059,Helvetica18_Character_060,Helvetica18_Character_061,Helvetica18_Character_062,Helvetica18_Character_063,
+                                                     Helvetica18_Character_064,Helvetica18_Character_065,Helvetica18_Character_066,Helvetica18_Character_067,Helvetica18_Character_068,Helvetica18_Character_069,Helvetica18_Character_070,Helvetica18_Character_071,Helvetica18_Character_072,Helvetica18_Character_073,Helvetica18_Character_074,Helvetica18_Character_075,Helvetica18_Character_076,Helvetica18_Character_077,Helvetica18_Character_078,Helvetica18_Character_079,
+                                                     Helvetica18_Character_080,Helvetica18_Character_081,Helvetica18_Character_082,Helvetica18_Character_083,Helvetica18_Character_084,Helvetica18_Character_085,Helvetica18_Character_086,Helvetica18_Character_087,Helvetica18_Character_088,Helvetica18_Character_089,Helvetica18_Character_090,Helvetica18_Character_091,Helvetica18_Character_092,Helvetica18_Character_093,Helvetica18_Character_094,Helvetica18_Character_095,
+                                                     Helvetica18_Character_096,Helvetica18_Character_097,Helvetica18_Character_098,Helvetica18_Character_099,Helvetica18_Character_100,Helvetica18_Character_101,Helvetica18_Character_102,Helvetica18_Character_103,Helvetica18_Character_104,Helvetica18_Character_105,Helvetica18_Character_106,Helvetica18_Character_107,Helvetica18_Character_108,Helvetica18_Character_109,Helvetica18_Character_110,Helvetica18_Character_111,
+                                                     Helvetica18_Character_112,Helvetica18_Character_113,Helvetica18_Character_114,Helvetica18_Character_115,Helvetica18_Character_116,Helvetica18_Character_117,Helvetica18_Character_118,Helvetica18_Character_119,Helvetica18_Character_120,Helvetica18_Character_121,Helvetica18_Character_122,Helvetica18_Character_123,Helvetica18_Character_124,Helvetica18_Character_125,Helvetica18_Character_126,Helvetica18_Character_032,
+                                                     Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,
+                                                     Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,Helvetica18_Character_032,
+                                                     Helvetica18_Character_160,Helvetica18_Character_161,Helvetica18_Character_162,Helvetica18_Character_163,Helvetica18_Character_164,Helvetica18_Character_165,Helvetica18_Character_166,Helvetica18_Character_167,Helvetica18_Character_168,Helvetica18_Character_169,Helvetica18_Character_170,Helvetica18_Character_171,Helvetica18_Character_172,Helvetica18_Character_173,Helvetica18_Character_174,Helvetica18_Character_175,
+                                                     Helvetica18_Character_176,Helvetica18_Character_177,Helvetica18_Character_178,Helvetica18_Character_179,Helvetica18_Character_180,Helvetica18_Character_181,Helvetica18_Character_182,Helvetica18_Character_183,Helvetica18_Character_184,Helvetica18_Character_185,Helvetica18_Character_186,Helvetica18_Character_187,Helvetica18_Character_188,Helvetica18_Character_189,Helvetica18_Character_190,Helvetica18_Character_191,
+                                                     Helvetica18_Character_192,Helvetica18_Character_193,Helvetica18_Character_194,Helvetica18_Character_195,Helvetica18_Character_196,Helvetica18_Character_197,Helvetica18_Character_198,Helvetica18_Character_199,Helvetica18_Character_200,Helvetica18_Character_201,Helvetica18_Character_202,Helvetica18_Character_203,Helvetica18_Character_204,Helvetica18_Character_205,Helvetica18_Character_206,Helvetica18_Character_207,
+                                                     Helvetica18_Character_208,Helvetica18_Character_209,Helvetica18_Character_210,Helvetica18_Character_211,Helvetica18_Character_212,Helvetica18_Character_213,Helvetica18_Character_214,Helvetica18_Character_215,Helvetica18_Character_216,Helvetica18_Character_217,Helvetica18_Character_218,Helvetica18_Character_219,Helvetica18_Character_220,Helvetica18_Character_221,Helvetica18_Character_222,Helvetica18_Character_223,
+                                                     Helvetica18_Character_224,Helvetica18_Character_225,Helvetica18_Character_226,Helvetica18_Character_227,Helvetica18_Character_228,Helvetica18_Character_229,Helvetica18_Character_230,Helvetica18_Character_231,Helvetica18_Character_232,Helvetica18_Character_233,Helvetica18_Character_234,Helvetica18_Character_235,Helvetica18_Character_236,Helvetica18_Character_237,Helvetica18_Character_238,Helvetica18_Character_239,
+                                                     Helvetica18_Character_240,Helvetica18_Character_241,Helvetica18_Character_242,Helvetica18_Character_243,Helvetica18_Character_244,Helvetica18_Character_245,Helvetica18_Character_246,Helvetica18_Character_247,Helvetica18_Character_248,Helvetica18_Character_249,Helvetica18_Character_250,Helvetica18_Character_251,Helvetica18_Character_252,Helvetica18_Character_253,Helvetica18_Character_254,Helvetica18_Character_255,NULL};
+
+/* The font structure: */
+const SFG_Font fgFontHelvetica18 = { "-adobe-helvetica-medium-r-normal--18-180-75-75-p-98-iso8859-1", 256, 23, Helvetica18_Character_Map, 0, 5 };
+
+static const GLubyte TimesRoman10_Character_000[] = {  8,  0,  0,  0,  0,170,  0,130,  0,130,  0,170,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_001[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_002[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_003[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_004[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_005[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_006[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_007[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_008[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_009[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_010[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_011[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_012[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_013[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_014[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_015[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_016[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_017[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_018[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_019[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_020[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_021[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_022[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_023[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_024[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_025[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_026[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_027[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_028[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_029[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_030[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_031[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_032[] = {  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_033[] = {  3,  0,  0,  0,  0, 64,  0, 64, 64, 64, 64, 64,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_034[] = {  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,160,160,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_035[] = {  5,  0,  0,  0,  0, 80, 80,248, 80,248, 80, 80,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_036[] = {  5,  0,  0,  0, 32,224,144, 16, 96,128,144,112, 32,  0,  0};
+static const GLubyte TimesRoman10_Character_037[] = {  8,  0,  0,  0,  0, 68, 42, 42, 86,168,164,126,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_038[] = {  8,  0,  0,  0,  0,118,141,152,116,110, 80, 48,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_039[] = {  3,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,192,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_040[] = {  4,  0,  0, 32, 64, 64,128,128,128, 64, 64, 32,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_041[] = {  4,  0,  0,128, 64, 64, 32, 32, 32, 64, 64,128,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_042[] = {  5,  0,  0,  0,  0,  0,  0,  0,  0,160, 64,160,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_043[] = {  6,  0,  0,  0,  0, 32, 32,248, 32, 32,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_044[] = {  3,  0,  0, 64, 64, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_045[] = {  7,  0,  0,  0,  0,  0,  0,120,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_046[] = {  3,  0,  0,  0,  0, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_047[] = {  3,  0,  0,  0,  0,128,128, 64, 64, 64, 32, 32,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_048[] = {  5,  0,  0,  0,  0, 96,144,144,144,144,144, 96,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_049[] = {  5,  0,  0,  0,  0,112, 32, 32, 32, 32, 96, 32,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_050[] = {  5,  0,  0,  0,  0,240, 64, 32, 32, 16,144, 96,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_051[] = {  5,  0,  0,  0,  0,224, 16, 16, 96, 16,144, 96,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_052[] = {  5,  0,  0,  0,  0, 16, 16,248,144, 80, 48, 16,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_053[] = {  5,  0,  0,  0,  0,224,144, 16, 16,224, 64,112,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_054[] = {  5,  0,  0,  0,  0, 96,144,144,144,224, 64, 48,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_055[] = {  5,  0,  0,  0,  0, 64, 64, 64, 32, 32,144,240,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_056[] = {  5,  0,  0,  0,  0, 96,144,144, 96,144,144, 96,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_057[] = {  5,  0,  0,  0,  0,192, 32,112,144,144,144, 96,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_058[] = {  3,  0,  0,  0,  0, 64,  0,  0,  0, 64,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_059[] = {  3,  0,  0, 64, 64, 64,  0,  0,  0, 64,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_060[] = {  5,  0,  0,  0,  0, 16, 32, 64, 32, 16,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_061[] = {  6,  0,  0,  0,  0,  0,248,  0,248,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_062[] = {  5,  0,  0,  0,  0,128, 64, 32, 64,128,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_063[] = {  4,  0,  0,  0,  0, 64,  0, 64, 64, 32,160,224,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_064[] = {  9,  0,  0,  0,  0, 62,  0, 64,  0,146,  0,173,  0,165,  0,165,  0,157,  0, 66,  0, 60,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_065[] = {  8,  0,  0,  0,  0,238, 68,124, 40, 40, 56, 16,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_066[] = {  6,  0,  0,  0,  0,240, 72, 72,112, 72, 72,240,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_067[] = {  7,  0,  0,  0,  0,120,196,128,128,128,196,124,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_068[] = {  7,  0,  0,  0,  0,248, 76, 68, 68, 68, 76,248,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_069[] = {  6,  0,  0,  0,  0,248, 72, 64,112, 64, 72,248,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_070[] = {  6,  0,  0,  0,  0,224, 64, 64,112, 64, 72,248,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_071[] = {  7,  0,  0,  0,  0,120,196,132,156,128,196,124,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_072[] = {  8,  0,  0,  0,  0,238, 68, 68,124, 68, 68,238,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_073[] = {  4,  0,  0,  0,  0,224, 64, 64, 64, 64, 64,224,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_074[] = {  4,  0,  0,  0,  0,192,160, 32, 32, 32, 32,112,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_075[] = {  7,  0,  0,  0,  0,236, 72, 80, 96, 80, 72,236,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_076[] = {  6,  0,  0,  0,  0,248, 72, 64, 64, 64, 64,224,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_077[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,235,128, 73,  0, 85,  0, 85,  0, 99,  0, 99,  0,227,128,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_078[] = {  8,  0,  0,  0,  0,228, 76, 76, 84, 84,100,238,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_079[] = {  7,  0,  0,  0,  0,120,204,132,132,132,204,120,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_080[] = {  6,  0,  0,  0,  0,224, 64, 64,112, 72, 72,240,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_081[] = {  7,  0,  0, 12, 24,112,204,132,132,132,204,120,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_082[] = {  7,  0,  0,  0,  0,236, 72, 80,112, 72, 72,240,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_083[] = {  5,  0,  0,  0,  0,224,144, 16, 96,192,144,112,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_084[] = {  6,  0,  0,  0,  0,112, 32, 32, 32, 32,168,248,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_085[] = {  8,  0,  0,  0,  0, 56,108, 68, 68, 68, 68,238,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_086[] = {  8,  0,  0,  0,  0, 16, 16, 40, 40,108, 68,238,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_087[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0, 34,  0, 34,  0, 85,  0, 85,  0,201,128,136,128,221,192,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_088[] = {  8,  0,  0,  0,  0,238, 68, 40, 16, 40, 68,238,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_089[] = {  8,  0,  0,  0,  0, 56, 16, 16, 40, 40, 68,238,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_090[] = {  6,  0,  0,  0,  0,248,136, 64, 32, 16,136,248,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_091[] = {  3,  0,  0,192,128,128,128,128,128,128,128,192,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_092[] = {  3,  0,  0,  0,  0, 32, 32, 64, 64, 64,128,128,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_093[] = {  3,  0,  0,192, 64, 64, 64, 64, 64, 64, 64,192,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_094[] = {  5,  0,  0,  0,  0,  0,  0,  0,  0, 80, 80, 32,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_095[] = {  5,  0,248,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_096[] = {  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192,128,  0,  0};
+static const GLubyte TimesRoman10_Character_097[] = {  4,  0,  0,  0,  0,224,160, 96, 32,192,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_098[] = {  5,  0,  0,  0,  0,224,144,144,144,224,128,128,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_099[] = {  4,  0,  0,  0,  0, 96,128,128,128, 96,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_100[] = {  5,  0,  0,  0,  0,104,144,144,144,112, 16, 48,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_101[] = {  4,  0,  0,  0,  0, 96,128,192,160, 96,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_102[] = {  4,  0,  0,  0,  0,224, 64, 64, 64,224, 64, 48,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_103[] = {  5,  0,  0,224,144, 96, 64,160,160,112,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_104[] = {  5,  0,  0,  0,  0,216,144,144,144,224,128,128,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_105[] = {  3,  0,  0,  0,  0, 64, 64, 64, 64,192,  0, 64,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_106[] = {  3,  0,  0,128, 64, 64, 64, 64, 64,192,  0, 64,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_107[] = {  5,  0,  0,  0,  0,152,144,224,160,144,128,128,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_108[] = {  4,  0,  0,  0,  0,224, 64, 64, 64, 64, 64,192,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_109[] = {  8,  0,  0,  0,  0,219,146,146,146,236,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_110[] = {  5,  0,  0,  0,  0,216,144,144,144,224,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_111[] = {  5,  0,  0,  0,  0, 96,144,144,144, 96,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_112[] = {  5,  0,  0,192,128,224,144,144,144,224,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_113[] = {  5,  0,  0, 56, 16,112,144,144,144,112,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_114[] = {  4,  0,  0,  0,  0,224, 64, 64, 96,160,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_115[] = {  4,  0,  0,  0,  0,224, 32, 96,128,224,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_116[] = {  4,  0,  0,  0,  0, 48, 64, 64, 64,224, 64,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_117[] = {  5,  0,  0,  0,  0,104,144,144,144,144,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_118[] = {  5,  0,  0,  0,  0, 32, 96, 80,144,216,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_119[] = {  8,  0,  0,  0,  0, 40,108, 84,146,219,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_120[] = {  6,  0,  0,  0,  0,216, 80, 32, 80,216,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_121[] = {  5,  0,  0,128,128, 64, 96,160,144,184,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_122[] = {  5,  0,  0,  0,  0,240,144, 64, 32,240,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_123[] = {  4,  0,  0, 32, 64, 64, 64,128, 64, 64, 64, 32,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_124[] = {  2,  0,  0,128,128,128,128,128,128,128,128,128,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_125[] = {  4,  0,  0,128, 64, 64, 64, 32, 64, 64, 64,128,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_126[] = {  7,  0,  0,  0,  0,  0,  0,152,100,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_127[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_128[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_129[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_130[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_131[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_132[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_133[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_134[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_135[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_136[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_137[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_138[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_139[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_140[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_141[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_142[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_143[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_144[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_145[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_146[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_147[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_148[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_149[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_150[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_151[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_152[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_153[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_154[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_155[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_156[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_157[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_158[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_159[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,170,  0,  0,  0,130,  0,  0,  0,130,  0,  0,  0,170,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_160[] = {  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_161[] = {  3,  0,  0, 64, 64, 64, 64, 64,  0, 64,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_162[] = {  5,  0,  0,  0,128,224,144,128,144,112, 16,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_163[] = {  5,  0,  0,  0,  0,240,200, 64,224, 64, 80, 48,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_164[] = {  5,  0,  0,  0,  0,  0,136,112, 80, 80,112,136,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_165[] = {  5,  0,  0,  0,  0,112, 32,248, 32,216, 80,136,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_166[] = {  2,  0,  0,  0,  0,128,128,128,  0,128,128,128,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_167[] = {  5,  0,  0,  0,224,144, 32, 80,144,160, 64,144,112,  0,  0};
+static const GLubyte TimesRoman10_Character_168[] = {  5,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 80,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_169[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 28,  0, 34,  0, 77,  0, 81,  0, 77,  0, 34,  0, 28,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_170[] = {  4,  0,  0,  0,  0,  0,  0,224,  0,160, 32,192,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_171[] = {  5,  0,  0,  0,  0,  0, 80,160,160, 80,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_172[] = {  7,  0,  0,  0,  0,  0,  4,  4,124,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_173[] = {  4,  0,  0,  0,  0,  0,  0,224,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_174[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0, 28,  0, 34,  0, 85,  0, 89,  0, 93,  0, 34,  0, 28,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_175[] = {  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,224,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_176[] = {  4,  0,  0,  0,  0,  0,  0,  0, 96,144,144, 96,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_177[] = {  6,  0,  0,  0,  0,248,  0, 32, 32,248, 32, 32,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_178[] = {  3,  0,  0,  0,  0,  0,  0,  0,224, 64,160, 96,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_179[] = {  3,  0,  0,  0,  0,  0,  0,  0,192, 32, 64,224,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_180[] = {  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,128, 64,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_181[] = {  5,  0,  0,128,128,232,144,144,144,144,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_182[] = {  6,  0,  0, 40, 40, 40, 40,104,232,232,232,124,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_183[] = {  2,  0,  0,  0,  0,  0,  0,128,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_184[] = {  4,  0,192, 32, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_185[] = {  3,  0,  0,  0,  0,  0,  0,  0,224, 64,192, 64,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_186[] = {  4,  0,  0,  0,  0,  0,  0,224,  0, 64,160, 64,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_187[] = {  5,  0,  0,  0,  0,  0,160, 80, 80,160,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_188[] = {  8,  0,  0,  0,  0, 68, 62, 44,244, 72,200, 68,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_189[] = {  8,  0,  0,  0,  0, 78, 36, 42,246, 72,200, 68,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_190[] = {  8,  0,  0,  0,  0, 68, 62, 44,212, 40, 72,228,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_191[] = {  4,  0,  0,224,160,128, 64, 64,  0, 64,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_192[] = {  8,  0,  0,  0,  0,238, 68,124, 40, 40, 56, 16,  0, 16, 32};
+static const GLubyte TimesRoman10_Character_193[] = {  8,  0,  0,  0,  0,238, 68,124, 40, 40, 56, 16,  0, 16,  8};
+static const GLubyte TimesRoman10_Character_194[] = {  8,  0,  0,  0,  0,238, 68,124, 40, 40, 56, 16,  0, 40, 16};
+static const GLubyte TimesRoman10_Character_195[] = {  8,  0,  0,  0,  0,238, 68,124, 40, 40, 56, 16,  0, 40, 20};
+static const GLubyte TimesRoman10_Character_196[] = {  8,  0,  0,  0,  0,238, 68,124, 40, 40, 56, 16,  0, 40,  0};
+static const GLubyte TimesRoman10_Character_197[] = {  8,  0,  0,  0,  0,238, 68,124, 40, 40, 56, 16, 16, 40, 16};
+static const GLubyte TimesRoman10_Character_198[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,239,  0, 73,  0,120,  0, 46,  0, 40,  0, 57,  0, 31,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_199[] = {  7,  0, 96, 16, 32,120,196,128,128,128,196,124,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_200[] = {  6,  0,  0,  0,  0,248, 72, 64,112, 64, 72,248,  0, 32, 64};
+static const GLubyte TimesRoman10_Character_201[] = {  6,  0,  0,  0,  0,248, 72, 64,112, 64, 72,248,  0, 32, 16};
+static const GLubyte TimesRoman10_Character_202[] = {  6,  0,  0,  0,  0,248, 72, 64,112, 64, 72,248,  0, 80, 32};
+static const GLubyte TimesRoman10_Character_203[] = {  6,  0,  0,  0,  0,248, 72, 64,112, 64, 72,248,  0, 80,  0};
+static const GLubyte TimesRoman10_Character_204[] = {  4,  0,  0,  0,  0,224, 64, 64, 64, 64, 64,224,  0, 64,128};
+static const GLubyte TimesRoman10_Character_205[] = {  4,  0,  0,  0,  0,224, 64, 64, 64, 64, 64,224,  0, 64, 32};
+static const GLubyte TimesRoman10_Character_206[] = {  4,  0,  0,  0,  0,224, 64, 64, 64, 64, 64,224,  0,160, 64};
+static const GLubyte TimesRoman10_Character_207[] = {  4,  0,  0,  0,  0,224, 64, 64, 64, 64, 64,224,  0,160,  0};
+static const GLubyte TimesRoman10_Character_208[] = {  7,  0,  0,  0,  0,248, 76, 68,228, 68, 76,248,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_209[] = {  8,  0,  0,  0,  0,228, 76, 76, 84, 84,100,238,  0, 80, 40};
+static const GLubyte TimesRoman10_Character_210[] = {  7,  0,  0,  0,  0,120,204,132,132,132,204,120,  0, 32, 64};
+static const GLubyte TimesRoman10_Character_211[] = {  7,  0,  0,  0,  0,120,204,132,132,132,204,120,  0, 16,  8};
+static const GLubyte TimesRoman10_Character_212[] = {  7,  0,  0,  0,  0,120,204,132,132,132,204,120,  0, 80, 32};
+static const GLubyte TimesRoman10_Character_213[] = {  7,  0,  0,  0,  0,120,204,132,132,132,204,120,  0, 80, 40};
+static const GLubyte TimesRoman10_Character_214[] = {  7,  0,  0,  0,  0,120,204,132,132,132,204,120,  0, 80,  0};
+static const GLubyte TimesRoman10_Character_215[] = {  6,  0,  0,  0,  0,136, 80, 32, 80,136,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_216[] = {  8,  0,  0,  0,128,124,102, 82, 82, 74,102, 62,  1,  0,  0};
+static const GLubyte TimesRoman10_Character_217[] = {  8,  0,  0,  0,  0, 56,108, 68, 68, 68, 68,238,  0, 16, 32};
+static const GLubyte TimesRoman10_Character_218[] = {  8,  0,  0,  0,  0, 56,108, 68, 68, 68, 68,238,  0, 16,  8};
+static const GLubyte TimesRoman10_Character_219[] = {  8,  0,  0,  0,  0, 56,108, 68, 68, 68, 68,238,  0, 40, 16};
+static const GLubyte TimesRoman10_Character_220[] = {  8,  0,  0,  0,  0, 56,108, 68, 68, 68, 68,238,  0, 40,  0};
+static const GLubyte TimesRoman10_Character_221[] = {  8,  0,  0,  0,  0, 56, 16, 16, 40, 40, 68,238,  0, 16,  8};
+static const GLubyte TimesRoman10_Character_222[] = {  6,  0,  0,  0,  0,224, 64,112, 72,112, 64,224,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_223[] = {  5,  0,  0,  0,  0,224, 80, 80, 96, 80, 80, 32,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_224[] = {  4,  0,  0,  0,  0,224,160, 96, 32,192,  0, 64,128,  0,  0};
+static const GLubyte TimesRoman10_Character_225[] = {  4,  0,  0,  0,  0,224,160, 96, 32,192,  0, 64, 32,  0,  0};
+static const GLubyte TimesRoman10_Character_226[] = {  4,  0,  0,  0,  0,224,160, 96, 32,192,  0,160, 64,  0,  0};
+static const GLubyte TimesRoman10_Character_227[] = {  4,  0,  0,  0,  0,224,160, 96, 32,192,  0,160, 80,  0,  0};
+static const GLubyte TimesRoman10_Character_228[] = {  4,  0,  0,  0,  0,224,160, 96, 32,192,  0,160,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_229[] = {  4,  0,  0,  0,  0,224,160, 96, 32,192, 64,160, 64,  0,  0};
+static const GLubyte TimesRoman10_Character_230[] = {  6,  0,  0,  0,  0,216,160,112, 40,216,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_231[] = {  4,  0,192, 32, 64, 96,128,128,128, 96,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_232[] = {  4,  0,  0,  0,  0, 96,128,192,160, 96,  0, 64,128,  0,  0};
+static const GLubyte TimesRoman10_Character_233[] = {  4,  0,  0,  0,  0, 96,128,192,160, 96,  0, 64, 32,  0,  0};
+static const GLubyte TimesRoman10_Character_234[] = {  4,  0,  0,  0,  0, 96,128,192,160, 96,  0,160, 64,  0,  0};
+static const GLubyte TimesRoman10_Character_235[] = {  4,  0,  0,  0,  0, 96,128,192,160, 96,  0,160,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_236[] = {  4,  0,  0,  0,  0,224, 64, 64, 64,192,  0, 64,128,  0,  0};
+static const GLubyte TimesRoman10_Character_237[] = {  4,  0,  0,  0,  0,224, 64, 64, 64,192,  0, 64, 32,  0,  0};
+static const GLubyte TimesRoman10_Character_238[] = {  4,  0,  0,  0,  0,224, 64, 64, 64,192,  0,160, 64,  0,  0};
+static const GLubyte TimesRoman10_Character_239[] = {  4,  0,  0,  0,  0,224, 64, 64, 64,192,  0,160,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_240[] = {  5,  0,  0,  0,  0, 96,144,144,144,112,160,112, 64,  0,  0};
+static const GLubyte TimesRoman10_Character_241[] = {  5,  0,  0,  0,  0,216,144,144,144,224,  0,160, 80,  0,  0};
+static const GLubyte TimesRoman10_Character_242[] = {  5,  0,  0,  0,  0, 96,144,144,144, 96,  0, 32, 64,  0,  0};
+static const GLubyte TimesRoman10_Character_243[] = {  5,  0,  0,  0,  0, 96,144,144,144, 96,  0, 64, 32,  0,  0};
+static const GLubyte TimesRoman10_Character_244[] = {  5,  0,  0,  0,  0, 96,144,144,144, 96,  0,160, 64,  0,  0};
+static const GLubyte TimesRoman10_Character_245[] = {  5,  0,  0,  0,  0, 96,144,144,144, 96,  0,160, 80,  0,  0};
+static const GLubyte TimesRoman10_Character_246[] = {  5,  0,  0,  0,  0, 96,144,144,144, 96,  0,160,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_247[] = {  6,  0,  0,  0,  0, 32,  0,248,  0, 32,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_248[] = {  5,  0,  0,  0,  0,224,144,144,144,112,  8,  0,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_249[] = {  5,  0,  0,  0,  0,104,144,144,144,144,  0, 32, 64,  0,  0};
+static const GLubyte TimesRoman10_Character_250[] = {  5,  0,  0,  0,  0,104,144,144,144,144,  0, 64, 32,  0,  0};
+static const GLubyte TimesRoman10_Character_251[] = {  5,  0,  0,  0,  0,104,144,144,144,144,  0, 80, 32,  0,  0};
+static const GLubyte TimesRoman10_Character_252[] = {  5,  0,  0,  0,  0,104,144,144,144,144,  0, 80,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_253[] = {  5,  0,  0,128,192, 64, 96,160,144,184,  0, 32, 16,  0,  0};
+static const GLubyte TimesRoman10_Character_254[] = {  5,  0,  0,192,128,224,144,144,144,224,128,128,  0,  0,  0};
+static const GLubyte TimesRoman10_Character_255[] = {  5,  0,  0,128,192, 64, 96,160,144,184,  0,160,  0,  0,  0};
+
+/* The font characters mapping: */
+static const GLubyte* TimesRoman10_Character_Map[] = {TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,
+                                                      TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,
+                                                      TimesRoman10_Character_032,TimesRoman10_Character_033,TimesRoman10_Character_034,TimesRoman10_Character_035,TimesRoman10_Character_036,TimesRoman10_Character_037,TimesRoman10_Character_038,TimesRoman10_Character_039,TimesRoman10_Character_040,TimesRoman10_Character_041,TimesRoman10_Character_042,TimesRoman10_Character_043,TimesRoman10_Character_044,TimesRoman10_Character_045,TimesRoman10_Character_046,TimesRoman10_Character_047,
+                                                      TimesRoman10_Character_048,TimesRoman10_Character_049,TimesRoman10_Character_050,TimesRoman10_Character_051,TimesRoman10_Character_052,TimesRoman10_Character_053,TimesRoman10_Character_054,TimesRoman10_Character_055,TimesRoman10_Character_056,TimesRoman10_Character_057,TimesRoman10_Character_058,TimesRoman10_Character_059,TimesRoman10_Character_060,TimesRoman10_Character_061,TimesRoman10_Character_062,TimesRoman10_Character_063,
+                                                      TimesRoman10_Character_064,TimesRoman10_Character_065,TimesRoman10_Character_066,TimesRoman10_Character_067,TimesRoman10_Character_068,TimesRoman10_Character_069,TimesRoman10_Character_070,TimesRoman10_Character_071,TimesRoman10_Character_072,TimesRoman10_Character_073,TimesRoman10_Character_074,TimesRoman10_Character_075,TimesRoman10_Character_076,TimesRoman10_Character_077,TimesRoman10_Character_078,TimesRoman10_Character_079,
+                                                      TimesRoman10_Character_080,TimesRoman10_Character_081,TimesRoman10_Character_082,TimesRoman10_Character_083,TimesRoman10_Character_084,TimesRoman10_Character_085,TimesRoman10_Character_086,TimesRoman10_Character_087,TimesRoman10_Character_088,TimesRoman10_Character_089,TimesRoman10_Character_090,TimesRoman10_Character_091,TimesRoman10_Character_092,TimesRoman10_Character_093,TimesRoman10_Character_094,TimesRoman10_Character_095,
+                                                      TimesRoman10_Character_096,TimesRoman10_Character_097,TimesRoman10_Character_098,TimesRoman10_Character_099,TimesRoman10_Character_100,TimesRoman10_Character_101,TimesRoman10_Character_102,TimesRoman10_Character_103,TimesRoman10_Character_104,TimesRoman10_Character_105,TimesRoman10_Character_106,TimesRoman10_Character_107,TimesRoman10_Character_108,TimesRoman10_Character_109,TimesRoman10_Character_110,TimesRoman10_Character_111,
+                                                      TimesRoman10_Character_112,TimesRoman10_Character_113,TimesRoman10_Character_114,TimesRoman10_Character_115,TimesRoman10_Character_116,TimesRoman10_Character_117,TimesRoman10_Character_118,TimesRoman10_Character_119,TimesRoman10_Character_120,TimesRoman10_Character_121,TimesRoman10_Character_122,TimesRoman10_Character_123,TimesRoman10_Character_124,TimesRoman10_Character_125,TimesRoman10_Character_126,TimesRoman10_Character_032,
+                                                      TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,
+                                                      TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,TimesRoman10_Character_032,
+                                                      TimesRoman10_Character_160,TimesRoman10_Character_161,TimesRoman10_Character_162,TimesRoman10_Character_163,TimesRoman10_Character_164,TimesRoman10_Character_165,TimesRoman10_Character_166,TimesRoman10_Character_167,TimesRoman10_Character_168,TimesRoman10_Character_169,TimesRoman10_Character_170,TimesRoman10_Character_171,TimesRoman10_Character_172,TimesRoman10_Character_173,TimesRoman10_Character_174,TimesRoman10_Character_175,
+                                                      TimesRoman10_Character_176,TimesRoman10_Character_177,TimesRoman10_Character_178,TimesRoman10_Character_179,TimesRoman10_Character_180,TimesRoman10_Character_181,TimesRoman10_Character_182,TimesRoman10_Character_183,TimesRoman10_Character_184,TimesRoman10_Character_185,TimesRoman10_Character_186,TimesRoman10_Character_187,TimesRoman10_Character_188,TimesRoman10_Character_189,TimesRoman10_Character_190,TimesRoman10_Character_191,
+                                                      TimesRoman10_Character_192,TimesRoman10_Character_193,TimesRoman10_Character_194,TimesRoman10_Character_195,TimesRoman10_Character_196,TimesRoman10_Character_197,TimesRoman10_Character_198,TimesRoman10_Character_199,TimesRoman10_Character_200,TimesRoman10_Character_201,TimesRoman10_Character_202,TimesRoman10_Character_203,TimesRoman10_Character_204,TimesRoman10_Character_205,TimesRoman10_Character_206,TimesRoman10_Character_207,
+                                                      TimesRoman10_Character_208,TimesRoman10_Character_209,TimesRoman10_Character_210,TimesRoman10_Character_211,TimesRoman10_Character_212,TimesRoman10_Character_213,TimesRoman10_Character_214,TimesRoman10_Character_215,TimesRoman10_Character_216,TimesRoman10_Character_217,TimesRoman10_Character_218,TimesRoman10_Character_219,TimesRoman10_Character_220,TimesRoman10_Character_221,TimesRoman10_Character_222,TimesRoman10_Character_223,
+                                                      TimesRoman10_Character_224,TimesRoman10_Character_225,TimesRoman10_Character_226,TimesRoman10_Character_227,TimesRoman10_Character_228,TimesRoman10_Character_229,TimesRoman10_Character_230,TimesRoman10_Character_231,TimesRoman10_Character_232,TimesRoman10_Character_233,TimesRoman10_Character_234,TimesRoman10_Character_235,TimesRoman10_Character_236,TimesRoman10_Character_237,TimesRoman10_Character_238,TimesRoman10_Character_239,
+                                                      TimesRoman10_Character_240,TimesRoman10_Character_241,TimesRoman10_Character_242,TimesRoman10_Character_243,TimesRoman10_Character_244,TimesRoman10_Character_245,TimesRoman10_Character_246,TimesRoman10_Character_247,TimesRoman10_Character_248,TimesRoman10_Character_249,TimesRoman10_Character_250,TimesRoman10_Character_251,TimesRoman10_Character_252,TimesRoman10_Character_253,TimesRoman10_Character_254,TimesRoman10_Character_255,NULL};
+
+/* The font structure: */
+const SFG_Font fgFontTimesRoman10 = { "-adobe-times-medium-r-normal--10-100-75-75-p-54-iso8859-1", 256, 14, TimesRoman10_Character_Map, 0, 4 };
+
+static const GLubyte TimesRoman24_Character_000[] = { 19,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0, 64,  0, 64,  0,  0,  0, 64,  0, 64,  0,  0,  0, 64,  0, 64,  0,  0,  0, 64,  0, 64,  0,  0,  0, 64,  0, 64,  0,  0,  0, 64,  0, 64,  0,  0,  0, 64,  0, 64,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_001[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_002[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_003[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_004[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_005[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_006[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_007[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_008[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_009[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_010[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_011[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_012[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_013[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_014[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_015[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_016[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_017[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_018[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_019[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_020[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_021[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_022[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_023[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_024[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_025[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_026[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_027[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_028[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_029[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_030[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_031[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_032[] = {  6,  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};
+static const GLubyte TimesRoman24_Character_033[] = {  8,  0,  0,  0,  0,  0,  0,  0, 24, 24,  0,  0,  0, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_034[] = { 10,  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, 68,  0,102,  0,102,  0,102,  0,102,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_035[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 17,  0, 17,  0, 17,  0, 17,  0, 17,  0,127,224,127,224,  8,128,  8,128,  8,128, 63,240, 63,240,  4, 64,  4, 64,  4, 64,  4, 64,  4, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_036[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  4,  0, 63,  0,229,192,196,192,132, 96,132, 96,  4, 96,  4,224,  7,192,  7,128, 30,  0, 60,  0,116,  0,100,  0,100, 32,100, 96, 52,224, 31,128,  4,  0,  4,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_037[] = { 19,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24, 30,  0, 12, 57,  0,  6, 48,128,  2, 48, 64,  3, 48, 64,  1,152, 64,  0,140,192,  0,199,128, 60, 96,  0,114, 32,  0, 97, 48,  0, 96,152,  0, 96,136,  0, 48,140,  0, 25,254,  0, 15,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_038[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 30, 30,  0, 63,191,  0,112,240,128, 96, 96,  0, 96,224,  0, 96,208,  0, 49,144,  0, 27,136,  0, 15, 12,  0,  7, 31,  0,  7,128,  0, 14,192,  0, 12, 96,  0, 12, 32,  0, 12, 32,  0,  6, 96,  0,  3,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_039[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24, 12,  4, 28, 24,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_040[] = {  8,  0,  0,  2,  4,  8, 24, 16, 48, 48, 96, 96, 96, 96, 96, 96, 96, 96, 48, 48, 16, 24,  8,  4,  2,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_041[] = {  8,  0,  0, 64, 32, 16, 24,  8, 12, 12,  6,  6,  6,  6,  6,  6,  6,  6, 12, 12,  8, 24, 16, 32, 64,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_042[] = { 12,  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,  2,  0,  7,  0, 50, 96, 58,224,  7,  0, 58,224, 50, 96,  7,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_043[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,127,248,127,248,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_044[] = {  7,  0,  0,  0,  0, 48, 24,  8, 56, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_045[] = { 14,  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,127,248,127,248,  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};
+static const GLubyte TimesRoman24_Character_046[] = {  6,  0,  0,  0,  0,  0,  0,  0, 48, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_047[] = {  7,  0,  0,  0,  0,192,192,192, 64, 96, 96, 32, 48, 48, 16, 24, 24,  8, 12, 12,  4,  6,  6,  6,  6,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_048[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 25,128, 48,192, 48,192,112,224, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 48,192, 48,192, 25,128, 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_049[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 63,192,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0,  6,  0, 30,  0,  6,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_050[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,192,127,224, 48, 32, 24,  0, 12,  0,  6,  0,  2,  0,  3,  0,  1,128,  1,128,  0,192,  0,192, 64,192, 64,192, 33,192, 63,128, 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_051[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 60,  0,115,  0, 97,128,  0,128,  0,192,  0,192,  0,192,  1,192,  3,128, 15,  0,  6,  0,  3,  0, 65,128, 65,128, 35,128, 63,  0, 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_052[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,128,  1,128,  1,128,  1,128,127,224,127,224, 97,128, 33,128, 49,128, 17,128, 25,128,  9,128, 13,128,  5,128,  3,128,  3,128,  1,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_053[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 63,  0,113,192, 96,192,  0, 96,  0, 96,  0, 96,  0, 96,  0,224,  1,192,  7,192, 63,  0, 60,  0, 48,  0, 16,  0, 16,  0, 15,192, 15,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_054[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 61,192, 48,192,112, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,192,121,192,119,  0, 48,  0, 56,  0, 24,  0, 12,  0,  7,  0,  1,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_055[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0, 12,  0,  6,  0,  6,  0,  6,  0,  2,  0,  3,  0,  3,  0,  1,  0,  1,128,  1,128,  0,128,  0,192, 64,192, 96, 96,127,224, 63,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_056[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 57,192,112,192, 96, 96, 96, 96, 96, 96, 32,224, 48,192, 27,128, 15,  0, 15,  0, 25,128, 48,192, 48,192, 48,192, 25,128, 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_057[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,120,  0, 14,  0,  3,  0,  1,128,  1,192,  0,192, 14,192, 57,224, 48,224, 96, 96, 96, 96, 96, 96, 96, 96, 96,224, 48,192, 59,192, 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_058[] = {  6,  0,  0,  0,  0,  0,  0,  0, 48, 48,  0,  0,  0,  0,  0,  0,  0, 48, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_059[] = {  7,  0,  0,  0,  0, 48, 24,  8, 56, 48,  0,  0,  0,  0,  0,  0,  0, 48, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_060[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48,  0,224,  3,128, 14,  0, 56,  0, 96,  0, 56,  0, 14,  0,  3,128,  0,224,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_061[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,248,127,248,  0,  0,  0,  0,127,248,127,248,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_062[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,  0, 56,  0, 14,  0,  3,128,  0,224,  0, 48,  0,224,  3,128, 14,  0, 56,  0, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_063[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,  0, 12,  0,  0,  0,  0,  0,  4,  0,  4,  0,  4,  0,  6,  0,  6,  0,  3,  0,  3,128,  1,192, 48,192, 48,192, 32,192, 49,128, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_064[] = { 22,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,252,  0,  3,131,  0,  6,  0,  0, 12,  0,  0, 24,119,128, 24,222,192, 49,142, 96, 49,134, 32, 49,134, 48, 49,134, 16, 49,131, 16, 48,195, 16, 48,227, 16, 56,127, 16, 24, 59, 48, 28,  0, 32, 14,  0, 96,  7,  0,192,  3,195,128,  0,254,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_065[] = { 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,252, 31,128, 48,  6,  0, 16,  6,  0, 16, 12,  0, 24, 12,  0,  8, 12,  0, 15,248,  0, 12, 24,  0,  4, 24,  0,  4, 48,  0,  6, 48,  0,  2, 48,  0,  2, 96,  0,  1, 96,  0,  1,192,  0,  1,192,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_066[] = { 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,240, 24, 60, 24, 12, 24,  6, 24,  6, 24,  6, 24, 12, 24, 28, 31,240, 24, 32, 24, 24, 24, 12, 24, 12, 24, 12, 24, 24, 24, 56,127,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_067[] = { 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,240, 15, 28, 28,  4, 48,  2, 48,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 48,  2, 48,  2, 28,  6, 14, 30,  3,242,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_068[] = { 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,224,  0, 24, 56,  0, 24, 28,  0, 24,  6,  0, 24,  6,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0, 24,  6,  0, 24,  6,  0, 24, 28,  0, 24, 56,  0,127,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_069[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,252, 24, 12, 24,  4, 24,  4, 24,  0, 24,  0, 24, 32, 24, 32, 31,224, 24, 32, 24, 32, 24,  0, 24,  0, 24,  8, 24,  8, 24, 24,127,248,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_070[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24, 16, 24, 16, 31,240, 24, 16, 24, 16, 24,  0, 24,  0, 24,  8, 24,  8, 24, 24,127,248,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_071[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,240,  0, 15, 28,  0, 28, 14,  0, 48,  6,  0, 48,  6,  0, 96,  6,  0, 96,  6,  0, 96, 31,128, 96,  0,  0, 96,  0,  0, 96,  0,  0, 96,  0,  0, 48,  2,  0, 48,  2,  0, 28,  6,  0, 14, 30,  0,  3,242,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_072[] = { 19,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126, 15,192, 24,  3,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0, 31,255,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0,126, 15,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_073[] = {  8,  0,  0,  0,  0,  0,  0,  0,126, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,126,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_074[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 60,  0,102,  0, 99,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0, 15,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_075[] = { 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126, 15,128, 24,  7,  0, 24, 14,  0, 24, 28,  0, 24, 56,  0, 24,112,  0, 24,224,  0, 25,192,  0, 31,128,  0, 31,  0,  0, 25,128,  0, 24,192,  0, 24, 96,  0, 24, 48,  0, 24, 24,  0, 24, 12,  0,126, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_076[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,252, 24, 12, 24,  4, 24,  4, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0,126,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_077[] = { 22,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,124, 16,252, 16, 48, 48, 16, 48, 48, 16,104, 48, 16,104, 48, 16,196, 48, 16,196, 48, 17,132, 48, 17,130, 48, 19,  2, 48, 19,  1, 48, 22,  1, 48, 22,  1, 48, 28,  0,176, 28,  0,176, 24,  0,112,120,  0,124,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_078[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,124,  6,  0, 16, 14,  0, 16, 14,  0, 16, 26,  0, 16, 50,  0, 16, 50,  0, 16, 98,  0, 16,194,  0, 16,194,  0, 17,130,  0, 19,  2,  0, 19,  2,  0, 22,  2,  0, 28,  2,  0, 28,  2,  0, 24,  2,  0,120, 15,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_079[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,240,  0, 14, 28,  0, 28, 14,  0, 48,  3,  0, 48,  3,  0, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 48,  3,  0, 48,  3,  0, 28, 14,  0, 14, 28,  0,  3,240,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_080[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 31,224, 24, 56, 24, 24, 24, 12, 24, 12, 24, 12, 24, 24, 24, 56,127,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_081[] = { 18,  0,  0,  0,  0,  0,  0,  0,  7,128,  0, 28,  0,  0, 56,  0,  0,112,  0,  0,224,  0,  3,240,  0, 14, 28,  0, 28, 14,  0, 48,  3,  0, 48,  3,  0, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 48,  3,  0, 48,  3,  0, 28, 14,  0, 14, 28,  0,  3,240,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_082[] = { 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126, 15, 24, 14, 24, 28, 24, 56, 24, 48, 24, 96, 24,224, 25,192, 31,224, 24, 56, 24, 24, 24, 28, 24, 12, 24, 28, 24, 24, 24, 56,127,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_083[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 79,  0,120,192, 96, 96, 64, 48, 64, 48,  0, 48,  0,112,  1,224,  7,192, 15,  0, 60,  0,112,  0, 96, 32, 96, 32, 96, 96, 49,224, 15, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_084[] = { 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,224,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128, 65,130, 65,130, 97,134,127,254,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_085[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,240,  0, 14, 24,  0, 12,  4,  0, 24,  4,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0,126, 15,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_086[] = { 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,128,  0,  1,128,  0,  1,128,  0,  3,192,  0,  3, 64,  0,  3, 96,  0,  6, 32,  0,  6, 32,  0,  6, 48,  0, 12, 16,  0, 12, 24,  0, 24,  8,  0, 24,  8,  0, 24, 12,  0, 48,  4,  0, 48,  6,  0,252, 31,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_087[] = { 23,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,131,  0,  1,131,  0,  1,131,128,  3,135,128,  3, 70,128,  3, 70,192,  6, 70, 64,  6, 76, 64,  6, 76, 96, 12, 44, 96, 12, 44, 32, 24, 44, 32, 24, 24, 48, 24, 24, 16, 48, 24, 16, 48, 24, 24,252,126,126,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_088[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,252, 15,192, 48,  3,128, 24,  7,  0,  8, 14,  0,  4, 12,  0,  6, 24,  0,  2, 56,  0,  1,112,  0,  0,224,  0,  0,192,  0,  1,192,  0,  3,160,  0,  3, 16,  0,  6,  8,  0, 14, 12,  0, 28,  6,  0,126, 15,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_089[] = { 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,224,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  3,192,  3, 64,  6, 96,  6, 32, 12, 48, 28, 16, 24, 24, 56,  8, 48, 12,252, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_090[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,252,112, 12, 56,  4, 24,  4, 28,  0, 12,  0, 14,  0,  7,  0,  3,  0,  3,128,  1,128,  1,192,  0,224, 64, 96, 64,112, 96, 56,127,248,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_091[] = {  8,  0,  0,  0, 62, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 62,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_092[] = {  7,  0,  0,  0,  0,  0,  0,  0,  6,  6,  4, 12, 12,  8, 24, 24, 16, 48, 48, 32, 96, 96, 64,192,192,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_093[] = {  8,  0,  0,  0,124, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,124,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_094[] = { 11,  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, 64, 64, 96,192, 32,128, 49,128, 17,  0, 27,  0, 10,  0, 14,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_095[] = { 13,  0,  0,  0,  0,255,248,255,248,  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};
+static const GLubyte TimesRoman24_Character_096[] = {  7,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48,112, 64, 96, 48,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_097[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 56,192,125,128, 99,128, 97,128, 97,128, 49,128, 29,128,  7,128,  1,128, 49,128, 51,128, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_098[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 47,  0, 57,192, 48,192, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48,192, 57,192, 55,  0, 48,  0, 48,  0, 48,  0, 48,  0,112,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_099[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 63,128, 56, 64,112,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 32,192, 49,192, 15,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_100[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15, 96, 57,192, 48,192, 96,192, 96,192, 96,192, 96,192, 96,192, 96,192, 48,192, 57,192, 14,192,  0,192,  0,192,  0,192,  0,192,  1,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_101[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 63,128, 56, 64,112,  0, 96,  0, 96,  0, 96,  0,127,192, 96,192, 32,192, 49,128, 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_102[] = {  7,  0,  0,  0,  0,  0,  0,  0,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,254, 48, 48, 48, 22, 14,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_103[] = { 12,  0,  0,  0,  0, 31,128,120,224, 96, 48, 96, 16, 48, 48, 31,224, 63,128, 48,  0, 24,  0, 31,  0, 25,128, 48,192, 48,192, 48,192, 48,192, 25,128, 15,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_104[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,120,240, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 56,224, 55,192, 51,128, 48,  0, 48,  0, 48,  0, 48,  0,112,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_105[] = {  6,  0,  0,  0,  0,  0,  0,  0,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,112,  0,  0,  0, 48, 48,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_106[] = {  6,  0,  0,192,224, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,112,  0,  0,  0, 48, 48,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_107[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,121,240, 48,224, 49,192, 51,128, 55,  0, 54,  0, 60,  0, 52,  0, 50,  0, 51,  0, 49,128, 51,224, 48,  0, 48,  0, 48,  0, 48,  0,112,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_108[] = {  6,  0,  0,  0,  0,  0,  0,  0,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,112,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_109[] = { 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,120,241,224, 48, 96,192, 48, 96,192, 48, 96,192, 48, 96,192, 48, 96,192, 48, 96,192, 48, 96,192, 48, 96,192, 56,241,192, 55,207,128,115,135,  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};
+static const GLubyte TimesRoman24_Character_110[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,120,240, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 56,224, 55,192,115,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_111[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 57,192, 48,192, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 48,192, 57,192, 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_112[] = { 12,  0,  0,  0,  0,120,  0, 48,  0, 48,  0, 48,  0, 48,  0, 55,  0, 57,192, 48,192, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48,192, 57,192,119,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_113[] = { 12,  0,  0,  0,  0,  1,224,  0,192,  0,192,  0,192,  0,192, 14,192, 57,192, 48,192, 96,192, 96,192, 96,192, 96,192, 96,192, 96,192, 48,192, 57,192, 14,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_114[] = {  8,  0,  0,  0,  0,  0,  0,  0,120, 48, 48, 48, 48, 48, 48, 48, 48, 59, 55,115,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_115[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,124,  0, 99,  0, 65,128,  1,128,  3,128, 15,  0, 62,  0, 56,  0,112,  0, 97,  0, 51,  0, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_116[] = {  7,  0,  0,  0,  0,  0,  0,  0, 28, 50, 48, 48, 48, 48, 48, 48, 48, 48, 48,254,112, 48, 16,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_117[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 14,112, 31, 96, 56,224, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96,112,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_118[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0, 14,  0, 14,  0, 26,  0, 25,  0, 25,  0, 49,  0, 48,128, 48,128, 96,128, 96,192,241,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_119[] = { 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4, 16,  0, 14, 56,  0, 14, 56,  0, 26, 40,  0, 26,100,  0, 25,100,  0, 49,100,  0, 48,194,  0, 48,194,  0, 96,194,  0, 96,195,  0,241,231,128,  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};
+static const GLubyte TimesRoman24_Character_120[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,120,240, 48, 96, 16,192, 25,192, 13,128,  7,  0,  6,  0, 13,  0, 28,128, 24,192, 48, 96,120,240,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_121[] = { 11,  0,  0,  0,  0,224,  0,240,  0, 24,  0,  8,  0, 12,  0,  4,  0, 14,  0, 14,  0, 26,  0, 25,  0, 25,  0, 49,  0, 48,128, 48,128, 96,128, 96,192,241,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_122[] = { 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,128, 97,128, 48,128, 56,  0, 24,  0, 28,  0, 12,  0, 14,  0,  7,  0, 67,  0, 97,128,127,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_123[] = { 10,  0,  0,  0,  0,  3,128,  6,  0, 12,  0, 12,  0, 12,  0, 12,  0, 12,  0, 12,  0,  8,  0, 24,  0, 16,  0, 96,  0, 16,  0, 24,  0,  8,  0, 12,  0, 12,  0, 12,  0, 12,  0, 12,  0,  6,  0,  3,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_124[] = {  6,  0,  0,  0,  0,  0,  0,  0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_125[] = { 10,  0,  0,  0,  0,112,  0, 24,  0, 12,  0, 12,  0, 12,  0, 12,  0, 12,  0, 12,  0,  4,  0,  6,  0,  2,  0,  1,128,  2,  0,  6,  0,  4,  0, 12,  0, 12,  0, 12,  0, 12,  0, 12,  0, 24,  0,112,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_126[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 65,192, 99,224, 62, 48, 28, 16,  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};
+static const GLubyte TimesRoman24_Character_127[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_128[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_129[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_130[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_131[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_132[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_133[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_134[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_135[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_136[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_137[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_138[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_139[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_140[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_141[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_142[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_143[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_144[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_145[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_146[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_147[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_148[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_149[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_150[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_151[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_152[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_153[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_154[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_155[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_156[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_157[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_158[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_159[] = { 26,  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, 85, 85, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 64,  0, 64,  0,  0,  0,  0,  0, 85, 85, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_160[] = {  6,  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};
+static const GLubyte TimesRoman24_Character_161[] = {  8,  0,  0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,  0,  0,  0, 12, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_162[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,  0, 32,  0, 31,  0, 63,128, 56, 64,104,  0,100,  0,100,  0,100,  0, 98,  0, 98,  0, 33,192, 49,192, 15,128,  0,128,  0,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_163[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,115,192, 95, 96, 60, 32, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,  0,126,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,192, 12,192,  7,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_164[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96, 48,119,112, 63,224, 24,192, 48, 96, 48, 96, 48, 96, 48, 96, 24,192, 63,224,119,112, 96, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_165[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,192,  3,  0,  3,  0,  3,  0,  3,  0, 31,224,  3,  0, 31,224,  3,  0,  7,128, 12,128, 12,192, 24, 64, 24, 96, 48, 32,112, 48,248,124,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_166[] = {  6,  0,  0,  0,  0,  0,  0,  0, 48, 48, 48, 48, 48, 48, 48,  0,  0,  0, 48, 48, 48, 48, 48, 48, 48,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_167[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 14,  0, 25,  0, 24,128,  1,128,  3,128,  7,  0, 14,  0, 29,  0, 56,128, 48,192, 32,192, 33,192, 19,128, 15,  0, 14,  0, 28,  0, 24,  0, 17,128,  9,128,  7,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_168[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,102,102,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_169[] = { 19,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,248,  0, 14, 14,  0, 24,  3,  0, 48,225,128, 35,184,128, 98, 12,192, 70,  0, 64, 68,  0, 64, 68,  0, 64, 68,  0, 64, 70,  0, 64, 98, 12,192, 35,152,128, 48,241,128, 24,  3,  0, 14, 14,  0,  3,248,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_170[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126,  0,118,204,204,124, 12,204,120,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_171[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2, 32,  6, 96, 12,192, 25,128, 51,  0, 51,  0, 25,128, 12,192,  6, 96,  2, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_172[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24,  0, 24,  0, 24,  0, 24,  0, 24,127,248,127,248,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_173[] = {  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,  0,127,  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};
+static const GLubyte TimesRoman24_Character_174[] = { 19,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,248,  0, 14, 14,  0, 24,  3,  0, 48,  1,128, 35,140,128, 97, 24,192, 65, 16, 64, 65, 32, 64, 65,240, 64, 65, 24, 64, 65,  8, 64, 97,  8,192, 33, 24,128, 51,241,128, 24,  3,  0, 14, 14,  0,  3,248,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_175[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126,126,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_176[] = {  9,  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, 28,  0, 34,  0, 65,  0, 65,  0, 65,  0, 34,  0, 28,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_177[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,248,127,248,  0,  0,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,127,248,127,248,  3,  0,  3,  0,  3,  0,  3,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_178[] = {  7,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,252, 68, 32, 48, 16,  8, 12,140, 76, 56,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_179[] = {  7,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,112,136,140, 12,  8, 48,  8,140, 76, 56,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_180[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32, 24, 14,  6,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_181[] = { 13,  0,  0,  0,  0, 32,  0,112,  0, 96,  0, 32,  0, 32,  0, 46,112, 63, 96, 56,224, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96,112,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_182[] = { 11,  0,  0,  0,  0,  4,128,  4,128,  4,128,  4,128,  4,128,  4,128,  4,128,  4,128,  4,128,  4,128,  4,128, 12,128, 28,128, 60,128, 60,128,124,128,124,128,124,128, 60,128, 60,128, 28,128, 15,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_183[] = {  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 48, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_184[] = {  8,  0, 60,102,  6, 30, 24,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_185[] = {  7,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,124, 16, 16, 16, 16, 16, 16, 80, 48, 16,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_186[] = {  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126,  0, 60,102,102,102,102,102, 60,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_187[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 34,  0, 51,  0, 25,128, 12,192,  6, 96,  6, 96, 12,192, 25,128, 51,  0, 34,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_188[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24,  2,  0,  8,  2,  0, 12,127,128,  4, 34,  0,  6, 50,  0,  3, 18,  0,  1, 10,  0,125,142,  0, 16,134,  0, 16,194,  0, 16, 96,  0, 16, 32,  0, 16, 48,  0, 16, 16,  0, 80, 24,  0, 48, 12,  0, 16,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_189[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24, 63,  0,  8, 17,  0, 12,  8,  0,  4, 12,  0,  6,  4,  0,  3,  2,  0,  1,  3,  0,125,163,  0, 16,147,  0, 16,206,  0, 16, 96,  0, 16, 32,  0, 16, 48,  0, 16, 16,  0, 80, 24,  0, 48, 12,  0, 16,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_190[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 24,  2,  0,  8,  2,  0, 12,127,128,  4, 34,  0,  6, 50,  0,  3, 18,  0,  1, 10,  0,113,142,  0,136,134,  0,140,194,  0, 12, 96,  0,  8, 32,  0, 48, 48,  0,  8, 16,  0,140, 24,  0, 76, 12,  0, 56,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_191[] = { 11,  0,  0,  0,  0, 31,  0, 49,128, 96,128, 97,128, 97,128,112,  0, 56,  0, 24,  0, 28,  0, 12,  0, 12,  0,  4,  0,  4,  0,  0,  0,  0,  0,  6,  0,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_192[] = { 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,252, 31,128, 48,  6,  0, 16,  6,  0, 16, 12,  0, 24, 12,  0,  8, 12,  0, 15,248,  0, 12, 24,  0,  4, 24,  0,  4, 48,  0,  6, 48,  0,  2, 48,  0,  2, 96,  0,  1, 96,  0,  1,192,  0,  1,192,  0,  0,128,  0,  0,  0,  0,  0, 32,  0,  0,192,  0,  3,128,  0,  3,  0,  0};
+static const GLubyte TimesRoman24_Character_193[] = { 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,252, 31,128, 48,  6,  0, 16,  6,  0, 16, 12,  0, 24, 12,  0,  8, 12,  0, 15,248,  0, 12, 24,  0,  4, 24,  0,  4, 48,  0,  6, 48,  0,  2, 48,  0,  2, 96,  0,  1, 96,  0,  1,192,  0,  1,192,  0,  0,128,  0,  0,  0,  0,  1,  0,  0,  0,192,  0,  0,112,  0,  0, 48,  0};
+static const GLubyte TimesRoman24_Character_194[] = { 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,252, 31,128, 48,  6,  0, 16,  6,  0, 16, 12,  0, 24, 12,  0,  8, 12,  0, 15,248,  0, 12, 24,  0,  4, 24,  0,  4, 48,  0,  6, 48,  0,  2, 48,  0,  2, 96,  0,  1, 96,  0,  1,192,  0,  1,192,  0,  0,128,  0,  0,  0,  0,  8, 16,  0,  6, 96,  0,  3,192,  0,  1,128,  0};
+static const GLubyte TimesRoman24_Character_195[] = { 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,252, 31,128, 48,  7,  0, 16,  6,  0, 16, 12,  0, 24, 12,  0,  8, 12,  0, 15,248,  0, 12, 24,  0,  4, 24,  0,  4, 48,  0,  6, 48,  0,  2, 48,  0,  2, 96,  0,  1, 96,  0,  1,192,  0,  1,192,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  4,224,  0,  3,144,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_196[] = { 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,252, 31,128, 48,  6,  0, 16,  6,  0, 16, 12,  0, 24, 12,  0,  8, 12,  0, 15,248,  0, 12, 24,  0,  4, 24,  0,  4, 48,  0,  6, 48,  0,  2, 48,  0,  2, 96,  0,  1, 96,  0,  1,192,  0,  1,192,  0,  0,128,  0,  0,  0,  0,  0,  0,  0,  6, 48,  0,  6, 48,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_197[] = { 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,252, 31,128, 48,  6,  0, 16,  6,  0, 16, 12,  0, 24, 12,  0,  8, 12,  0, 15,248,  0, 12, 24,  0,  4, 24,  0,  4, 48,  0,  6, 48,  0,  2, 48,  0,  2, 96,  0,  1, 96,  0,  1,192,  0,  1,192,  0,  0,128,  0,  1,192,  0,  2, 32,  0,  2, 32,  0,  1,192,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_198[] = { 21,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,249,255,240, 48, 96, 48, 16, 96, 16, 16, 96, 16, 24, 96,  0,  8, 96,  0, 15,224,128, 12, 96,128,  4,127,128,  4, 96,128,  6, 96,128,  2, 96,  0,  2, 96,  0,  1, 96, 32,  1, 96, 32,  1,224, 96,  3,255,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_199[] = { 16,  0,  0,  3,192,  6, 96,  0, 96,  1,224,  1,128,  0,128,  3,240, 15, 28, 28,  4, 48,  2, 48,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 48,  2, 48,  2, 28,  6, 14, 30,  3,242,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_200[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,252, 24, 12, 24,  4, 24,  4, 24,  0, 24,  0, 24, 32, 24, 32, 31,224, 24, 32, 24, 32, 24,  0, 24,  0, 24,  8, 24,  8, 24, 24,127,248,  0,  0,  0,128,  3,  0, 14,  0, 12,  0};
+static const GLubyte TimesRoman24_Character_201[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,252, 24, 12, 24,  4, 24,  4, 24,  0, 24,  0, 24, 32, 24, 32, 31,224, 24, 32, 24, 32, 24,  0, 24,  0, 24,  8, 24,  8, 24, 24,127,248,  0,  0,  2,  0,  1,128,  0,224,  0, 96};
+static const GLubyte TimesRoman24_Character_202[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,252, 24, 12, 24,  4, 24,  4, 24,  0, 24,  0, 24, 32, 24, 32, 31,224, 24, 32, 24, 32, 24,  0, 24,  0, 24,  8, 24,  8, 24, 24,127,248,  0,  0,  8, 16,  6, 96,  3,192,  1,128};
+static const GLubyte TimesRoman24_Character_203[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,252, 24, 12, 24,  4, 24,  4, 24,  0, 24,  0, 24, 32, 24, 32, 31,224, 24, 32, 24, 32, 24,  0, 24,  0, 24,  8, 24,  8, 24, 24,127,248,  0,  0,  0,  0, 12,192, 12,192,  0,  0};
+static const GLubyte TimesRoman24_Character_204[] = {  8,  0,  0,  0,  0,  0,  0,  0,126, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,126,  0,  4, 24,112, 96};
+static const GLubyte TimesRoman24_Character_205[] = {  8,  0,  0,  0,  0,  0,  0,  0,126, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,126,  0, 32, 24, 14,  6};
+static const GLubyte TimesRoman24_Character_206[] = {  8,  0,  0,  0,  0,  0,  0,  0, 63, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 63,  0, 64, 51, 30, 12};
+static const GLubyte TimesRoman24_Character_207[] = {  8,  0,  0,  0,  0,  0,  0,  0,126, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,126,  0,  0,102,102,  0};
+static const GLubyte TimesRoman24_Character_208[] = { 17,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,224,  0, 24, 56,  0, 24, 28,  0, 24,  6,  0, 24,  6,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0,255,  3,  0, 24,  3,  0, 24,  3,  0, 24,  3,  0, 24,  6,  0, 24,  6,  0, 24, 28,  0, 24, 56,  0,127,224,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_209[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,124,  6,  0, 16, 14,  0, 16, 14,  0, 16, 26,  0, 16, 50,  0, 16, 50,  0, 16, 98,  0, 16,194,  0, 16,194,  0, 17,130,  0, 19,  2,  0, 19,  2,  0, 22,  2,  0, 28,  2,  0, 28,  2,  0, 24,  2,  0,120, 15,128,  0,  0,  0,  0,  0,  0,  2,112,  0,  1,200,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_210[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,240,  0, 14, 28,  0, 28, 14,  0, 48,  3,  0, 48,  3,  0, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 48,  3,  0, 48,  3,  0, 28, 14,  0, 14, 28,  0,  3,240,  0,  0,  0,  0,  0, 32,  0,  0,192,  0,  3,128,  0,  3,  0,  0};
+static const GLubyte TimesRoman24_Character_211[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,240,  0, 14, 28,  0, 28, 14,  0, 48,  3,  0, 48,  3,  0, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 48,  3,  0, 48,  3,  0, 28, 14,  0, 14, 28,  0,  3,240,  0,  0,  0,  0,  0,128,  0,  0, 96,  0,  0, 56,  0,  0, 24,  0};
+static const GLubyte TimesRoman24_Character_212[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,240,  0, 14, 28,  0, 28, 14,  0, 48,  3,  0, 48,  3,  0, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 48,  3,  0, 48,  3,  0, 28, 14,  0, 14, 28,  0,  3,240,  0,  0,  0,  0,  4,  8,  0,  3, 48,  0,  1,224,  0,  0,192,  0};
+static const GLubyte TimesRoman24_Character_213[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,240,  0, 14, 28,  0, 28, 14,  0, 48,  3,  0, 48,  3,  0, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 48,  3,  0, 48,  3,  0, 28, 14,  0, 14, 28,  0,  3,240,  0,  0,  0,  0,  0,  0,  0,  2,112,  0,  1,200,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_214[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,240,  0, 14, 28,  0, 28, 14,  0, 48,  3,  0, 48,  3,  0, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 96,  1,128, 48,  3,  0, 48,  3,  0, 28, 14,  0, 14, 28,  0,  3,240,  0,  0,  0,  0,  0,  0,  0,  3, 48,  0,  3, 48,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_215[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32, 16, 48, 48, 24, 96, 12,192,  7,128,  3,  0,  7,128, 12,192, 24, 96, 48, 48, 32, 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_216[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,  0,  0, 19,240,  0, 14, 28,  0, 28, 14,  0, 52,  3,  0, 50,  3,  0, 97,  1,128, 97,  1,128, 96,129,128, 96,129,128, 96, 65,128, 96, 65,128, 96, 33,128, 48, 35,  0, 48, 19,  0, 28, 14,  0, 14, 28,  0,  3,242,  0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_217[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,240,  0, 14, 24,  0, 12,  4,  0, 24,  4,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0,126, 15,128,  0,  0,  0,  0, 32,  0,  0,192,  0,  3,128,  0,  3,  0,  0};
+static const GLubyte TimesRoman24_Character_218[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,240,  0, 14, 24,  0, 12,  4,  0, 24,  4,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0,126, 15,128,  0,  0,  0,  0,128,  0,  0, 96,  0,  0, 56,  0,  0, 24,  0};
+static const GLubyte TimesRoman24_Character_219[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,240,  0, 14, 24,  0, 12,  4,  0, 24,  4,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0,126, 15,128,  0,  0,  0,  4,  8,  0,  3, 48,  0,  1,224,  0,  0,192,  0};
+static const GLubyte TimesRoman24_Character_220[] = { 18,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,240,  0, 14, 24,  0, 12,  4,  0, 24,  4,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0, 24,  2,  0,126, 15,128,  0,  0,  0,  0,  0,  0,  3, 24,  0,  3, 24,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_221[] = { 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,224,  1,128,  1,128,  1,128,  1,128,  1,128,  1,128,  3,192,  3, 64,  6, 96,  6, 32, 12, 48, 28, 16, 24, 24, 56,  8, 48, 12,252, 63,  0,  0,  1,  0,  0,192,  0,112,  0, 48};
+static const GLubyte TimesRoman24_Character_222[] = { 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126,  0, 24,  0, 24,  0, 24,  0, 31,224, 24, 56, 24, 24, 24, 12, 24, 12, 24, 12, 24, 24, 24, 56, 31,224, 24,  0, 24,  0, 24,  0,126,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_223[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,115,128, 54, 64, 54, 96, 48, 96, 48, 96, 48,224, 48,192, 49,192, 51,128, 54,  0, 49,128, 48,192, 48,192, 48,192, 48,192, 25,128, 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_224[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 56,192,125,128, 99,128, 97,128, 97,128, 49,128, 29,128,  7,128,  1,128, 49,128, 51,128, 31,  0,  0,  0,  2,  0, 12,  0, 56,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_225[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 56,192,125,128, 99,128, 97,128, 97,128, 49,128, 29,128,  7,128,  1,128, 49,128, 51,128, 31,  0,  0,  0,  8,  0,  6,  0,  3,128,  1,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_226[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 56,192,125,128, 99,128, 97,128, 97,128, 49,128, 29,128,  7,128,  1,128, 49,128, 51,128, 31,  0,  0,  0, 33,  0, 18,  0, 30,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_227[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 56,192,125,128, 99,128, 97,128, 97,128, 49,128, 29,128,  7,128,  1,128, 49,128, 51,128, 31,  0,  0,  0,  0,  0, 46,  0, 29,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_228[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 56,192,125,128, 99,128, 97,128, 97,128, 49,128, 29,128,  7,128,  1,128, 49,128, 51,128, 31,  0,  0,  0,  0,  0, 51,  0, 51,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_229[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 56,192,125,128, 99,128, 97,128, 97,128, 49,128, 29,128,  7,128,  1,128, 49,128, 51,128, 31,  0,  0,  0, 14,  0, 17,  0, 17,  0, 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_230[] = { 16,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 56,120,125,252, 99,194, 97,128, 97,128, 49,128, 29,128,  7,254,  1,134, 49,134, 51,204, 30,120,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_231[] = { 11,  0,  0, 30,  0, 51,  0,  3,  0, 15,  0, 12,  0,  4,  0, 15,  0, 63,128, 56, 64,112,  0, 96,  0, 96,  0, 96,  0, 96,  0, 96,  0, 32,192, 49,192, 15,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_232[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 63,128, 56, 64,112,  0, 96,  0, 96,  0, 96,  0,127,192, 96,192, 32,192, 49,128, 15,  0,  0,  0,  2,  0, 12,  0, 56,  0, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_233[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 63,128, 56, 64,112,  0, 96,  0, 96,  0, 96,  0,127,192, 96,192, 32,192, 49,128, 15,  0,  0,  0,  8,  0,  6,  0,  3,128,  1,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_234[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 63,128, 56, 64,112,  0, 96,  0, 96,  0, 96,  0,127,192, 96,192, 32,192, 49,128, 15,  0,  0,  0, 16,128,  9,  0, 15,  0,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_235[] = { 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 63,128, 56, 64,112,  0, 96,  0, 96,  0, 96,  0,127,192, 96,192, 32,192, 49,128, 15,  0,  0,  0,  0,  0, 25,128, 25,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_236[] = {  6,  0,  0,  0,  0,  0,  0,  0,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,112,  0,  8, 48,224,192,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_237[] = {  6,  0,  0,  0,  0,  0,  0,  0,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,112,  0, 64, 48, 28, 12,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_238[] = {  6,  0,  0,  0,  0,  0,  0,  0,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,112,  0,132, 72,120, 48,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_239[] = {  6,  0,  0,  0,  0,  0,  0,  0,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,112,  0,  0,204,204,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_240[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 57,192, 48,192, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 48,192, 57,192, 15,128, 99,  0, 30,  0, 15,  0, 56,192, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_241[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,120,240, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 56,224, 55,192,115,128,  0,  0,  0,  0, 19,128, 14, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_242[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 57,192, 48,192, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 48,192, 57,192, 15,  0,  0,  0,  1,  0,  6,  0, 28,  0, 24,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_243[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 57,192, 48,192, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 48,192, 57,192, 15,  0,  0,  0,  4,  0,  3,  0,  1,192,  0,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_244[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 57,192, 48,192, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 48,192, 57,192, 15,  0,  0,  0, 16,128,  9,  0, 15,  0,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_245[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 57,192, 48,192, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 48,192, 57,192, 15,  0,  0,  0,  0,  0, 19,128, 14, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_246[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0, 57,192, 48,192, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 48,192, 57,192, 15,  0,  0,  0,  0,  0, 25,128, 25,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_247[] = { 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  0,  3,  0,  0,  0,  0,  0,127,248,127,248,  0,  0,  0,  0,  3,  0,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_248[] = { 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 96,  0,111,  0, 57,192, 56,192,104, 96,108, 96,100, 96,102, 96, 98, 96, 99, 96, 49,192, 57,192, 15, 96,  0, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_249[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 14,112, 31, 96, 56,224, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96,112,224,  0,  0,  1,  0,  6,  0, 28,  0, 24,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_250[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 14,112, 31, 96, 56,224, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96,112,224,  0,  0,  4,  0,  3,  0,  1,192,  0,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_251[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 14,112, 31, 96, 56,224, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96,112,224,  0,  0, 16,128,  9,  0, 15,  0,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_252[] = { 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 14,112, 31, 96, 56,224, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96,112,224,  0,  0,  0,  0, 25,128, 25,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_253[] = { 11,  0,  0,  0,  0,224,  0,240,  0, 24,  0,  8,  0, 12,  0,  4,  0, 14,  0, 14,  0, 26,  0, 25,  0, 25,  0, 49,  0, 48,128, 48,128, 96,128, 96,192,241,224,  0,  0,  8,  0,  6,  0,  3,128,  1,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_254[] = { 12,  0,  0,  0,  0,120,  0, 48,  0, 48,  0, 48,  0, 48,  0, 55,  0, 57,192, 48,192, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48, 96, 48,192, 57,192, 55,  0, 48,  0, 48,  0, 48,  0, 48,  0,112,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+static const GLubyte TimesRoman24_Character_255[] = { 11,  0,  0,  0,  0,224,  0,240,  0, 24,  0,  8,  0, 12,  0,  4,  0, 14,  0, 14,  0, 26,  0, 25,  0, 25,  0, 49,  0, 48,128, 48,128, 96,128, 96,192,241,224,  0,  0,  0,  0, 51,  0, 51,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0};
+
+/* The font characters mapping: */
+static const GLubyte* TimesRoman24_Character_Map[] = {TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,
+                                                      TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,
+                                                      TimesRoman24_Character_032,TimesRoman24_Character_033,TimesRoman24_Character_034,TimesRoman24_Character_035,TimesRoman24_Character_036,TimesRoman24_Character_037,TimesRoman24_Character_038,TimesRoman24_Character_039,TimesRoman24_Character_040,TimesRoman24_Character_041,TimesRoman24_Character_042,TimesRoman24_Character_043,TimesRoman24_Character_044,TimesRoman24_Character_045,TimesRoman24_Character_046,TimesRoman24_Character_047,
+                                                      TimesRoman24_Character_048,TimesRoman24_Character_049,TimesRoman24_Character_050,TimesRoman24_Character_051,TimesRoman24_Character_052,TimesRoman24_Character_053,TimesRoman24_Character_054,TimesRoman24_Character_055,TimesRoman24_Character_056,TimesRoman24_Character_057,TimesRoman24_Character_058,TimesRoman24_Character_059,TimesRoman24_Character_060,TimesRoman24_Character_061,TimesRoman24_Character_062,TimesRoman24_Character_063,
+                                                      TimesRoman24_Character_064,TimesRoman24_Character_065,TimesRoman24_Character_066,TimesRoman24_Character_067,TimesRoman24_Character_068,TimesRoman24_Character_069,TimesRoman24_Character_070,TimesRoman24_Character_071,TimesRoman24_Character_072,TimesRoman24_Character_073,TimesRoman24_Character_074,TimesRoman24_Character_075,TimesRoman24_Character_076,TimesRoman24_Character_077,TimesRoman24_Character_078,TimesRoman24_Character_079,
+                                                      TimesRoman24_Character_080,TimesRoman24_Character_081,TimesRoman24_Character_082,TimesRoman24_Character_083,TimesRoman24_Character_084,TimesRoman24_Character_085,TimesRoman24_Character_086,TimesRoman24_Character_087,TimesRoman24_Character_088,TimesRoman24_Character_089,TimesRoman24_Character_090,TimesRoman24_Character_091,TimesRoman24_Character_092,TimesRoman24_Character_093,TimesRoman24_Character_094,TimesRoman24_Character_095,
+                                                      TimesRoman24_Character_096,TimesRoman24_Character_097,TimesRoman24_Character_098,TimesRoman24_Character_099,TimesRoman24_Character_100,TimesRoman24_Character_101,TimesRoman24_Character_102,TimesRoman24_Character_103,TimesRoman24_Character_104,TimesRoman24_Character_105,TimesRoman24_Character_106,TimesRoman24_Character_107,TimesRoman24_Character_108,TimesRoman24_Character_109,TimesRoman24_Character_110,TimesRoman24_Character_111,
+                                                      TimesRoman24_Character_112,TimesRoman24_Character_113,TimesRoman24_Character_114,TimesRoman24_Character_115,TimesRoman24_Character_116,TimesRoman24_Character_117,TimesRoman24_Character_118,TimesRoman24_Character_119,TimesRoman24_Character_120,TimesRoman24_Character_121,TimesRoman24_Character_122,TimesRoman24_Character_123,TimesRoman24_Character_124,TimesRoman24_Character_125,TimesRoman24_Character_126,TimesRoman24_Character_032,
+                                                      TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,
+                                                      TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,TimesRoman24_Character_032,
+                                                      TimesRoman24_Character_160,TimesRoman24_Character_161,TimesRoman24_Character_162,TimesRoman24_Character_163,TimesRoman24_Character_164,TimesRoman24_Character_165,TimesRoman24_Character_166,TimesRoman24_Character_167,TimesRoman24_Character_168,TimesRoman24_Character_169,TimesRoman24_Character_170,TimesRoman24_Character_171,TimesRoman24_Character_172,TimesRoman24_Character_173,TimesRoman24_Character_174,TimesRoman24_Character_175,
+                                                      TimesRoman24_Character_176,TimesRoman24_Character_177,TimesRoman24_Character_178,TimesRoman24_Character_179,TimesRoman24_Character_180,TimesRoman24_Character_181,TimesRoman24_Character_182,TimesRoman24_Character_183,TimesRoman24_Character_184,TimesRoman24_Character_185,TimesRoman24_Character_186,TimesRoman24_Character_187,TimesRoman24_Character_188,TimesRoman24_Character_189,TimesRoman24_Character_190,TimesRoman24_Character_191,
+                                                      TimesRoman24_Character_192,TimesRoman24_Character_193,TimesRoman24_Character_194,TimesRoman24_Character_195,TimesRoman24_Character_196,TimesRoman24_Character_197,TimesRoman24_Character_198,TimesRoman24_Character_199,TimesRoman24_Character_200,TimesRoman24_Character_201,TimesRoman24_Character_202,TimesRoman24_Character_203,TimesRoman24_Character_204,TimesRoman24_Character_205,TimesRoman24_Character_206,TimesRoman24_Character_207,
+                                                      TimesRoman24_Character_208,TimesRoman24_Character_209,TimesRoman24_Character_210,TimesRoman24_Character_211,TimesRoman24_Character_212,TimesRoman24_Character_213,TimesRoman24_Character_214,TimesRoman24_Character_215,TimesRoman24_Character_216,TimesRoman24_Character_217,TimesRoman24_Character_218,TimesRoman24_Character_219,TimesRoman24_Character_220,TimesRoman24_Character_221,TimesRoman24_Character_222,TimesRoman24_Character_223,
+                                                      TimesRoman24_Character_224,TimesRoman24_Character_225,TimesRoman24_Character_226,TimesRoman24_Character_227,TimesRoman24_Character_228,TimesRoman24_Character_229,TimesRoman24_Character_230,TimesRoman24_Character_231,TimesRoman24_Character_232,TimesRoman24_Character_233,TimesRoman24_Character_234,TimesRoman24_Character_235,TimesRoman24_Character_236,TimesRoman24_Character_237,TimesRoman24_Character_238,TimesRoman24_Character_239,
+                                                      TimesRoman24_Character_240,TimesRoman24_Character_241,TimesRoman24_Character_242,TimesRoman24_Character_243,TimesRoman24_Character_244,TimesRoman24_Character_245,TimesRoman24_Character_246,TimesRoman24_Character_247,TimesRoman24_Character_248,TimesRoman24_Character_249,TimesRoman24_Character_250,TimesRoman24_Character_251,TimesRoman24_Character_252,TimesRoman24_Character_253,TimesRoman24_Character_254,TimesRoman24_Character_255,NULL};
+
+/* The font structure: */
+const SFG_Font fgFontTimesRoman24 = { "-adobe-times-medium-r-normal--24-240-75-75-p-124-iso8859-1", 256, 29, TimesRoman24_Character_Map, 0, 7 };
+
diff --git a/src/fg_gamemode.c b/src/fg_gamemode.c
new file mode 100644 (file)
index 0000000..eb29131
--- /dev/null
@@ -0,0 +1,179 @@
+/*
+ * freeglut_gamemode.c
+ *
+ * The game mode handling code.
+ *
+ * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
+ * Written by Pawel W. Olszta, <olszta@sourceforge.net>
+ * Creation date: Thu Dec 16 1999
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include <GL/freeglut.h>
+#include "fg_internal.h"
+
+/*
+ * TODO BEFORE THE STABLE RELEASE:
+ *
+ *  glutGameModeString()    -- missing
+ *  glutEnterGameMode()     -- X11 version
+ *  glutLeaveGameMode()     -- is that correct?
+ *  glutGameModeGet()       -- is that correct?
+ */
+
+
+/* -- PRIVATE FUNCTIONS ---------------------------------------------------- */
+extern void fgPlatformRememberState( void );
+extern void fgPlatformRestoreState( void );
+extern GLboolean fgPlatformChangeDisplayMode( GLboolean haveToTest );
+extern void fgPlatformEnterGameMode( void );
+extern void fgPlatformLeaveGameMode( void );
+
+
+/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
+
+/*
+ * Sets the game mode display string
+ */
+void FGAPIENTRY glutGameModeString( const char* string )
+{
+    int width = -1, height = -1, depth = -1, refresh = -1;
+
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutGameModeString" );
+
+    /*
+     * This one seems a bit easier than glutInitDisplayString. The bad thing
+     * about it that I was unable to find the game mode string definition, so
+     * that I assumed it is: "[width]x[height]:[depth]@[refresh rate]", which
+     * appears in all GLUT game mode programs I have seen to date.
+     */
+    if( sscanf( string, "%ix%i:%i@%i", &width, &height, &depth, &refresh ) !=
+        4 )
+        if( sscanf( string, "%ix%i:%i", &width, &height, &depth ) != 3 )
+            if( sscanf( string, "%ix%i@%i", &width, &height, &refresh ) != 3 )
+                if( sscanf( string, "%ix%i", &width, &height ) != 2 )
+                    if( sscanf( string, ":%i@%i", &depth, &refresh ) != 2 )
+                        if( sscanf( string, ":%i", &depth ) != 1 )
+                            if( sscanf( string, "@%i", &refresh ) != 1 )
+                                fgWarning(
+                                    "unable to parse game mode string `%s'",
+                                    string
+                                );
+
+    /* All values not specified are now set to -1, which means those
+     * aspects of the current display mode are not changed in
+     * fgPlatformChangeDisplayMode() above.
+     */
+    fgState.GameModeSize.X  = width;
+    fgState.GameModeSize.Y  = height;
+    fgState.GameModeDepth   = depth;
+    fgState.GameModeRefresh = refresh;
+}
+
+
+
+/*
+ * Enters the game mode
+ */
+int FGAPIENTRY glutEnterGameMode( void )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutEnterGameMode" );
+
+    if( fgStructure.GameModeWindow )
+        fgAddToWindowDestroyList( fgStructure.GameModeWindow );
+    else
+        fgPlatformRememberState( );
+
+    if( ! fgPlatformChangeDisplayMode( GL_FALSE ) )
+    {
+        fgWarning( "failed to change screen settings" );
+        return 0;
+    }
+
+    fgStructure.GameModeWindow = fgCreateWindow(
+        NULL, "FREEGLUT", GL_TRUE, 0, 0,
+        GL_TRUE, fgState.GameModeSize.X, fgState.GameModeSize.Y,
+        GL_TRUE, GL_FALSE
+    );
+
+    fgStructure.GameModeWindow->State.Width  = fgState.GameModeSize.X;
+    fgStructure.GameModeWindow->State.Height = fgState.GameModeSize.Y;
+    fgStructure.GameModeWindow->State.NeedToResize = GL_TRUE;
+
+    fgPlatformEnterGameMode();
+
+    return fgStructure.GameModeWindow->ID;
+}
+
+/*
+ * Leaves the game mode
+ */
+void FGAPIENTRY glutLeaveGameMode( void )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutLeaveGameMode" );
+
+    freeglut_return_if_fail( fgStructure.GameModeWindow );
+
+    fgAddToWindowDestroyList( fgStructure.GameModeWindow );
+    fgStructure.GameModeWindow = NULL;
+
+    fgPlatformLeaveGameMode();
+
+    fgPlatformRestoreState();
+}
+
+/*
+ * Returns information concerning the freeglut game mode
+ */
+int FGAPIENTRY glutGameModeGet( GLenum eWhat )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutGameModeGet" );
+
+    switch( eWhat )
+    {
+    case GLUT_GAME_MODE_ACTIVE:
+        return !!fgStructure.GameModeWindow;
+
+    case GLUT_GAME_MODE_POSSIBLE:
+        return fgPlatformChangeDisplayMode( GL_TRUE );
+
+    case GLUT_GAME_MODE_WIDTH:
+        return fgState.GameModeSize.X;
+
+    case GLUT_GAME_MODE_HEIGHT:
+        return fgState.GameModeSize.Y;
+
+    case GLUT_GAME_MODE_PIXEL_DEPTH:
+        return fgState.GameModeDepth;
+
+    case GLUT_GAME_MODE_REFRESH_RATE:
+        return fgState.GameModeRefresh;
+
+    case GLUT_GAME_MODE_DISPLAY_CHANGED:
+        /*
+         * This is true if the game mode has been activated successfully..
+         */
+        return !!fgStructure.GameModeWindow;
+    }
+
+    fgWarning( "Unknown gamemode get: %d", eWhat );
+    return -1;
+}
+
+/*** END OF FILE ***/
diff --git a/src/fg_geometry.c b/src/fg_geometry.c
new file mode 100644 (file)
index 0000000..de1cbad
--- /dev/null
@@ -0,0 +1,1215 @@
+/*
+ * freeglut_geometry.c
+ *
+ * Freeglut geometry rendering methods.
+ *
+ * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
+ * Written by Pawel W. Olszta, <olszta@sourceforge.net>
+ * Creation date: Fri Dec 3 1999
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include <GL/freeglut.h>
+#include "fg_internal.h"
+
+/*
+ * TODO BEFORE THE STABLE RELEASE:
+ *
+ * Following functions have been contributed by Andreas Umbach.
+ *
+ *      glutWireCube()          -- looks OK
+ *      glutSolidCube()         -- OK
+ *
+ * Those functions have been implemented by John Fay.
+ *
+ *      glutWireTorus()         -- looks OK
+ *      glutSolidTorus()        -- looks OK
+ *      glutWireDodecahedron()  -- looks OK
+ *      glutSolidDodecahedron() -- looks OK
+ *      glutWireOctahedron()    -- looks OK
+ *      glutSolidOctahedron()   -- looks OK
+ *      glutWireTetrahedron()   -- looks OK
+ *      glutSolidTetrahedron()  -- looks OK
+ *      glutWireIcosahedron()   -- looks OK
+ *      glutSolidIcosahedron()  -- looks OK
+ *
+ *  The Following functions have been updated by Nigel Stewart, based
+ *  on FreeGLUT 2.0.0 implementations:
+ *
+ *      glutWireSphere()        -- looks OK
+ *      glutSolidSphere()       -- looks OK
+ *      glutWireCone()          -- looks OK
+ *      glutSolidCone()         -- looks OK
+ */
+
+
+/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
+
+/*
+ * Draws a wireframed cube. Code contributed by Andreas Umbach <marvin@dataway.ch>
+ */
+void FGAPIENTRY glutWireCube( GLdouble dSize )
+{
+    double size = dSize * 0.5;
+
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWireCube" );
+
+#   define V(a,b,c) glVertex3d( a size, b size, c size );
+#   define N(a,b,c) glNormal3d( a, b, c );
+
+    /* PWO: I dared to convert the code to use macros... */
+    glBegin( GL_LINE_LOOP ); N( 1.0, 0.0, 0.0); V(+,-,+); V(+,-,-); V(+,+,-); V(+,+,+); glEnd();
+    glBegin( GL_LINE_LOOP ); N( 0.0, 1.0, 0.0); V(+,+,+); V(+,+,-); V(-,+,-); V(-,+,+); glEnd();
+    glBegin( GL_LINE_LOOP ); N( 0.0, 0.0, 1.0); V(+,+,+); V(-,+,+); V(-,-,+); V(+,-,+); glEnd();
+    glBegin( GL_LINE_LOOP ); N(-1.0, 0.0, 0.0); V(-,-,+); V(-,+,+); V(-,+,-); V(-,-,-); glEnd();
+    glBegin( GL_LINE_LOOP ); N( 0.0,-1.0, 0.0); V(-,-,+); V(-,-,-); V(+,-,-); V(+,-,+); glEnd();
+    glBegin( GL_LINE_LOOP ); N( 0.0, 0.0,-1.0); V(-,-,-); V(-,+,-); V(+,+,-); V(+,-,-); glEnd();
+
+#   undef V
+#   undef N
+}
+
+/*
+ * Draws a solid cube. Code contributed by Andreas Umbach <marvin@dataway.ch>
+ */
+void FGAPIENTRY glutSolidCube( GLdouble dSize )
+{
+    double size = dSize * 0.5;
+
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSolidCube" );
+
+#   define V(a,b,c) glVertex3d( a size, b size, c size );
+#   define N(a,b,c) glNormal3d( a, b, c );
+
+    /* PWO: Again, I dared to convert the code to use macros... */
+    glBegin( GL_QUADS );
+        N( 1.0, 0.0, 0.0); V(+,-,+); V(+,-,-); V(+,+,-); V(+,+,+);
+        N( 0.0, 1.0, 0.0); V(+,+,+); V(+,+,-); V(-,+,-); V(-,+,+);
+        N( 0.0, 0.0, 1.0); V(+,+,+); V(-,+,+); V(-,-,+); V(+,-,+);
+        N(-1.0, 0.0, 0.0); V(-,-,+); V(-,+,+); V(-,+,-); V(-,-,-);
+        N( 0.0,-1.0, 0.0); V(-,-,+); V(-,-,-); V(+,-,-); V(+,-,+);
+        N( 0.0, 0.0,-1.0); V(-,-,-); V(-,+,-); V(+,+,-); V(+,-,-);
+    glEnd();
+
+#   undef V
+#   undef N
+}
+
+/*
+ * Compute lookup table of cos and sin values forming a cirle
+ *
+ * Notes:
+ *    It is the responsibility of the caller to free these tables
+ *    The size of the table is (n+1) to form a connected loop
+ *    The last entry is exactly the same as the first
+ *    The sign of n can be flipped to get the reverse loop
+ */
+
+static void fghCircleTable(double **sint,double **cost,const int n)
+{
+    int i;
+
+    /* Table size, the sign of n flips the circle direction */
+
+    const int size = abs(n);
+
+    /* Determine the angle between samples */
+
+    const double angle = 2*M_PI/(double)( ( n == 0 ) ? 1 : n );
+
+    /* Allocate memory for n samples, plus duplicate of first entry at the end */
+
+    *sint = (double *) calloc(sizeof(double), size+1);
+    *cost = (double *) calloc(sizeof(double), size+1);
+
+    /* Bail out if memory allocation fails, fgError never returns */
+
+    if (!(*sint) || !(*cost))
+    {
+        free(*sint);
+        free(*cost);
+        fgError("Failed to allocate memory in fghCircleTable");
+    }
+
+    /* Compute cos and sin around the circle */
+
+    (*sint)[0] = 0.0;
+    (*cost)[0] = 1.0;
+
+    for (i=1; i<size; i++)
+    {
+        (*sint)[i] = sin(angle*i);
+        (*cost)[i] = cos(angle*i);
+    }
+
+    /* Last sample is duplicate of the first */
+
+    (*sint)[size] = (*sint)[0];
+    (*cost)[size] = (*cost)[0];
+}
+
+/*
+ * Draws a solid sphere
+ */
+void FGAPIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks)
+{
+    int i,j;
+
+    /* Adjust z and radius as stacks are drawn. */
+
+    double z0,z1;
+    double r0,r1;
+
+    /* Pre-computed circle */
+
+    double *sint1,*cost1;
+    double *sint2,*cost2;
+
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSolidSphere" );
+
+    fghCircleTable(&sint1,&cost1,-slices);
+    fghCircleTable(&sint2,&cost2,stacks*2);
+
+    /* The top stack is covered with a triangle fan */
+
+    z0 = 1.0;
+    z1 = cost2[(stacks>0)?1:0];
+    r0 = 0.0;
+    r1 = sint2[(stacks>0)?1:0];
+
+    glBegin(GL_TRIANGLE_FAN);
+
+        glNormal3d(0,0,1);
+        glVertex3d(0,0,radius);
+
+        for (j=slices; j>=0; j--)
+        {
+            glNormal3d(cost1[j]*r1,        sint1[j]*r1,        z1       );
+            glVertex3d(cost1[j]*r1*radius, sint1[j]*r1*radius, z1*radius);
+        }
+
+    glEnd();
+
+    /* Cover each stack with a quad strip, except the top and bottom stacks */
+
+    for( i=1; i<stacks-1; i++ )
+    {
+        z0 = z1; z1 = cost2[i+1];
+        r0 = r1; r1 = sint2[i+1];
+
+        glBegin(GL_QUAD_STRIP);
+
+            for(j=0; j<=slices; j++)
+            {
+                glNormal3d(cost1[j]*r1,        sint1[j]*r1,        z1       );
+                glVertex3d(cost1[j]*r1*radius, sint1[j]*r1*radius, z1*radius);
+                glNormal3d(cost1[j]*r0,        sint1[j]*r0,        z0       );
+                glVertex3d(cost1[j]*r0*radius, sint1[j]*r0*radius, z0*radius);
+            }
+
+        glEnd();
+    }
+
+    /* The bottom stack is covered with a triangle fan */
+
+    z0 = z1;
+    r0 = r1;
+
+    glBegin(GL_TRIANGLE_FAN);
+
+        glNormal3d(0,0,-1);
+        glVertex3d(0,0,-radius);
+
+        for (j=0; j<=slices; j++)
+        {
+            glNormal3d(cost1[j]*r0,        sint1[j]*r0,        z0       );
+            glVertex3d(cost1[j]*r0*radius, sint1[j]*r0*radius, z0*radius);
+        }
+
+    glEnd();
+
+    /* Release sin and cos tables */
+
+    free(sint1);
+    free(cost1);
+    free(sint2);
+    free(cost2);
+}
+
+/*
+ * Draws a wire sphere
+ */
+void FGAPIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks)
+{
+    int i,j;
+
+    /* Adjust z and radius as stacks and slices are drawn. */
+
+    double r;
+    double x,y,z;
+
+    /* Pre-computed circle */
+
+    double *sint1,*cost1;
+    double *sint2,*cost2;
+
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWireSphere" );
+
+    fghCircleTable(&sint1,&cost1,-slices  );
+    fghCircleTable(&sint2,&cost2, stacks*2);
+
+    /* Draw a line loop for each stack */
+
+    for (i=1; i<stacks; i++)
+    {
+        z = cost2[i];
+        r = sint2[i];
+
+        glBegin(GL_LINE_LOOP);
+
+            for(j=0; j<=slices; j++)
+            {
+                x = cost1[j];
+                y = sint1[j];
+
+                glNormal3d(x,y,z);
+                glVertex3d(x*r*radius,y*r*radius,z*radius);
+            }
+
+        glEnd();
+    }
+
+    /* Draw a line loop for each slice */
+
+    for (i=0; i<slices; i++)
+    {
+        glBegin(GL_LINE_STRIP);
+
+            for(j=0; j<=stacks; j++)
+            {
+                x = cost1[i]*sint2[j];
+                y = sint1[i]*sint2[j];
+                z = cost2[j];
+
+                glNormal3d(x,y,z);
+                glVertex3d(x*radius,y*radius,z*radius);
+            }
+
+        glEnd();
+    }
+
+    /* Release sin and cos tables */
+
+    free(sint1);
+    free(cost1);
+    free(sint2);
+    free(cost2);
+}
+
+/*
+ * Draws a solid cone
+ */
+void FGAPIENTRY glutSolidCone( GLdouble base, GLdouble height, GLint slices, GLint stacks )
+{
+    int i,j;
+
+    /* Step in z and radius as stacks are drawn. */
+
+    double z0,z1;
+    double r0,r1;
+
+    const double zStep = height / ( ( stacks > 0 ) ? stacks : 1 );
+    const double rStep = base / ( ( stacks > 0 ) ? stacks : 1 );
+
+    /* Scaling factors for vertex normals */
+
+    const double cosn = ( height / sqrt ( height * height + base * base ));
+    const double sinn = ( base   / sqrt ( height * height + base * base ));
+
+    /* Pre-computed circle */
+
+    double *sint,*cost;
+
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSolidCone" );
+
+    fghCircleTable(&sint,&cost,-slices);
+
+    /* Cover the circular base with a triangle fan... */
+
+    z0 = 0.0;
+    z1 = zStep;
+
+    r0 = base;
+    r1 = r0 - rStep;
+
+    glBegin(GL_TRIANGLE_FAN);
+
+        glNormal3d(0.0,0.0,-1.0);
+        glVertex3d(0.0,0.0, z0 );
+
+        for (j=0; j<=slices; j++)
+            glVertex3d(cost[j]*r0, sint[j]*r0, z0);
+
+    glEnd();
+
+    /* Cover each stack with a quad strip, except the top stack */
+
+    for( i=0; i<stacks-1; i++ )
+    {
+        glBegin(GL_QUAD_STRIP);
+
+            for(j=0; j<=slices; j++)
+            {
+                glNormal3d(cost[j]*cosn, sint[j]*cosn, sinn);
+                glVertex3d(cost[j]*r0,   sint[j]*r0,   z0  );
+                glVertex3d(cost[j]*r1,   sint[j]*r1,   z1  );
+            }
+
+            z0 = z1; z1 += zStep;
+            r0 = r1; r1 -= rStep;
+
+        glEnd();
+    }
+
+    /* The top stack is covered with individual triangles */
+
+    glBegin(GL_TRIANGLES);
+
+        glNormal3d(cost[0]*sinn, sint[0]*sinn, cosn);
+
+        for (j=0; j<slices; j++)
+        {
+            glVertex3d(cost[j+0]*r0,   sint[j+0]*r0,   z0    );
+            glVertex3d(0,              0,              height);
+            glNormal3d(cost[j+1]*sinn, sint[j+1]*sinn, cosn  );
+            glVertex3d(cost[j+1]*r0,   sint[j+1]*r0,   z0    );
+        }
+
+    glEnd();
+
+    /* Release sin and cos tables */
+
+    free(sint);
+    free(cost);
+}
+
+/*
+ * Draws a wire cone
+ */
+void FGAPIENTRY glutWireCone( GLdouble base, GLdouble height, GLint slices, GLint stacks)
+{
+    int i,j;
+
+    /* Step in z and radius as stacks are drawn. */
+
+    double z = 0.0;
+    double r = base;
+
+    const double zStep = height / ( ( stacks > 0 ) ? stacks : 1 );
+    const double rStep = base / ( ( stacks > 0 ) ? stacks : 1 );
+
+    /* Scaling factors for vertex normals */
+
+    const double cosn = ( height / sqrt ( height * height + base * base ));
+    const double sinn = ( base   / sqrt ( height * height + base * base ));
+
+    /* Pre-computed circle */
+
+    double *sint,*cost;
+
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWireCone" );
+
+    fghCircleTable(&sint,&cost,-slices);
+
+    /* Draw the stacks... */
+
+    for (i=0; i<stacks; i++)
+    {
+        glBegin(GL_LINE_LOOP);
+
+            for( j=0; j<slices; j++ )
+            {
+                glNormal3d(cost[j]*sinn, sint[j]*sinn, cosn);
+                glVertex3d(cost[j]*r,    sint[j]*r,    z   );
+            }
+
+        glEnd();
+
+        z += zStep;
+        r -= rStep;
+    }
+
+    /* Draw the slices */
+
+    r = base;
+
+    glBegin(GL_LINES);
+
+        for (j=0; j<slices; j++)
+        {
+            glNormal3d(cost[j]*sinn, sint[j]*sinn, cosn  );
+            glVertex3d(cost[j]*r,    sint[j]*r,    0.0   );
+            glVertex3d(0.0,          0.0,          height);
+        }
+
+    glEnd();
+
+    /* Release sin and cos tables */
+
+    free(sint);
+    free(cost);
+}
+
+
+/*
+ * Draws a solid cylinder
+ */
+void FGAPIENTRY glutSolidCylinder(GLdouble radius, GLdouble height, GLint slices, GLint stacks)
+{
+    int i,j;
+
+    /* Step in z and radius as stacks are drawn. */
+
+    double z0,z1;
+    const double zStep = height / ( ( stacks > 0 ) ? stacks : 1 );
+
+    /* Pre-computed circle */
+
+    double *sint,*cost;
+
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSolidCylinder" );
+
+    fghCircleTable(&sint,&cost,-slices);
+
+    /* Cover the base and top */
+
+    glBegin(GL_TRIANGLE_FAN);
+        glNormal3d(0.0, 0.0, -1.0 );
+        glVertex3d(0.0, 0.0,  0.0 );
+        for (j=0; j<=slices; j++)
+          glVertex3d(cost[j]*radius, sint[j]*radius, 0.0);
+    glEnd();
+
+    glBegin(GL_TRIANGLE_FAN);
+        glNormal3d(0.0, 0.0, 1.0   );
+        glVertex3d(0.0, 0.0, height);
+        for (j=slices; j>=0; j--)
+          glVertex3d(cost[j]*radius, sint[j]*radius, height);
+    glEnd();
+
+    /* Do the stacks */
+
+    z0 = 0.0;
+    z1 = zStep;
+
+    for (i=1; i<=stacks; i++)
+    {
+        if (i==stacks)
+            z1 = height;
+
+        glBegin(GL_QUAD_STRIP);
+            for (j=0; j<=slices; j++ )
+            {
+                glNormal3d(cost[j],        sint[j],        0.0 );
+                glVertex3d(cost[j]*radius, sint[j]*radius, z0  );
+                glVertex3d(cost[j]*radius, sint[j]*radius, z1  );
+            }
+        glEnd();
+
+        z0 = z1; z1 += zStep;
+    }
+
+    /* Release sin and cos tables */
+
+    free(sint);
+    free(cost);
+}
+
+/*
+ * Draws a wire cylinder
+ */
+void FGAPIENTRY glutWireCylinder(GLdouble radius, GLdouble height, GLint slices, GLint stacks)
+{
+    int i,j;
+
+    /* Step in z and radius as stacks are drawn. */
+
+          double z = 0.0;
+    const double zStep = height / ( ( stacks > 0 ) ? stacks : 1 );
+
+    /* Pre-computed circle */
+
+    double *sint,*cost;
+
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWireCylinder" );
+
+    fghCircleTable(&sint,&cost,-slices);
+
+    /* Draw the stacks... */
+
+    for (i=0; i<=stacks; i++)
+    {
+        if (i==stacks)
+            z = height;
+
+        glBegin(GL_LINE_LOOP);
+
+            for( j=0; j<slices; j++ )
+            {
+                glNormal3d(cost[j],        sint[j],        0.0);
+                glVertex3d(cost[j]*radius, sint[j]*radius, z  );
+            }
+
+        glEnd();
+
+        z += zStep;
+    }
+
+    /* Draw the slices */
+
+    glBegin(GL_LINES);
+
+        for (j=0; j<slices; j++)
+        {
+            glNormal3d(cost[j],        sint[j],        0.0   );
+            glVertex3d(cost[j]*radius, sint[j]*radius, 0.0   );
+            glVertex3d(cost[j]*radius, sint[j]*radius, height);
+        }
+
+    glEnd();
+
+    /* Release sin and cos tables */
+
+    free(sint);
+    free(cost);
+}
+
+/*
+ * Draws a wire torus
+ */
+void FGAPIENTRY glutWireTorus( GLdouble dInnerRadius, GLdouble dOuterRadius, GLint nSides, GLint nRings )
+{
+  double  iradius = dInnerRadius, oradius = dOuterRadius, phi, psi, dpsi, dphi;
+  double *vertex, *normal;
+  int    i, j;
+  double spsi, cpsi, sphi, cphi ;
+
+  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWireTorus" );
+
+  if ( nSides < 1 ) nSides = 1;
+  if ( nRings < 1 ) nRings = 1;
+
+  /* Allocate the vertices array */
+  vertex = (double *)calloc( sizeof(double), 3 * nSides * nRings );
+  normal = (double *)calloc( sizeof(double), 3 * nSides * nRings );
+
+  glPushMatrix();
+
+  dpsi =  2.0 * M_PI / (double)nRings ;
+  dphi = -2.0 * M_PI / (double)nSides ;
+  psi  = 0.0;
+
+  for( j=0; j<nRings; j++ )
+  {
+    cpsi = cos ( psi ) ;
+    spsi = sin ( psi ) ;
+    phi = 0.0;
+
+    for( i=0; i<nSides; i++ )
+    {
+      int offset = 3 * ( j * nSides + i ) ;
+      cphi = cos ( phi ) ;
+      sphi = sin ( phi ) ;
+      *(vertex + offset + 0) = cpsi * ( oradius + cphi * iradius ) ;
+      *(vertex + offset + 1) = spsi * ( oradius + cphi * iradius ) ;
+      *(vertex + offset + 2) =                    sphi * iradius  ;
+      *(normal + offset + 0) = cpsi * cphi ;
+      *(normal + offset + 1) = spsi * cphi ;
+      *(normal + offset + 2) =        sphi ;
+      phi += dphi;
+    }
+
+    psi += dpsi;
+  }
+
+  for( i=0; i<nSides; i++ )
+  {
+    glBegin( GL_LINE_LOOP );
+
+    for( j=0; j<nRings; j++ )
+    {
+      int offset = 3 * ( j * nSides + i ) ;
+      glNormal3dv( normal + offset );
+      glVertex3dv( vertex + offset );
+    }
+
+    glEnd();
+  }
+
+  for( j=0; j<nRings; j++ )
+  {
+    glBegin(GL_LINE_LOOP);
+
+    for( i=0; i<nSides; i++ )
+    {
+      int offset = 3 * ( j * nSides + i ) ;
+      glNormal3dv( normal + offset );
+      glVertex3dv( vertex + offset );
+    }
+
+    glEnd();
+  }
+
+  free ( vertex ) ;
+  free ( normal ) ;
+  glPopMatrix();
+}
+
+/*
+ * Draws a solid torus
+ */
+void FGAPIENTRY glutSolidTorus( GLdouble dInnerRadius, GLdouble dOuterRadius, GLint nSides, GLint nRings )
+{
+  double  iradius = dInnerRadius, oradius = dOuterRadius, phi, psi, dpsi, dphi;
+  double *vertex, *normal;
+  int    i, j;
+  double spsi, cpsi, sphi, cphi ;
+
+  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSolidTorus" );
+
+  if ( nSides < 1 ) nSides = 1;
+  if ( nRings < 1 ) nRings = 1;
+
+  /* Increment the number of sides and rings to allow for one more point than surface */
+  nSides ++ ;
+  nRings ++ ;
+
+  /* Allocate the vertices array */
+  vertex = (double *)calloc( sizeof(double), 3 * nSides * nRings );
+  normal = (double *)calloc( sizeof(double), 3 * nSides * nRings );
+
+  glPushMatrix();
+
+  dpsi =  2.0 * M_PI / (double)(nRings - 1) ;
+  dphi = -2.0 * M_PI / (double)(nSides - 1) ;
+  psi  = 0.0;
+
+  for( j=0; j<nRings; j++ )
+  {
+    cpsi = cos ( psi ) ;
+    spsi = sin ( psi ) ;
+    phi = 0.0;
+
+    for( i=0; i<nSides; i++ )
+    {
+      int offset = 3 * ( j * nSides + i ) ;
+      cphi = cos ( phi ) ;
+      sphi = sin ( phi ) ;
+      *(vertex + offset + 0) = cpsi * ( oradius + cphi * iradius ) ;
+      *(vertex + offset + 1) = spsi * ( oradius + cphi * iradius ) ;
+      *(vertex + offset + 2) =                    sphi * iradius  ;
+      *(normal + offset + 0) = cpsi * cphi ;
+      *(normal + offset + 1) = spsi * cphi ;
+      *(normal + offset + 2) =        sphi ;
+      phi += dphi;
+    }
+
+    psi += dpsi;
+  }
+
+    glBegin( GL_QUADS );
+  for( i=0; i<nSides-1; i++ )
+  {
+    for( j=0; j<nRings-1; j++ )
+    {
+      int offset = 3 * ( j * nSides + i ) ;
+      glNormal3dv( normal + offset );
+      glVertex3dv( vertex + offset );
+      glNormal3dv( normal + offset + 3 );
+      glVertex3dv( vertex + offset + 3 );
+      glNormal3dv( normal + offset + 3 * nSides + 3 );
+      glVertex3dv( vertex + offset + 3 * nSides + 3 );
+      glNormal3dv( normal + offset + 3 * nSides );
+      glVertex3dv( vertex + offset + 3 * nSides );
+    }
+  }
+
+  glEnd();
+
+  free ( vertex ) ;
+  free ( normal ) ;
+  glPopMatrix();
+}
+
+/*
+ *
+ */
+void FGAPIENTRY glutWireDodecahedron( void )
+{
+  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWireDodecahedron" );
+
+  /* Magic Numbers:  It is possible to create a dodecahedron by attaching two pentagons to each face of
+   * of a cube.  The coordinates of the points are:
+   *   (+-x,0, z); (+-1, 1, 1); (0, z, x )
+   * where x = (-1 + sqrt(5))/2, z = (1 + sqrt(5))/2  or
+   *       x = 0.61803398875 and z = 1.61803398875.
+   */
+  glBegin ( GL_LINE_LOOP ) ;
+  glNormal3d (  0.0,  0.525731112119,  0.850650808354 ) ; glVertex3d (  0.0,  1.61803398875,  0.61803398875 ) ; glVertex3d ( -1.0,  1.0,  1.0 ) ; glVertex3d ( -0.61803398875, 0.0,  1.61803398875 ) ; glVertex3d (  0.61803398875, 0.0,  1.61803398875 ) ; glVertex3d (  1.0,  1.0,  1.0 ) ;
+  glEnd () ;
+  glBegin ( GL_LINE_LOOP ) ;
+  glNormal3d (  0.0,  0.525731112119, -0.850650808354 ) ; glVertex3d (  0.0,  1.61803398875, -0.61803398875 ) ; glVertex3d (  1.0,  1.0, -1.0 ) ; glVertex3d (  0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( -0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( -1.0,  1.0, -1.0 ) ;
+  glEnd () ;
+  glBegin ( GL_LINE_LOOP ) ;
+  glNormal3d (  0.0, -0.525731112119,  0.850650808354 ) ; glVertex3d (  0.0, -1.61803398875,  0.61803398875 ) ; glVertex3d (  1.0, -1.0,  1.0 ) ; glVertex3d (  0.61803398875, 0.0,  1.61803398875 ) ; glVertex3d ( -0.61803398875, 0.0,  1.61803398875 ) ; glVertex3d ( -1.0, -1.0,  1.0 ) ;
+  glEnd () ;
+  glBegin ( GL_LINE_LOOP ) ;
+  glNormal3d (  0.0, -0.525731112119, -0.850650808354 ) ; glVertex3d (  0.0, -1.61803398875, -0.61803398875 ) ; glVertex3d ( -1.0, -1.0, -1.0 ) ; glVertex3d ( -0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d (  0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d (  1.0, -1.0, -1.0 ) ;
+  glEnd () ;
+
+  glBegin ( GL_LINE_LOOP ) ;
+  glNormal3d (  0.850650808354,  0.0,  0.525731112119 ) ; glVertex3d (  0.61803398875,  0.0,  1.61803398875 ) ; glVertex3d (  1.0, -1.0,  1.0 ) ; glVertex3d (  1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d (  1.61803398875,  0.61803398875, 0.0 ) ; glVertex3d (  1.0,  1.0,  1.0 ) ;
+  glEnd () ;
+  glBegin ( GL_LINE_LOOP ) ;
+  glNormal3d ( -0.850650808354,  0.0,  0.525731112119 ) ; glVertex3d ( -0.61803398875,  0.0,  1.61803398875 ) ; glVertex3d ( -1.0,  1.0,  1.0 ) ; glVertex3d ( -1.61803398875,  0.61803398875, 0.0 ) ; glVertex3d ( -1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( -1.0, -1.0,  1.0 ) ;
+  glEnd () ;
+  glBegin ( GL_LINE_LOOP ) ;
+  glNormal3d (  0.850650808354,  0.0, -0.525731112119 ) ; glVertex3d (  0.61803398875,  0.0, -1.61803398875 ) ; glVertex3d (  1.0,  1.0, -1.0 ) ; glVertex3d (  1.61803398875,  0.61803398875, 0.0 ) ; glVertex3d (  1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d (  1.0, -1.0, -1.0 ) ;
+  glEnd () ;
+  glBegin ( GL_LINE_LOOP ) ;
+  glNormal3d ( -0.850650808354,  0.0, -0.525731112119 ) ; glVertex3d ( -0.61803398875,  0.0, -1.61803398875 ) ; glVertex3d ( -1.0, -1.0, -1.0 ) ; glVertex3d ( -1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( -1.61803398875,  0.61803398875, 0.0 ) ; glVertex3d ( -1.0,  1.0, -1.0 ) ;
+  glEnd () ;
+
+  glBegin ( GL_LINE_LOOP ) ;
+  glNormal3d (  0.525731112119,  0.850650808354,  0.0 ) ; glVertex3d (  1.61803398875,  0.61803398875,  0.0 ) ; glVertex3d (  1.0,  1.0, -1.0 ) ; glVertex3d ( 0.0,  1.61803398875, -0.61803398875 ) ; glVertex3d ( 0.0,  1.61803398875,  0.61803398875 ) ; glVertex3d (  1.0,  1.0,  1.0 ) ;
+  glEnd () ;
+  glBegin ( GL_LINE_LOOP ) ;
+  glNormal3d (  0.525731112119, -0.850650808354,  0.0 ) ; glVertex3d (  1.61803398875, -0.61803398875,  0.0 ) ; glVertex3d (  1.0, -1.0,  1.0 ) ; glVertex3d ( 0.0, -1.61803398875,  0.61803398875 ) ; glVertex3d ( 0.0, -1.61803398875, -0.61803398875 ) ; glVertex3d (  1.0, -1.0, -1.0 ) ;
+  glEnd () ;
+  glBegin ( GL_LINE_LOOP ) ;
+  glNormal3d ( -0.525731112119,  0.850650808354,  0.0 ) ; glVertex3d ( -1.61803398875,  0.61803398875,  0.0 ) ; glVertex3d ( -1.0,  1.0,  1.0 ) ; glVertex3d ( 0.0,  1.61803398875,  0.61803398875 ) ; glVertex3d ( 0.0,  1.61803398875, -0.61803398875 ) ; glVertex3d ( -1.0,  1.0, -1.0 ) ;
+  glEnd () ;
+  glBegin ( GL_LINE_LOOP ) ;
+  glNormal3d ( -0.525731112119, -0.850650808354,  0.0 ) ; glVertex3d ( -1.61803398875, -0.61803398875,  0.0 ) ; glVertex3d ( -1.0, -1.0, -1.0 ) ; glVertex3d ( 0.0, -1.61803398875, -0.61803398875 ) ; glVertex3d ( 0.0, -1.61803398875,  0.61803398875 ) ; glVertex3d ( -1.0, -1.0,  1.0 ) ;
+  glEnd () ;
+}
+
+/*
+ *
+ */
+void FGAPIENTRY glutSolidDodecahedron( void )
+{
+  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSolidDodecahedron" );
+
+  /* Magic Numbers:  It is possible to create a dodecahedron by attaching two pentagons to each face of
+   * of a cube.  The coordinates of the points are:
+   *   (+-x,0, z); (+-1, 1, 1); (0, z, x )
+   * where x = (-1 + sqrt(5))/2, z = (1 + sqrt(5))/2 or
+   *       x = 0.61803398875 and z = 1.61803398875.
+   */
+  glBegin ( GL_POLYGON ) ;
+  glNormal3d (  0.0,  0.525731112119,  0.850650808354 ) ; glVertex3d (  0.0,  1.61803398875,  0.61803398875 ) ; glVertex3d ( -1.0,  1.0,  1.0 ) ; glVertex3d ( -0.61803398875, 0.0,  1.61803398875 ) ; glVertex3d (  0.61803398875, 0.0,  1.61803398875 ) ; glVertex3d (  1.0,  1.0,  1.0 ) ;
+  glEnd () ;
+  glBegin ( GL_POLYGON ) ;
+  glNormal3d (  0.0,  0.525731112119, -0.850650808354 ) ; glVertex3d (  0.0,  1.61803398875, -0.61803398875 ) ; glVertex3d (  1.0,  1.0, -1.0 ) ; glVertex3d (  0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( -0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d ( -1.0,  1.0, -1.0 ) ;
+  glEnd () ;
+  glBegin ( GL_POLYGON ) ;
+  glNormal3d (  0.0, -0.525731112119,  0.850650808354 ) ; glVertex3d (  0.0, -1.61803398875,  0.61803398875 ) ; glVertex3d (  1.0, -1.0,  1.0 ) ; glVertex3d (  0.61803398875, 0.0,  1.61803398875 ) ; glVertex3d ( -0.61803398875, 0.0,  1.61803398875 ) ; glVertex3d ( -1.0, -1.0,  1.0 ) ;
+  glEnd () ;
+  glBegin ( GL_POLYGON ) ;
+  glNormal3d (  0.0, -0.525731112119, -0.850650808354 ) ; glVertex3d (  0.0, -1.61803398875, -0.61803398875 ) ; glVertex3d ( -1.0, -1.0, -1.0 ) ; glVertex3d ( -0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d (  0.61803398875, 0.0, -1.61803398875 ) ; glVertex3d (  1.0, -1.0, -1.0 ) ;
+  glEnd () ;
+
+  glBegin ( GL_POLYGON ) ;
+  glNormal3d (  0.850650808354,  0.0,  0.525731112119 ) ; glVertex3d (  0.61803398875,  0.0,  1.61803398875 ) ; glVertex3d (  1.0, -1.0,  1.0 ) ; glVertex3d (  1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d (  1.61803398875,  0.61803398875, 0.0 ) ; glVertex3d (  1.0,  1.0,  1.0 ) ;
+  glEnd () ;
+  glBegin ( GL_POLYGON ) ;
+  glNormal3d ( -0.850650808354,  0.0,  0.525731112119 ) ; glVertex3d ( -0.61803398875,  0.0,  1.61803398875 ) ; glVertex3d ( -1.0,  1.0,  1.0 ) ; glVertex3d ( -1.61803398875,  0.61803398875, 0.0 ) ; glVertex3d ( -1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( -1.0, -1.0,  1.0 ) ;
+  glEnd () ;
+  glBegin ( GL_POLYGON ) ;
+  glNormal3d (  0.850650808354,  0.0, -0.525731112119 ) ; glVertex3d (  0.61803398875,  0.0, -1.61803398875 ) ; glVertex3d (  1.0,  1.0, -1.0 ) ; glVertex3d (  1.61803398875,  0.61803398875, 0.0 ) ; glVertex3d (  1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d (  1.0, -1.0, -1.0 ) ;
+  glEnd () ;
+  glBegin ( GL_POLYGON ) ;
+  glNormal3d ( -0.850650808354,  0.0, -0.525731112119 ) ; glVertex3d ( -0.61803398875,  0.0, -1.61803398875 ) ; glVertex3d ( -1.0, -1.0, -1.0 ) ; glVertex3d ( -1.61803398875, -0.61803398875, 0.0 ) ; glVertex3d ( -1.61803398875,  0.61803398875, 0.0 ) ; glVertex3d ( -1.0,  1.0, -1.0 ) ;
+  glEnd () ;
+
+  glBegin ( GL_POLYGON ) ;
+  glNormal3d (  0.525731112119,  0.850650808354,  0.0 ) ; glVertex3d (  1.61803398875,  0.61803398875,  0.0 ) ; glVertex3d (  1.0,  1.0, -1.0 ) ; glVertex3d ( 0.0,  1.61803398875, -0.61803398875 ) ; glVertex3d ( 0.0,  1.61803398875,  0.61803398875 ) ; glVertex3d (  1.0,  1.0,  1.0 ) ;
+  glEnd () ;
+  glBegin ( GL_POLYGON ) ;
+  glNormal3d (  0.525731112119, -0.850650808354,  0.0 ) ; glVertex3d (  1.61803398875, -0.61803398875,  0.0 ) ; glVertex3d (  1.0, -1.0,  1.0 ) ; glVertex3d ( 0.0, -1.61803398875,  0.61803398875 ) ; glVertex3d ( 0.0, -1.61803398875, -0.61803398875 ) ; glVertex3d (  1.0, -1.0, -1.0 ) ;
+  glEnd () ;
+  glBegin ( GL_POLYGON ) ;
+  glNormal3d ( -0.525731112119,  0.850650808354,  0.0 ) ; glVertex3d ( -1.61803398875,  0.61803398875,  0.0 ) ; glVertex3d ( -1.0,  1.0,  1.0 ) ; glVertex3d ( 0.0,  1.61803398875,  0.61803398875 ) ; glVertex3d ( 0.0,  1.61803398875, -0.61803398875 ) ; glVertex3d ( -1.0,  1.0, -1.0 ) ;
+  glEnd () ;
+  glBegin ( GL_POLYGON ) ;
+  glNormal3d ( -0.525731112119, -0.850650808354,  0.0 ) ; glVertex3d ( -1.61803398875, -0.61803398875,  0.0 ) ; glVertex3d ( -1.0, -1.0, -1.0 ) ; glVertex3d ( 0.0, -1.61803398875, -0.61803398875 ) ; glVertex3d ( 0.0, -1.61803398875,  0.61803398875 ) ; glVertex3d ( -1.0, -1.0,  1.0 ) ;
+  glEnd () ;
+}
+
+/*
+ *
+ */
+void FGAPIENTRY glutWireOctahedron( void )
+{
+  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWireOctahedron" );
+
+#define RADIUS    1.0f
+  glBegin( GL_LINE_LOOP );
+    glNormal3d( 0.577350269189, 0.577350269189, 0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, RADIUS, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS );
+    glNormal3d( 0.577350269189, 0.577350269189,-0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS ); glVertex3d( 0.0, RADIUS, 0.0 );
+    glNormal3d( 0.577350269189,-0.577350269189, 0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS ); glVertex3d( 0.0,-RADIUS, 0.0 );
+    glNormal3d( 0.577350269189,-0.577350269189,-0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0,-RADIUS, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS );
+    glNormal3d(-0.577350269189, 0.577350269189, 0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS ); glVertex3d( 0.0, RADIUS, 0.0 );
+    glNormal3d(-0.577350269189, 0.577350269189,-0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, RADIUS, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS );
+    glNormal3d(-0.577350269189,-0.577350269189, 0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0,-RADIUS, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS );
+    glNormal3d(-0.577350269189,-0.577350269189,-0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS ); glVertex3d( 0.0,-RADIUS, 0.0 );
+  glEnd();
+#undef RADIUS
+}
+
+/*
+ *
+ */
+void FGAPIENTRY glutSolidOctahedron( void )
+{
+  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSolidOctahedron" );
+
+#define RADIUS    1.0f
+  glBegin( GL_TRIANGLES );
+    glNormal3d( 0.577350269189, 0.577350269189, 0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, RADIUS, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS );
+    glNormal3d( 0.577350269189, 0.577350269189,-0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS ); glVertex3d( 0.0, RADIUS, 0.0 );
+    glNormal3d( 0.577350269189,-0.577350269189, 0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS ); glVertex3d( 0.0,-RADIUS, 0.0 );
+    glNormal3d( 0.577350269189,-0.577350269189,-0.577350269189); glVertex3d( RADIUS, 0.0, 0.0 ); glVertex3d( 0.0,-RADIUS, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS );
+    glNormal3d(-0.577350269189, 0.577350269189, 0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS ); glVertex3d( 0.0, RADIUS, 0.0 );
+    glNormal3d(-0.577350269189, 0.577350269189,-0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, RADIUS, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS );
+    glNormal3d(-0.577350269189,-0.577350269189, 0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0,-RADIUS, 0.0 ); glVertex3d( 0.0, 0.0, RADIUS );
+    glNormal3d(-0.577350269189,-0.577350269189,-0.577350269189); glVertex3d(-RADIUS, 0.0, 0.0 ); glVertex3d( 0.0, 0.0,-RADIUS ); glVertex3d( 0.0,-RADIUS, 0.0 );
+  glEnd();
+#undef RADIUS
+}
+
+/* Magic Numbers:  r0 = ( 1, 0, 0 )
+ *                 r1 = ( -1/3, 2 sqrt(2) / 3, 0 )
+ *                 r2 = ( -1/3, -sqrt(2) / 3, sqrt(6) / 3 )
+ *                 r3 = ( -1/3, -sqrt(2) / 3, -sqrt(6) / 3 )
+ * |r0| = |r1| = |r2| = |r3| = 1
+ * Distance between any two points is 2 sqrt(6) / 3
+ *
+ * Normals:  The unit normals are simply the negative of the coordinates of the point not on the surface.
+ */
+
+#define NUM_TETR_FACES     4
+
+static GLdouble tet_r[4][3] = { {             1.0,             0.0,             0.0 },
+                                { -0.333333333333,  0.942809041582,             0.0 },
+                                { -0.333333333333, -0.471404520791,  0.816496580928 },
+                                { -0.333333333333, -0.471404520791, -0.816496580928 } } ;
+
+static GLint tet_i[4][3] =  /* Vertex indices */
+{
+  { 1, 3, 2 }, { 0, 2, 3 }, { 0, 3, 1 }, { 0, 1, 2 }
+} ;
+
+/*
+ *
+ */
+void FGAPIENTRY glutWireTetrahedron( void )
+{
+  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWireTetrahedron" );
+
+  glBegin( GL_LINE_LOOP ) ;
+    glNormal3d ( -tet_r[0][0], -tet_r[0][1], -tet_r[0][2] ) ; glVertex3dv ( tet_r[1] ) ; glVertex3dv ( tet_r[3] ) ; glVertex3dv ( tet_r[2] ) ;
+    glNormal3d ( -tet_r[1][0], -tet_r[1][1], -tet_r[1][2] ) ; glVertex3dv ( tet_r[0] ) ; glVertex3dv ( tet_r[2] ) ; glVertex3dv ( tet_r[3] ) ;
+    glNormal3d ( -tet_r[2][0], -tet_r[2][1], -tet_r[2][2] ) ; glVertex3dv ( tet_r[0] ) ; glVertex3dv ( tet_r[3] ) ; glVertex3dv ( tet_r[1] ) ;
+    glNormal3d ( -tet_r[3][0], -tet_r[3][1], -tet_r[3][2] ) ; glVertex3dv ( tet_r[0] ) ; glVertex3dv ( tet_r[1] ) ; glVertex3dv ( tet_r[2] ) ;
+  glEnd() ;
+}
+
+/*
+ *
+ */
+void FGAPIENTRY glutSolidTetrahedron( void )
+{
+  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSolidTetrahedron" );
+
+  glBegin( GL_TRIANGLES ) ;
+    glNormal3d ( -tet_r[0][0], -tet_r[0][1], -tet_r[0][2] ) ; glVertex3dv ( tet_r[1] ) ; glVertex3dv ( tet_r[3] ) ; glVertex3dv ( tet_r[2] ) ;
+    glNormal3d ( -tet_r[1][0], -tet_r[1][1], -tet_r[1][2] ) ; glVertex3dv ( tet_r[0] ) ; glVertex3dv ( tet_r[2] ) ; glVertex3dv ( tet_r[3] ) ;
+    glNormal3d ( -tet_r[2][0], -tet_r[2][1], -tet_r[2][2] ) ; glVertex3dv ( tet_r[0] ) ; glVertex3dv ( tet_r[3] ) ; glVertex3dv ( tet_r[1] ) ;
+    glNormal3d ( -tet_r[3][0], -tet_r[3][1], -tet_r[3][2] ) ; glVertex3dv ( tet_r[0] ) ; glVertex3dv ( tet_r[1] ) ; glVertex3dv ( tet_r[2] ) ;
+  glEnd() ;
+}
+
+/*
+ *
+ */
+static double icos_r[12][3] = {
+    {  1.0,             0.0,             0.0            },
+    {  0.447213595500,  0.894427191000,  0.0            },
+    {  0.447213595500,  0.276393202252,  0.850650808354 },
+    {  0.447213595500, -0.723606797748,  0.525731112119 },
+    {  0.447213595500, -0.723606797748, -0.525731112119 },
+    {  0.447213595500,  0.276393202252, -0.850650808354 },
+    { -0.447213595500, -0.894427191000,  0.0 },
+    { -0.447213595500, -0.276393202252,  0.850650808354 },
+    { -0.447213595500,  0.723606797748,  0.525731112119 },
+    { -0.447213595500,  0.723606797748, -0.525731112119 },
+    { -0.447213595500, -0.276393202252, -0.850650808354 },
+    { -1.0,             0.0,             0.0            }
+};
+
+static int icos_v [20][3] = {
+    {  0,  1,  2 },
+    {  0,  2,  3 },
+    {  0,  3,  4 },
+    {  0,  4,  5 },
+    {  0,  5,  1 },
+    {  1,  8,  2 },
+    {  2,  7,  3 },
+    {  3,  6,  4 },
+    {  4, 10,  5 },
+    {  5,  9,  1 },
+    {  1,  9,  8 },
+    {  2,  8,  7 },
+    {  3,  7,  6 },
+    {  4,  6, 10 },
+    {  5, 10,  9 },
+    { 11,  9, 10 },
+    { 11,  8,  9 },
+    { 11,  7,  8 },
+    { 11,  6,  7 },
+    { 11, 10,  6 }
+};
+
+void FGAPIENTRY glutWireIcosahedron( void )
+{
+  int i ;
+
+  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWireIcosahedron" );
+
+  for ( i = 0; i < 20; i++ )
+  {
+    double normal[3] ;
+    normal[0] = ( icos_r[icos_v[i][1]][1] - icos_r[icos_v[i][0]][1] ) * ( icos_r[icos_v[i][2]][2] - icos_r[icos_v[i][0]][2] ) - ( icos_r[icos_v[i][1]][2] - icos_r[icos_v[i][0]][2] ) * ( icos_r[icos_v[i][2]][1] - icos_r[icos_v[i][0]][1] ) ;
+    normal[1] = ( icos_r[icos_v[i][1]][2] - icos_r[icos_v[i][0]][2] ) * ( icos_r[icos_v[i][2]][0] - icos_r[icos_v[i][0]][0] ) - ( icos_r[icos_v[i][1]][0] - icos_r[icos_v[i][0]][0] ) * ( icos_r[icos_v[i][2]][2] - icos_r[icos_v[i][0]][2] ) ;
+    normal[2] = ( icos_r[icos_v[i][1]][0] - icos_r[icos_v[i][0]][0] ) * ( icos_r[icos_v[i][2]][1] - icos_r[icos_v[i][0]][1] ) - ( icos_r[icos_v[i][1]][1] - icos_r[icos_v[i][0]][1] ) * ( icos_r[icos_v[i][2]][0] - icos_r[icos_v[i][0]][0] ) ;
+    glBegin ( GL_LINE_LOOP ) ;
+      glNormal3dv ( normal ) ;
+      glVertex3dv ( icos_r[icos_v[i][0]] ) ;
+      glVertex3dv ( icos_r[icos_v[i][1]] ) ;
+      glVertex3dv ( icos_r[icos_v[i][2]] ) ;
+    glEnd () ;
+  }
+}
+
+/*
+ *
+ */
+void FGAPIENTRY glutSolidIcosahedron( void )
+{
+  int i ;
+
+  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSolidIcosahedron" );
+
+  glBegin ( GL_TRIANGLES ) ;
+  for ( i = 0; i < 20; i++ )
+  {
+    double normal[3] ;
+    normal[0] = ( icos_r[icos_v[i][1]][1] - icos_r[icos_v[i][0]][1] ) * ( icos_r[icos_v[i][2]][2] - icos_r[icos_v[i][0]][2] ) - ( icos_r[icos_v[i][1]][2] - icos_r[icos_v[i][0]][2] ) * ( icos_r[icos_v[i][2]][1] - icos_r[icos_v[i][0]][1] ) ;
+    normal[1] = ( icos_r[icos_v[i][1]][2] - icos_r[icos_v[i][0]][2] ) * ( icos_r[icos_v[i][2]][0] - icos_r[icos_v[i][0]][0] ) - ( icos_r[icos_v[i][1]][0] - icos_r[icos_v[i][0]][0] ) * ( icos_r[icos_v[i][2]][2] - icos_r[icos_v[i][0]][2] ) ;
+    normal[2] = ( icos_r[icos_v[i][1]][0] - icos_r[icos_v[i][0]][0] ) * ( icos_r[icos_v[i][2]][1] - icos_r[icos_v[i][0]][1] ) - ( icos_r[icos_v[i][1]][1] - icos_r[icos_v[i][0]][1] ) * ( icos_r[icos_v[i][2]][0] - icos_r[icos_v[i][0]][0] ) ;
+      glNormal3dv ( normal ) ;
+      glVertex3dv ( icos_r[icos_v[i][0]] ) ;
+      glVertex3dv ( icos_r[icos_v[i][1]] ) ;
+      glVertex3dv ( icos_r[icos_v[i][2]] ) ;
+  }
+
+  glEnd () ;
+}
+
+/*
+ *
+ */
+static double rdod_r[14][3] = {
+    {  0.0,             0.0,             1.0 },
+    {  0.707106781187,  0.000000000000,  0.5 },
+    {  0.000000000000,  0.707106781187,  0.5 },
+    { -0.707106781187,  0.000000000000,  0.5 },
+    {  0.000000000000, -0.707106781187,  0.5 },
+    {  0.707106781187,  0.707106781187,  0.0 },
+    { -0.707106781187,  0.707106781187,  0.0 },
+    { -0.707106781187, -0.707106781187,  0.0 },
+    {  0.707106781187, -0.707106781187,  0.0 },
+    {  0.707106781187,  0.000000000000, -0.5 },
+    {  0.000000000000,  0.707106781187, -0.5 },
+    { -0.707106781187,  0.000000000000, -0.5 },
+    {  0.000000000000, -0.707106781187, -0.5 },
+    {  0.0,             0.0,            -1.0 }
+} ;
+
+static int rdod_v [12][4] = {
+    { 0,  1,  5,  2 },
+    { 0,  2,  6,  3 },
+    { 0,  3,  7,  4 },
+    { 0,  4,  8,  1 },
+    { 5, 10,  6,  2 },
+    { 6, 11,  7,  3 },
+    { 7, 12,  8,  4 },
+    { 8,  9,  5,  1 },
+    { 5,  9, 13, 10 },
+    { 6, 10, 13, 11 },
+    { 7, 11, 13, 12 },
+    { 8, 12, 13,  9 }
+};
+
+static double rdod_n[12][3] = {
+    {  0.353553390594,  0.353553390594,  0.5 },
+    { -0.353553390594,  0.353553390594,  0.5 },
+    { -0.353553390594, -0.353553390594,  0.5 },
+    {  0.353553390594, -0.353553390594,  0.5 },
+    {  0.000000000000,  1.000000000000,  0.0 },
+    { -1.000000000000,  0.000000000000,  0.0 },
+    {  0.000000000000, -1.000000000000,  0.0 },
+    {  1.000000000000,  0.000000000000,  0.0 },
+    {  0.353553390594,  0.353553390594, -0.5 },
+    { -0.353553390594,  0.353553390594, -0.5 },
+    { -0.353553390594, -0.353553390594, -0.5 },
+    {  0.353553390594, -0.353553390594, -0.5 }
+};
+
+void FGAPIENTRY glutWireRhombicDodecahedron( void )
+{
+  int i ;
+
+  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWireRhombicDodecahedron" );
+
+  for ( i = 0; i < 12; i++ )
+  {
+    glBegin ( GL_LINE_LOOP ) ;
+      glNormal3dv ( rdod_n[i] ) ;
+      glVertex3dv ( rdod_r[rdod_v[i][0]] ) ;
+      glVertex3dv ( rdod_r[rdod_v[i][1]] ) ;
+      glVertex3dv ( rdod_r[rdod_v[i][2]] ) ;
+      glVertex3dv ( rdod_r[rdod_v[i][3]] ) ;
+    glEnd () ;
+  }
+}
+
+/*
+ *
+ */
+void FGAPIENTRY glutSolidRhombicDodecahedron( void )
+{
+  int i ;
+
+  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSolidRhombicDodecahedron" );
+
+  glBegin ( GL_QUADS ) ;
+  for ( i = 0; i < 12; i++ )
+  {
+      glNormal3dv ( rdod_n[i] ) ;
+      glVertex3dv ( rdod_r[rdod_v[i][0]] ) ;
+      glVertex3dv ( rdod_r[rdod_v[i][1]] ) ;
+      glVertex3dv ( rdod_r[rdod_v[i][2]] ) ;
+      glVertex3dv ( rdod_r[rdod_v[i][3]] ) ;
+  }
+
+  glEnd () ;
+}
+
+void FGAPIENTRY glutWireSierpinskiSponge ( int num_levels, GLdouble offset[3], GLdouble scale )
+{
+  int i, j ;
+
+  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWireSierpinskiSponge" );
+
+  if ( num_levels == 0 )
+  {
+
+    for ( i = 0 ; i < NUM_TETR_FACES ; i++ )
+    {
+      glBegin ( GL_LINE_LOOP ) ;
+      glNormal3d ( -tet_r[i][0], -tet_r[i][1], -tet_r[i][2] ) ;
+      for ( j = 0; j < 3; j++ )
+      {
+        double x = offset[0] + scale * tet_r[tet_i[i][j]][0] ;
+        double y = offset[1] + scale * tet_r[tet_i[i][j]][1] ;
+        double z = offset[2] + scale * tet_r[tet_i[i][j]][2] ;
+        glVertex3d ( x, y, z ) ;
+      }
+
+      glEnd () ;
+    }
+  }
+  else if ( num_levels > 0 )
+  {
+    GLdouble local_offset[3] ;  /* Use a local variable to avoid buildup of roundoff errors */
+    num_levels -- ;
+    scale /= 2.0 ;
+    for ( i = 0 ; i < NUM_TETR_FACES ; i++ )
+    {
+      local_offset[0] = offset[0] + scale * tet_r[i][0] ;
+      local_offset[1] = offset[1] + scale * tet_r[i][1] ;
+      local_offset[2] = offset[2] + scale * tet_r[i][2] ;
+      glutWireSierpinskiSponge ( num_levels, local_offset, scale ) ;
+    }
+  }
+}
+
+void FGAPIENTRY glutSolidSierpinskiSponge ( int num_levels, GLdouble offset[3], GLdouble scale )
+{
+  int i, j ;
+
+  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSolidSierpinskiSponge" );
+
+  if ( num_levels == 0 )
+  {
+    glBegin ( GL_TRIANGLES ) ;
+
+    for ( i = 0 ; i < NUM_TETR_FACES ; i++ )
+    {
+      glNormal3d ( -tet_r[i][0], -tet_r[i][1], -tet_r[i][2] ) ;
+      for ( j = 0; j < 3; j++ )
+      {
+        double x = offset[0] + scale * tet_r[tet_i[i][j]][0] ;
+        double y = offset[1] + scale * tet_r[tet_i[i][j]][1] ;
+        double z = offset[2] + scale * tet_r[tet_i[i][j]][2] ;
+        glVertex3d ( x, y, z ) ;
+      }
+    }
+
+    glEnd () ;
+  }
+  else if ( num_levels > 0 )
+  {
+    GLdouble local_offset[3] ;  /* Use a local variable to avoid buildup of roundoff errors */
+    num_levels -- ;
+    scale /= 2.0 ;
+    for ( i = 0 ; i < NUM_TETR_FACES ; i++ )
+    {
+      local_offset[0] = offset[0] + scale * tet_r[i][0] ;
+      local_offset[1] = offset[1] + scale * tet_r[i][1] ;
+      local_offset[2] = offset[2] + scale * tet_r[i][2] ;
+      glutSolidSierpinskiSponge ( num_levels, local_offset, scale ) ;
+    }
+  }
+}
+
+/*** END OF FILE ***/
diff --git a/src/fg_init.c b/src/fg_init.c
new file mode 100644 (file)
index 0000000..816fc66
--- /dev/null
@@ -0,0 +1,685 @@
+/*
+ * freeglut_init.c
+ *
+ * Various freeglut initialization functions.
+ *
+ * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
+ * Written by Pawel W. Olszta, <olszta@sourceforge.net>
+ * Creation date: Thu Dec 2 1999
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#define FREEGLUT_BUILDING_LIB
+#include <GL/freeglut.h>
+#include "fg_internal.h"
+
+/*
+ * TODO BEFORE THE STABLE RELEASE:
+ *
+ *  fgDeinitialize()        -- Win32's OK, X11 needs the OS-specific
+ *                             deinitialization done
+ *  glutInitDisplayString() -- display mode string parsing
+ *
+ * Wouldn't it be cool to use gettext() for error messages? I just love
+ * bash saying  "nie znaleziono pliku" instead of "file not found" :)
+ * Is gettext easily portable?
+ */
+
+/* -- GLOBAL VARIABLES ----------------------------------------------------- */
+
+/*
+ * A structure pointed by fgDisplay holds all information
+ * regarding the display, screen, root window etc.
+ */
+SFG_Display fgDisplay;
+
+/*
+ * The settings for the current freeglut session
+ */
+SFG_State fgState = { { -1, -1, GL_FALSE },  /* Position */
+                      { 300, 300, GL_TRUE }, /* Size */
+                      GLUT_RGBA | GLUT_SINGLE | GLUT_DEPTH,  /* DisplayMode */
+                      GL_FALSE,              /* Initialised */
+                      GLUT_TRY_DIRECT_CONTEXT,  /* DirectContext */
+                      GL_FALSE,              /* ForceIconic */
+                      GL_FALSE,              /* UseCurrentContext */
+                      GL_FALSE,              /* GLDebugSwitch */
+                      GL_FALSE,              /* XSyncSwitch */
+                      GLUT_KEY_REPEAT_ON,    /* KeyRepeat */
+                      INVALID_MODIFIERS,     /* Modifiers */
+                      0,                     /* FPSInterval */
+                      0,                     /* SwapCount */
+                      0,                     /* SwapTime */
+                      0,                     /* Time */
+                      { NULL, NULL },         /* Timers */
+                      { NULL, NULL },         /* FreeTimers */
+                      NULL,                   /* IdleCallback */
+                      0,                      /* ActiveMenus */
+                      NULL,                   /* MenuStateCallback */
+                      NULL,                   /* MenuStatusCallback */
+                      { -1, -1, GL_TRUE },    /* GameModeSize */
+                      -1,                     /* GameModeDepth */
+                      -1,                     /* GameModeRefresh */
+                      GLUT_ACTION_EXIT,       /* ActionOnWindowClose */
+                      GLUT_EXEC_STATE_INIT,   /* ExecState */
+                      NULL,                   /* ProgramName */
+                      GL_FALSE,               /* JoysticksInitialised */
+                      0,                      /* NumActiveJoysticks */
+                      GL_FALSE,               /* InputDevsInitialised */
+                      0,                      /* MouseWheelTicks */
+                      1,                      /* AuxiliaryBufferNumber */
+                      4,                      /* SampleNumber */
+                      1,                      /* MajorVersion */
+                      0,                      /* MinorVersion */
+                      0,                      /* ContextFlags */
+                      0,                      /* ContextProfile */
+                      NULL,                   /* ErrorFunc */
+                      NULL                    /* WarningFunc */
+};
+
+
+/* -- PRIVATE FUNCTIONS ---------------------------------------------------- */
+
+extern void fgPlatformInitialize( const char* displayName );
+extern void fgPlatformDeinitialiseInputDevices ( void );
+extern void fgPlatformCloseDisplay ( void );
+extern void fgPlatformDestroyContext ( SFG_PlatformDisplay pDisplay, SFG_WindowContextType MContext );
+
+
+void fghParseCommandLineArguments ( int* pargc, char** argv, char **pDisplayName, char **pGeometry )
+{
+#ifndef _WIN32_WCE
+    int i, j, argc = *pargc;
+
+    {
+           /* check if GLUT_FPS env var is set */
+        const char *fps = getenv( "GLUT_FPS" );
+
+        if( fps )
+        {
+            int interval;
+            sscanf( fps, "%d", &interval );
+
+            if( interval <= 0 )
+                fgState.FPSInterval = 5000;  /* 5000 millisecond default */
+            else
+                fgState.FPSInterval = interval;
+        }
+    }
+
+    *pDisplayName = getenv( "DISPLAY" );
+
+    for( i = 1; i < argc; i++ )
+    {
+        if( strcmp( argv[ i ], "-display" ) == 0 )
+        {
+            if( ++i >= argc )
+                fgError( "-display parameter must be followed by display name" );
+
+            *pDisplayName = argv[ i ];
+
+            argv[ i - 1 ] = NULL;
+            argv[ i     ] = NULL;
+            ( *pargc ) -= 2;
+        }
+        else if( strcmp( argv[ i ], "-geometry" ) == 0 )
+        {
+            if( ++i >= argc )
+                fgError( "-geometry parameter must be followed by window "
+                         "geometry settings" );
+
+            *pGeometry = argv[ i ];
+
+            argv[ i - 1 ] = NULL;
+            argv[ i     ] = NULL;
+            ( *pargc ) -= 2;
+        }
+        else if( strcmp( argv[ i ], "-direct" ) == 0)
+        {
+            if( fgState.DirectContext == GLUT_FORCE_INDIRECT_CONTEXT )
+                fgError( "parameters ambiguity, -direct and -indirect "
+                    "cannot be both specified" );
+
+            fgState.DirectContext = GLUT_FORCE_DIRECT_CONTEXT;
+            argv[ i ] = NULL;
+            ( *pargc )--;
+        }
+        else if( strcmp( argv[ i ], "-indirect" ) == 0 )
+        {
+            if( fgState.DirectContext == GLUT_FORCE_DIRECT_CONTEXT )
+                fgError( "parameters ambiguity, -direct and -indirect "
+                    "cannot be both specified" );
+
+            fgState.DirectContext = GLUT_FORCE_INDIRECT_CONTEXT;
+            argv[ i ] = NULL;
+            (*pargc)--;
+        }
+        else if( strcmp( argv[ i ], "-iconic" ) == 0 )
+        {
+            fgState.ForceIconic = GL_TRUE;
+            argv[ i ] = NULL;
+            ( *pargc )--;
+        }
+        else if( strcmp( argv[ i ], "-gldebug" ) == 0 )
+        {
+            fgState.GLDebugSwitch = GL_TRUE;
+            argv[ i ] = NULL;
+            ( *pargc )--;
+        }
+        else if( strcmp( argv[ i ], "-sync" ) == 0 )
+        {
+            fgState.XSyncSwitch = GL_TRUE;
+            argv[ i ] = NULL;
+            ( *pargc )--;
+        }
+    }
+
+    /* Compact {argv}. */
+    for( i = j = 1; i < *pargc; i++, j++ )
+    {
+        /* Guaranteed to end because there are "*pargc" arguments left */
+        while ( argv[ j ] == NULL )
+            j++;
+        if ( i != j )
+            argv[ i ] = argv[ j ];
+    }
+
+#endif /* _WIN32_WCE */
+
+}
+
+
+void fghCloseInputDevices ( void )
+{
+    if ( fgState.JoysticksInitialised )
+        fgJoystickClose( );
+
+    if ( fgState.InputDevsInitialised )
+        fgInputDeviceClose( );
+}
+
+
+/*
+ * Perform the freeglut deinitialization...
+ */
+void fgDeinitialize( void )
+{
+    SFG_Timer *timer;
+
+    if( !fgState.Initialised )
+    {
+        return;
+    }
+
+       /* If we're in game mode, we want to leave game mode */
+    if( fgStructure.GameModeWindow ) {
+        glutLeaveGameMode();
+    }
+
+    /* If there was a menu created, destroy the rendering context */
+    if( fgStructure.MenuContext )
+    {
+               fgPlatformDestroyContext (fgDisplay.pDisplay, fgStructure.MenuContext->MContext );
+        free( fgStructure.MenuContext );
+        fgStructure.MenuContext = NULL;
+    }
+
+    fgDestroyStructure( );
+
+    while( ( timer = fgState.Timers.First) )
+    {
+        fgListRemove( &fgState.Timers, &timer->Node );
+        free( timer );
+    }
+
+    while( ( timer = fgState.FreeTimers.First) )
+    {
+        fgListRemove( &fgState.FreeTimers, &timer->Node );
+        free( timer );
+    }
+
+       fgPlatformDeinitialiseInputDevices ();
+
+       fgState.MouseWheelTicks = 0;
+
+    fgState.MajorVersion = 1;
+    fgState.MinorVersion = 0;
+    fgState.ContextFlags = 0;
+    fgState.ContextProfile = 0;
+
+    fgState.Initialised = GL_FALSE;
+
+    fgState.Position.X = -1;
+    fgState.Position.Y = -1;
+    fgState.Position.Use = GL_FALSE;
+
+    fgState.Size.X = 300;
+    fgState.Size.Y = 300;
+    fgState.Size.Use = GL_TRUE;
+
+    fgState.DisplayMode = GLUT_RGBA | GLUT_SINGLE | GLUT_DEPTH;
+
+    fgState.DirectContext  = GLUT_TRY_DIRECT_CONTEXT;
+    fgState.ForceIconic         = GL_FALSE;
+    fgState.UseCurrentContext   = GL_FALSE;
+    fgState.GLDebugSwitch       = GL_FALSE;
+    fgState.XSyncSwitch         = GL_FALSE;
+    fgState.ActionOnWindowClose = GLUT_ACTION_EXIT;
+    fgState.ExecState           = GLUT_EXEC_STATE_INIT;
+
+    fgState.KeyRepeat       = GLUT_KEY_REPEAT_ON;
+    fgState.Modifiers       = INVALID_MODIFIERS;
+
+    fgState.GameModeSize.X  = -1;
+    fgState.GameModeSize.Y  = -1;
+    fgState.GameModeDepth   = -1;
+    fgState.GameModeRefresh = -1;
+
+    fgListInit( &fgState.Timers );
+    fgListInit( &fgState.FreeTimers );
+
+    fgState.IdleCallback = NULL;
+    fgState.MenuStateCallback = ( FGCBMenuState )NULL;
+    fgState.MenuStatusCallback = ( FGCBMenuStatus )NULL;
+
+    fgState.SwapCount   = 0;
+    fgState.SwapTime    = 0;
+    fgState.FPSInterval = 0;
+
+    if( fgState.ProgramName )
+    {
+        free( fgState.ProgramName );
+        fgState.ProgramName = NULL;
+    }
+
+       fgPlatformCloseDisplay ();
+
+    fgState.Initialised = GL_FALSE;
+}
+
+
+/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
+#if !TARGET_HOST_POSIX_X11
+#   include "util/xparsegeometry_repl.h"
+#endif
+
+/*
+ * Perform initialization. This usually happens on the program startup
+ * and restarting after glutMainLoop termination...
+ */
+void FGAPIENTRY glutInit( int* pargc, char** argv )
+{
+    char* displayName = NULL;
+    char* geometry = NULL;
+    if( fgState.Initialised )
+        fgError( "illegal glutInit() reinitialization attempt" );
+
+    if (pargc && *pargc && argv && *argv && **argv)
+    {
+        fgState.ProgramName = strdup (*argv);
+
+        if( !fgState.ProgramName )
+            fgError ("Could not allocate space for the program's name.");
+    }
+
+    fgCreateStructure( );
+
+    /* Get start time */
+    fgState.Time = fgSystemTime();
+
+       fghParseCommandLineArguments ( pargc, argv, &displayName, &geometry );
+
+    /*
+     * Have the display created now. If there wasn't a "-display"
+     * in the program arguments, we will use the DISPLAY environment
+     * variable for opening the X display (see code above):
+     */
+    fgPlatformInitialize( displayName );
+
+    /*
+     * Geometry parsing deferred until here because we may need the screen
+     * size.
+     */
+
+    if (geometry )
+    {
+        unsigned int parsedWidth, parsedHeight;
+        int mask = XParseGeometry( geometry,
+                                   &fgState.Position.X, &fgState.Position.Y,
+                                   &parsedWidth, &parsedHeight );
+        /* TODO: Check for overflow? */
+        fgState.Size.X = parsedWidth;
+        fgState.Size.Y = parsedHeight;
+
+        if( (mask & (WidthValue|HeightValue)) == (WidthValue|HeightValue) )
+            fgState.Size.Use = GL_TRUE;
+
+        if( mask & XNegative )
+            fgState.Position.X += fgDisplay.ScreenWidth - fgState.Size.X;
+
+        if( mask & YNegative )
+            fgState.Position.Y += fgDisplay.ScreenHeight - fgState.Size.Y;
+
+        if( (mask & (XValue|YValue)) == (XValue|YValue) )
+            fgState.Position.Use = GL_TRUE;
+    }
+}
+
+/*
+ * Undoes all the "glutInit" stuff
+ */
+void FGAPIENTRY glutExit ( void )
+{
+  fgDeinitialize ();
+}
+
+/*
+ * Sets the default initial window position for new windows
+ */
+void FGAPIENTRY glutInitWindowPosition( int x, int y )
+{
+    fgState.Position.X = x;
+    fgState.Position.Y = y;
+
+    if( ( x >= 0 ) && ( y >= 0 ) )
+        fgState.Position.Use = GL_TRUE;
+    else
+        fgState.Position.Use = GL_FALSE;
+}
+
+/*
+ * Sets the default initial window size for new windows
+ */
+void FGAPIENTRY glutInitWindowSize( int width, int height )
+{
+    fgState.Size.X = width;
+    fgState.Size.Y = height;
+
+    if( ( width > 0 ) && ( height > 0 ) )
+        fgState.Size.Use = GL_TRUE;
+    else
+        fgState.Size.Use = GL_FALSE;
+}
+
+/*
+ * Sets the default display mode for all new windows
+ */
+void FGAPIENTRY glutInitDisplayMode( unsigned int displayMode )
+{
+    /* We will make use of this value when creating a new OpenGL context... */
+    fgState.DisplayMode = displayMode;
+}
+
+
+/* -- INIT DISPLAY STRING PARSING ------------------------------------------ */
+
+static char* Tokens[] =
+{
+    "alpha", "acca", "acc", "blue", "buffer", "conformant", "depth", "double",
+    "green", "index", "num", "red", "rgba", "rgb", "luminance", "stencil",
+    "single", "stereo", "samples", "slow", "win32pdf", "win32pfd", "xvisual",
+    "xstaticgray", "xgrayscale", "xstaticcolor", "xpseudocolor",
+    "xtruecolor", "xdirectcolor",
+    "xstaticgrey", "xgreyscale", "xstaticcolour", "xpseudocolour",
+    "xtruecolour", "xdirectcolour", "borderless", "aux"
+};
+#define NUM_TOKENS             (sizeof(Tokens) / sizeof(*Tokens))
+
+void FGAPIENTRY glutInitDisplayString( const char* displayMode )
+{
+    int glut_state_flag = 0 ;
+    /*
+     * Unpack a lot of options from a character string.  The options are
+     * delimited by blanks or tabs.
+     */
+    char *token ;
+    size_t len = strlen ( displayMode );
+    char *buffer = (char *)malloc ( (len+1) * sizeof(char) );
+    memcpy ( buffer, displayMode, len );
+    buffer[len] = '\0';
+
+    token = strtok ( buffer, " \t" );
+
+    while ( token )
+    {
+        /* Process this token */
+        int i ;
+
+        /* Temporary fix:  Ignore any length specifications and at least
+         * process the basic token
+         * TODO:  Fix this permanently
+         */
+        size_t cleanlength = strcspn ( token, "=<>~!" );
+
+        for ( i = 0; i < NUM_TOKENS; i++ )
+        {
+            if ( strncmp ( token, Tokens[i], cleanlength ) == 0 ) break ;
+        }
+
+        switch ( i )
+        {
+        case 0 :  /* "alpha":  Alpha color buffer precision in bits */
+            glut_state_flag |= GLUT_ALPHA ;  /* Somebody fix this for me! */
+            break ;
+
+        case 1 :  /* "acca":  Red, green, blue, and alpha accumulation buffer
+                     precision in bits */
+            break ;
+
+        case 2 :  /* "acc":  Red, green, and blue accumulation buffer precision
+                     in bits with zero bits alpha */
+            glut_state_flag |= GLUT_ACCUM ;  /* Somebody fix this for me! */
+            break ;
+
+        case 3 :  /* "blue":  Blue color buffer precision in bits */
+            break ;
+
+        case 4 :  /* "buffer":  Number of bits in the color index color buffer
+                   */
+            break ;
+
+        case 5 :  /* "conformant":  Boolean indicating if the frame buffer
+                     configuration is conformant or not */
+            break ;
+
+        case 6 : /* "depth":  Number of bits of precision in the depth buffer */
+            glut_state_flag |= GLUT_DEPTH ;  /* Somebody fix this for me! */
+            break ;
+
+        case 7 :  /* "double":  Boolean indicating if the color buffer is
+                     double buffered */
+            glut_state_flag |= GLUT_DOUBLE ;
+            break ;
+
+        case 8 :  /* "green":  Green color buffer precision in bits */
+            break ;
+
+        case 9 :  /* "index":  Boolean if the color model is color index or not
+                   */
+            glut_state_flag |= GLUT_INDEX ;
+            break ;
+
+        case 10 :  /* "num":  A special capability  name indicating where the
+                      value represents the Nth frame buffer configuration
+                      matching the description string */
+            break ;
+
+        case 11 :  /* "red":  Red color buffer precision in bits */
+            break ;
+
+        case 12 :  /* "rgba":  Number of bits of red, green, blue, and alpha in
+                      the RGBA color buffer */
+            glut_state_flag |= GLUT_RGBA ;  /* Somebody fix this for me! */
+            break ;
+
+        case 13 :  /* "rgb":  Number of bits of red, green, and blue in the
+                      RGBA color buffer with zero bits alpha */
+            glut_state_flag |= GLUT_RGB ;  /* Somebody fix this for me! */
+            break ;
+
+        case 14 :  /* "luminance":  Number of bits of red in the RGBA and zero
+                      bits of green, blue (alpha not specified) of color buffer
+                      precision */
+            glut_state_flag |= GLUT_LUMINANCE ; /* Somebody fix this for me! */
+            break ;
+
+        case 15 :  /* "stencil":  Number of bits in the stencil buffer */
+            glut_state_flag |= GLUT_STENCIL;  /* Somebody fix this for me! */
+            break ;
+
+        case 16 :  /* "single":  Boolean indicate the color buffer is single
+                      buffered */
+            glut_state_flag |= GLUT_SINGLE ;
+            break ;
+
+        case 17 :  /* "stereo":  Boolean indicating the color buffer supports
+                      OpenGL-style stereo */
+            glut_state_flag |= GLUT_STEREO ;
+            break ;
+
+        case 18 :  /* "samples":  Indicates the number of multisamples to use
+                      based on GLX's SGIS_multisample extension (for
+                      antialiasing) */
+            glut_state_flag |= GLUT_MULTISAMPLE ; /*Somebody fix this for me!*/
+            break ;
+
+        case 19 :  /* "slow":  Boolean indicating if the frame buffer
+                      configuration is slow or not */
+            break ;
+
+        case 20 :  /* "win32pdf": (incorrect spelling but was there before */
+        case 21 :  /* "win32pfd":  matches the Win32 Pixel Format Descriptor by
+                      number */
+#if TARGET_HOST_MS_WINDOWS
+#endif
+            break ;
+
+        case 22 :  /* "xvisual":  matches the X visual ID by number */
+#if TARGET_HOST_POSIX_X11
+#endif
+            break ;
+
+        case 23 :  /* "xstaticgray": */
+        case 29 :  /* "xstaticgrey":  boolean indicating if the frame buffer
+                      configuration's X visual is of type StaticGray */
+#if TARGET_HOST_POSIX_X11
+#endif
+            break ;
+
+        case 24 :  /* "xgrayscale": */
+        case 30 :  /* "xgreyscale":  boolean indicating if the frame buffer
+                      configuration's X visual is of type GrayScale */
+#if TARGET_HOST_POSIX_X11
+#endif
+            break ;
+
+        case 25 :  /* "xstaticcolor": */
+        case 31 :  /* "xstaticcolour":  boolean indicating if the frame buffer
+                      configuration's X visual is of type StaticColor */
+#if TARGET_HOST_POSIX_X11
+#endif
+            break ;
+
+        case 26 :  /* "xpseudocolor": */
+        case 32 :  /* "xpseudocolour":  boolean indicating if the frame buffer
+                      configuration's X visual is of type PseudoColor */
+#if TARGET_HOST_POSIX_X11
+#endif
+            break ;
+
+        case 27 :  /* "xtruecolor": */
+        case 33 :  /* "xtruecolour":  boolean indicating if the frame buffer
+                      configuration's X visual is of type TrueColor */
+#if TARGET_HOST_POSIX_X11
+#endif
+            break ;
+
+        case 28 :  /* "xdirectcolor": */
+        case 34 :  /* "xdirectcolour":  boolean indicating if the frame buffer
+                      configuration's X visual is of type DirectColor */
+#if TARGET_HOST_POSIX_X11
+#endif
+            break ;
+
+        case 35 :  /* "borderless":  windows should not have borders */
+            glut_state_flag |= GLUT_BORDERLESS;
+            break ;
+
+        case 36 :  /* "aux":  some number of aux buffers */
+            glut_state_flag |= GLUT_AUX;
+            break ;
+
+        case 37 :  /* Unrecognized */
+            fgWarning ( "WARNING - Display string token not recognized:  %s",
+                        token );
+            break ;
+        }
+
+        token = strtok ( NULL, " \t" );
+    }
+
+    free ( buffer );
+
+    /* We will make use of this value when creating a new OpenGL context... */
+    fgState.DisplayMode = glut_state_flag;
+}
+
+/* -- SETTING OPENGL 3.0 CONTEXT CREATION PARAMETERS ---------------------- */
+
+void FGAPIENTRY glutInitContextVersion( int majorVersion, int minorVersion )
+{
+    /* We will make use of these value when creating a new OpenGL context... */
+    fgState.MajorVersion = majorVersion;
+    fgState.MinorVersion = minorVersion;
+}
+
+
+void FGAPIENTRY glutInitContextFlags( int flags )
+{
+    /* We will make use of this value when creating a new OpenGL context... */
+    fgState.ContextFlags = flags;
+}
+
+void FGAPIENTRY glutInitContextProfile( int profile )
+{
+    /* We will make use of this value when creating a new OpenGL context... */
+    fgState.ContextProfile = profile;
+}
+
+/* -------------- User Defined Error/Warning Handler Support -------------- */
+
+/*
+ * Sets the user error handler (note the use of va_list for the args to the fmt)
+ */
+void FGAPIENTRY glutInitErrorFunc( void (* vfgError) ( const char *fmt, va_list ap ) )
+{
+    /* This allows user programs to handle freeglut errors */
+    fgState.ErrorFunc = vfgError;
+}
+
+/*
+ * Sets the user warning handler (note the use of va_list for the args to the fmt)
+ */
+void FGAPIENTRY glutInitWarningFunc( void (* vfgWarning) ( const char *fmt, va_list ap ) )
+{
+    /* This allows user programs to handle freeglut warnings */
+    fgState.WarningFunc = vfgWarning;
+}
+
+/*** END OF FILE ***/
\ No newline at end of file
diff --git a/src/fg_input_devices.c b/src/fg_input_devices.c
new file mode 100644 (file)
index 0000000..8cac504
--- /dev/null
@@ -0,0 +1,213 @@
+/*
+ * freeglut_input_devices.c
+ *
+ * Handles miscellaneous input devices via direct serial-port access.
+ * Proper X11 XInput device support is not yet supported.
+ * Also lacks Mac support.
+ *
+ * Written by Joe Krahn <krahn@niehs.nih.gov> 2005
+ *
+ * Copyright (c) 2005 Stephen J. Baker. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * PAWEL W. OLSZTA OR STEPHEN J. BAKER BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+#ifdef HAVE_CONFIG_H
+#    include "config.h"
+#endif
+
+#include <GL/freeglut.h>
+#include "fg_internal.h"
+
+typedef struct _serialport SERIALPORT;
+
+
+/********************* Dialbox definitions ***********************/
+
+#define DIAL_NUM_VALUATORS 8
+
+/* dial parser state machine states */
+#define DIAL_NEW                (-1)
+#define DIAL_WHICH_DEVICE       0
+#define DIAL_VALUE_HIGH         1
+#define DIAL_VALUE_LOW          2
+
+/* dial/button box commands */
+#define DIAL_INITIALIZE                 0x20
+#define DIAL_SET_LEDS                   0x75
+#define DIAL_SET_TEXT                   0x61
+#define DIAL_SET_AUTO_DIALS             0x50
+#define DIAL_SET_AUTO_DELTA_DIALS       0x51
+#define DIAL_SET_FILTER                 0x53
+#define DIAL_SET_BUTTONS_MOM_TYPE       0x71
+#define DIAL_SET_AUTO_MOM_BUTTONS       0x73
+#define DIAL_SET_ALL_LEDS               0x4b
+#define DIAL_CLEAR_ALL_LEDS             0x4c
+
+/* dial/button box replies and events */
+#define DIAL_INITIALIZED        0x20
+#define DIAL_BASE               0x30
+#define DIAL_DELTA_BASE         0x40
+#define DIAL_PRESS_BASE         0xc0
+#define DIAL_RELEASE_BASE       0xe0
+
+/* macros to determine reply type */
+#define IS_DIAL_EVENT(ch)       (((ch)>=DIAL_BASE)&&((ch)<DIAL_BASE+DIAL_NUM_VALUATORS))
+#define IS_KEY_PRESS(ch)        (((ch)>=DIAL_PRESS_BASE)&&((ch)<DIAL_PRESS_BASE+DIAL_NUM_BUTTONS))
+#define IS_KEY_RELEASE(ch)      (((ch)>=DIAL_RELEASE_BASE)&&((ch)<DIAL_RELEASE_BASE+DIAL_NUM_BUTTONS))
+#define IS_INIT_EVENT(ch)       ((ch)==DIAL_INITIALIZED)
+
+/*****************************************************************/
+
+extern SERIALPORT *serial_open ( const char *device );
+extern void serial_close ( SERIALPORT *port );
+extern int serial_getchar ( SERIALPORT *port );
+extern int serial_putchar ( SERIALPORT *port, unsigned char ch );
+extern void serial_flush ( SERIALPORT *port );
+
+extern void fgPlatformRegisterDialDevice ( const char *dial_device );
+static void send_dial_event(int dial, int value);
+static void poll_dials(int id);
+
+/* local variables */
+static SERIALPORT *dialbox_port=NULL;
+
+/*****************************************************************/
+
+/*
+ * Implementation for glutDeviceGet(GLUT_HAS_DIAL_AND_BUTTON_BOX)
+ */
+int fgInputDeviceDetect( void )
+{
+    fgInitialiseInputDevices ();
+
+    if ( !dialbox_port )
+        return 0;
+
+    if ( !fgState.InputDevsInitialised )
+        return 0;
+
+    return 1;
+}
+
+/*
+ * Try initializing the input device(s)
+ */
+void fgInitialiseInputDevices ( void )
+{
+    if( !fgState.InputDevsInitialised )
+    {
+        const char *dial_device=NULL;
+        dial_device = getenv ( "GLUT_DIALS_SERIAL" );
+               fgPlatformRegisterDialDevice ( dial_device );
+
+        if ( !dial_device ) return;
+        if ( !( dialbox_port = serial_open ( dial_device ) ) ) return;
+        serial_putchar(dialbox_port,DIAL_INITIALIZE);
+        glutTimerFunc ( 10, poll_dials, 0 );
+        fgState.InputDevsInitialised = GL_TRUE;
+    }
+}
+
+/*
+ *
+ */
+void fgInputDeviceClose( void )
+{
+    if ( fgState.InputDevsInitialised )
+    {
+        serial_close ( dialbox_port );
+        dialbox_port = NULL;
+        fgState.InputDevsInitialised = GL_FALSE;
+    }
+}
+
+/********************************************************************/
+
+/* Check all windows for dialbox callbacks */
+static void fghcbEnumDialCallbacks ( SFG_Window *window, SFG_Enumerator *enumerator )
+{
+    /* Built-in to INVOKE_WCB():  if window->Callbacks[CB_Dials] */
+    INVOKE_WCB ( *window,Dials, ( ((int*)enumerator->data)[0], ((int*)enumerator->data)[1]) );
+    fgEnumSubWindows ( window, fghcbEnumDialCallbacks, enumerator );
+}
+
+static void send_dial_event ( int num, int value )
+{
+    SFG_Enumerator enumerator;
+    int data[2];
+    data[0] = num;
+    data[1] = value;
+    enumerator.found = GL_FALSE;
+    enumerator.data  =  data;
+    fgEnumWindows ( fghcbEnumDialCallbacks, &enumerator );
+}
+
+/********************************************************************/
+static void poll_dials ( int id )
+{
+    int data;
+    static int dial_state = DIAL_NEW;
+    static int dial_which;
+    static int dial_value;
+    static int dials[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
+
+    if ( !dialbox_port ) return;
+
+    while ( (data=serial_getchar(dialbox_port)) != EOF )
+    {
+        if ( ( dial_state > DIAL_WHICH_DEVICE ) || IS_DIAL_EVENT ( data ) )
+        {
+            switch ( dial_state )
+            {
+            case DIAL_WHICH_DEVICE:
+                dial_which = data - DIAL_BASE;
+                dial_state++;
+                break;
+            case DIAL_VALUE_HIGH:
+                dial_value = ( data << 8 );
+                dial_state++;
+                break;
+            case DIAL_VALUE_LOW:
+                dial_value |= data;
+                if ( dial_value & 0x8000 ) dial_value -= 0x10000;
+                dials[dial_which] = dial_value;
+                send_dial_event ( dial_which + 1, dial_value * 360 / 256 );
+                dial_state = DIAL_WHICH_DEVICE;
+                break;
+            default:
+                /* error: Impossible state value! */
+                break;
+            }
+        }
+        else if ( data == DIAL_INITIALIZED )
+        {
+            fgState.InputDevsInitialised = GL_TRUE;
+            dial_state = DIAL_WHICH_DEVICE;
+            serial_putchar(dialbox_port,DIAL_SET_AUTO_DIALS);
+            serial_putchar(dialbox_port,0xff);
+            serial_putchar(dialbox_port,0xff);
+        }
+        else  /* Unknown data; try flushing. */
+            serial_flush(dialbox_port);
+    }
+
+    glutTimerFunc ( 2, poll_dials, 0 );
+}
+
diff --git a/src/fg_internal.h b/src/fg_internal.h
new file mode 100644 (file)
index 0000000..34fdc8e
--- /dev/null
@@ -0,0 +1,970 @@
+/*
+ * fg_internal.h
+ *
+ * The freeglut library private include file.
+ *
+ * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
+ * Written by Pawel W. Olszta, <olszta@sourceforge.net>
+ * Creation date: Thu Dec 2 1999
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#ifndef  FREEGLUT_INTERNAL_H
+#define  FREEGLUT_INTERNAL_H
+
+#ifdef HAVE_CONFIG_H
+#    include "config.h"
+#endif
+
+/* XXX Update these for each release! */
+#define  VERSION_MAJOR 3
+#define  VERSION_MINOR 0
+#define  VERSION_PATCH 0
+
+/* Freeglut is intended to function under all Unix/X11 and Win32 platforms. */
+/* XXX: Don't all MS-Windows compilers (except Cygwin) have _WIN32 defined?
+ * XXX: If so, remove the first set of defined()'s below.
+ */
+#if !defined(TARGET_HOST_POSIX_X11) && !defined(TARGET_HOST_MS_WINDOWS) && !defined(TARGET_HOST_MAC_OSX) && !defined(TARGET_HOST_SOLARIS)
+#if defined(_MSC_VER) || defined(__WATCOMC__) || defined(__MINGW32__) \
+    || defined(_WIN32) || defined(_WIN32_WCE) \
+    || ( defined(__CYGWIN__) && defined(X_DISPLAY_MISSING) )
+#   define  TARGET_HOST_MS_WINDOWS 1
+
+#elif defined (ANDROID)
+#   define  TARGET_HOST_ANDROID  1
+
+#elif defined(__posix__) || defined(__unix__) || defined(__linux__) || defined(__sun)
+#   define  TARGET_HOST_POSIX_X11  1
+
+#elif defined(__APPLE__)
+/* This is a placeholder until we get native OSX support ironed out -- JFF 11/18/09 */
+#   define  TARGET_HOST_POSIX_X11  1
+/* #   define  TARGET_HOST_MAC_OSX    1 */
+
+#else
+#   error "Unrecognized target host!"
+
+#endif
+#endif
+
+/* Detect both SunPro and gcc compilers on Sun Solaris */
+#if defined (__SVR4) && defined (__sun)
+#   define TARGET_HOST_SOLARIS 1
+#endif
+
+#ifndef TARGET_HOST_MS_WINDOWS
+#   define  TARGET_HOST_MS_WINDOWS 0
+#endif
+
+#ifndef  TARGET_HOST_POSIX_X11
+#   define  TARGET_HOST_POSIX_X11  0
+#endif
+
+#ifndef  TARGET_HOST_MAC_OSX
+#   define  TARGET_HOST_MAC_OSX    0
+#endif
+
+#ifndef  TARGET_HOST_SOLARIS
+#   define  TARGET_HOST_SOLARIS    0
+#endif
+
+/* -- FIXED CONFIGURATION LIMITS ------------------------------------------- */
+
+#define  FREEGLUT_MAX_MENUS         3
+
+/* These files should be available on every platform. */
+#include <stdio.h>
+#include <string.h>
+#include <math.h>
+#include <stdlib.h>
+#include <stdarg.h>
+
+/* These are included based on autoconf directives. */
+#ifdef HAVE_SYS_TYPES_H
+#    include <sys/types.h>
+#endif
+#ifdef HAVE_UNISTD_H
+#    include <unistd.h>
+#endif
+#ifdef TIME_WITH_SYS_TIME
+#    include <sys/time.h>
+#    include <time.h>
+#elif defined(HAVE_SYS_TIME_H)
+#    include <sys/time.h>
+#else
+#    include <time.h>
+#endif
+
+/* -- AUTOCONF HACKS --------------------------------------------------------*/
+
+/* XXX: Update autoconf to avoid these.
+ * XXX: Are non-POSIX platforms intended not to use autoconf?
+ * If so, perhaps there should be a config_guess.h for them. Alternatively,
+ * config guesses could be placed above, just after the config.h exclusion.
+ */
+#if defined(__FreeBSD__) || defined(__NetBSD__)
+#    define HAVE_USB_JS 1
+#    if defined(__NetBSD__) || ( defined(__FreeBSD__) && __FreeBSD_version >= 500000)
+#        define HAVE_USBHID_H 1
+#    endif
+#endif
+
+#if defined(_MSC_VER) || defined(__WATCOMC__)
+/* strdup() is non-standard, for all but POSIX-2001 */
+#define strdup   _strdup
+#endif
+
+/* M_PI is non-standard (defined by BSD, not ISO-C) */
+#ifndef M_PI
+#    define  M_PI  3.14159265358979323846
+#endif
+
+#ifdef HAVE_STDBOOL_H
+#    include <stdbool.h>
+#    ifndef TRUE
+#        define TRUE true
+#    endif
+#    ifndef FALSE
+#        define FALSE false
+#    endif
+#else
+#    ifndef TRUE
+#        define  TRUE  1
+#    endif
+#    ifndef FALSE
+#        define  FALSE  0
+#    endif
+#endif
+
+/* General defines */
+#define INVALID_MODIFIERS 0xffffffff
+
+/* FreeGLUT internal time type */
+#if defined(HAVE_STDINT_H)
+#   include <stdint.h>
+    typedef uint64_t fg_time_t;
+#elif defined(HAVE_INTTYPES_H)
+#   include <inttypes.h>
+    typedef uint64_t fg_time_t;
+#elif defined(HAVE_ULONG_LONG)
+    typedef unsigned long long fg_time_t;
+#else
+    typedef unsigned long fg_time_t;
+#endif
+
+
+
+/* Platform-specific includes */
+#if TARGET_HOST_POSIX_X11
+#include "x11/fg_internal_x11.h"
+#endif
+#if TARGET_HOST_MS_WINDOWS
+#include "mswin/fg_internal_mswin.h"
+#endif
+#if TARGET_HOST_ANDROID
+#include "android/fg_internal_android.h"
+#endif
+
+
+/* -- GLOBAL TYPE DEFINITIONS ---------------------------------------------- */
+
+/* Freeglut callbacks type definitions */
+typedef void (* FGCBDisplay       )( void );
+typedef void (* FGCBReshape       )( int, int );
+typedef void (* FGCBVisibility    )( int );
+typedef void (* FGCBKeyboard      )( unsigned char, int, int );
+typedef void (* FGCBSpecial       )( int, int, int );
+typedef void (* FGCBMouse         )( int, int, int, int );
+typedef void (* FGCBMouseWheel    )( int, int, int, int );
+typedef void (* FGCBMotion        )( int, int );
+typedef void (* FGCBPassive       )( int, int );
+typedef void (* FGCBEntry         )( int );
+typedef void (* FGCBWindowStatus  )( int );
+typedef void (* FGCBSelect        )( int, int, int );
+typedef void (* FGCBJoystick      )( unsigned int, int, int, int );
+typedef void (* FGCBKeyboardUp    )( unsigned char, int, int );
+typedef void (* FGCBSpecialUp     )( int, int, int );
+typedef void (* FGCBOverlayDisplay)( void );
+typedef void (* FGCBSpaceMotion   )( int, int, int );
+typedef void (* FGCBSpaceRotation )( int, int, int );
+typedef void (* FGCBSpaceButton   )( int, int );
+typedef void (* FGCBDials         )( int, int );
+typedef void (* FGCBButtonBox     )( int, int );
+typedef void (* FGCBTabletMotion  )( int, int );
+typedef void (* FGCBTabletButton  )( int, int, int, int );
+typedef void (* FGCBDestroy       )( void );
+
+typedef void (* FGCBMultiEntry   )( int, int );
+typedef void (* FGCBMultiButton  )( int, int, int, int, int );
+typedef void (* FGCBMultiMotion  )( int, int, int );
+typedef void (* FGCBMultiPassive )( int, int, int );
+
+/* The global callbacks type definitions */
+typedef void (* FGCBIdle          )( void );
+typedef void (* FGCBTimer         )( int );
+typedef void (* FGCBMenuState     )( int );
+typedef void (* FGCBMenuStatus    )( int, int, int );
+
+/* The callback used when creating/using menus */
+typedef void (* FGCBMenu          )( int );
+
+/* The FreeGLUT error/warning handler type definition */
+typedef void (* FGError           ) ( const char *fmt, va_list ap);
+typedef void (* FGWarning         ) ( const char *fmt, va_list ap);
+
+
+/* A list structure */
+typedef struct tagSFG_List SFG_List;
+struct tagSFG_List
+{
+    void *First;
+    void *Last;
+};
+
+/* A list node structure */
+typedef struct tagSFG_Node SFG_Node;
+struct tagSFG_Node
+{
+    void *Next;
+    void *Prev;
+};
+
+/* A helper structure holding two ints and a boolean */
+typedef struct tagSFG_XYUse SFG_XYUse;
+struct tagSFG_XYUse
+{
+    GLint           X, Y;               /* The two integers...               */
+    GLboolean       Use;                /* ...and a single boolean.          */
+};
+
+/*
+ * An enumeration containing the state of the GLUT execution:
+ * initializing, running, or stopping
+ */
+typedef enum
+{
+  GLUT_EXEC_STATE_INIT,
+  GLUT_EXEC_STATE_RUNNING,
+  GLUT_EXEC_STATE_STOP
+} fgExecutionState ;
+
+/* This structure holds different freeglut settings */
+typedef struct tagSFG_State SFG_State;
+struct tagSFG_State
+{
+    SFG_XYUse        Position;             /* The default windows' position  */
+    SFG_XYUse        Size;                 /* The default windows' size      */
+    unsigned int     DisplayMode;          /* Display mode for new windows   */
+
+    GLboolean        Initialised;          /* freeglut has been initialised  */
+
+    int              DirectContext;        /* Direct rendering state         */
+
+    GLboolean        ForceIconic;          /* New top windows are iconified  */
+    GLboolean        UseCurrentContext;    /* New windows share with current */
+
+    GLboolean        GLDebugSwitch;        /* OpenGL state debugging switch  */
+    GLboolean        XSyncSwitch;          /* X11 sync protocol switch       */
+
+    int              KeyRepeat;            /* Global key repeat mode.        */
+    int              Modifiers;            /* Current ALT/SHIFT/CTRL state   */
+
+    GLuint           FPSInterval;          /* Interval between FPS printfs   */
+    GLuint           SwapCount;            /* Count of glutSwapBuffer calls  */
+    GLuint           SwapTime;             /* Time of last SwapBuffers       */
+
+    fg_time_t        Time;                 /* Time that glutInit was called  */
+    SFG_List         Timers;               /* The freeglut timer hooks       */
+    SFG_List         FreeTimers;           /* The unused timer hooks         */
+
+    FGCBIdle         IdleCallback;         /* The global idle callback       */
+
+    int              ActiveMenus;          /* Num. of currently active menus */
+    FGCBMenuState    MenuStateCallback;    /* Menu callbacks are global      */
+    FGCBMenuStatus   MenuStatusCallback;
+
+    SFG_XYUse        GameModeSize;         /* Game mode screen's dimensions  */
+    int              GameModeDepth;        /* The pixel depth for game mode  */
+    int              GameModeRefresh;      /* The refresh rate for game mode */
+
+    int              ActionOnWindowClose; /* Action when user closes window  */
+
+    fgExecutionState ExecState;           /* Used for GLUT termination       */
+    char            *ProgramName;         /* Name of the invoking program    */
+    GLboolean        JoysticksInitialised;  /* Only initialize if application calls for them */
+    int              NumActiveJoysticks;    /* Number of active joysticks -- if zero, don't poll joysticks */
+    GLboolean        InputDevsInitialised;  /* Only initialize if application calls for them */
+
+       int              MouseWheelTicks;      /* Number of ticks the mouse wheel has turned */
+
+    int              AuxiliaryBufferNumber;  /* Number of auxiliary buffers */
+    int              SampleNumber;         /*  Number of samples per pixel  */
+
+    int              MajorVersion;         /* Major OpenGL context version  */
+    int              MinorVersion;         /* Minor OpenGL context version  */
+    int              ContextFlags;         /* OpenGL context flags          */
+    int              ContextProfile;       /* OpenGL context profile        */
+    FGError          ErrorFunc;            /* User defined error handler    */
+    FGWarning        WarningFunc;          /* User defined warning handler  */
+};
+
+/* The structure used by display initialization in freeglut_init.c */
+typedef struct tagSFG_Display SFG_Display;
+struct tagSFG_Display
+{
+       SFG_PlatformDisplay pDisplay;
+
+    int             ScreenWidth;        /* The screen's width in pixels      */
+    int             ScreenHeight;       /* The screen's height in pixels     */
+    int             ScreenWidthMM;      /* The screen's width in milimeters  */
+    int             ScreenHeightMM;     /* The screen's height in milimeters */
+};
+
+
+/* The user can create any number of timer hooks */
+typedef struct tagSFG_Timer SFG_Timer;
+struct tagSFG_Timer
+{
+    SFG_Node        Node;
+    int             ID;                 /* The timer ID integer              */
+    FGCBTimer       Callback;           /* The timer callback                */
+    fg_time_t       TriggerTime;        /* The timer trigger time            */
+};
+
+/*
+ * A window and its OpenGL context. The contents of this structure
+ * are highly dependant on the target operating system we aim at...
+ */
+typedef struct tagSFG_Context SFG_Context;
+struct tagSFG_Context
+{
+    SFG_WindowHandleType  Handle;    /* The window's handle                 */
+    SFG_WindowContextType Context;   /* The window's OpenGL/WGL context     */
+
+       SFG_PlatformContext pContext;    /* The window's FBConfig (X11) or device context (Windows) */
+
+    int             DoubleBuffered;  /* Treat the window as double-buffered */
+};
+
+
+typedef struct tagSFG_WindowState SFG_WindowState;
+struct tagSFG_WindowState
+{
+    /* Note that on Windows, sizes always refer to the client area, thus without the window decorations */
+    int             Width;              /* Window's width in pixels          */
+    int             Height;             /* The same about the height         */
+
+       SFG_PlatformWindowState pWState;    /* Window width/height (X11) or rectangle/style (Windows) from before a resize */
+
+    GLboolean       Redisplay;          /* Do we have to redisplay?          */
+    GLboolean       Visible;            /* Is the window visible now         */
+
+    int             Cursor;             /* The currently selected cursor     */
+
+    long            JoystickPollRate;   /* The joystick polling rate         */
+    fg_time_t       JoystickLastPoll;   /* When the last poll happened       */
+
+    int             MouseX, MouseY;     /* The most recent mouse position    */
+
+    GLboolean       IgnoreKeyRepeat;    /* Whether to ignore key repeat.     */
+    GLboolean       KeyRepeating;       /* Currently in repeat mode          */
+
+    GLboolean       NeedToResize;       /* Do we need to resize the window?  */
+
+    GLboolean       IsFullscreen;       /* is the window fullscreen? */
+};
+
+
+/*
+ * A generic function pointer.  We should really use the GLUTproc type
+ * defined in freeglut_ext.h, but if we include that header in this file
+ * a bunch of other stuff (font-related) blows up!
+ */
+typedef void (*SFG_Proc)();
+
+
+/*
+ * SET_WCB() is used as:
+ *
+ *     SET_WCB( window, cbname, func );
+ *
+ * ...where {window} is the freeglut window to set the callback,
+ *          {cbname} is the window-specific callback to set,
+ *          {func} is a function-pointer.
+ *
+ * Originally, {FETCH_WCB( ... ) = func} was rather sloppily used,
+ * but this can cause warnings because the FETCH_WCB() macro type-
+ * casts its result, and a type-cast value shouldn't be an lvalue.
+ *
+ * The {if( FETCH_WCB( ... ) != func )} test is to do type-checking
+ * and for no other reason.  Since it's hidden in the macro, the
+ * ugliness is felt to be rather benign.
+ */
+#define SET_WCB(window,cbname,func)                            \
+do                                                             \
+{                                                              \
+    if( FETCH_WCB( window, cbname ) != (SFG_Proc)(func) )      \
+        (((window).CallBacks[CB_ ## cbname]) = (SFG_Proc)(func)); \
+} while( 0 )
+
+/*
+ * FETCH_WCB() is used as:
+ *
+ *     FETCH_WCB( window, cbname );
+ *
+ * ...where {window} is the freeglut window to fetch the callback from,
+ *          {cbname} is the window-specific callback to fetch.
+ *
+ * The result is correctly type-cast to the callback function pointer
+ * type.
+ */
+#define FETCH_WCB(window,cbname) \
+    ((window).CallBacks[CB_ ## cbname])
+
+/*
+ * INVOKE_WCB() is used as:
+ *
+ *     INVOKE_WCB( window, cbname, ( arg_list ) );
+ *
+ * ...where {window} is the freeglut window,
+ *          {cbname} is the window-specific callback to be invoked,
+ *          {(arg_list)} is the parameter list.
+ *
+ * The callback is invoked as:
+ *
+ *    callback( arg_list );
+ *
+ * ...so the parentheses are REQUIRED in the {arg_list}.
+ *
+ * NOTE that it does a sanity-check and also sets the
+ * current window.
+ *
+ */
+#if TARGET_HOST_MS_WINDOWS && !defined(_WIN32_WCE) /* FIXME: also WinCE? */
+#define INVOKE_WCB(window,cbname,arg_list)    \
+do                                            \
+{                                             \
+    if( FETCH_WCB( window, cbname ) )         \
+    {                                         \
+        FGCB ## cbname func = (FGCB ## cbname)(FETCH_WCB( window, cbname )); \
+        fgSetWindow( &window );               \
+        func arg_list;                        \
+    }                                         \
+} while( 0 )
+#else
+#define INVOKE_WCB(window,cbname,arg_list)    \
+do                                            \
+{                                             \
+    if( FETCH_WCB( window, cbname ) )         \
+    {                                         \
+        fgSetWindow( &window );               \
+        ((FGCB ## cbname)FETCH_WCB( window, cbname )) arg_list; \
+    }                                         \
+} while( 0 )
+#endif
+
+/*
+ * The window callbacks the user can supply us with. Should be kept portable.
+ *
+ * This enumeration provides the freeglut CallBack numbers.
+ * The symbolic constants are indices into a window's array of
+ * function callbacks.  The names are formed by splicing a common
+ * prefix onto the callback's base name.  (This was originally
+ * done so that an early stage of development could live side-by-
+ * side with the old callback code.  The old callback code used
+ * the bare callback's name as a structure member, so I used a
+ * prefix for the array index name.)
+ *
+ * XXX For consistancy, perhaps the prefix should match the
+ * XXX FETCH* and INVOKE* macro suffices.  I.e., WCB_, rather than
+ * XXX CB_.
+ */
+enum
+{
+    CB_Display,
+    CB_Reshape,
+    CB_Keyboard,
+    CB_KeyboardUp,
+    CB_Special,
+    CB_SpecialUp,
+    CB_Mouse,
+    CB_MouseWheel,
+    CB_Motion,
+    CB_Passive,
+    CB_Entry,
+    CB_Visibility,
+    CB_WindowStatus,
+    CB_Joystick,
+    CB_Destroy,
+
+    /* MPX-related */
+    CB_MultiEntry,
+    CB_MultiButton,
+    CB_MultiMotion,
+    CB_MultiPassive,
+
+    /* Presently ignored */
+    CB_Select,
+    CB_OverlayDisplay,
+    CB_SpaceMotion,     /* presently implemented only on UNIX/X11 */
+    CB_SpaceRotation,   /* presently implemented only on UNIX/X11 */
+    CB_SpaceButton,     /* presently implemented only on UNIX/X11 */
+    CB_Dials,
+    CB_ButtonBox,
+    CB_TabletMotion,
+    CB_TabletButton,
+
+    /* Always make this the LAST one */
+    TOTAL_CALLBACKS
+};
+
+
+/* This structure holds the OpenGL rendering context for all the menu windows */
+typedef struct tagSFG_MenuContext SFG_MenuContext;
+struct tagSFG_MenuContext
+{
+    SFG_WindowContextType MContext;       /* The menu window's WGL context   */
+};
+
+/* This structure describes a menu */
+typedef struct tagSFG_Window SFG_Window;
+typedef struct tagSFG_MenuEntry SFG_MenuEntry;
+typedef struct tagSFG_Menu SFG_Menu;
+struct tagSFG_Menu
+{
+    SFG_Node            Node;
+    void               *UserData;     /* User data passed back at callback   */
+    int                 ID;           /* The global menu ID                  */
+    SFG_List            Entries;      /* The menu entries list               */
+    FGCBMenu            Callback;     /* The menu callback                   */
+    FGCBDestroy         Destroy;      /* Destruction callback                */
+    GLboolean           IsActive;     /* Is the menu selected?               */
+    int                 Width;        /* Menu box width in pixels            */
+    int                 Height;       /* Menu box height in pixels           */
+    int                 X, Y;         /* Menu box raster position            */
+
+    SFG_MenuEntry      *ActiveEntry;  /* Currently active entry in the menu  */
+    SFG_Window         *Window;       /* Window for menu                     */
+    SFG_Window         *ParentWindow; /* Window in which the menu is invoked */
+};
+
+/* This is a menu entry */
+struct tagSFG_MenuEntry
+{
+    SFG_Node            Node;
+    int                 ID;                     /* The menu entry ID (local) */
+    int                 Ordinal;                /* The menu's ordinal number */
+    char*               Text;                   /* The text to be displayed  */
+    SFG_Menu*           SubMenu;                /* Optional sub-menu tree    */
+    GLboolean           IsActive;               /* Is the entry highlighted? */
+    int                 Width;                  /* Label's width in pixels   */
+};
+
+/*
+ * A window, making part of freeglut windows hierarchy.
+ * Should be kept portable.
+ *
+ * NOTE that ActiveMenu is set to menu itself if the window is a menu.
+ */
+struct tagSFG_Window
+{
+    SFG_Node            Node;
+    int                 ID;                     /* Window's ID number        */
+
+    SFG_Context         Window;                 /* Window and OpenGL context */
+    SFG_WindowState     State;                  /* The window state          */
+    SFG_Proc            CallBacks[ TOTAL_CALLBACKS ]; /* Array of window callbacks */
+    void               *UserData ;              /* For use by user           */
+
+    SFG_Menu*       Menu[ FREEGLUT_MAX_MENUS ]; /* Menus appended to window  */
+    SFG_Menu*       ActiveMenu;                 /* The window's active menu  */
+
+    SFG_Window*         Parent;                 /* The parent to this window */
+    SFG_List            Children;               /* The subwindows d.l. list  */
+
+    GLboolean           IsMenu;                 /* Set to 1 if we are a menu */
+};
+
+
+/* A linked list structure of windows */
+typedef struct tagSFG_WindowList SFG_WindowList ;
+struct tagSFG_WindowList
+{
+    SFG_Node node;
+    SFG_Window *window ;
+};
+
+/* This holds information about all the windows, menus etc. */
+typedef struct tagSFG_Structure SFG_Structure;
+struct tagSFG_Structure
+{
+    SFG_List        Windows;         /* The global windows list            */
+    SFG_List        Menus;           /* The global menus list              */
+    SFG_List        WindowsToDestroy;
+
+    SFG_Window*     CurrentWindow;   /* The currently set window          */
+    SFG_Menu*       CurrentMenu;     /* Same, but menu...                 */
+
+    SFG_MenuContext* MenuContext;    /* OpenGL rendering context for menus */
+
+    SFG_Window*      GameModeWindow; /* The game mode window               */
+
+    int              WindowID;       /* The new current window ID          */
+    int              MenuID;         /* The new current menu ID            */
+};
+
+/*
+ * This structure is used for the enumeration purposes.
+ * You can easily extend its functionalities by declaring
+ * a structure containing enumerator's contents and custom
+ * data, then casting its pointer to (SFG_Enumerator *).
+ */
+typedef struct tagSFG_Enumerator SFG_Enumerator;
+struct tagSFG_Enumerator
+{
+    GLboolean   found;                          /* Used to terminate search  */
+    void*       data;                           /* Custom data pointer       */
+};
+typedef void (* FGCBenumerator  )( SFG_Window *, SFG_Enumerator * );
+
+/* The bitmap font structure */
+typedef struct tagSFG_Font SFG_Font;
+struct tagSFG_Font
+{
+    char*           Name;         /* The source font name             */
+    int             Quantity;     /* Number of chars in font          */
+    int             Height;       /* Height of the characters         */
+    const GLubyte** Characters;   /* The characters mapping           */
+
+    float           xorig, yorig; /* Relative origin of the character */
+};
+
+/* The stroke font structures */
+
+typedef struct tagSFG_StrokeVertex SFG_StrokeVertex;
+struct tagSFG_StrokeVertex
+{
+    GLfloat         X, Y;
+};
+
+typedef struct tagSFG_StrokeStrip SFG_StrokeStrip;
+struct tagSFG_StrokeStrip
+{
+    int             Number;
+    const SFG_StrokeVertex* Vertices;
+};
+
+typedef struct tagSFG_StrokeChar SFG_StrokeChar;
+struct tagSFG_StrokeChar
+{
+    GLfloat         Right;
+    int             Number;
+    const SFG_StrokeStrip* Strips;
+};
+
+typedef struct tagSFG_StrokeFont SFG_StrokeFont;
+struct tagSFG_StrokeFont
+{
+    char*           Name;                       /* The source font name      */
+    int             Quantity;                   /* Number of chars in font   */
+    GLfloat         Height;                     /* Height of the characters  */
+    const SFG_StrokeChar** Characters;          /* The characters mapping    */
+};
+
+
+/* -- JOYSTICK-SPECIFIC STRUCTURES AND TYPES ------------------------------- */
+/*
+ * Initial defines from "js.h" starting around line 33 with the existing "freeglut_joystick.c"
+ * interspersed
+ */
+
+#if TARGET_HOST_MACINTOSH
+#    include <InputSprocket.h>
+#endif
+
+#if TARGET_HOST_MAC_OSX
+#    include <mach/mach.h>
+#    include <IOKit/IOkitLib.h>
+#    include <IOKit/hid/IOHIDLib.h>
+#endif
+
+/* XXX It might be better to poll the operating system for the numbers of buttons and
+ * XXX axes and then dynamically allocate the arrays.
+ */
+#define _JS_MAX_BUTTONS 32
+
+#if TARGET_HOST_MACINTOSH
+#    define _JS_MAX_AXES  9
+typedef struct tagSFG_PlatformJoystick SFG_PlatformJoystick;
+struct tagSFG_PlatformJoystick
+{
+#define  ISP_NUM_AXIS    9
+#define  ISP_NUM_NEEDS  41
+    ISpElementReference isp_elem  [ ISP_NUM_NEEDS ];
+    ISpNeed             isp_needs [ ISP_NUM_NEEDS ];
+};
+#endif
+
+#if TARGET_HOST_MAC_OSX
+#    define _JS_MAX_AXES 16
+typedef struct tagSFG_PlatformJoystick SFG_PlatformJoystick;
+struct tagSFG_PlatformJoystick
+{
+    IOHIDDeviceInterface ** hidDev;
+    IOHIDElementCookie buttonCookies[41];
+    IOHIDElementCookie axisCookies[_JS_MAX_AXES];
+/* The next two variables are not used anywhere */
+/*    long minReport[_JS_MAX_AXES],
+ *         maxReport[_JS_MAX_AXES];
+ */
+};
+#endif
+
+
+/*
+ * Definition of "SFG_Joystick" structure -- based on JS's "jsJoystick" object class.
+ * See "js.h" lines 80-178.
+ */
+typedef struct tagSFG_Joystick SFG_Joystick;
+struct tagSFG_Joystick
+{
+       SFG_PlatformJoystick pJoystick;
+
+    int          id;
+    GLboolean    error;
+    char         name [ 128 ];
+    int          num_axes;
+    int          num_buttons;
+
+    float dead_band[ _JS_MAX_AXES ];
+    float saturate [ _JS_MAX_AXES ];
+    float center   [ _JS_MAX_AXES ];
+    float max      [ _JS_MAX_AXES ];
+    float min      [ _JS_MAX_AXES ];
+};
+
+
+
+/* -- GLOBAL VARIABLES EXPORTS --------------------------------------------- */
+
+/* Freeglut display related stuff (initialized once per session) */
+extern SFG_Display fgDisplay;
+
+/* Freeglut internal structure */
+extern SFG_Structure fgStructure;
+
+/* The current freeglut settings */
+extern SFG_State fgState;
+
+
+/* -- PRIVATE FUNCTION DECLARATIONS ---------------------------------------- */
+
+/*
+ * A call to this function makes us sure that the Display and Structure
+ * subsystems have been properly initialized and are ready to be used
+ */
+#define  FREEGLUT_EXIT_IF_NOT_INITIALISED( string )               \
+  if ( ! fgState.Initialised )                                    \
+  {                                                               \
+    fgError ( " ERROR:  Function <%s> called"                     \
+              " without first calling 'glutInit'.", (string) ) ;  \
+  }
+
+#define  FREEGLUT_INTERNAL_ERROR_EXIT_IF_NOT_INITIALISED( string )  \
+  if ( ! fgState.Initialised )                                      \
+  {                                                                 \
+    fgError ( " ERROR:  Internal <%s> function called"              \
+              " without first calling 'glutInit'.", (string) ) ;    \
+  }
+
+#define  FREEGLUT_INTERNAL_ERROR_EXIT( cond, string, function )  \
+  if ( ! ( cond ) )                                              \
+  {                                                              \
+    fgError ( " ERROR:  Internal error <%s> in function %s",     \
+              (string), (function) ) ;                           \
+  }
+
+/*
+ * Following definitions are somewhat similiar to GLib's,
+ * but do not generate any log messages:
+ */
+#define  freeglut_return_if_fail( expr ) \
+    if( !(expr) )                        \
+        return;
+#define  freeglut_return_val_if_fail( expr, val ) \
+    if( !(expr) )                                 \
+        return val ;
+
+/*
+ * A call to those macros assures us that there is a current
+ * window set, respectively:
+ */
+#define  FREEGLUT_EXIT_IF_NO_WINDOW( string )                               \
+  if ( ! fgStructure.CurrentWindow &&                                       \
+       ( fgState.ActionOnWindowClose != GLUT_ACTION_CONTINUE_EXECUTION ) )  \
+  {                                                                         \
+    fgError ( " ERROR:  Function <%s> called"                               \
+              " with no current window defined.", (string) ) ;              \
+  }
+
+/*
+ * The deinitialize function gets called on glutMainLoop() end. It should clean up
+ * everything inside of the freeglut
+ */
+void fgDeinitialize( void );
+
+/*
+ * Those two functions are used to create/destroy the freeglut internal
+ * structures. This actually happens when calling glutInit() and when
+ * quitting the glutMainLoop() (which actually happens, when all windows
+ * have been closed).
+ */
+void fgCreateStructure( void );
+void fgDestroyStructure( void );
+
+/*
+ * Window creation, opening, closing and destruction.
+ * Also CallBack clearing/initialization.
+ * Defined in freeglut_structure.c, freeglut_window.c.
+ */
+SFG_Window* fgCreateWindow( SFG_Window* parent, const char* title,
+                            GLboolean positionUse, int x, int y,
+                            GLboolean sizeUse, int w, int h,
+                            GLboolean gameMode, GLboolean isMenu );
+void        fgSetWindow ( SFG_Window *window );
+void        fgOpenWindow( SFG_Window* window, const char* title,
+                          GLboolean positionUse, int x, int y,
+                          GLboolean sizeUse, int w, int h,
+                          GLboolean gameMode, GLboolean isSubWindow );
+void        fgCloseWindow( SFG_Window* window );
+void        fgAddToWindowDestroyList ( SFG_Window* window );
+void        fgCloseWindows ();
+void        fgDestroyWindow( SFG_Window* window );
+
+/* Menu creation and destruction. Defined in freeglut_structure.c */
+SFG_Menu*   fgCreateMenu( FGCBMenu menuCallback );
+void        fgDestroyMenu( SFG_Menu* menu );
+
+/* Joystick device management functions, defined in freeglut_joystick.c */
+int         fgJoystickDetect( void );
+void        fgInitialiseJoysticks( void );
+void        fgJoystickClose( void );
+void        fgJoystickPollWindow( SFG_Window* window );
+
+/* InputDevice Initialisation and Closure */
+int         fgInputDeviceDetect( void );
+void        fgInitialiseInputDevices( void );
+void        fgInputDeviceClose( void );
+
+/* spaceball device functions, defined in freeglut_spaceball.c */
+void        fgInitialiseSpaceball( void );
+void        fgSpaceballClose( void );
+void        fgSpaceballSetWindow( SFG_Window *window );
+
+int         fgHasSpaceball( void );
+int         fgSpaceballNumButtons( void );
+
+/* Setting the cursor for a given window */
+void fgSetCursor ( SFG_Window *window, int cursorID );
+
+/*
+ * Helper function to enumerate through all registered windows
+ * and one to enumerate all of a window's subwindows...
+ *
+ * The GFunc callback for those functions will be defined as:
+ *
+ *      void enumCallback( gpointer window, gpointer enumerator );
+ *
+ * where window is the enumerated (sub)window pointer (SFG_Window *),
+ * and userData is the a custom user-supplied pointer. Functions
+ * are defined and exported from freeglut_structure.c file.
+ */
+void fgEnumWindows( FGCBenumerator enumCallback, SFG_Enumerator* enumerator );
+void fgEnumSubWindows( SFG_Window* window, FGCBenumerator enumCallback,
+                       SFG_Enumerator* enumerator );
+
+/*
+ * fgWindowByHandle returns a (SFG_Window *) value pointing to the
+ * first window in the queue matching the specified window handle.
+ * The function is defined in freeglut_structure.c file.
+ */
+SFG_Window* fgWindowByHandle( SFG_WindowHandleType hWindow );
+
+/*
+ * This function is similiar to the previous one, except it is
+ * looking for a specified (sub)window identifier. The function
+ * is defined in freeglut_structure.c file.
+ */
+SFG_Window* fgWindowByID( int windowID );
+
+/*
+ * Looks up a menu given its ID. This is easier than fgWindowByXXX
+ * as all menus are placed in a single doubly linked list...
+ */
+SFG_Menu* fgMenuByID( int menuID );
+
+/*
+ * The menu activation and deactivation the code. This is the meat
+ * of the menu user interface handling code...
+ */
+void fgUpdateMenuHighlight ( SFG_Menu *menu );
+GLboolean fgCheckActiveMenu ( SFG_Window *window, int button, GLboolean pressed,
+                              int mouse_x, int mouse_y );
+void fgDeactivateMenu( SFG_Window *window );
+
+/*
+ * This function gets called just before the buffers swap, so that
+ * freeglut can display the pull-down menus via OpenGL. The function
+ * is defined in freeglut_menu.c file.
+ */
+void fgDisplayMenu( void );
+
+/* Elapsed time as per glutGet(GLUT_ELAPSED_TIME). */
+fg_time_t fgElapsedTime( void );
+
+/* System time in milliseconds */
+fg_time_t fgSystemTime(void);
+
+/* List functions */
+void fgListInit(SFG_List *list);
+void fgListAppend(SFG_List *list, SFG_Node *node);
+void fgListRemove(SFG_List *list, SFG_Node *node);
+int fgListLength(SFG_List *list);
+void fgListInsert(SFG_List *list, SFG_Node *next, SFG_Node *node);
+
+/* Error Message functions */
+void fgError( const char *fmt, ... );
+void fgWarning( const char *fmt, ... );
+
+SFG_Proc fgPlatformGetProcAddress( const char *procName );
+
+/* pushing attribute/value pairs into an array */
+#define ATTRIB(a) attributes[where++]=(a)
+#define ATTRIB_VAL(a,v) {ATTRIB(a); ATTRIB(v);}
+
+int fghIsLegacyContextVersionRequested( void );
+int fghMapBit( int mask, int from, int to );
+int fghIsLegacyContextRequested( void );
+void fghContextCreationError( void );
+int fghNumberOfAuxBuffersRequested( void );
+
+#endif /* FREEGLUT_INTERNAL_H */
+
+/*** END OF FILE ***/
diff --git a/src/fg_joystick.c b/src/fg_joystick.c
new file mode 100644 (file)
index 0000000..ab6f401
--- /dev/null
@@ -0,0 +1,1070 @@
+/*
+ * freeglut_joystick.c
+ *
+ * Joystick handling code
+ *
+ * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
+ * Written by Steve Baker, <sjbaker1@airmail.net>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * FreeBSD port by Stephen Montgomery-Smith <stephen@math.missouri.edu>
+ *
+ * Redone by John Fay 2/4/04 with another look from the PLIB "js" library.
+ *  Many thanks for Steve Baker for permission to pull from that library.
+ */
+
+#include <GL/freeglut.h>
+#include "fg_internal.h"
+#ifdef HAVE_SYS_PARAM_H
+#    include <sys/param.h>
+#endif
+
+#define JS_TRUE  1
+#define JS_FALSE 0
+
+/* BSD defines from "jsBSD.cxx" around lines 42-270 */
+
+#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+
+#    ifdef HAVE_USB_JS
+#        if defined(__NetBSD__)
+/* XXX The below hack is done until freeglut's autoconf is updated. */
+#            define HAVE_USBHID_H 1
+#            ifdef HAVE_USBHID_H
+#                include <usbhid.h>
+#            else
+#                include <usb.h>
+#            endif
+#        elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+#            ifdef HAVE_USBHID_H
+#                include <usbhid.h>
+#            else
+#                include <libusbhid.h>
+#            endif
+#        endif
+#        include <legacy/dev/usb/usb.h>
+#        include <dev/usb/usbhid.h>
+
+/* Compatibility with older usb.h revisions */
+#        if !defined(USB_MAX_DEVNAMES) && defined(MAXDEVNAMES)
+#            define USB_MAX_DEVNAMES MAXDEVNAMES
+#        endif
+#    endif
+
+static int hatmap_x[9] = { 0, 0, 1, 1, 1, 0, -1, -1, -1 };
+static int hatmap_y[9] = { 0, 1, 1, 0, -1, -1, -1, 0, 1 };
+struct os_specific_s {
+  char             fname [128 ];
+  int              fd;
+  int              is_analog;
+  /* The following structure members are specific to analog joysticks */
+  struct joystick  ajs;
+#    ifdef HAVE_USB_JS
+  /* The following structure members are specific to USB joysticks */
+  struct hid_item *hids;
+  int              hid_dlen;
+  int              hid_offset;
+  char            *hid_data_buf;
+  int              axes_usage [ _JS_MAX_AXES ];
+#    endif
+  /* We keep button and axes state ourselves, as they might not be updated
+   * on every read of a USB device
+   */
+  int              cache_buttons;
+  float            cache_axes [ _JS_MAX_AXES ];
+};
+
+/* Idents lower than USB_IDENT_OFFSET are for analog joysticks. */
+#    define USB_IDENT_OFFSET    2
+
+#    define USBDEV "/dev/usb"
+#    define UHIDDEV "/dev/uhid"
+#    define AJSDEV "/dev/joy"
+
+#    ifdef HAVE_USB_JS
+/*
+ * fghJoystickFindUSBdev (and its helper, fghJoystickWalkUSBdev) try to locate
+ * the full name of a USB device. If /dev/usbN isn't readable, we punt and
+ * return the uhidN device name. We warn the user of this situation once.
+ */
+static char *fghJoystickWalkUSBdev(int f, char *dev, char *out, int outlen)
+{
+  struct usb_device_info di;
+  int i, a;
+  char *cp;
+
+  for (a = 1; a < USB_MAX_DEVICES; a++) {
+    di.udi_addr = a;
+    if (ioctl(f, USB_DEVICEINFO, &di) != 0)
+      return NULL;
+    for (i = 0; i < USB_MAX_DEVNAMES; i++)
+      if (di.udi_devnames[i][0] &&
+          strcmp(di.udi_devnames[i], dev) == 0) {
+        cp =  calloc( 1, strlen(di.udi_vendor) + strlen(di.udi_product) + 2);
+        strcpy(cp, di.udi_vendor);
+        strcat(cp, " ");
+        strcat(cp, di.udi_product);
+        strncpy(out, cp, outlen - 1);
+        out[outlen - 1] = 0;
+        free( cp );
+        return out;
+      }
+  }
+  return NULL;
+}
+
+static int fghJoystickFindUSBdev(char *name, char *out, int outlen)
+{
+  int i, f;
+  char buf[50];
+  char *cp;
+  static int protection_warned = 0;
+
+  for (i = 0; i < 16; i++) {
+    snprintf(buf, sizeof(buf), "%s%d", USBDEV, i);
+    f = open(buf, O_RDONLY);
+    if (f >= 0) {
+      cp = fghJoystickWalkUSBdev(f, name, out, outlen);
+      close(f);
+      if (cp)
+        return 1;
+    }
+#ifdef HAVE_ERRNO_H
+    else if (errno == EACCES) {
+      if (!protection_warned) {
+        fgWarning ( "Can't open %s for read!", buf );
+        protection_warned = 1;
+      }
+    }
+#endif
+  }
+  return 0;
+}
+
+static int fghJoystickInitializeHID(struct os_specific_s *os,
+       int *num_axes, int *num_buttons)
+{
+    int size, is_joystick;
+#   ifdef HAVE_USBHID_H
+        int report_id = 0;
+#   endif
+    struct hid_data *d;
+    struct hid_item h;
+    report_desc_t rd;
+
+    if ( ( rd = hid_get_report_desc( os->fd ) ) == 0 )
+    {
+#ifdef HAVE_ERRNO_H
+        fgWarning ( "error: %s: %s", os->fname, strerror( errno ) );
+#else
+        fgWarning ( "error: %s", os->fname );
+#endif
+        return FALSE;
+    }
+
+    os->hids = NULL;
+
+#   ifdef HAVE_USBHID_H
+        if( ioctl( os->fd, USB_GET_REPORT_ID, &report_id ) < 0)
+        {
+            /*** XXX {report_id} may not be the right variable? ***/
+#ifdef HAVE_ERRNO_H
+            fgWarning ( "error: %s%d: %s", UHIDDEV, report_id, strerror( errno ) );
+#else
+            fgWarning ( "error: %s%d", UHIDDEV, report_id );
+#endif
+            return FALSE;
+        }
+
+        size = hid_report_size( rd, hid_input, report_id );
+#   else
+        size = hid_report_size( rd, 0, hid_input );
+#   endif
+    os->hid_data_buf = calloc( 1, size );
+    os->hid_dlen = size;
+
+    is_joystick = 0;
+#   ifdef HAVE_USBHID_H
+        d = hid_start_parse( rd, 1 << hid_input, report_id );
+#   else
+        d = hid_start_parse( rd, 1 << hid_input );
+#   endif
+        while( hid_get_item( d, &h ) )
+        {
+            int usage, page, interesting_hid;
+
+            page = HID_PAGE( h.usage );
+            usage = HID_USAGE( h.usage );
+
+            /* This test is somewhat too simplistic, but this is how MicroSoft
+             * does, so I guess it works for all joysticks/game pads. */
+            is_joystick = is_joystick ||
+                ( h.kind == hid_collection &&
+                  page == HUP_GENERIC_DESKTOP &&
+                  ( usage == HUG_JOYSTICK || usage == HUG_GAME_PAD ) );
+
+            if( h.kind != hid_input )
+                continue;
+
+            if( !is_joystick )
+                continue;
+
+            interesting_hid = TRUE;
+            if( page == HUP_GENERIC_DESKTOP )
+            {
+                switch( usage )
+                {
+                case HUG_X:
+                case HUG_RX:
+                case HUG_Y:
+                case HUG_RY:
+                case HUG_Z:
+                case HUG_RZ:
+                case HUG_SLIDER:
+                    if( *num_axes < _JS_MAX_AXES )
+                    {
+                        os->axes_usage[ *num_axes ] = usage;
+                        ( *num_axes )++;
+                    }
+                    break;
+                case HUG_HAT_SWITCH:
+                    /* Allocate two axes for a hat */
+                    if( *num_axes + 1 < _JS_MAX_AXES )
+                    {
+                        os->axes_usage[ *num_axes ] = usage;
+                        (*num_axes)++;
+                        os->axes_usage[ *num_axes ] = usage;
+                        (*num_axes)++;
+                    }
+                    break;
+                default:
+                    interesting_hid = FALSE;
+                    break;
+                }
+            }
+            else if( page == HUP_BUTTON )
+            {
+                interesting_hid = ( usage > 0 ) &&
+                    ( usage <= _JS_MAX_BUTTONS );
+
+                if( interesting_hid && usage - 1 > *num_buttons )
+                    *num_buttons = usage - 1;
+            }
+
+            if( interesting_hid )
+            {
+                h.next = os->hids;
+                os->hids = calloc( 1, sizeof ( struct hid_item ) );
+                *os->hids = h;
+            }
+        }
+        hid_end_parse( d );
+
+        return os->hids != NULL;
+}
+#    endif
+#endif
+
+/*
+ * Functions associated with the "jsJoystick" class in PLIB
+ */
+#if TARGET_HOST_MAC_OSX
+#define K_NUM_DEVICES   32
+int numDevices;
+io_object_t ioDevices[K_NUM_DEVICES];
+
+static void fghJoystickFindDevices ( SFG_Joystick* joy, mach_port_t );
+static CFDictionaryRef fghJoystickGetCFProperties ( SFG_Joystick* joy, io_object_t );
+
+static void fghJoystickEnumerateElements ( SFG_Joystick* joy, CFTypeRef element );
+/* callback for CFArrayApply */
+static void fghJoystickElementEnumerator ( SFG_Joystick* joy, void *element, void* vjs );
+
+static void fghJoystickAddAxisElement ( SFG_Joystick* joy, CFDictionaryRef axis );
+static void fghJoystickAddButtonElement ( SFG_Joystick* joy, CFDictionaryRef button );
+static void fghJoystickAddHatElement ( SFG_Joystick* joy, CFDictionaryRef hat );
+#endif
+
+
+/* External function declarations (mostly platform-specific) */
+extern void fgPlatformJoystickRawRead( SFG_Joystick* joy, int* buttons, float* axes );
+extern void fgPlatformJoystickOpen( SFG_Joystick* joy );
+extern void fgPlatformJoystickInit( SFG_Joystick *fgJoystick[], int ident );
+extern void fgPlatformJoystickClose ( int ident );
+
+/*
+ * The static joystick structure pointer
+ */
+#define MAX_NUM_JOYSTICKS  2
+SFG_Joystick *fgJoystick [ MAX_NUM_JOYSTICKS ];
+
+/*
+ * Read the raw joystick data
+ */
+static void fghJoystickRawRead( SFG_Joystick* joy, int* buttons, float* axes )
+{
+    int i;
+
+    /* Defaults */
+    if( buttons )
+        *buttons = 0;
+
+    if( axes )
+        for( i = 0; i < joy->num_axes; i++ )
+            axes[ i ] = 1500.0f;
+
+    if( joy->error )
+        return;
+
+       fgPlatformJoystickRawRead ( joy, buttons, axes );
+}
+
+/*
+ * Correct the joystick axis data
+ */
+static float fghJoystickFudgeAxis( SFG_Joystick* joy, float value, int axis )
+{
+    if( value < joy->center[ axis ] )
+    {
+        float xx = ( value - joy->center[ axis ] ) / ( joy->center[ axis ] -
+                                                       joy->min[ axis ] );
+
+        if( xx < -joy->saturate[ axis ] )
+            return -1.0f;
+
+        if( xx > -joy->dead_band [ axis ] )
+            return 0.0f;
+
+        xx = ( xx + joy->dead_band[ axis ] ) / ( joy->saturate[ axis ] -
+                                                 joy->dead_band[ axis ] );
+
+        return ( xx < -1.0f ) ? -1.0f : xx;
+    }
+    else
+    {
+        float xx = ( value - joy->center [ axis ] ) / ( joy->max[ axis ] -
+                                                        joy->center[ axis ] );
+
+        if( xx > joy->saturate[ axis ] )
+            return 1.0f;
+
+        if( xx < joy->dead_band[ axis ] )
+            return 0.0f;
+
+        xx = ( xx - joy->dead_band[ axis ] ) / ( joy->saturate[ axis ] -
+                                                 joy->dead_band[ axis ] );
+
+        return ( xx > 1.0f ) ? 1.0f : xx;
+    }
+}
+
+/*
+ * Read the corrected joystick data
+ */
+static void fghJoystickRead( SFG_Joystick* joy, int* buttons, float* axes )
+{
+    float raw_axes[ _JS_MAX_AXES ];
+    int  i;
+
+    if( joy->error )
+    {
+        if( buttons )
+            *buttons = 0;
+
+        if( axes )
+            for ( i=0; i<joy->num_axes; i++ )
+                axes[ i ] = 0.0f;
+    }
+
+    fghJoystickRawRead( joy, buttons, raw_axes );
+
+    if( axes )
+        for( i=0; i<joy->num_axes; i++ )
+            axes[ i ] = fghJoystickFudgeAxis( joy, raw_axes[ i ], i );
+}
+
+/*
+ * Happy happy happy joy joy joy (happy new year toudi :D)
+ */
+
+
+#if TARGET_HOST_MAC_OSX
+/** open the IOKit connection, enumerate all the HID devices, add their
+interface references to the static array. We then use the array index
+as the device number when we come to open() the joystick. */
+static int fghJoystickFindDevices ( SFG_Joystick *joy, mach_port_t masterPort )
+{
+    CFMutableDictionaryRef hidMatch = NULL;
+    IOReturn rv = kIOReturnSuccess;
+
+    io_iterator_t hidIterator;
+    io_object_t ioDev;
+
+    /* build a dictionary matching HID devices */
+    hidMatch = IOServiceMatching(kIOHIDDeviceKey);
+
+    rv = IOServiceGetMatchingServices(masterPort, hidMatch, &hidIterator);
+    if (rv != kIOReturnSuccess || !hidIterator) {
+      fgWarning( "no joystick (HID) devices found" );
+      return;
+    }
+
+    /* iterate */
+    while ((ioDev = IOIteratorNext(hidIterator))) {
+        /* filter out keyboard and mouse devices */
+        CFDictionaryRef properties = getCFProperties(ioDev);
+        long usage, page;
+
+        CFTypeRef refPage = CFDictionaryGetValue (properties, CFSTR(kIOHIDPrimaryUsagePageKey));
+        CFTypeRef refUsage = CFDictionaryGetValue (properties, CFSTR(kIOHIDPrimaryUsageKey));
+        CFNumberGetValue((CFNumberRef) refUsage, kCFNumberLongType, &usage);
+        CFNumberGetValue((CFNumberRef) refPage, kCFNumberLongType, &page);
+
+        /* keep only joystick devices */
+        if ( ( page == kHIDPage_GenericDesktop ) && (
+                            (usage == kHIDUsage_GD_Joystick)
+                         || (usage == kHIDUsage_GD_GamePad)
+                         || (usage == kHIDUsage_GD_MultiAxisController)
+                         || (usage == kHIDUsage_GD_Hatswitch) /* last two necessary ? */
+            /* add it to the array */
+            ioDevices[numDevices++] = ioDev;
+    }
+
+    IOObjectRelease(hidIterator);
+}
+
+static CFDictionaryRef fghJoystickGetCFProperties ( SFG_Joystick *joy, io_object_t ioDev )
+{
+    IOReturn rv;
+    CFMutableDictionaryRef cfProperties;
+
+#if 0
+    /* comment copied from darwin/SDL_sysjoystick.c */
+    /* Mac OS X currently is not mirroring all USB properties to HID page so need to look at USB device page also
+     * get dictionary for usb properties: step up two levels and get CF dictionary for USB properties
+     */
+
+    io_registry_entry_t parent1, parent2;
+
+    rv = IORegistryEntryGetParentEntry (ioDev, kIOServicePlane, &parent1);
+    if (rv != kIOReturnSuccess) {
+        fgWarning ( "error getting device entry parent");
+        return NULL;
+    }
+
+    rv = IORegistryEntryGetParentEntry (parent1, kIOServicePlane, &parent2);
+    if (rv != kIOReturnSuccess) {
+        fgWarning ( "error getting device entry parent 2");
+        return NULL;
+    }
+#endif
+
+    rv = IORegistryEntryCreateCFProperties( ioDev /*parent2*/,
+        &cfProperties, kCFAllocatorDefault, kNilOptions);
+    if (rv != kIOReturnSuccess || !cfProperties) {
+        fgWarning ( "error getting device properties");
+        return NULL;
+    }
+
+    return cfProperties;
+}
+
+static void fghJoystickElementEnumerator ( SFG_Joystick *joy, void *element, void* vjs )
+{
+      if (CFGetTypeID((CFTypeRef) element) != CFDictionaryGetTypeID()) {
+            fgError ( "%s", "element enumerator passed non-dictionary value");
+            return;
+    }
+
+      static_cast<jsJoystick*>(vjs)->parseElement ( (CFDictionaryRef) element );
+}
+
+/** element enumerator function : pass NULL for top-level*/
+static void fghJoystickEnumerateElements ( SFG_Joystick *joy, CFTypeRef element )
+{
+      FREEGLUT_INTERNAL_ERROR_EXIT( (CFGetTypeID(element) == CFArrayGetTypeID(),
+                                    "Joystick element type mismatch",
+                                    "fghJoystickEnumerateElements" );
+
+      CFRange range = {0, CFArrayGetCount ((CFArrayRef)element)};
+      CFArrayApplyFunction((CFArrayRef) element, range,
+            &fghJoystickElementEnumerator, joy );
+}
+
+static void fghJoystickAddAxisElement ( SFG_Joystick *joy, CFDictionaryRef axis )
+{
+    long cookie, lmin, lmax;
+    int index = joy->num_axes++;
+
+    CFNumberGetValue ((CFNumberRef)
+        CFDictionaryGetValue ( axis, CFSTR(kIOHIDElementCookieKey) ),
+        kCFNumberLongType, &cookie);
+
+    joy->pJoystick.axisCookies[index] = (IOHIDElementCookie) cookie;
+
+    CFNumberGetValue ((CFNumberRef)
+        CFDictionaryGetValue ( axis, CFSTR(kIOHIDElementMinKey) ),
+        kCFNumberLongType, &lmin);
+
+    CFNumberGetValue ((CFNumberRef)
+        CFDictionaryGetValue ( axis, CFSTR(kIOHIDElementMaxKey) ),
+        kCFNumberLongType, &lmax);
+
+    joy->min[index] = lmin;
+    joy->max[index] = lmax;
+    joy->dead_band[index] = 0.0;
+    joy->saturate[index] = 1.0;
+    joy->center[index] = (lmax + lmin) * 0.5;
+}
+
+static void fghJoystickAddButtonElement ( SFG_Joystick *joy, CFDictionaryRef button )
+{
+    long cookie;
+    CFNumberGetValue ((CFNumberRef)
+            CFDictionaryGetValue ( button, CFSTR(kIOHIDElementCookieKey) ),
+            kCFNumberLongType, &cookie);
+
+    joy->pJoystick.buttonCookies[num_buttons++] = (IOHIDElementCookie) cookie;
+    /* anything else for buttons? */
+}
+
+static void fghJoystickAddHatElement ( SFG_Joystick *joy, CFDictionaryRef button )
+{
+    /* hatCookies[num_hats++] = (IOHIDElementCookie) cookie; */
+    /* do we map hats to axes or buttons? */
+}
+#endif
+
+/*
+ *  Platform-Specific Code
+ */
+
+#if TARGET_HOST_MACINTOSH
+void fgPlatformJoystickRawRead( SFG_Joystick* joy, int* buttons, float* axes )
+{
+    int i;
+
+    if ( buttons )
+    {
+        *buttons = 0;
+
+        for ( i = 0; i < joy->num_buttons; i++ )
+        {
+            UInt32 state;
+            int err = ISpElement_GetSimpleState ( joy->pJoystick.isp_elem [ i + ISP_NUM_AXIS ], &state);
+            ISP_CHECK_ERR(err)
+
+            *buttons |= state << i;
+        }
+    }
+
+    if ( axes )
+    {
+        for ( i = 0; i < joy->num_axes; i++ )
+        {
+            UInt32 state;
+            int err = ISpElement_GetSimpleState ( joy->pJoystick.isp_elem [ i ], &state );
+            ISP_CHECK_ERR(err)
+
+            axes [i] = (float) state;
+        }
+    }
+}
+
+
+void fgPlatformJoystickOpen( SFG_Joystick* joy )
+{
+       int i = 0;
+    OSStatus err;
+
+    /* XXX FIXME: get joystick name in Mac */
+
+    err = ISpStartup( );
+
+    if( err == noErr )
+    {
+#define ISP_CHECK_ERR(x) if( x != noErr ) { joy->error = GL_TRUE; return; }
+
+        joy->error = GL_TRUE;
+
+        /* initialize the needs structure */
+        ISpNeed temp_isp_needs[ ISP_NUM_NEEDS ] =
+        {
+          { "\pX-Axis",  128, 0, 0, kISpElementKind_Axis,   kISpElementLabel_None, 0, 0, 0, 0 },
+          { "\pY-Axis",  128, 0, 0, kISpElementKind_Axis,   kISpElementLabel_None, 0, 0, 0, 0 },
+          { "\pZ-Axis",    128, 0, 0, kISpElementKind_Axis,   kISpElementLabel_None, 0, 0, 0, 0 },
+          { "\pR-Axis",    128, 0, 0, kISpElementKind_Axis,   kISpElementLabel_None, 0, 0, 0, 0 },
+          { "\pAxis   4",  128, 0, 0, kISpElementKind_Axis,   kISpElementLabel_None, 0, 0, 0, 0 },
+          { "\pAxis   5",  128, 0, 0, kISpElementKind_Axis,   kISpElementLabel_None, 0, 0, 0, 0 },
+          { "\pAxis   6",  128, 0, 0, kISpElementKind_Axis,   kISpElementLabel_None, 0, 0, 0, 0 },
+          { "\pAxis   7",  128, 0, 0, kISpElementKind_Axis,   kISpElementLabel_None, 0, 0, 0, 0 },
+          { "\pAxis   8",  128, 0, 0, kISpElementKind_Axis,   kISpElementLabel_None, 0, 0, 0, 0 },
+
+          { "\pButton 0",  128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 1",  128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 2",  128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 3",  128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 4",  128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 5",  128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 6",  128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 7",  128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 8",  128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 9",  128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 10", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 11", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 12", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 13", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 14", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 15", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 16", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 17", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 18", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 19", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 20", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 21", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 22", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 23", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 24", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 25", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 26", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 27", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 28", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 29", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 30", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+          { "\pButton 31", 128, 0, 0, kISpElementKind_Button, kISpElementLabel_Btn_Select, 0, 0, 0, 0 },
+        };
+
+        memcpy( joy->pJoystick.isp_needs, temp_isp_needs, sizeof (temp_isp_needs ) );
+
+
+        /* next two calls allow keyboard and mouse to emulate other input
+         * devices (gamepads, joysticks, etc)
+         */
+        /*
+          err = ISpDevices_ActivateClass ( kISpDeviceClass_Keyboard );
+          ISP_CHECK_ERR(err)
+
+
+          err = ISpDevices_ActivateClass ( kISpDeviceClass_Mouse );
+          ISP_CHECK_ERR(err)
+        */
+
+        err = ISpElement_NewVirtualFromNeeds( ISP_NUM_NEEDS,
+                                              joy->pJoystick.isp_needs, joy->pJoystick.isp_elem,
+                                              0 );
+        ISP_CHECK_ERR( err )
+
+        err = ISpInit( ISP_NUM_NEEDS, joy->pJoystick.isp_needs, joy->pJoystick.isp_elem,
+                       'freeglut', nil, 0, 128, 0 );
+        ISP_CHECK_ERR( err )
+
+        joy->num_buttons = ISP_NUM_NEEDS - ISP_NUM_AXIS;
+        joy->num_axes    = ISP_NUM_AXIS;
+
+        for( i = 0; i < joy->num_axes; i++ )
+        {
+            joy->dead_band[ i ] = 0;
+            joy->saturate [ i ] = 1;
+            joy->center   [ i ] = kISpAxisMiddle;
+            joy->max      [ i ] = kISpAxisMaximum;
+            joy->min      [ i ] = kISpAxisMinimum;
+        }
+
+        joy->error = GL_FALSE;
+    }
+    else
+        joy->num_buttons = joy->num_axes = 0;
+}
+
+
+void fgPlatformJoystickInit( SFG_Joystick *fgJoystick[], int ident )
+{
+    fgJoystick[ ident ]->id = ident;
+    snprintf( fgJoystick[ ident ]->pJoystick.fname, sizeof(fgJoystick[ ident ]->pJoystick.fname), "/dev/js%d", ident ); /* FIXME */
+    fgJoystick[ ident ]->error = GL_FALSE;
+}
+
+
+void fgPlatformJoystickClose ( int ident )
+{
+    ISpSuspend( );
+    ISpStop( );
+    ISpShutdown( );
+}
+#endif
+
+#if TARGET_HOST_MAC_OSX
+void fgPlatformJoystickRawRead( SFG_Joystick* joy, int* buttons, float* axes )
+{
+    int i;
+
+    if ( buttons != NULL )
+    {
+        *buttons = 0;
+
+        for ( i = 0; i < joy->num_buttons; i++ )
+        {
+            IOHIDEventStruct hidEvent;
+            (*(joy->pJoystick.hidDev))->getElementValue ( joy->pJoystick.hidDev, joy->pJoystick.buttonCookies[i], &hidEvent );
+            if ( hidEvent.value )
+                *buttons |= 1 << i;
+        }
+    }
+
+    if ( axes != NULL )
+    {
+        for ( i = 0; i < joy->num_axes; i++ )
+        {
+            IOHIDEventStruct hidEvent;
+            (*(joy->pJoystick.hidDev))->getElementValue ( joy->pJoystick.hidDev, joy->pJoystick.axisCookies[i], &hidEvent );
+            axes[i] = hidEvent.value;
+        }
+    }
+}
+
+
+void fgPlatformJoystickOpen( SFG_Joystick* joy )
+{
+    IOReturn rv;
+    SInt32 score;
+    IOCFPlugInInterface **plugin;
+
+    HRESULT pluginResult;
+
+    CFDictionaryRef props;
+    CFTypeRef topLevelElement;
+
+    if( joy->id >= numDevices )
+    {
+        fgWarning( "device index out of range in fgJoystickOpen()" );
+        return;
+    }
+
+    /* create device interface */
+    rv = IOCreatePlugInInterfaceForService( ioDevices[ joy->id ],
+                                            kIOHIDDeviceUserClientTypeID,
+                                            kIOCFPlugInInterfaceID,
+                                            &plugin, &score );
+
+    if( rv != kIOReturnSuccess )
+    {
+        fgWarning( "error creating plugin for io device" );
+        return;
+    }
+
+    pluginResult = ( *plugin )->QueryInterface(
+        plugin,
+        CFUUIDGetUUIDBytes(kIOHIDDeviceInterfaceID),
+        &( LPVOID )joy->pJoystick.hidDev
+    );
+
+    if( pluginResult != S_OK )
+        fgWarning ( "QI-ing IO plugin to HID Device interface failed" );
+
+    ( *plugin )->Release( plugin ); /* don't leak a ref */
+    if( joy->pJoystick.hidDev == NULL )
+        return;
+
+    /* store the interface in this instance */
+    rv = ( *( joy->pJoystick.hidDev ) )->open( joy->pJoystick.hidDev, 0 );
+    if( rv != kIOReturnSuccess )
+    {
+        fgWarning( "error opening device interface");
+        return;
+    }
+
+    props = getCFProperties( ioDevices[ joy->id ] );
+
+    /* recursively enumerate all the bits */
+    CFTypeRef topLevelElement =
+        CFDictionaryGetValue( props, CFSTR( kIOHIDElementKey ) );
+    enumerateElements( topLevelElement );
+
+    CFRelease( props );
+}
+
+
+void fgPlatformJoystickInit( SFG_Joystick *fgJoystick[], int ident )
+{
+    fgJoystick[ ident ]->id = ident;
+    fgJoystick[ ident ]->error = GL_FALSE;
+    fgJoystick[ ident ]->num_axes = 0;
+    fgJoystick[ ident ]->num_buttons = 0;
+
+    if( numDevices < 0 )
+    {
+        /* do first-time init (since we can't over-ride jsInit, hmm */
+        numDevices = 0;
+
+        mach_port_t masterPort;
+        IOReturn rv = IOMasterPort( bootstrap_port, &masterPort );
+        if( rv != kIOReturnSuccess )
+        {
+            fgWarning( "error getting master Mach port" );
+            return;
+        }
+        fghJoystickFindDevices( masterPort );
+    }
+
+    if ( ident >= numDevices )
+    {
+        fgJoystick[ ident ]->error = GL_TRUE;
+        return;
+    }
+
+    /* get the name now too */
+    CFDictionaryRef properties = getCFProperties( ioDevices[ ident ] );
+    CFTypeRef ref = CFDictionaryGetValue( properties,
+                                          CFSTR( kIOHIDProductKey ) );
+    if (!ref)
+        ref = CFDictionaryGetValue(properties, CFSTR( "USB Product Name" ) );
+
+    if( !ref ||
+        !CFStringGetCString( ( CFStringRef )ref, name, 128,
+                             CFStringGetSystemEncoding( ) ) )
+    {
+        fgWarning( "error getting device name" );
+        name[ 0 ] = '\0';
+    }
+}
+
+
+void fgPlatformJoystickClose ( int ident )
+{
+    ( *( fgJoystick[ ident ]->pJoystick.hidDev ) )->
+        close( fgJoystick[ ident ]->pJoystick.hidDev );
+}
+#endif
+
+
+
+
+static void fghJoystickOpen( SFG_Joystick* joy )
+{
+    /*
+     * Default values (for no joystick -- each conditional will reset the
+     * error flag)
+     */
+    joy->error = TRUE;
+    joy->num_axes = joy->num_buttons = 0;
+    joy->name[ 0 ] = '\0';
+
+       fgPlatformJoystickOpen ( joy );
+
+}
+
+/*
+ * This function replaces the constructor method in the JS library.
+ */
+static void fghJoystickInit( int ident )
+{
+    if( ident >= MAX_NUM_JOYSTICKS )
+      fgError( "Too large a joystick number: %d", ident );
+
+    if( fgJoystick[ ident ] )
+        fgError( "illegal attempt to initialize joystick device again" );
+
+    fgJoystick[ ident ] =
+        ( SFG_Joystick * )calloc( sizeof( SFG_Joystick ), 1 );
+
+    /* Set defaults */
+    fgJoystick[ ident ]->num_axes = fgJoystick[ ident ]->num_buttons = 0;
+    fgJoystick[ ident ]->error = GL_TRUE;
+
+       fgPlatformJoystickInit( fgJoystick, ident );
+
+    fghJoystickOpen( fgJoystick[ ident  ] );
+}
+
+/*
+ * Try initializing all the joysticks (well, both of them)
+ */
+void fgInitialiseJoysticks ( void )
+{
+    if( !fgState.JoysticksInitialised )
+    {
+        int ident ;
+        for ( ident = 0; ident < MAX_NUM_JOYSTICKS; ident++ )
+            fghJoystickInit( ident );
+
+        fgState.JoysticksInitialised = GL_TRUE;
+    }
+}
+
+
+void fgJoystickClose( void )
+{
+    int ident ;
+    for( ident = 0; ident < MAX_NUM_JOYSTICKS; ident++ )
+    {
+        if( fgJoystick[ ident ] )
+        {
+                       fgPlatformJoystickClose ( ident );
+
+            free( fgJoystick[ ident ] );
+            fgJoystick[ ident ] = NULL;
+            /* show joystick has been deinitialized */
+        }
+    }
+}
+
+/*
+ * Polls the joystick and executes the joystick callback hooked to the
+ * window specified in the function's parameter:
+ */
+void fgJoystickPollWindow( SFG_Window* window )
+{
+    float axes[ _JS_MAX_AXES ];
+    int buttons;
+    int ident;
+
+    freeglut_return_if_fail( window );
+    freeglut_return_if_fail( FETCH_WCB( *window, Joystick ) );
+
+    for( ident = 0; ident < MAX_NUM_JOYSTICKS; ident++ )
+    {
+        if( fgJoystick[ident] )
+        {
+            fghJoystickRead( fgJoystick[ident], &buttons, axes );
+
+            if( !fgJoystick[ident]->error )
+                INVOKE_WCB( *window, Joystick,
+                            ( buttons,
+                              (int) ( axes[ 0 ] * 1000.0f ),
+                              (int) ( axes[ 1 ] * 1000.0f ),
+                              (int) ( axes[ 2 ] * 1000.0f ) )
+                );
+        }
+    }
+}
+
+/*
+ * Implementation for glutDeviceGet(GLUT_HAS_JOYSTICK)
+ */
+int fgJoystickDetect( void )
+{
+    int ident;
+
+    fgInitialiseJoysticks ();
+
+    if ( !fgState.JoysticksInitialised )
+        return 0;
+
+    for( ident=0; ident<MAX_NUM_JOYSTICKS; ident++ )
+        if( fgJoystick[ident] && !fgJoystick[ident]->error )
+            return 1;
+
+    return 0;
+}
+
+/*
+ * Joystick information, setup and execution functions
+ */
+
+/*
+ * Forces the joystick callback to be executed
+ */
+void FGAPIENTRY glutForceJoystickFunc( void )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutForceJoystickFunc" );
+#if !defined(_WIN32_WCE)
+    freeglut_return_if_fail( fgStructure.CurrentWindow != NULL );
+    freeglut_return_if_fail( FETCH_WCB( *( fgStructure.CurrentWindow ), Joystick ) );
+    fgJoystickPollWindow( fgStructure.CurrentWindow );
+#endif /* !defined(_WIN32_WCE) */
+}
+int  glutJoystickGetNumAxes( int ident )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutJoystickGetNumAxes" );
+    return fgJoystick[ ident ]->num_axes;
+}
+int  glutJoystickGetNumButtons( int ident )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutJoystickGetNumButtons" );
+    return fgJoystick[ ident ]->num_buttons;
+}
+int  glutJoystickNotWorking( int ident )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutJoystickNotWorking" );
+    return fgJoystick[ ident ]->error;
+}
+
+float glutJoystickGetDeadBand( int ident, int axis )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutJoystickGetDeadBand" );
+    return fgJoystick[ ident ]->dead_band [ axis ];
+}
+void  glutJoystickSetDeadBand( int ident, int axis, float db )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutJoystickSetDeadBand" );
+    fgJoystick[ ident ]->dead_band[ axis ] = db;
+}
+
+float glutJoystickGetSaturation( int ident, int axis )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutJoystickGetSaturation" );
+    return fgJoystick[ ident ]->saturate[ axis ];
+}
+void  glutJoystickSetSaturation( int ident, int axis, float st )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutJoystickSetSaturation" );
+    fgJoystick[ ident ]->saturate [ axis ] = st;
+}
+
+void glutJoystickSetMinRange( int ident, float *axes )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutJoystickSetMinRange" );
+    memcpy( fgJoystick[ ident ]->min, axes,
+            fgJoystick[ ident ]->num_axes * sizeof( float ) );
+}
+void glutJoystickSetMaxRange( int ident, float *axes )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutJoystickSetMaxRange" );
+    memcpy( fgJoystick[ ident ]->max, axes,
+            fgJoystick[ ident ]->num_axes * sizeof( float ) );
+}
+void glutJoystickSetCenter( int ident, float *axes )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutJoystickSetCenter" );
+    memcpy( fgJoystick[ ident ]->center, axes,
+            fgJoystick[ ident ]->num_axes * sizeof( float ) );
+}
+
+void glutJoystickGetMinRange( int ident, float *axes )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutJoystickGetMinRange" );
+    memcpy( axes, fgJoystick[ ident ]->min,
+            fgJoystick[ ident ]->num_axes * sizeof( float ) );
+}
+void glutJoystickGetMaxRange( int ident, float *axes )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutJoystickGetMaxRange" );
+    memcpy( axes, fgJoystick[ ident ]->max,
+            fgJoystick[ ident ]->num_axes * sizeof( float ) );
+}
+void glutJoystickGetCenter( int ident, float *axes )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutJoystickGetCenter" );
+    memcpy( axes, fgJoystick[ ident ]->center,
+            fgJoystick[ ident ]->num_axes * sizeof( float ) );
+}
+
+/*** END OF FILE ***/
diff --git a/src/fg_main.c b/src/fg_main.c
new file mode 100644 (file)
index 0000000..24de119
--- /dev/null
@@ -0,0 +1,466 @@
+/*
+ * freeglut_main.c
+ *
+ * The windows message processing methods.
+ *
+ * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
+ * Written by Pawel W. Olszta, <olszta@sourceforge.net>
+ * Creation date: Fri Dec 3 1999
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include <GL/freeglut.h>
+#include "fg_internal.h"
+#ifdef HAVE_ERRNO_H
+#    include <errno.h>
+#endif
+#include <stdarg.h>
+#ifdef  HAVE_VFPRINTF
+#    define VFPRINTF(s,f,a) vfprintf((s),(f),(a))
+#elif defined(HAVE__DOPRNT)
+#    define VFPRINTF(s,f,a) _doprnt((f),(a),(s))
+#else
+#    define VFPRINTF(s,f,a)
+#endif
+
+/*
+ * Try to get the maximum value allowed for ints, falling back to the minimum
+ * guaranteed by ISO C99 if there is no suitable header.
+ */
+#ifdef HAVE_LIMITS_H
+#    include <limits.h>
+#endif
+#ifndef INT_MAX
+#    define INT_MAX 32767
+#endif
+
+#ifndef MIN
+#    define MIN(a,b) (((a)<(b)) ? (a) : (b))
+#endif
+
+extern void fgPlatformReshapeWindow ( SFG_Window *window, int width, int height );
+extern void fgPlatformDisplayWindow ( SFG_Window *window );
+extern fg_time_t fgPlatformSystemTime ( void );
+extern void fgPlatformSleepForEvents( fg_time_t msec );
+extern void fgPlatformProcessSingleEvent ( void );
+extern void fgPlatformMainLoopPreliminaryWork ( void );
+
+
+
+
+/* -- PRIVATE FUNCTIONS ---------------------------------------------------- */
+
+static void fghReshapeWindow ( SFG_Window *window, int width, int height )
+{
+    SFG_Window *current_window = fgStructure.CurrentWindow;
+
+    freeglut_return_if_fail( window != NULL );
+
+       fgPlatformReshapeWindow ( window, width, height );
+
+    if( FETCH_WCB( *window, Reshape ) )
+        INVOKE_WCB( *window, Reshape, ( width, height ) );
+    else
+    {
+        fgSetWindow( window );
+        glViewport( 0, 0, width, height );
+    }
+
+    /*
+     * Force a window redraw.  In Windows at least this is only a partial
+     * solution:  if the window is increasing in size in either dimension,
+     * the already-drawn part does not get drawn again and things look funny.
+     * But without this we get this bad behaviour whenever we resize the
+     * window.
+     */
+    window->State.Redisplay = GL_TRUE;
+
+    if( window->IsMenu )
+        fgSetWindow( current_window );
+}
+
+/*
+ * Calls a window's redraw method. This is used when
+ * a redraw is forced by the incoming window messages.
+ */
+void fghRedrawWindow ( SFG_Window *window )
+{
+    SFG_Window *current_window = fgStructure.CurrentWindow;
+
+    freeglut_return_if_fail( window );
+    freeglut_return_if_fail( FETCH_WCB ( *window, Display ) );
+
+    window->State.Redisplay = GL_FALSE;
+
+    freeglut_return_if_fail( window->State.Visible );
+
+    fgSetWindow( window );
+
+    if( window->State.NeedToResize )
+    {
+        fghReshapeWindow(
+            window,
+            window->State.Width,
+            window->State.Height
+        );
+
+        window->State.NeedToResize = GL_FALSE;
+    }
+
+    INVOKE_WCB( *window, Display, ( ) );
+
+    fgSetWindow( current_window );
+}
+
+
+static void fghcbDisplayWindow( SFG_Window *window,
+                                SFG_Enumerator *enumerator )
+{
+    if( window->State.Redisplay &&
+        window->State.Visible )
+    {
+        window->State.Redisplay = GL_FALSE;
+               fgPlatformDisplayWindow ( window );
+    }
+
+    fgEnumSubWindows( window, fghcbDisplayWindow, enumerator );
+}
+
+/*
+ * Make all windows perform a display call
+ */
+static void fghDisplayAll( void )
+{
+    SFG_Enumerator enumerator;
+
+    enumerator.found = GL_FALSE;
+    enumerator.data  =  NULL;
+
+    fgEnumWindows( fghcbDisplayWindow, &enumerator );
+}
+
+/*
+ * Window enumerator callback to check for the joystick polling code
+ */
+static void fghcbCheckJoystickPolls( SFG_Window *window,
+                                     SFG_Enumerator *enumerator )
+{
+    fg_time_t checkTime = fgElapsedTime( );
+
+    if( window->State.JoystickLastPoll + window->State.JoystickPollRate <=
+        checkTime )
+    {
+#if !defined(_WIN32_WCE)
+        fgJoystickPollWindow( window );
+#endif /* !defined(_WIN32_WCE) */
+        window->State.JoystickLastPoll = checkTime;
+    }
+
+    fgEnumSubWindows( window, fghcbCheckJoystickPolls, enumerator );
+}
+
+/*
+ * Check all windows for joystick polling
+ */
+static void fghCheckJoystickPolls( void )
+{
+    SFG_Enumerator enumerator;
+
+    enumerator.found = GL_FALSE;
+    enumerator.data  =  NULL;
+
+    fgEnumWindows( fghcbCheckJoystickPolls, &enumerator );
+}
+
+/*
+ * Check the global timers
+ */
+static void fghCheckTimers( void )
+{
+    fg_time_t checkTime = fgElapsedTime( );
+
+    while( fgState.Timers.First )
+    {
+        SFG_Timer *timer = fgState.Timers.First;
+
+        if( timer->TriggerTime > checkTime )
+            break;
+
+        fgListRemove( &fgState.Timers, &timer->Node );
+        fgListAppend( &fgState.FreeTimers, &timer->Node );
+
+        timer->Callback( timer->ID );
+    }
+}
+
+/* Platform-dependent time in milliseconds, as an unsigned 64-bit integer.
+ * This doesn't overflow in any reasonable time, so no need to worry about
+ * that. The GLUT API return value will however overflow after 49.7 days,
+ * and on Windows we (currently) do not have access to a 64-bit timestamp,
+ * which means internal time will still get in trouble when running the
+ * application for more than 49.7 days.
+ * This value wraps every 49.7 days, but integer overflows cancel
+ * when subtracting an initial start time, unless the total time exceeds
+ * 32-bit, where the GLUT API return value is also overflowed.
+ */  
+fg_time_t fgSystemTime(void)
+{
+       return fgPlatformSystemTime();
+}
+  
+/*
+ * Elapsed Time
+ */
+fg_time_t fgElapsedTime( void )
+{
+    return fgSystemTime() - fgState.Time;
+}
+
+/*
+ * Error Messages.
+ */
+void fgError( const char *fmt, ... )
+{
+    va_list ap;
+
+    if (fgState.ErrorFunc) {
+
+        va_start( ap, fmt );
+
+        /* call user set error handler here */
+        fgState.ErrorFunc(fmt, ap);
+
+        va_end( ap );
+
+    } else {
+
+        va_start( ap, fmt );
+
+        fprintf( stderr, "freeglut ");
+        if( fgState.ProgramName )
+            fprintf( stderr, "(%s): ", fgState.ProgramName );
+        VFPRINTF( stderr, fmt, ap );
+        fprintf( stderr, "\n" );
+
+        va_end( ap );
+
+        if ( fgState.Initialised )
+            fgDeinitialize ();
+
+        exit( 1 );
+    }
+}
+
+void fgWarning( const char *fmt, ... )
+{
+    va_list ap;
+
+    if (fgState.WarningFunc) {
+
+        va_start( ap, fmt );
+
+        /* call user set warning handler here */
+        fgState.WarningFunc(fmt, ap);
+
+        va_end( ap );
+
+    } else {
+
+        va_start( ap, fmt );
+
+        fprintf( stderr, "freeglut ");
+        if( fgState.ProgramName )
+            fprintf( stderr, "(%s): ", fgState.ProgramName );
+        VFPRINTF( stderr, fmt, ap );
+        fprintf( stderr, "\n" );
+
+        va_end( ap );
+    }
+}
+
+
+/*
+ * Indicates whether Joystick events are being used by ANY window.
+ *
+ * The current mechanism is to walk all of the windows and ask if
+ * there is a joystick callback.  We have a short-circuit early
+ * return if we find any joystick handler registered.
+ *
+ * The real way to do this is to make use of the glutTimer() API
+ * to more cleanly re-implement the joystick API.  Then, this code
+ * and all other "joystick timer" code can be yanked.
+ *
+ */
+static void fghCheckJoystickCallback( SFG_Window* w, SFG_Enumerator* e)
+{
+    if( FETCH_WCB( *w, Joystick ) )
+    {
+        e->found = GL_TRUE;
+        e->data = w;
+    }
+    fgEnumSubWindows( w, fghCheckJoystickCallback, e );
+}
+static int fghHaveJoystick( void )
+{
+    SFG_Enumerator enumerator;
+
+    enumerator.found = GL_FALSE;
+    enumerator.data = NULL;
+    fgEnumWindows( fghCheckJoystickCallback, &enumerator );
+    return !!enumerator.data;
+}
+static void fghHavePendingRedisplaysCallback( SFG_Window* w, SFG_Enumerator* e)
+{
+    if( w->State.Redisplay && w->State.Visible )
+    {
+        e->found = GL_TRUE;
+        e->data = w;
+    }
+    fgEnumSubWindows( w, fghHavePendingRedisplaysCallback, e );
+}
+static int fghHavePendingRedisplays (void)
+{
+    SFG_Enumerator enumerator;
+
+    enumerator.found = GL_FALSE;
+    enumerator.data = NULL;
+    fgEnumWindows( fghHavePendingRedisplaysCallback, &enumerator );
+    return !!enumerator.data;
+}
+/*
+ * Returns the number of GLUT ticks (milliseconds) till the next timer event.
+ */
+static fg_time_t fghNextTimer( void )
+{
+    fg_time_t currentTime = fgElapsedTime();
+    SFG_Timer *timer = fgState.Timers.First;
+
+    if( !timer )
+        return INT_MAX;
+
+    if( timer->TriggerTime < currentTime )
+        return 0;
+    else
+        return timer->TriggerTime - currentTime;
+}
+
+static void fghSleepForEvents( void )
+{
+    fg_time_t msec;
+
+    if( fgState.IdleCallback || fghHavePendingRedisplays( ) )
+        return;
+
+    msec = fghNextTimer( );
+    /* XXX Use GLUT timers for joysticks... */
+    /* XXX Dumb; forces granularity to .01sec */
+    if( fghHaveJoystick( ) && ( msec > 10 ) )     
+        msec = 10;
+
+       fgPlatformSleepForEvents ( msec );
+}
+
+
+/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
+
+/*
+ * Executes a single iteration in the freeglut processing loop.
+ */
+void FGAPIENTRY glutMainLoopEvent( void )
+{
+       fgPlatformProcessSingleEvent ();
+
+    if( fgState.Timers.First )
+        fghCheckTimers( );
+    fghCheckJoystickPolls( );
+    fghDisplayAll( );
+
+    fgCloseWindows( );
+}
+
+/*
+ * Enters the freeglut processing loop.
+ * Stays until the "ExecState" changes to "GLUT_EXEC_STATE_STOP".
+ */
+void FGAPIENTRY glutMainLoop( void )
+{
+    int action;
+
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutMainLoop" );
+
+       fgPlatformMainLoopPreliminaryWork ();
+
+    fgState.ExecState = GLUT_EXEC_STATE_RUNNING ;
+    while( fgState.ExecState == GLUT_EXEC_STATE_RUNNING )
+    {
+        SFG_Window *window;
+
+        glutMainLoopEvent( );
+        /*
+         * Step through the list of windows, seeing if there are any
+         * that are not menus
+         */
+        for( window = ( SFG_Window * )fgStructure.Windows.First;
+             window;
+             window = ( SFG_Window * )window->Node.Next )
+            if ( ! ( window->IsMenu ) )
+                break;
+
+        if( ! window )
+            fgState.ExecState = GLUT_EXEC_STATE_STOP;
+        else
+        {
+            if( fgState.IdleCallback )
+            {
+                if( fgStructure.CurrentWindow &&
+                    fgStructure.CurrentWindow->IsMenu )
+                    /* fail safe */
+                    fgSetWindow( window );
+                fgState.IdleCallback( );
+            }
+
+            fghSleepForEvents( );
+        }
+    }
+
+    /*
+     * When this loop terminates, destroy the display, state and structure
+     * of a freeglut session, so that another glutInit() call can happen
+     *
+     * Save the "ActionOnWindowClose" because "fgDeinitialize" resets it.
+     */
+    action = fgState.ActionOnWindowClose;
+    fgDeinitialize( );
+    if( action == GLUT_ACTION_EXIT )
+        exit( 0 );
+}
+
+/*
+ * Leaves the freeglut processing loop.
+ */
+void FGAPIENTRY glutLeaveMainLoop( void )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutLeaveMainLoop" );
+    fgState.ExecState = GLUT_EXEC_STATE_STOP ;
+}
+
+
+
+/*** END OF FILE ***/
diff --git a/src/fg_menu.c b/src/fg_menu.c
new file mode 100644 (file)
index 0000000..0e219b8
--- /dev/null
@@ -0,0 +1,969 @@
+/*
+ * freeglut_menu.c
+ *
+ * Pull-down menu creation and handling.
+ *
+ * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
+ * Written by Pawel W. Olszta, <olszta@sourceforge.net>
+ * Creation date: Thu Dec 16 1999
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#define FREEGLUT_BUILDING_LIB
+#include <GL/freeglut.h>
+#include "fg_internal.h"
+
+/* -- DEFINITIONS ---------------------------------------------------------- */
+
+/*
+ * FREEGLUT_MENU_FONT can be any freeglut bitmapped font.
+ * (Stroked fonts would not be out of the question, but we'd need to alter
+ *  code, since GLUT (hence freeglut) does not quite unify stroked and
+ *  bitmapped font handling.)
+ * Old UNIX/X11 GLUT (BSD, UNIX, IRIX, LINUX, HPUX, ...) used a system
+ * font best approximated by an 18-pixel HELVETICA, I think.  MS-WINDOWS
+ * GLUT used something closest to the 8x13 fixed-width font.  (Old
+ * GLUT apparently uses host-system menus rather than building its own.
+ * freeglut is building its own menus from scratch.)
+ *
+ * FREEGLUT_MENU_HEIGHT gives the height of ONE menu box.  This should be
+ * the distances between two adjacent menu entries.  It should scale
+ * automatically with the font choice, so you needn't alter it---unless you
+ * use a stroked font.
+ *
+ * FREEGLUT_MENU_BORDER says how many pixels to allow around the edge of a
+ * menu.  (It also seems to be the same as the number of pixels used as
+ * a border around *items* to separate them from neighbors.  John says
+ * that that wasn't the original intent...if not, perhaps we need another
+ * symbolic constant, FREEGLUT_MENU_ITEM_BORDER, or such.)
+ */
+/* See platform-specific header files for menu font and color definitions */
+
+#define  FREEGLUT_MENU_HEIGHT  (glutBitmapHeight(FREEGLUT_MENU_FONT) + \
+                                FREEGLUT_MENU_BORDER)
+#define  FREEGLUT_MENU_BORDER   2
+
+
+/*
+ * These variables are for rendering the freeglut menu items.
+ *
+ * The choices are fore- and background, with and without h for Highlighting.
+ * Old GLUT appeared to be system-dependant for its colors (sigh) so we are
+ * too.  These variables should be stuffed into global state and initialized
+ * via the glutInit*() system.
+ */
+static float menu_pen_fore  [4] = FREEGLUT_MENU_PEN_FORE_COLORS ;
+static float menu_pen_back  [4] = FREEGLUT_MENU_PEN_BACK_COLORS ;
+static float menu_pen_hfore [4] = FREEGLUT_MENU_PEN_HFORE_COLORS;
+static float menu_pen_hback [4] = FREEGLUT_MENU_PEN_HBACK_COLORS;
+
+
+extern GLvoid fgPlatformGetGameModeVMaxExtent( SFG_Window* window, int* x, int* y );
+
+/* -- PRIVATE FUNCTIONS ---------------------------------------------------- */
+
+/*
+ * Private function to find a menu entry by index
+ */
+static SFG_MenuEntry *fghFindMenuEntry( SFG_Menu* menu, int index )
+{
+    SFG_MenuEntry *entry;
+    int i = 1;
+
+    for( entry = (SFG_MenuEntry *)menu->Entries.First;
+         entry;
+         entry = (SFG_MenuEntry *)entry->Node.Next )
+    {
+        if( i == index )
+            break;
+        ++i;
+    }
+
+    return entry;
+}
+
+/*
+ * Deactivates a menu pointed by the function argument.
+ */
+static void fghDeactivateSubMenu( SFG_MenuEntry *menuEntry )
+{
+    SFG_MenuEntry *subMenuIter;
+    /* Hide the present menu's window */
+    fgSetWindow( menuEntry->SubMenu->Window );
+    glutHideWindow( );
+
+    /* Forget about having that menu active anymore, now: */
+    menuEntry->SubMenu->Window->ActiveMenu = NULL;
+    menuEntry->SubMenu->IsActive = GL_FALSE;
+    menuEntry->SubMenu->ActiveEntry = NULL;
+
+    /* Hide all submenu windows, and the root menu's window. */
+    for ( subMenuIter = (SFG_MenuEntry *)menuEntry->SubMenu->Entries.First;
+          subMenuIter;
+          subMenuIter = (SFG_MenuEntry *)subMenuIter->Node.Next )
+    {
+        subMenuIter->IsActive = GL_FALSE;
+
+        /* Is that an active submenu by any case? */
+        if( subMenuIter->SubMenu )
+            fghDeactivateSubMenu( subMenuIter );
+    }
+
+    fgSetWindow ( menuEntry->SubMenu->ParentWindow ) ;
+}
+
+/*
+ * Private function to get the virtual maximum screen extent
+ */
+static GLvoid fghGetVMaxExtent( SFG_Window* window, int* x, int* y )
+{
+    if( fgStructure.GameModeWindow )
+               fgPlatformGetGameModeVMaxExtent ( window, x, y );
+    else
+    {
+        *x = fgDisplay.ScreenWidth;
+        *y = fgDisplay.ScreenHeight;
+    }
+}
+
+/*
+ * Private function to check for the current menu/sub menu activity state
+ */
+static GLboolean fghCheckMenuStatus( SFG_Menu* menu )
+{
+    SFG_MenuEntry* menuEntry;
+    int x, y;
+
+    /* First of all check any of the active sub menus... */
+    for( menuEntry = (SFG_MenuEntry *)menu->Entries.First;
+         menuEntry;
+         menuEntry = (SFG_MenuEntry *)menuEntry->Node.Next )
+    {
+        if( menuEntry->SubMenu && menuEntry->IsActive )
+        {
+            /*
+             * OK, have the sub-menu checked, too. If it returns GL_TRUE, it
+             * will mean that it caught the mouse cursor and we do not need
+             * to regenerate the activity list, and so our parents do...
+             */
+            GLboolean return_status;
+
+            menuEntry->SubMenu->Window->State.MouseX =
+                menu->Window->State.MouseX + menu->X - menuEntry->SubMenu->X;
+            menuEntry->SubMenu->Window->State.MouseY =
+                menu->Window->State.MouseY + menu->Y - menuEntry->SubMenu->Y;
+            return_status = fghCheckMenuStatus( menuEntry->SubMenu );
+
+            if ( return_status )
+                return GL_TRUE;
+        }
+    }
+
+    /* That much about our sub menus, let's get to checking the current menu: */
+    x = menu->Window->State.MouseX;
+    y = menu->Window->State.MouseY;
+
+    /* Check if the mouse cursor is contained within the current menu box */
+    if( ( x >= FREEGLUT_MENU_BORDER ) &&
+        ( x < menu->Width  - FREEGLUT_MENU_BORDER ) &&
+        ( y >= FREEGLUT_MENU_BORDER ) &&
+        ( y < menu->Height - FREEGLUT_MENU_BORDER )  )
+    {
+        int menuID = ( y - FREEGLUT_MENU_BORDER ) / FREEGLUT_MENU_HEIGHT;
+
+        /* The mouse cursor is somewhere over our box, check it out. */
+        menuEntry = fghFindMenuEntry( menu, menuID + 1 );
+        FREEGLUT_INTERNAL_ERROR_EXIT( menuEntry, "Cannot find menu entry",
+                                      "fghCheckMenuStatus" );
+
+        menuEntry->IsActive = GL_TRUE;
+        menuEntry->Ordinal = menuID;
+
+        /*
+         * If this is not the same as the last active menu entry, deactivate
+         * the previous entry.  Specifically, if the previous active entry
+         * was a submenu then deactivate it.
+         */
+        if( menu->ActiveEntry && ( menuEntry != menu->ActiveEntry ) )
+            if( menu->ActiveEntry->SubMenu )
+                fghDeactivateSubMenu( menu->ActiveEntry );
+
+        if( menuEntry != menu->ActiveEntry )
+        {
+            menu->Window->State.Redisplay = GL_TRUE;
+            if( menu->ActiveEntry )
+                menu->ActiveEntry->IsActive = GL_FALSE;
+        }
+
+        menu->ActiveEntry = menuEntry;
+        menu->IsActive = GL_TRUE;  /* XXX Do we need this? */
+
+        /*
+         * OKi, we have marked that entry as active, but it would be also
+         * nice to have its contents updated, in case it's a sub menu.
+         * Also, ignore the return value of the check function:
+         */
+        if( menuEntry->SubMenu )
+        {
+            if ( ! menuEntry->SubMenu->IsActive )
+            {
+                int max_x, max_y;
+                SFG_Window *current_window = fgStructure.CurrentWindow;
+
+                /* Set up the initial menu position now... */
+                menuEntry->SubMenu->IsActive = GL_TRUE;
+
+                /* Set up the initial submenu position now: */
+                fghGetVMaxExtent(menu->ParentWindow, &max_x, &max_y);
+                menuEntry->SubMenu->X = menu->X + menu->Width;
+                menuEntry->SubMenu->Y = menu->Y +
+                    menuEntry->Ordinal * FREEGLUT_MENU_HEIGHT;
+
+                if( menuEntry->SubMenu->X + menuEntry->SubMenu->Width > max_x )
+                    menuEntry->SubMenu->X = menu->X - menuEntry->SubMenu->Width;
+
+                if( menuEntry->SubMenu->Y + menuEntry->SubMenu->Height > max_y )
+                {
+                    menuEntry->SubMenu->Y -= ( menuEntry->SubMenu->Height -
+                                               FREEGLUT_MENU_HEIGHT -
+                                               2 * FREEGLUT_MENU_BORDER );
+                    if( menuEntry->SubMenu->Y < 0 )
+                        menuEntry->SubMenu->Y = 0;
+                }
+
+                fgSetWindow( menuEntry->SubMenu->Window );
+                glutPositionWindow( menuEntry->SubMenu->X,
+                                    menuEntry->SubMenu->Y );
+                glutReshapeWindow( menuEntry->SubMenu->Width,
+                                   menuEntry->SubMenu->Height );
+                glutPopWindow( );
+                glutShowWindow( );
+                menuEntry->SubMenu->Window->ActiveMenu = menuEntry->SubMenu;
+                fgSetWindow( current_window );
+                menuEntry->SubMenu->Window->State.MouseX =
+                    x + menu->X - menuEntry->SubMenu->X;
+                menuEntry->SubMenu->Window->State.MouseY =
+                    y + menu->Y - menuEntry->SubMenu->Y;
+                fghCheckMenuStatus( menuEntry->SubMenu );
+            }
+
+            /* Activate it because its parent entry is active */
+            menuEntry->SubMenu->IsActive = GL_TRUE;  /* XXX Do we need this? */
+        }
+
+        /* Report back that we have caught the menu cursor */
+        return GL_TRUE;
+    }
+
+    /* Looks like the menu cursor is somewhere else... */
+    if( menu->ActiveEntry && menu->ActiveEntry->IsActive &&
+        ( !menu->ActiveEntry->SubMenu ||
+          !menu->ActiveEntry->SubMenu->IsActive ) )
+    {
+        menu->Window->State.Redisplay = GL_TRUE;
+        menu->ActiveEntry->IsActive = GL_FALSE;
+        menu->ActiveEntry = NULL;
+    }
+
+    return GL_FALSE;
+}
+
+/*
+ * Displays a menu box and all of its submenus (if they are active)
+ */
+static void fghDisplayMenuBox( SFG_Menu* menu )
+{
+    SFG_MenuEntry *menuEntry;
+    int i;
+    int border = FREEGLUT_MENU_BORDER;
+
+    /*
+     * Have the menu box drawn first. The +- values are
+     * here just to make it more nice-looking...
+     */
+    /* a non-black dark version of the below. */
+    glColor4f( 1.0f, 1.0f, 1.0f, 1.0f );
+    glBegin( GL_QUAD_STRIP );
+        glVertex2i( menu->Width         , 0                    );
+        glVertex2i( menu->Width - border,                border);
+        glVertex2i( 0                   , 0                    );
+        glVertex2i(               border,                border);
+        glVertex2i( 0                   , menu->Height         );
+        glVertex2i(               border, menu->Height - border);
+    glEnd( );
+
+    /* a non-black dark version of the below. */
+    glColor4f( 0.5f, 0.5f, 0.5f, 1.0f );
+    glBegin( GL_QUAD_STRIP );
+        glVertex2i( 0                   , menu->Height         );
+        glVertex2i(               border, menu->Height - border);
+        glVertex2i( menu->Width         , menu->Height         );
+        glVertex2i( menu->Width - border, menu->Height - border);
+        glVertex2i( menu->Width         , 0                    );
+        glVertex2i( menu->Width - border,                border);
+    glEnd( );
+
+    glColor4fv( menu_pen_back );
+    glBegin( GL_QUADS );
+        glVertex2i(               border,                border);
+        glVertex2i( menu->Width - border,                border);
+        glVertex2i( menu->Width - border, menu->Height - border);
+        glVertex2i(               border, menu->Height - border);
+    glEnd( );
+
+    /* Check if any of the submenus is currently active... */
+    for( menuEntry = (SFG_MenuEntry *)menu->Entries.First;
+         menuEntry;
+         menuEntry = (SFG_MenuEntry *)menuEntry->Node.Next )
+    {
+        /* Has the menu been marked as active, maybe? */
+        if( menuEntry->IsActive )
+        {
+            /*
+             * That's truly right, and we need to have it highlighted.
+             * There is an assumption that mouse cursor didn't move
+             * since the last check of menu activity state:
+             */
+            int menuID = menuEntry->Ordinal;
+
+            /* So have the highlight drawn... */
+            glColor4fv( menu_pen_hback );
+            glBegin( GL_QUADS );
+                glVertex2i( border,
+                            (menuID + 0)*FREEGLUT_MENU_HEIGHT + border );
+                glVertex2i( menu->Width - border,
+                            (menuID + 0)*FREEGLUT_MENU_HEIGHT + border );
+                glVertex2i( menu->Width - border,
+                            (menuID + 1)*FREEGLUT_MENU_HEIGHT + border );
+                glVertex2i( border,
+                            (menuID + 1)*FREEGLUT_MENU_HEIGHT + border );
+            glEnd( );
+        }
+    }
+
+    /* Print the menu entries now... */
+
+    glColor4fv( menu_pen_fore );
+
+    for( menuEntry = (SFG_MenuEntry *)menu->Entries.First, i = 0;
+         menuEntry;
+         menuEntry = (SFG_MenuEntry *)menuEntry->Node.Next, ++i )
+    {
+        /* If the menu entry is active, set the color to white */
+        if( menuEntry->IsActive )
+            glColor4fv( menu_pen_hfore );
+
+        /* Move the raster into position... */
+        /* Try to center the text - JCJ 31 July 2003*/
+        glRasterPos2i(
+            2 * border,
+            ( i + 1 )*FREEGLUT_MENU_HEIGHT -
+            ( int )( FREEGLUT_MENU_HEIGHT*0.3 - border )
+        );
+
+        /* Have the label drawn, character after character: */
+        glutBitmapString( FREEGLUT_MENU_FONT,
+                          (unsigned char *)menuEntry->Text);
+
+        /* If it's a submenu, draw a right arrow */
+        if( menuEntry->SubMenu )
+        {
+            int width = glutBitmapWidth( FREEGLUT_MENU_FONT, '_' );
+            int x_base = menu->Width - 2 - width;
+            int y_base = i*FREEGLUT_MENU_HEIGHT + border;
+            glBegin( GL_TRIANGLES );
+                glVertex2i( x_base, y_base + 2*border);
+                glVertex2i( menu->Width - 2, y_base +
+                            ( FREEGLUT_MENU_HEIGHT + border) / 2 );
+                glVertex2i( x_base, y_base + FREEGLUT_MENU_HEIGHT - border );
+            glEnd( );
+        }
+
+        /* If the menu entry is active, reset the color */
+        if( menuEntry->IsActive )
+            glColor4fv( menu_pen_fore );
+    }
+}
+
+/*
+ * Private static function to set the parent window of a submenu and all
+ * of its submenus
+ */
+static void fghSetMenuParentWindow( SFG_Window *window, SFG_Menu *menu )
+{
+    SFG_MenuEntry *menuEntry;
+
+    menu->ParentWindow = window;
+
+    for( menuEntry = ( SFG_MenuEntry * )menu->Entries.First;
+         menuEntry;
+         menuEntry = ( SFG_MenuEntry * )menuEntry->Node.Next )
+        if( menuEntry->SubMenu )
+            fghSetMenuParentWindow( window, menuEntry->SubMenu );
+}
+
+/*
+ * Function to check for menu entry selection on menu deactivation
+ */
+static void fghExecuteMenuCallback( SFG_Menu* menu )
+{
+    SFG_MenuEntry *menuEntry;
+
+    /* First of all check any of the active sub menus... */
+    for( menuEntry = (SFG_MenuEntry *)menu->Entries.First;
+         menuEntry;
+         menuEntry = (SFG_MenuEntry *)menuEntry->Node.Next)
+    {
+        if( menuEntry->IsActive )
+        {
+            if( menuEntry->SubMenu )
+                fghExecuteMenuCallback( menuEntry->SubMenu );
+            else
+                if( menu->Callback )
+                {
+                    SFG_Menu *save_menu = fgStructure.CurrentMenu;
+                    fgStructure.CurrentMenu = menu;
+                    menu->Callback( menuEntry->ID );
+                    fgStructure.CurrentMenu = save_menu;
+                }
+
+            return;
+        }
+    }
+}
+
+
+/*
+ * Displays the currently active menu for the current window
+ */
+void fgDisplayMenu( void )
+{
+    SFG_Window* window = fgStructure.CurrentWindow;
+    SFG_Menu* menu = NULL;
+
+    FREEGLUT_INTERNAL_ERROR_EXIT ( fgStructure.CurrentWindow, "Displaying menu in nonexistent window",
+                                   "fgDisplayMenu" );
+
+    /* Check if there is an active menu attached to this window... */
+    menu = window->ActiveMenu;
+    freeglut_return_if_fail( menu );
+
+    fgSetWindow( menu->Window );
+
+    glPushAttrib( GL_DEPTH_BUFFER_BIT | GL_TEXTURE_BIT | GL_LIGHTING_BIT |
+                  GL_POLYGON_BIT );
+
+    glDisable( GL_DEPTH_TEST );
+    glDisable( GL_TEXTURE_2D );
+    glDisable( GL_LIGHTING   );
+    glDisable( GL_CULL_FACE  );
+
+    glMatrixMode( GL_PROJECTION );
+    glPushMatrix( );
+    glLoadIdentity( );
+    glOrtho(
+         0, glutGet( GLUT_WINDOW_WIDTH  ),
+         glutGet( GLUT_WINDOW_HEIGHT ), 0,
+        -1, 1
+    );
+
+    glMatrixMode( GL_MODELVIEW );
+    glPushMatrix( );
+    glLoadIdentity( );
+
+    fghDisplayMenuBox( menu );
+
+    glPopAttrib( );
+
+    glMatrixMode( GL_PROJECTION );
+    glPopMatrix( );
+    glMatrixMode( GL_MODELVIEW );
+    glPopMatrix( );
+
+    glutSwapBuffers( );
+
+    fgSetWindow ( window );
+}
+
+/*
+ * Activates a menu pointed by the function argument
+ */
+static void fghActivateMenu( SFG_Window* window, int button )
+{
+    int max_x, max_y;
+
+    /* We'll be referencing this menu a lot, so remember its address: */
+    SFG_Menu* menu = window->Menu[ button ];
+    SFG_Window* current_window = fgStructure.CurrentWindow;
+
+    /* If the menu is already active in another window, deactivate it there */
+    if ( menu->ParentWindow )
+      menu->ParentWindow->ActiveMenu = NULL ;
+
+    /* Mark the menu as active, so that it gets displayed: */
+    window->ActiveMenu = menu;
+    menu->IsActive = GL_TRUE;
+    fghSetMenuParentWindow ( window, menu );
+    fgState.ActiveMenus++;
+
+    /* Set up the initial menu position now: */
+    fghGetVMaxExtent(menu->ParentWindow, &max_x, &max_y);
+    fgSetWindow( window );
+    menu->X = window->State.MouseX + glutGet( GLUT_WINDOW_X );
+    menu->Y = window->State.MouseY + glutGet( GLUT_WINDOW_Y );
+
+    if( menu->X + menu->Width > max_x )
+        menu->X -=menu->Width;
+
+    if( menu->Y + menu->Height > max_y )
+    {
+        menu->Y -=menu->Height;
+        if( menu->Y < 0 )
+            menu->Y = 0;
+    }
+
+    menu->Window->State.MouseX =
+        window->State.MouseX + glutGet( GLUT_WINDOW_X ) - menu->X;
+    menu->Window->State.MouseY =
+        window->State.MouseY + glutGet( GLUT_WINDOW_Y ) - menu->Y;
+
+    fgSetWindow( menu->Window );
+    glutPositionWindow( menu->X, menu->Y );
+    glutReshapeWindow( menu->Width, menu->Height );
+    glutPopWindow( );
+    glutShowWindow( );
+    menu->Window->ActiveMenu = menu;
+    fghCheckMenuStatus( menu );
+    fgSetWindow( current_window );
+}
+
+/*
+ * Update Highlight states of the menu
+ *
+ * Current mouse position is in menu->Window->State.MouseX/Y.
+ */
+void fgUpdateMenuHighlight ( SFG_Menu *menu )
+{
+    fghCheckMenuStatus( menu );
+}
+
+/*
+ * Check whether an active menu absorbs a mouse click
+ */
+GLboolean fgCheckActiveMenu ( SFG_Window *window, int button, GLboolean pressed,
+                              int mouse_x, int mouse_y )
+{
+    /*
+     * Near as I can tell, this is the menu behaviour:
+     *  - Down-click the menu button, menu not active:  activate
+     *    the menu with its upper left-hand corner at the mouse
+     *    location.
+     *  - Down-click any button outside the menu, menu active:
+     *    deactivate the menu
+     *  - Down-click any button inside the menu, menu active:
+     *    select the menu entry and deactivate the menu
+     *  - Up-click the menu button, menu not active:  nothing happens
+     *  - Up-click the menu button outside the menu, menu active:
+     *    nothing happens
+     *  - Up-click the menu button inside the menu, menu active:
+     *    select the menu entry and deactivate the menu
+     * Since menus can have submenus, we need to check this recursively.
+     */
+    if( window->ActiveMenu )
+    {
+        if( window == window->ActiveMenu->ParentWindow )
+        {
+            window->ActiveMenu->Window->State.MouseX =
+                                       mouse_x - window->ActiveMenu->X;
+            window->ActiveMenu->Window->State.MouseY =
+                                       mouse_y - window->ActiveMenu->Y;
+        }
+
+        /* In the menu, invoke the callback and deactivate the menu */
+        if( fghCheckMenuStatus( window->ActiveMenu ) )
+        {
+            /*
+             * Save the current window and menu and set the current
+             * window to the window whose menu this is
+             */
+            SFG_Window *save_window = fgStructure.CurrentWindow;
+            SFG_Menu *save_menu = fgStructure.CurrentMenu;
+            SFG_Window *parent_window = window->ActiveMenu->ParentWindow;
+            fgSetWindow( parent_window );
+            fgStructure.CurrentMenu = window->ActiveMenu;
+
+            /* Execute the menu callback */
+            fghExecuteMenuCallback( window->ActiveMenu );
+            fgDeactivateMenu( parent_window );
+
+            /* Restore the current window and menu */
+            fgSetWindow( save_window );
+            fgStructure.CurrentMenu = save_menu;
+        }
+        else if( pressed )
+            /*
+             * Outside the menu, deactivate if it's a downclick
+             *
+             * XXX This isn't enough.  A downclick outside of
+             * XXX the interior of our freeglut windows should also
+             * XXX deactivate the menu.  This is more complicated.
+             */
+            fgDeactivateMenu( window->ActiveMenu->ParentWindow );
+
+        /*
+         * XXX Why does an active menu require a redisplay at
+         * XXX this point?  If this can come out cleanly, then
+         * XXX it probably should do so; if not, a comment should
+         * XXX explain it.
+         */
+        if( ! window->IsMenu )
+            window->State.Redisplay = GL_TRUE;
+
+        return GL_TRUE;
+    }
+
+    /* No active menu, let's check whether we need to activate one. */
+    if( ( 0 <= button ) &&
+        ( FREEGLUT_MAX_MENUS > button ) &&
+        ( window->Menu[ button ] ) &&
+        pressed )
+    {
+        /* XXX Posting a requisite Redisplay seems bogus. */
+        window->State.Redisplay = GL_TRUE;
+        fghActivateMenu( window, button );
+        return GL_TRUE;
+    }
+
+    return GL_FALSE;
+}
+
+/*
+ * Deactivates a menu pointed by the function argument.
+ */
+void fgDeactivateMenu( SFG_Window *window )
+{
+    SFG_Window *parent_window = NULL;
+
+    /* Check if there is an active menu attached to this window... */
+    SFG_Menu* menu = window->ActiveMenu;
+    SFG_MenuEntry *menuEntry;
+
+    /* Did we find an active window? */
+    freeglut_return_if_fail( menu );
+
+    parent_window = menu->ParentWindow;
+
+    /* Hide the present menu's window */
+    fgSetWindow( menu->Window );
+    glutHideWindow( );
+
+    /* Forget about having that menu active anymore, now: */
+    menu->Window->ActiveMenu = NULL;
+    menu->ParentWindow->ActiveMenu = NULL;
+    fghSetMenuParentWindow ( NULL, menu );
+    menu->IsActive = GL_FALSE;
+    menu->ActiveEntry = NULL;
+
+    fgState.ActiveMenus--;
+
+    /* Hide all submenu windows, and the root menu's window. */
+    for ( menuEntry = ( SFG_MenuEntry * )menu->Entries.First;
+          menuEntry;
+          menuEntry = ( SFG_MenuEntry * )menuEntry->Node.Next )
+    {
+        menuEntry->IsActive = GL_FALSE;
+
+        /* Is that an active submenu by any case? */
+        if( menuEntry->SubMenu )
+            fghDeactivateSubMenu( menuEntry );
+    }
+
+    fgSetWindow ( parent_window ) ;
+}
+
+/*
+ * Recalculates current menu's box size
+ */
+void fghCalculateMenuBoxSize( void )
+{
+    SFG_MenuEntry* menuEntry;
+    int width = 0, height = 0;
+
+    /* Make sure there is a current menu set */
+    freeglut_return_if_fail( fgStructure.CurrentMenu );
+
+    /* The menu's box size depends on the menu entries: */
+    for( menuEntry = ( SFG_MenuEntry * )fgStructure.CurrentMenu->Entries.First;
+         menuEntry;
+         menuEntry = ( SFG_MenuEntry * )menuEntry->Node.Next )
+    {
+        /* Update the menu entry's width value */
+        menuEntry->Width = glutBitmapLength(
+            FREEGLUT_MENU_FONT,
+            (unsigned char *)menuEntry->Text
+        );
+
+        /*
+         * If the entry is a submenu, then it needs to be wider to
+         * accomodate the arrow. JCJ 31 July 2003
+         */
+        if (menuEntry->SubMenu )
+            menuEntry->Width += glutBitmapLength(
+                FREEGLUT_MENU_FONT,
+                (unsigned char *)"_"
+            );
+
+        /* Check if it's the biggest we've found */
+        if( menuEntry->Width > width )
+            width = menuEntry->Width;
+
+        height += FREEGLUT_MENU_HEIGHT;
+    }
+
+    /* Store the menu's box size now: */
+    fgStructure.CurrentMenu->Height = height + 2 * FREEGLUT_MENU_BORDER;
+    fgStructure.CurrentMenu->Width  = width  + 4 * FREEGLUT_MENU_BORDER;
+}
+
+
+/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
+
+/*
+ * Creates a new menu object, adding it to the freeglut structure
+ */
+int FGAPIENTRY glutCreateMenu( void(* callback)( int ) )
+{
+    /* The menu object creation code resides in freeglut_structure.c */
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutCreateMenu" );
+    return fgCreateMenu( callback )->ID;
+}
+
+/*
+ * Destroys a menu object, removing all references to it
+ */
+void FGAPIENTRY glutDestroyMenu( int menuID )
+{
+    SFG_Menu* menu;
+
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutDestroyMenu" );
+    menu = fgMenuByID( menuID );
+
+    freeglut_return_if_fail( menu );
+
+    /* The menu object destruction code resides in freeglut_structure.c */
+    fgDestroyMenu( menu );
+}
+
+/*
+ * Returns the ID number of the currently active menu
+ */
+int FGAPIENTRY glutGetMenu( void )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutGetMenu" );
+
+    if( fgStructure.CurrentMenu )
+        return fgStructure.CurrentMenu->ID;
+
+    return 0;
+}
+
+/*
+ * Sets the current menu given its menu ID
+ */
+void FGAPIENTRY glutSetMenu( int menuID )
+{
+    SFG_Menu* menu;
+
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSetMenu" );
+    menu = fgMenuByID( menuID );
+
+    freeglut_return_if_fail( menu );
+
+    fgStructure.CurrentMenu = menu;
+}
+
+/*
+ * Adds a menu entry to the bottom of the current menu
+ */
+void FGAPIENTRY glutAddMenuEntry( const char* label, int value )
+{
+    SFG_MenuEntry* menuEntry;
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutAddMenuEntry" );
+    menuEntry = (SFG_MenuEntry *)calloc( sizeof(SFG_MenuEntry), 1 );
+    freeglut_return_if_fail( fgStructure.CurrentMenu );
+
+    menuEntry->Text = strdup( label );
+    menuEntry->ID   = value;
+
+    /* Have the new menu entry attached to the current menu */
+    fgListAppend( &fgStructure.CurrentMenu->Entries, &menuEntry->Node );
+
+    fghCalculateMenuBoxSize( );
+}
+
+/*
+ * Add a sub menu to the bottom of the current menu
+ */
+void FGAPIENTRY glutAddSubMenu( const char *label, int subMenuID )
+{
+    SFG_MenuEntry *menuEntry;
+    SFG_Menu *subMenu;
+
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutAddSubMenu" );
+    menuEntry = ( SFG_MenuEntry * )calloc( sizeof( SFG_MenuEntry ), 1 );
+    subMenu = fgMenuByID( subMenuID );
+
+    freeglut_return_if_fail( fgStructure.CurrentMenu );
+    freeglut_return_if_fail( subMenu );
+
+    menuEntry->Text    = strdup( label );
+    menuEntry->SubMenu = subMenu;
+    menuEntry->ID      = -1;
+
+    fgListAppend( &fgStructure.CurrentMenu->Entries, &menuEntry->Node );
+    fghCalculateMenuBoxSize( );
+}
+
+/*
+ * Changes the specified menu item in the current menu into a menu entry
+ */
+void FGAPIENTRY glutChangeToMenuEntry( int item, const char* label, int value )
+{
+    SFG_MenuEntry* menuEntry = NULL;
+
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutChangeToMenuEntry" );
+    freeglut_return_if_fail( fgStructure.CurrentMenu );
+
+    /* Get n-th menu entry in the current menu, starting from one: */
+    menuEntry = fghFindMenuEntry( fgStructure.CurrentMenu, item );
+
+    freeglut_return_if_fail( menuEntry );
+
+    /* We want it to become a normal menu entry, so: */
+    if( menuEntry->Text )
+        free( menuEntry->Text );
+
+    menuEntry->Text    = strdup( label );
+    menuEntry->ID      = value;
+    menuEntry->SubMenu = NULL;
+    fghCalculateMenuBoxSize( );
+}
+
+/*
+ * Changes the specified menu item in the current menu into a sub-menu trigger.
+ */
+void FGAPIENTRY glutChangeToSubMenu( int item, const char* label,
+                                     int subMenuID )
+{
+    SFG_Menu*      subMenu;
+    SFG_MenuEntry* menuEntry;
+
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutChangeToSubMenu" );
+    subMenu = fgMenuByID( subMenuID );
+    menuEntry = NULL;
+
+    freeglut_return_if_fail( fgStructure.CurrentMenu );
+    freeglut_return_if_fail( subMenu );
+
+    /* Get n-th menu entry in the current menu, starting from one: */
+    menuEntry = fghFindMenuEntry( fgStructure.CurrentMenu, item );
+
+    freeglut_return_if_fail( menuEntry );
+
+    /* We want it to become a sub menu entry, so: */
+    if( menuEntry->Text )
+        free( menuEntry->Text );
+
+    menuEntry->Text    = strdup( label );
+    menuEntry->SubMenu = subMenu;
+    menuEntry->ID      = -1;
+    fghCalculateMenuBoxSize( );
+}
+
+/*
+ * Removes the specified menu item from the current menu
+ */
+void FGAPIENTRY glutRemoveMenuItem( int item )
+{
+    SFG_MenuEntry* menuEntry;
+
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutRemoveMenuItem" );
+    freeglut_return_if_fail( fgStructure.CurrentMenu );
+
+    /* Get n-th menu entry in the current menu, starting from one: */
+    menuEntry = fghFindMenuEntry( fgStructure.CurrentMenu, item );
+
+    freeglut_return_if_fail( menuEntry );
+
+    fgListRemove( &fgStructure.CurrentMenu->Entries, &menuEntry->Node );
+    if ( menuEntry->Text )
+      free( menuEntry->Text );
+
+    free( menuEntry );
+    fghCalculateMenuBoxSize( );
+}
+
+/*
+ * Attaches a menu to the current window
+ */
+void FGAPIENTRY glutAttachMenu( int button )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutAttachMenu" );
+
+    freeglut_return_if_fail( fgStructure.CurrentWindow );
+    freeglut_return_if_fail( fgStructure.CurrentMenu );
+
+    freeglut_return_if_fail( button >= 0 );
+    freeglut_return_if_fail( button < FREEGLUT_MAX_MENUS );
+
+    fgStructure.CurrentWindow->Menu[ button ] = fgStructure.CurrentMenu;
+}
+
+/*
+ * Detaches a menu from the current window
+ */
+void FGAPIENTRY glutDetachMenu( int button )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutDetachMenu" );
+
+    freeglut_return_if_fail( fgStructure.CurrentWindow );
+    freeglut_return_if_fail( fgStructure.CurrentMenu );
+
+    freeglut_return_if_fail( button >= 0 );
+    freeglut_return_if_fail( button < FREEGLUT_MAX_MENUS );
+
+    fgStructure.CurrentWindow->Menu[ button ] = NULL;
+}
+
+/*
+ * A.Donev: Set and retrieve the menu's user data
+ */
+void* FGAPIENTRY glutGetMenuData( void )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutGetMenuData" );
+    return fgStructure.CurrentMenu->UserData;
+}
+
+void FGAPIENTRY glutSetMenuData(void* data)
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSetMenuData" );
+    fgStructure.CurrentMenu->UserData=data;
+}
+
+/*** END OF FILE ***/
diff --git a/src/fg_misc.c b/src/fg_misc.c
new file mode 100644 (file)
index 0000000..5d192bf
--- /dev/null
@@ -0,0 +1,203 @@
+/*
+ * freeglut_misc.c
+ *
+ * Functions that didn't fit anywhere else...
+ *
+ * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
+ * Written by Pawel W. Olszta, <olszta@sourceforge.net>
+ * Creation date: Thu Dec 9 1999
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include <GL/freeglut.h>
+#include "fg_internal.h"
+
+/*
+ * TODO BEFORE THE STABLE RELEASE:
+ *
+ *  glutSetColor()     --
+ *  glutGetColor()     --
+ *  glutCopyColormap() --
+ *  glutSetKeyRepeat() -- this is evil and should be removed from API
+ */
+
+/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
+
+/*
+ * This functions checks if an OpenGL extension is supported or not
+ *
+ * XXX Wouldn't this be simpler and clearer if we used strtok()?
+ */
+int FGAPIENTRY glutExtensionSupported( const char* extension )
+{
+  const char *extensions, *start;
+  const size_t len = strlen( extension );
+
+  /* Make sure there is a current window, and thus a current context available */
+  FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutExtensionSupported" );
+  freeglut_return_val_if_fail( fgStructure.CurrentWindow != NULL, 0 );
+
+  if (strchr(extension, ' '))
+    return 0;
+  start = extensions = (const char *) glGetString(GL_EXTENSIONS);
+
+  /* XXX consider printing a warning to stderr that there's no current
+   * rendering context.
+   */
+  freeglut_return_val_if_fail( extensions != NULL, 0 );
+
+  while (1) {
+     const char *p = strstr(extensions, extension);
+     if (!p)
+        return 0;  /* not found */
+     /* check that the match isn't a super string */
+     if ((p == start || p[-1] == ' ') && (p[len] == ' ' || p[len] == 0))
+        return 1;
+     /* skip the false match and continue */
+     extensions = p + len;
+  }
+
+  return 0 ;
+}
+
+#ifndef GL_INVALID_FRAMEBUFFER_OPERATION
+#ifdef GL_INVALID_FRAMEBUFFER_OPERATION_EXT
+#define GL_INVALID_FRAMEBUFFER_OPERATION GL_INVALID_FRAMEBUFFER_OPERATION_EXT
+#else
+#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
+#endif
+#endif
+
+#ifndef GL_TABLE_TOO_LARGE
+#ifdef GL_TABLE_TOO_LARGE_EXT
+#define GL_TABLE_TOO_LARGE GL_TABLE_TOO_LARGE_EXT
+#else
+#define GL_TABLE_TOO_LARGE 0x8031
+#endif
+#endif
+
+#ifndef GL_TEXTURE_TOO_LARGE
+#ifdef GL_TEXTURE_TOO_LARGE_EXT
+#define GL_TEXTURE_TOO_LARGE GL_TEXTURE_TOO_LARGE_EXT
+#else
+#define GL_TEXTURE_TOO_LARGE 0x8065
+#endif
+#endif
+
+/*
+ * A cut-down local version of gluErrorString to avoid depending on GLU.
+ */
+static const char* fghErrorString( GLenum error )
+{
+  switch ( error ) {
+  case GL_INVALID_ENUM: return "invalid enumerant";
+  case GL_INVALID_VALUE: return "invalid value";
+  case GL_INVALID_OPERATION: return "invalid operation";
+#ifndef GL_ES_VERSION_2_0
+  case GL_STACK_OVERFLOW: return "stack overflow";
+  case GL_STACK_UNDERFLOW: return "stack underflow";
+#endif
+  case GL_OUT_OF_MEMORY: return "out of memory";
+  case GL_TABLE_TOO_LARGE: return "table too large";
+  case GL_INVALID_FRAMEBUFFER_OPERATION: return "invalid framebuffer operation";
+  case GL_TEXTURE_TOO_LARGE: return "texture too large";
+  default: return "unknown GL error";
+  }
+}
+
+/*
+ * This function reports all the OpenGL errors that happened till now
+ */
+void FGAPIENTRY glutReportErrors( void )
+{
+    GLenum error;
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutReportErrors" );
+    while( ( error = glGetError() ) != GL_NO_ERROR )
+        fgWarning( "GL error: %s", fghErrorString( error ) );
+}
+
+/*
+ * Control the auto-repeat of keystrokes to the current window
+ */
+void FGAPIENTRY glutIgnoreKeyRepeat( int ignore )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutIgnoreKeyRepeat" );
+    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutIgnoreKeyRepeat" );
+
+    fgStructure.CurrentWindow->State.IgnoreKeyRepeat = ignore ? GL_TRUE : GL_FALSE;
+}
+
+/*
+ * Set global auto-repeat of keystrokes
+ *
+ * RepeatMode should be either:
+ *    GLUT_KEY_REPEAT_OFF
+ *    GLUT_KEY_REPEAT_ON
+ *    GLUT_KEY_REPEAT_DEFAULT
+ */
+void FGAPIENTRY glutSetKeyRepeat( int repeatMode )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSetKeyRepeat" );
+
+    switch( repeatMode )
+    {
+    case GLUT_KEY_REPEAT_OFF:
+    case GLUT_KEY_REPEAT_ON:
+     fgState.KeyRepeat = repeatMode;
+     break;
+
+    case GLUT_KEY_REPEAT_DEFAULT:
+     fgState.KeyRepeat = GLUT_KEY_REPEAT_ON;
+     break;
+
+    default:
+        fgError ("Invalid glutSetKeyRepeat mode: %d", repeatMode);
+        break;
+    }
+}
+
+/*
+ *
+ */
+void FGAPIENTRY glutSetColor( int nColor, GLfloat red, GLfloat green, GLfloat blue )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSetColor" );
+    /* We really need to do something here. */
+}
+
+/*
+ *
+ */
+GLfloat FGAPIENTRY glutGetColor( int color, int component )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutGetColor" );
+    /* We really need to do something here. */
+    return( 0.0f );
+}
+
+/*
+ *
+ */
+void FGAPIENTRY glutCopyColormap( int window )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutCopyColormap" );
+    /* We really need to do something here. */
+}
+
+/*** END OF FILE ***/
diff --git a/src/fg_overlay.c b/src/fg_overlay.c
new file mode 100644 (file)
index 0000000..4a59bfe
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * freeglut_overlay.c
+ *
+ * Overlay management functions (as defined by GLUT API)
+ *
+ * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
+ * Written by Pawel W. Olszta, <olszta@sourceforge.net>
+ * Creation date: Thu Dec 16 1999
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include <GL/freeglut.h>
+#include "fg_internal.h"
+
+/*
+ * NOTE: functions declared in this file probably will not be implemented.
+ */
+
+/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
+
+void FGAPIENTRY glutEstablishOverlay( void )             { /* Not implemented */ }
+void FGAPIENTRY glutRemoveOverlay( void )                { /* Not implemented */ }
+void FGAPIENTRY glutUseLayer( GLenum layer )             { /* Not implemented */ }
+void FGAPIENTRY glutPostOverlayRedisplay( void )         { /* Not implemented */ }
+void FGAPIENTRY glutPostWindowOverlayRedisplay( int ID ) { /* Not implemented */ }
+void FGAPIENTRY glutShowOverlay( void )                  { /* Not implemented */ }
+void FGAPIENTRY glutHideOverlay( void )                  { /* Not implemented */ }
+
+/*** END OF FILE ***/
diff --git a/src/fg_spaceball.c b/src/fg_spaceball.c
new file mode 100644 (file)
index 0000000..b1b321c
--- /dev/null
@@ -0,0 +1,76 @@
+/* Spaceball support for Linux.
+ * Written by John Tsiombikas <nuclear@member.fsf.org>
+ *
+ * This code supports 3Dconnexion's 6-dof space-whatever devices.
+ * It can communicate with either the proprietary 3Dconnexion daemon (3dxsrv)
+ * free spacenavd (http://spacenav.sourceforge.net), through the "standard"
+ * magellan X-based protocol.
+ */
+
+#include <GL/freeglut.h>
+#include "fg_internal.h"
+
+/* -- PRIVATE FUNCTIONS --------------------------------------------------- */
+
+extern void fgPlatformInitializeSpaceball(void);
+extern void fgPlatformSpaceballClose(void);
+extern int fgPlatformHasSpaceball(void);
+extern int fgPlatformSpaceballNumButtons(void);
+extern void fgPlatformSpaceballSetWindow(SFG_Window *window);
+
+
+int sball_initialized = 0;
+
+void fgInitialiseSpaceball(void)
+{
+    if(sball_initialized != 0) {
+        return;
+    }
+
+    fgPlatformInitializeSpaceball();
+
+    sball_initialized = 1;
+}
+
+void fgSpaceballClose(void)
+{
+       fgPlatformSpaceballClose();}
+
+int fgHasSpaceball(void)
+{
+    if(sball_initialized == 0) {
+        fgInitialiseSpaceball();
+        if(sball_initialized != 1) {
+            fgWarning("fgInitialiseSpaceball failed\n");
+            return 0;
+        }
+    }
+
+    return fgPlatformHasSpaceball();
+}
+
+int fgSpaceballNumButtons(void)
+{
+    if(sball_initialized == 0) {
+        fgInitialiseSpaceball();
+        if(sball_initialized != 1) {
+            fgWarning("fgInitialiseSpaceball failed\n");
+            return 0;
+        }
+    }
+
+    return fgPlatformSpaceballNumButtons();
+}
+
+void fgSpaceballSetWindow(SFG_Window *window)
+{
+    if(sball_initialized == 0) {
+        fgInitialiseSpaceball();
+        if(sball_initialized != 1) {
+            return;
+        }
+    }
+
+    fgPlatformSpaceballSetWindow(window);
+}
+
diff --git a/src/fg_state.c b/src/fg_state.c
new file mode 100644 (file)
index 0000000..208b5e2
--- /dev/null
@@ -0,0 +1,346 @@
+/*
+ * freeglut_state.c
+ *
+ * Freeglut state query methods.
+ *
+ * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
+ * Written by Pawel W. Olszta, <olszta@sourceforge.net>
+ * Creation date: Thu Dec 16 1999
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include <GL/freeglut.h>
+#include "fg_internal.h"
+
+/*
+ * TODO BEFORE THE STABLE RELEASE:
+ *
+ *  glutGet()               -- X11 tests passed, but check if all enums
+ *                             handled (what about Win32?)
+ *  glutDeviceGet()         -- X11 tests passed, but check if all enums
+ *                             handled (what about Win32?)
+ *  glutGetModifiers()      -- OK, but could also remove the limitation
+ *  glutLayerGet()          -- what about GLUT_NORMAL_DAMAGED?
+ *
+ * The fail-on-call policy will help adding the most needed things imho.
+ */
+
+extern int fgPlatformGlutGet ( GLenum eWhat );
+extern int fgPlatformGlutDeviceGet ( GLenum eWhat );
+extern int *fgPlatformGlutGetModeValues(GLenum eWhat, int *size);
+
+
+/* -- LOCAL DEFINITIONS ---------------------------------------------------- */
+
+/* -- PRIVATE FUNCTIONS ---------------------------------------------------- */
+
+
+/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
+
+/*
+ * General settings assignment method
+ */
+void FGAPIENTRY glutSetOption( GLenum eWhat, int value )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSetOption" );
+
+    /*
+     * XXX In chronological code add order.  (WHY in that order?)
+     */
+    switch( eWhat )
+    {
+    case GLUT_INIT_WINDOW_X:
+        fgState.Position.X = (GLint)value;
+        break;
+
+    case GLUT_INIT_WINDOW_Y:
+        fgState.Position.Y = (GLint)value;
+        break;
+
+    case GLUT_INIT_WINDOW_WIDTH:
+        fgState.Size.X = (GLint)value;
+        break;
+
+    case GLUT_INIT_WINDOW_HEIGHT:
+        fgState.Size.Y = (GLint)value;
+        break;
+
+    case GLUT_INIT_DISPLAY_MODE:
+        fgState.DisplayMode = (unsigned int)value;
+        break;
+
+    case GLUT_ACTION_ON_WINDOW_CLOSE:
+        fgState.ActionOnWindowClose = value;
+        break;
+
+    case GLUT_RENDERING_CONTEXT:
+        fgState.UseCurrentContext =
+            ( value == GLUT_USE_CURRENT_CONTEXT ) ? GL_TRUE : GL_FALSE;
+        break;
+
+    case GLUT_DIRECT_RENDERING:
+        fgState.DirectContext = value;
+        break;
+
+    case GLUT_WINDOW_CURSOR:
+        if( fgStructure.CurrentWindow != NULL )
+            fgStructure.CurrentWindow->State.Cursor = value;
+        break;
+
+    case GLUT_AUX:
+      fgState.AuxiliaryBufferNumber = value;
+      break;
+
+    case GLUT_MULTISAMPLE:
+      fgState.SampleNumber = value;
+      break;
+
+    default:
+        fgWarning( "glutSetOption(): missing enum handle %d", eWhat );
+        break;
+    }
+}
+
+/*
+ * General settings query method
+ */
+int FGAPIENTRY glutGet( GLenum eWhat )
+{
+    switch (eWhat)
+    {
+    case GLUT_INIT_STATE:
+        return fgState.Initialised;
+
+    case GLUT_ELAPSED_TIME:
+        return (int) fgElapsedTime();
+    }
+
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutGet" );
+
+    /* XXX In chronological code add order.  (WHY in that order?) */
+    switch( eWhat )
+    {
+    /* Following values are stored in fgState and fgDisplay global structures */
+    case GLUT_SCREEN_WIDTH:         return fgDisplay.ScreenWidth   ;
+    case GLUT_SCREEN_HEIGHT:        return fgDisplay.ScreenHeight  ;
+    case GLUT_SCREEN_WIDTH_MM:      return fgDisplay.ScreenWidthMM ;
+    case GLUT_SCREEN_HEIGHT_MM:     return fgDisplay.ScreenHeightMM;
+    case GLUT_INIT_WINDOW_X:        return fgState.Position.Use ?
+                                           fgState.Position.X : -1 ;
+    case GLUT_INIT_WINDOW_Y:        return fgState.Position.Use ?
+                                           fgState.Position.Y : -1 ;
+    case GLUT_INIT_WINDOW_WIDTH:    return fgState.Size.Use ?
+                                           fgState.Size.X : -1     ;
+    case GLUT_INIT_WINDOW_HEIGHT:   return fgState.Size.Use ?
+                                           fgState.Size.Y : -1     ;
+    case GLUT_INIT_DISPLAY_MODE:    return fgState.DisplayMode     ;
+    case GLUT_INIT_MAJOR_VERSION:   return fgState.MajorVersion    ;
+    case GLUT_INIT_MINOR_VERSION:   return fgState.MinorVersion    ;
+    case GLUT_INIT_FLAGS:           return fgState.ContextFlags    ;
+    case GLUT_INIT_PROFILE:         return fgState.ContextProfile  ;
+
+    /* The window structure queries */
+    case GLUT_WINDOW_PARENT:
+        if( fgStructure.CurrentWindow         == NULL ) return 0;
+        if( fgStructure.CurrentWindow->Parent == NULL ) return 0;
+        return fgStructure.CurrentWindow->Parent->ID;
+
+    case GLUT_WINDOW_NUM_CHILDREN:
+        if( fgStructure.CurrentWindow == NULL )
+            return 0;
+        return fgListLength( &fgStructure.CurrentWindow->Children );
+
+    case GLUT_WINDOW_CURSOR:
+        if( fgStructure.CurrentWindow == NULL )
+            return 0;
+        return fgStructure.CurrentWindow->State.Cursor;
+
+    case GLUT_MENU_NUM_ITEMS:
+        if( fgStructure.CurrentMenu == NULL )
+            return 0;
+        return fgListLength( &fgStructure.CurrentMenu->Entries );
+
+    case GLUT_ACTION_ON_WINDOW_CLOSE:
+        return fgState.ActionOnWindowClose;
+
+    case GLUT_VERSION :
+        return VERSION_MAJOR * 10000 + VERSION_MINOR * 100 + VERSION_PATCH;
+
+    case GLUT_RENDERING_CONTEXT:
+        return fgState.UseCurrentContext ? GLUT_USE_CURRENT_CONTEXT
+                                         : GLUT_CREATE_NEW_CONTEXT;
+
+    case GLUT_DIRECT_RENDERING:
+        return fgState.DirectContext;
+
+    case GLUT_FULL_SCREEN:
+        return fgStructure.CurrentWindow->State.IsFullscreen;
+
+    case GLUT_AUX:
+      return fgState.AuxiliaryBufferNumber;
+
+    case GLUT_MULTISAMPLE:
+      return fgState.SampleNumber;
+
+    default:
+        return fgPlatformGlutGet ( eWhat );
+        break;
+    }
+    return -1;
+}
+
+/*
+ * Returns various device information.
+ */
+int FGAPIENTRY glutDeviceGet( GLenum eWhat )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutDeviceGet" );
+
+    /* XXX WARNING: we are mostly lying in this function. */
+    switch( eWhat )
+    {
+    case GLUT_HAS_JOYSTICK:
+        return fgJoystickDetect ();
+
+    case GLUT_OWNS_JOYSTICK:
+        return fgState.JoysticksInitialised;
+
+    case GLUT_JOYSTICK_POLL_RATE:
+        return fgStructure.CurrentWindow ? fgStructure.CurrentWindow->State.JoystickPollRate : 0;
+
+    /* XXX The following two are only for Joystick 0 but this is an improvement */
+    case GLUT_JOYSTICK_BUTTONS:
+        return glutJoystickGetNumButtons ( 0 );
+
+    case GLUT_JOYSTICK_AXES:
+        return glutJoystickGetNumAxes ( 0 );
+
+    case GLUT_HAS_DIAL_AND_BUTTON_BOX:
+        return fgInputDeviceDetect ();
+
+    case GLUT_NUM_DIALS:
+        if ( fgState.InputDevsInitialised ) return 8;
+        return 0;
+    case GLUT_NUM_BUTTON_BOX_BUTTONS:
+        return 0;
+
+    case GLUT_HAS_SPACEBALL:
+        return fgHasSpaceball();
+
+    case GLUT_HAS_TABLET:
+        return 0;
+
+    case GLUT_NUM_SPACEBALL_BUTTONS:
+        return fgSpaceballNumButtons();
+
+    case GLUT_NUM_TABLET_BUTTONS:
+        return 0;
+
+    case GLUT_DEVICE_IGNORE_KEY_REPEAT:
+        return fgStructure.CurrentWindow ? fgStructure.CurrentWindow->State.IgnoreKeyRepeat : 0;
+
+    case GLUT_DEVICE_KEY_REPEAT:
+        return fgState.KeyRepeat;
+
+    default:
+               return fgPlatformGlutDeviceGet ( eWhat );
+    }
+
+    /* And now -- the failure. */
+    return -1;
+}
+
+/*
+ * This should return the current state of ALT, SHIFT and CTRL keys.
+ */
+int FGAPIENTRY glutGetModifiers( void )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutGetModifiers" );
+    if( fgState.Modifiers == INVALID_MODIFIERS )
+    {
+        fgWarning( "glutGetModifiers() called outside an input callback" );
+        return 0;
+    }
+
+    return fgState.Modifiers;
+}
+
+/*
+ * Return the state of the GLUT API overlay subsystem. A misery ;-)
+ */
+int FGAPIENTRY glutLayerGet( GLenum eWhat )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutLayerGet" );
+
+    /*
+     * This is easy as layers are not implemented and
+     * overlay support is not planned. E.g. on Windows,
+     * overlay requests in PFDs are ignored
+     * (see iLayerType at http://msdn.microsoft.com/en-us/library/dd368826(v=vs.85).aspx)
+     */
+    switch( eWhat )
+    {
+
+    case GLUT_OVERLAY_POSSIBLE:
+        return 0 ;
+
+    case GLUT_LAYER_IN_USE:
+        return GLUT_NORMAL;
+
+    case GLUT_HAS_OVERLAY:
+        return 0;
+
+    case GLUT_TRANSPARENT_INDEX:
+        /*
+        * Return just anything, which is always defined as zero
+        *
+        * XXX HUH?
+        */
+        return 0;
+
+    case GLUT_NORMAL_DAMAGED:
+        /* XXX Actually I do not know. Maybe. */
+        return 0;
+
+    case GLUT_OVERLAY_DAMAGED:
+        return -1;
+
+    default:
+        fgWarning( "glutLayerGet(): missing enum handle %d", eWhat );
+        break;
+    }
+
+    /* And fail. That's good. Programs do love failing. */
+    return -1;
+}
+
+int * FGAPIENTRY glutGetModeValues(GLenum eWhat, int *size)
+{
+  int *array;
+
+  FREEGLUT_EXIT_IF_NOT_INITIALISED("glutGetModeValues");
+
+  *size = 0;
+  array = fgPlatformGlutGetModeValues ( eWhat, size );
+
+  return array;
+}
+
+/*** END OF FILE ***/
diff --git a/src/fg_stroke_mono_roman.c b/src/fg_stroke_mono_roman.c
new file mode 100644 (file)
index 0000000..615526d
--- /dev/null
@@ -0,0 +1,2849 @@
+/*
+ * freeglut_stroke_mono_roman.c
+ *
+ * freeglut Monospace Roman stroke font definition
+ *
+ * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
+ * Written by Pawel W. Olszta, <olszta@sourceforge.net>
+ * Creation date: Thu Dec 16 1999
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/* This file has been automatically generated by the genstroke utility. */
+
+#include <GL/freeglut.h>
+#include "fg_internal.h"
+
+/* char: 0x20 */
+
+static const SFG_StrokeStrip ch32st[] =
+{
+  { 0, NULL }
+};
+
+static const SFG_StrokeChar ch32 = {104.762f,0,ch32st};
+
+/* char: 0x21 */
+
+static const SFG_StrokeVertex ch33st0[] =
+{
+ {52.381f,100.0f},
+ {52.381f,33.3333f}
+};
+
+static const SFG_StrokeVertex ch33st1[] =
+{
+ {52.381f,9.5238f},
+ {47.6191f,4.7619f},
+ {52.381f,0.0f},
+ {57.1429f,4.7619f},
+ {52.381f,9.5238f}
+};
+
+static const SFG_StrokeStrip ch33st[] =
+{
+ {2,ch33st0},
+ {5,ch33st1}
+};
+
+static const SFG_StrokeChar ch33 = {104.762f,2,ch33st};
+
+/* char: 0x22 */
+
+static const SFG_StrokeVertex ch34st0[] =
+{
+ {33.3334f,100.0f},
+ {33.3334f,66.6667f}
+};
+
+static const SFG_StrokeVertex ch34st1[] =
+{
+ {71.4286f,100.0f},
+ {71.4286f,66.6667f}
+};
+
+static const SFG_StrokeStrip ch34st[] =
+{
+ {2,ch34st0},
+ {2,ch34st1}
+};
+
+static const SFG_StrokeChar ch34 = {104.762f,2,ch34st};
+
+/* char: 0x23 */
+
+static const SFG_StrokeVertex ch35st0[] =
+{
+ {54.7619f,119.048f},
+ {21.4286f,-33.3333f}
+};
+
+static const SFG_StrokeVertex ch35st1[] =
+{
+ {83.3334f,119.048f},
+ {50.0f,-33.3333f}
+};
+
+static const SFG_StrokeVertex ch35st2[] =
+{
+ {21.4286f,57.1429f},
+ {88.0952f,57.1429f}
+};
+
+static const SFG_StrokeVertex ch35st3[] =
+{
+ {16.6667f,28.5714f},
+ {83.3334f,28.5714f}
+};
+
+static const SFG_StrokeStrip ch35st[] =
+{
+ {2,ch35st0},
+ {2,ch35st1},
+ {2,ch35st2},
+ {2,ch35st3}
+};
+
+static const SFG_StrokeChar ch35 = {104.762f,4,ch35st};
+
+/* char: 0x24 */
+
+static const SFG_StrokeVertex ch36st0[] =
+{
+ {42.8571f,119.048f},
+ {42.8571f,-19.0476f}
+};
+
+static const SFG_StrokeVertex ch36st1[] =
+{
+ {61.9047f,119.048f},
+ {61.9047f,-19.0476f}
+};
+
+static const SFG_StrokeVertex ch36st2[] =
+{
+ {85.7143f,85.7143f},
+ {76.1905f,95.2381f},
+ {61.9047f,100.0f},
+ {42.8571f,100.0f},
+ {28.5714f,95.2381f},
+ {19.0476f,85.7143f},
+ {19.0476f,76.1905f},
+ {23.8095f,66.6667f},
+ {28.5714f,61.9048f},
+ {38.0952f,57.1429f},
+ {66.6666f,47.619f},
+ {76.1905f,42.8571f},
+ {80.9524f,38.0952f},
+ {85.7143f,28.5714f},
+ {85.7143f,14.2857f},
+ {76.1905f,4.7619f},
+ {61.9047f,0.0f},
+ {42.8571f,0.0f},
+ {28.5714f,4.7619f},
+ {19.0476f,14.2857f}
+};
+
+static const SFG_StrokeStrip ch36st[] =
+{
+ {2,ch36st0},
+ {2,ch36st1},
+ {20,ch36st2}
+};
+
+static const SFG_StrokeChar ch36 = {104.762f,3,ch36st};
+
+/* char: 0x25 */
+
+static const SFG_StrokeVertex ch37st0[] =
+{
+ {95.2381f,100.0f},
+ {9.5238f,0.0f}
+};
+
+static const SFG_StrokeVertex ch37st1[] =
+{
+ {33.3333f,100.0f},
+ {42.8571f,90.4762f},
+ {42.8571f,80.9524f},
+ {38.0952f,71.4286f},
+ {28.5714f,66.6667f},
+ {19.0476f,66.6667f},
+ {9.5238f,76.1905f},
+ {9.5238f,85.7143f},
+ {14.2857f,95.2381f},
+ {23.8095f,100.0f},
+ {33.3333f,100.0f},
+ {42.8571f,95.2381f},
+ {57.1428f,90.4762f},
+ {71.4286f,90.4762f},
+ {85.7143f,95.2381f},
+ {95.2381f,100.0f}
+};
+
+static const SFG_StrokeVertex ch37st2[] =
+{
+ {76.1905f,33.3333f},
+ {66.6667f,28.5714f},
+ {61.9048f,19.0476f},
+ {61.9048f,9.5238f},
+ {71.4286f,0.0f},
+ {80.9524f,0.0f},
+ {90.4762f,4.7619f},
+ {95.2381f,14.2857f},
+ {95.2381f,23.8095f},
+ {85.7143f,33.3333f},
+ {76.1905f,33.3333f}
+};
+
+static const SFG_StrokeStrip ch37st[] =
+{
+ {2,ch37st0},
+ {16,ch37st1},
+ {11,ch37st2}
+};
+
+static const SFG_StrokeChar ch37 = {104.762f,3,ch37st};
+
+/* char: 0x26 */
+
+static const SFG_StrokeVertex ch38st0[] =
+{
+ {100.0f,57.1429f},
+ {100.0f,61.9048f},
+ {95.2381f,66.6667f},
+ {90.4762f,66.6667f},
+ {85.7143f,61.9048f},
+ {80.9524f,52.381f},
+ {71.4286f,28.5714f},
+ {61.9048f,14.2857f},
+ {52.3809f,4.7619f},
+ {42.8571f,0.0f},
+ {23.8095f,0.0f},
+ {14.2857f,4.7619f},
+ {9.5238f,9.5238f},
+ {4.7619f,19.0476f},
+ {4.7619f,28.5714f},
+ {9.5238f,38.0952f},
+ {14.2857f,42.8571f},
+ {47.619f,61.9048f},
+ {52.3809f,66.6667f},
+ {57.1429f,76.1905f},
+ {57.1429f,85.7143f},
+ {52.3809f,95.2381f},
+ {42.8571f,100.0f},
+ {33.3333f,95.2381f},
+ {28.5714f,85.7143f},
+ {28.5714f,76.1905f},
+ {33.3333f,61.9048f},
+ {42.8571f,47.619f},
+ {66.6667f,14.2857f},
+ {76.1905f,4.7619f},
+ {85.7143f,0.0f},
+ {95.2381f,0.0f},
+ {100.0f,4.7619f},
+ {100.0f,9.5238f}
+};
+
+static const SFG_StrokeStrip ch38st[] =
+{
+ {34,ch38st0}
+};
+
+static const SFG_StrokeChar ch38 = {104.762f,1,ch38st};
+
+/* char: 0x27 */
+
+static const SFG_StrokeVertex ch39st0[] =
+{
+ {52.381f,100.0f},
+ {52.381f,66.6667f}
+};
+
+static const SFG_StrokeStrip ch39st[] =
+{
+ {2,ch39st0}
+};
+
+static const SFG_StrokeChar ch39 = {104.762f,1,ch39st};
+
+/* char: 0x28 */
+
+static const SFG_StrokeVertex ch40st0[] =
+{
+ {69.0476f,119.048f},
+ {59.5238f,109.524f},
+ {50.0f,95.2381f},
+ {40.4762f,76.1905f},
+ {35.7143f,52.381f},
+ {35.7143f,33.3333f},
+ {40.4762f,9.5238f},
+ {50.0f,-9.5238f},
+ {59.5238f,-23.8095f},
+ {69.0476f,-33.3333f}
+};
+
+static const SFG_StrokeStrip ch40st[] =
+{
+ {10,ch40st0}
+};
+
+static const SFG_StrokeChar ch40 = {104.762f,1,ch40st};
+
+/* char: 0x29 */
+
+static const SFG_StrokeVertex ch41st0[] =
+{
+ {35.7143f,119.048f},
+ {45.2381f,109.524f},
+ {54.7619f,95.2381f},
+ {64.2857f,76.1905f},
+ {69.0476f,52.381f},
+ {69.0476f,33.3333f},
+ {64.2857f,9.5238f},
+ {54.7619f,-9.5238f},
+ {45.2381f,-23.8095f},
+ {35.7143f,-33.3333f}
+};
+
+static const SFG_StrokeStrip ch41st[] =
+{
+ {10,ch41st0}
+};
+
+static const SFG_StrokeChar ch41 = {104.762f,1,ch41st};
+
+/* char: 0x2a */
+
+static const SFG_StrokeVertex ch42st0[] =
+{
+ {52.381f,71.4286f},
+ {52.381f,14.2857f}
+};
+
+static const SFG_StrokeVertex ch42st1[] =
+{
+ {28.5715f,57.1429f},
+ {76.1905f,28.5714f}
+};
+
+static const SFG_StrokeVertex ch42st2[] =
+{
+ {76.1905f,57.1429f},
+ {28.5715f,28.5714f}
+};
+
+static const SFG_StrokeStrip ch42st[] =
+{
+ {2,ch42st0},
+ {2,ch42st1},
+ {2,ch42st2}
+};
+
+static const SFG_StrokeChar ch42 = {104.762f,3,ch42st};
+
+/* char: 0x2b */
+
+static const SFG_StrokeVertex ch43st0[] =
+{
+ {52.3809f,85.7143f},
+ {52.3809f,0.0f}
+};
+
+static const SFG_StrokeVertex ch43st1[] =
+{
+ {9.5238f,42.8571f},
+ {95.2381f,42.8571f}
+};
+
+static const SFG_StrokeStrip ch43st[] =
+{
+ {2,ch43st0},
+ {2,ch43st1}
+};
+
+static const SFG_StrokeChar ch43 = {104.762f,2,ch43st};
+
+/* char: 0x2c */
+
+static const SFG_StrokeVertex ch44st0[] =
+{
+ {57.1429f,4.7619f},
+ {52.381f,0.0f},
+ {47.6191f,4.7619f},
+ {52.381f,9.5238f},
+ {57.1429f,4.7619f},
+ {57.1429f,-4.7619f},
+ {52.381f,-14.2857f},
+ {47.6191f,-19.0476f}
+};
+
+static const SFG_StrokeStrip ch44st[] =
+{
+ {8,ch44st0}
+};
+
+static const SFG_StrokeChar ch44 = {104.762f,1,ch44st};
+
+/* char: 0x2d */
+
+static const SFG_StrokeVertex ch45st0[] =
+{
+ {9.5238f,42.8571f},
+ {95.2381f,42.8571f}
+};
+
+static const SFG_StrokeStrip ch45st[] =
+{
+ {2,ch45st0}
+};
+
+static const SFG_StrokeChar ch45 = {104.762f,1,ch45st};
+
+/* char: 0x2e */
+
+static const SFG_StrokeVertex ch46st0[] =
+{
+ {52.381f,9.5238f},
+ {47.6191f,4.7619f},
+ {52.381f,0.0f},
+ {57.1429f,4.7619f},
+ {52.381f,9.5238f}
+};
+
+static const SFG_StrokeStrip ch46st[] =
+{
+ {5,ch46st0}
+};
+
+static const SFG_StrokeChar ch46 = {104.762f,1,ch46st};
+
+/* char: 0x2f */
+
+static const SFG_StrokeVertex ch47st0[] =
+{
+ {19.0476f,-14.2857f},
+ {85.7143f,100.0f}
+};
+
+static const SFG_StrokeStrip ch47st[] =
+{
+ {2,ch47st0}
+};
+
+static const SFG_StrokeChar ch47 = {104.762f,1,ch47st};
+
+/* char: 0x30 */
+
+static const SFG_StrokeVertex ch48st0[] =
+{
+ {47.619f,100.0f},
+ {33.3333f,95.2381f},
+ {23.8095f,80.9524f},
+ {19.0476f,57.1429f},
+ {19.0476f,42.8571f},
+ {23.8095f,19.0476f},
+ {33.3333f,4.7619f},
+ {47.619f,0.0f},
+ {57.1428f,0.0f},
+ {71.4286f,4.7619f},
+ {80.9524f,19.0476f},
+ {85.7143f,42.8571f},
+ {85.7143f,57.1429f},
+ {80.9524f,80.9524f},
+ {71.4286f,95.2381f},
+ {57.1428f,100.0f},
+ {47.619f,100.0f}
+};
+
+static const SFG_StrokeStrip ch48st[] =
+{
+ {17,ch48st0}
+};
+
+static const SFG_StrokeChar ch48 = {104.762f,1,ch48st};
+
+/* char: 0x31 */
+
+static const SFG_StrokeVertex ch49st0[] =
+{
+ {40.4762f,80.9524f},
+ {50.0f,85.7143f},
+ {64.2857f,100.0f},
+ {64.2857f,0.0f}
+};
+
+static const SFG_StrokeStrip ch49st[] =
+{
+ {4,ch49st0}
+};
+
+static const SFG_StrokeChar ch49 = {104.762f,1,ch49st};
+
+/* char: 0x32 */
+
+static const SFG_StrokeVertex ch50st0[] =
+{
+ {23.8095f,76.1905f},
+ {23.8095f,80.9524f},
+ {28.5714f,90.4762f},
+ {33.3333f,95.2381f},
+ {42.8571f,100.0f},
+ {61.9047f,100.0f},
+ {71.4286f,95.2381f},
+ {76.1905f,90.4762f},
+ {80.9524f,80.9524f},
+ {80.9524f,71.4286f},
+ {76.1905f,61.9048f},
+ {66.6666f,47.619f},
+ {19.0476f,0.0f},
+ {85.7143f,0.0f}
+};
+
+static const SFG_StrokeStrip ch50st[] =
+{
+ {14,ch50st0}
+};
+
+static const SFG_StrokeChar ch50 = {104.762f,1,ch50st};
+
+/* char: 0x33 */
+
+static const SFG_StrokeVertex ch51st0[] =
+{
+ {28.5714f,100.0f},
+ {80.9524f,100.0f},
+ {52.3809f,61.9048f},
+ {66.6666f,61.9048f},
+ {76.1905f,57.1429f},
+ {80.9524f,52.381f},
+ {85.7143f,38.0952f},
+ {85.7143f,28.5714f},
+ {80.9524f,14.2857f},
+ {71.4286f,4.7619f},
+ {57.1428f,0.0f},
+ {42.8571f,0.0f},
+ {28.5714f,4.7619f},
+ {23.8095f,9.5238f},
+ {19.0476f,19.0476f}
+};
+
+static const SFG_StrokeStrip ch51st[] =
+{
+ {15,ch51st0}
+};
+
+static const SFG_StrokeChar ch51 = {104.762f,1,ch51st};
+
+/* char: 0x34 */
+
+static const SFG_StrokeVertex ch52st0[] =
+{
+ {64.2857f,100.0f},
+ {16.6667f,33.3333f},
+ {88.0952f,33.3333f}
+};
+
+static const SFG_StrokeVertex ch52st1[] =
+{
+ {64.2857f,100.0f},
+ {64.2857f,0.0f}
+};
+
+static const SFG_StrokeStrip ch52st[] =
+{
+ {3,ch52st0},
+ {2,ch52st1}
+};
+
+static const SFG_StrokeChar ch52 = {104.762f,2,ch52st};
+
+/* char: 0x35 */
+
+static const SFG_StrokeVertex ch53st0[] =
+{
+ {76.1905f,100.0f},
+ {28.5714f,100.0f},
+ {23.8095f,57.1429f},
+ {28.5714f,61.9048f},
+ {42.8571f,66.6667f},
+ {57.1428f,66.6667f},
+ {71.4286f,61.9048f},
+ {80.9524f,52.381f},
+ {85.7143f,38.0952f},
+ {85.7143f,28.5714f},
+ {80.9524f,14.2857f},
+ {71.4286f,4.7619f},
+ {57.1428f,0.0f},
+ {42.8571f,0.0f},
+ {28.5714f,4.7619f},
+ {23.8095f,9.5238f},
+ {19.0476f,19.0476f}
+};
+
+static const SFG_StrokeStrip ch53st[] =
+{
+ {17,ch53st0}
+};
+
+static const SFG_StrokeChar ch53 = {104.762f,1,ch53st};
+
+/* char: 0x36 */
+
+static const SFG_StrokeVertex ch54st0[] =
+{
+ {78.5714f,85.7143f},
+ {73.8096f,95.2381f},
+ {59.5238f,100.0f},
+ {50.0f,100.0f},
+ {35.7143f,95.2381f},
+ {26.1905f,80.9524f},
+ {21.4286f,57.1429f},
+ {21.4286f,33.3333f},
+ {26.1905f,14.2857f},
+ {35.7143f,4.7619f},
+ {50.0f,0.0f},
+ {54.7619f,0.0f},
+ {69.0476f,4.7619f},
+ {78.5714f,14.2857f},
+ {83.3334f,28.5714f},
+ {83.3334f,33.3333f},
+ {78.5714f,47.619f},
+ {69.0476f,57.1429f},
+ {54.7619f,61.9048f},
+ {50.0f,61.9048f},
+ {35.7143f,57.1429f},
+ {26.1905f,47.619f},
+ {21.4286f,33.3333f}
+};
+
+static const SFG_StrokeStrip ch54st[] =
+{
+ {23,ch54st0}
+};
+
+static const SFG_StrokeChar ch54 = {104.762f,1,ch54st};
+
+/* char: 0x37 */
+
+static const SFG_StrokeVertex ch55st0[] =
+{
+ {85.7143f,100.0f},
+ {38.0952f,0.0f}
+};
+
+static const SFG_StrokeVertex ch55st1[] =
+{
+ {19.0476f,100.0f},
+ {85.7143f,100.0f}
+};
+
+static const SFG_StrokeStrip ch55st[] =
+{
+ {2,ch55st0},
+ {2,ch55st1}
+};
+
+static const SFG_StrokeChar ch55 = {104.762f,2,ch55st};
+
+/* char: 0x38 */
+
+static const SFG_StrokeVertex ch56st0[] =
+{
+ {42.8571f,100.0f},
+ {28.5714f,95.2381f},
+ {23.8095f,85.7143f},
+ {23.8095f,76.1905f},
+ {28.5714f,66.6667f},
+ {38.0952f,61.9048f},
+ {57.1428f,57.1429f},
+ {71.4286f,52.381f},
+ {80.9524f,42.8571f},
+ {85.7143f,33.3333f},
+ {85.7143f,19.0476f},
+ {80.9524f,9.5238f},
+ {76.1905f,4.7619f},
+ {61.9047f,0.0f},
+ {42.8571f,0.0f},
+ {28.5714f,4.7619f},
+ {23.8095f,9.5238f},
+ {19.0476f,19.0476f},
+ {19.0476f,33.3333f},
+ {23.8095f,42.8571f},
+ {33.3333f,52.381f},
+ {47.619f,57.1429f},
+ {66.6666f,61.9048f},
+ {76.1905f,66.6667f},
+ {80.9524f,76.1905f},
+ {80.9524f,85.7143f},
+ {76.1905f,95.2381f},
+ {61.9047f,100.0f},
+ {42.8571f,100.0f}
+};
+
+static const SFG_StrokeStrip ch56st[] =
+{
+ {29,ch56st0}
+};
+
+static const SFG_StrokeChar ch56 = {104.762f,1,ch56st};
+
+/* char: 0x39 */
+
+static const SFG_StrokeVertex ch57st0[] =
+{
+ {83.3334f,66.6667f},
+ {78.5714f,52.381f},
+ {69.0476f,42.8571f},
+ {54.7619f,38.0952f},
+ {50.0f,38.0952f},
+ {35.7143f,42.8571f},
+ {26.1905f,52.381f},
+ {21.4286f,66.6667f},
+ {21.4286f,71.4286f},
+ {26.1905f,85.7143f},
+ {35.7143f,95.2381f},
+ {50.0f,100.0f},
+ {54.7619f,100.0f},
+ {69.0476f,95.2381f},
+ {78.5714f,85.7143f},
+ {83.3334f,66.6667f},
+ {83.3334f,42.8571f},
+ {78.5714f,19.0476f},
+ {69.0476f,4.7619f},
+ {54.7619f,0.0f},
+ {45.2381f,0.0f},
+ {30.9524f,4.7619f},
+ {26.1905f,14.2857f}
+};
+
+static const SFG_StrokeStrip ch57st[] =
+{
+ {23,ch57st0}
+};
+
+static const SFG_StrokeChar ch57 = {104.762f,1,ch57st};
+
+/* char: 0x3a */
+
+static const SFG_StrokeVertex ch58st0[] =
+{
+ {52.381f,66.6667f},
+ {47.6191f,61.9048f},
+ {52.381f,57.1429f},
+ {57.1429f,61.9048f},
+ {52.381f,66.6667f}
+};
+
+static const SFG_StrokeVertex ch58st1[] =
+{
+ {52.381f,9.5238f},
+ {47.6191f,4.7619f},
+ {52.381f,0.0f},
+ {57.1429f,4.7619f},
+ {52.381f,9.5238f}
+};
+
+static const SFG_StrokeStrip ch58st[] =
+{
+ {5,ch58st0},
+ {5,ch58st1}
+};
+
+static const SFG_StrokeChar ch58 = {104.762f,2,ch58st};
+
+/* char: 0x3b */
+
+static const SFG_StrokeVertex ch59st0[] =
+{
+ {52.381f,66.6667f},
+ {47.6191f,61.9048f},
+ {52.381f,57.1429f},
+ {57.1429f,61.9048f},
+ {52.381f,66.6667f}
+};
+
+static const SFG_StrokeVertex ch59st1[] =
+{
+ {57.1429f,4.7619f},
+ {52.381f,0.0f},
+ {47.6191f,4.7619f},
+ {52.381f,9.5238f},
+ {57.1429f,4.7619f},
+ {57.1429f,-4.7619f},
+ {52.381f,-14.2857f},
+ {47.6191f,-19.0476f}
+};
+
+static const SFG_StrokeStrip ch59st[] =
+{
+ {5,ch59st0},
+ {8,ch59st1}
+};
+
+static const SFG_StrokeChar ch59 = {104.762f,2,ch59st};
+
+/* char: 0x3c */
+
+static const SFG_StrokeVertex ch60st0[] =
+{
+ {90.4762f,85.7143f},
+ {14.2857f,42.8571f},
+ {90.4762f,0.0f}
+};
+
+static const SFG_StrokeStrip ch60st[] =
+{
+ {3,ch60st0}
+};
+
+static const SFG_StrokeChar ch60 = {104.762f,1,ch60st};
+
+/* char: 0x3d */
+
+static const SFG_StrokeVertex ch61st0[] =
+{
+ {9.5238f,57.1429f},
+ {95.2381f,57.1429f}
+};
+
+static const SFG_StrokeVertex ch61st1[] =
+{
+ {9.5238f,28.5714f},
+ {95.2381f,28.5714f}
+};
+
+static const SFG_StrokeStrip ch61st[] =
+{
+ {2,ch61st0},
+ {2,ch61st1}
+};
+
+static const SFG_StrokeChar ch61 = {104.762f,2,ch61st};
+
+/* char: 0x3e */
+
+static const SFG_StrokeVertex ch62st0[] =
+{
+ {14.2857f,85.7143f},
+ {90.4762f,42.8571f},
+ {14.2857f,0.0f}
+};
+
+static const SFG_StrokeStrip ch62st[] =
+{
+ {3,ch62st0}
+};
+
+static const SFG_StrokeChar ch62 = {104.762f,1,ch62st};
+
+/* char: 0x3f */
+
+static const SFG_StrokeVertex ch63st0[] =
+{
+ {23.8095f,76.1905f},
+ {23.8095f,80.9524f},
+ {28.5714f,90.4762f},
+ {33.3333f,95.2381f},
+ {42.8571f,100.0f},
+ {61.9047f,100.0f},
+ {71.4285f,95.2381f},
+ {76.1905f,90.4762f},
+ {80.9524f,80.9524f},
+ {80.9524f,71.4286f},
+ {76.1905f,61.9048f},
+ {71.4285f,57.1429f},
+ {52.3809f,47.619f},
+ {52.3809f,33.3333f}
+};
+
+static const SFG_StrokeVertex ch63st1[] =
+{
+ {52.3809f,9.5238f},
+ {47.619f,4.7619f},
+ {52.3809f,0.0f},
+ {57.1428f,4.7619f},
+ {52.3809f,9.5238f}
+};
+
+static const SFG_StrokeStrip ch63st[] =
+{
+ {14,ch63st0},
+ {5,ch63st1}
+};
+
+static const SFG_StrokeChar ch63 = {104.762f,2,ch63st};
+
+/* char: 0x40 */
+
+static const SFG_StrokeVertex ch64st0[] =
+{
+ {64.2857f,52.381f},
+ {54.7619f,57.1429f},
+ {45.2381f,57.1429f},
+ {40.4762f,47.619f},
+ {40.4762f,42.8571f},
+ {45.2381f,33.3333f},
+ {54.7619f,33.3333f},
+ {64.2857f,38.0952f}
+};
+
+static const SFG_StrokeVertex ch64st1[] =
+{
+ {64.2857f,57.1429f},
+ {64.2857f,38.0952f},
+ {69.0476f,33.3333f},
+ {78.5714f,33.3333f},
+ {83.3334f,42.8571f},
+ {83.3334f,47.619f},
+ {78.5714f,61.9048f},
+ {69.0476f,71.4286f},
+ {54.7619f,76.1905f},
+ {50.0f,76.1905f},
+ {35.7143f,71.4286f},
+ {26.1905f,61.9048f},
+ {21.4286f,47.619f},
+ {21.4286f,42.8571f},
+ {26.1905f,28.5714f},
+ {35.7143f,19.0476f},
+ {50.0f,14.2857f},
+ {54.7619f,14.2857f},
+ {69.0476f,19.0476f}
+};
+
+static const SFG_StrokeStrip ch64st[] =
+{
+ {8,ch64st0},
+ {19,ch64st1}
+};
+
+static const SFG_StrokeChar ch64 = {104.762f,2,ch64st};
+
+/* char: 0x41 */
+
+static const SFG_StrokeVertex ch65st0[] =
+{
+ {52.3809f,100.0f},
+ {14.2857f,0.0f}
+};
+
+static const SFG_StrokeVertex ch65st1[] =
+{
+ {52.3809f,100.0f},
+ {90.4762f,0.0f}
+};
+
+static const SFG_StrokeVertex ch65st2[] =
+{
+ {28.5714f,33.3333f},
+ {76.1905f,33.3333f}
+};
+
+static const SFG_StrokeStrip ch65st[] =
+{
+ {2,ch65st0},
+ {2,ch65st1},
+ {2,ch65st2}
+};
+
+static const SFG_StrokeChar ch65 = {104.762f,3,ch65st};
+
+/* char: 0x42 */
+
+static const SFG_StrokeVertex ch66st0[] =
+{
+ {19.0476f,100.0f},
+ {19.0476f,0.0f}
+};
+
+static const SFG_StrokeVertex ch66st1[] =
+{
+ {19.0476f,100.0f},
+ {61.9047f,100.0f},
+ {76.1905f,95.2381f},
+ {80.9524f,90.4762f},
+ {85.7143f,80.9524f},
+ {85.7143f,71.4286f},
+ {80.9524f,61.9048f},
+ {76.1905f,57.1429f},
+ {61.9047f,52.381f}
+};
+
+static const SFG_StrokeVertex ch66st2[] =
+{
+ {19.0476f,52.381f},
+ {61.9047f,52.381f},
+ {76.1905f,47.619f},
+ {80.9524f,42.8571f},
+ {85.7143f,33.3333f},
+ {85.7143f,19.0476f},
+ {80.9524f,9.5238f},
+ {76.1905f,4.7619f},
+ {61.9047f,0.0f},
+ {19.0476f,0.0f}
+};
+
+static const SFG_StrokeStrip ch66st[] =
+{
+ {2,ch66st0},
+ {9,ch66st1},
+ {10,ch66st2}
+};
+
+static const SFG_StrokeChar ch66 = {104.762f,3,ch66st};
+
+/* char: 0x43 */
+
+static const SFG_StrokeVertex ch67st0[] =
+{
+ {88.0952f,76.1905f},
+ {83.3334f,85.7143f},
+ {73.8096f,95.2381f},
+ {64.2857f,100.0f},
+ {45.2381f,100.0f},
+ {35.7143f,95.2381f},
+ {26.1905f,85.7143f},
+ {21.4286f,76.1905f},
+ {16.6667f,61.9048f},
+ {16.6667f,38.0952f},
+ {21.4286f,23.8095f},
+ {26.1905f,14.2857f},
+ {35.7143f,4.7619f},
+ {45.2381f,0.0f},
+ {64.2857f,0.0f},
+ {73.8096f,4.7619f},
+ {83.3334f,14.2857f},
+ {88.0952f,23.8095f}
+};
+
+static const SFG_StrokeStrip ch67st[] =
+{
+ {18,ch67st0}
+};
+
+static const SFG_StrokeChar ch67 = {104.762f,1,ch67st};
+
+/* char: 0x44 */
+
+static const SFG_StrokeVertex ch68st0[] =
+{
+ {19.0476f,100.0f},
+ {19.0476f,0.0f}
+};
+
+static const SFG_StrokeVertex ch68st1[] =
+{
+ {19.0476f,100.0f},
+ {52.3809f,100.0f},
+ {66.6666f,95.2381f},
+ {76.1905f,85.7143f},
+ {80.9524f,76.1905f},
+ {85.7143f,61.9048f},
+ {85.7143f,38.0952f},
+ {80.9524f,23.8095f},
+ {76.1905f,14.2857f},
+ {66.6666f,4.7619f},
+ {52.3809f,0.0f},
+ {19.0476f,0.0f}
+};
+
+static const SFG_StrokeStrip ch68st[] =
+{
+ {2,ch68st0},
+ {12,ch68st1}
+};
+
+static const SFG_StrokeChar ch68 = {104.762f,2,ch68st};
+
+/* char: 0x45 */
+
+static const SFG_StrokeVertex ch69st0[] =
+{
+ {21.4286f,100.0f},
+ {21.4286f,0.0f}
+};
+
+static const SFG_StrokeVertex ch69st1[] =
+{
+ {21.4286f,100.0f},
+ {83.3334f,100.0f}
+};
+
+static const SFG_StrokeVertex ch69st2[] =
+{
+ {21.4286f,52.381f},
+ {59.5238f,52.381f}
+};
+
+static const SFG_StrokeVertex ch69st3[] =
+{
+ {21.4286f,0.0f},
+ {83.3334f,0.0f}
+};
+
+static const SFG_StrokeStrip ch69st[] =
+{
+ {2,ch69st0},
+ {2,ch69st1},
+ {2,ch69st2},
+ {2,ch69st3}
+};
+
+static const SFG_StrokeChar ch69 = {104.762f,4,ch69st};
+
+/* char: 0x46 */
+
+static const SFG_StrokeVertex ch70st0[] =
+{
+ {21.4286f,100.0f},
+ {21.4286f,0.0f}
+};
+
+static const SFG_StrokeVertex ch70st1[] =
+{
+ {21.4286f,100.0f},
+ {83.3334f,100.0f}
+};
+
+static const SFG_StrokeVertex ch70st2[] =
+{
+ {21.4286f,52.381f},
+ {59.5238f,52.381f}
+};
+
+static const SFG_StrokeStrip ch70st[] =
+{
+ {2,ch70st0},
+ {2,ch70st1},
+ {2,ch70st2}
+};
+
+static const SFG_StrokeChar ch70 = {104.762f,3,ch70st};
+
+/* char: 0x47 */
+
+static const SFG_StrokeVertex ch71st0[] =
+{
+ {88.0952f,76.1905f},
+ {83.3334f,85.7143f},
+ {73.8096f,95.2381f},
+ {64.2857f,100.0f},
+ {45.2381f,100.0f},
+ {35.7143f,95.2381f},
+ {26.1905f,85.7143f},
+ {21.4286f,76.1905f},
+ {16.6667f,61.9048f},
+ {16.6667f,38.0952f},
+ {21.4286f,23.8095f},
+ {26.1905f,14.2857f},
+ {35.7143f,4.7619f},
+ {45.2381f,0.0f},
+ {64.2857f,0.0f},
+ {73.8096f,4.7619f},
+ {83.3334f,14.2857f},
+ {88.0952f,23.8095f},
+ {88.0952f,38.0952f}
+};
+
+static const SFG_StrokeVertex ch71st1[] =
+{
+ {64.2857f,38.0952f},
+ {88.0952f,38.0952f}
+};
+
+static const SFG_StrokeStrip ch71st[] =
+{
+ {19,ch71st0},
+ {2,ch71st1}
+};
+
+static const SFG_StrokeChar ch71 = {104.762f,2,ch71st};
+
+/* char: 0x48 */
+
+static const SFG_StrokeVertex ch72st0[] =
+{
+ {19.0476f,100.0f},
+ {19.0476f,0.0f}
+};
+
+static const SFG_StrokeVertex ch72st1[] =
+{
+ {85.7143f,100.0f},
+ {85.7143f,0.0f}
+};
+
+static const SFG_StrokeVertex ch72st2[] =
+{
+ {19.0476f,52.381f},
+ {85.7143f,52.381f}
+};
+
+static const SFG_StrokeStrip ch72st[] =
+{
+ {2,ch72st0},
+ {2,ch72st1},
+ {2,ch72st2}
+};
+
+static const SFG_StrokeChar ch72 = {104.762f,3,ch72st};
+
+/* char: 0x49 */
+
+static const SFG_StrokeVertex ch73st0[] =
+{
+ {52.381f,100.0f},
+ {52.381f,0.0f}
+};
+
+static const SFG_StrokeStrip ch73st[] =
+{
+ {2,ch73st0}
+};
+
+static const SFG_StrokeChar ch73 = {104.762f,1,ch73st};
+
+/* char: 0x4a */
+
+static const SFG_StrokeVertex ch74st0[] =
+{
+ {76.1905f,100.0f},
+ {76.1905f,23.8095f},
+ {71.4286f,9.5238f},
+ {66.6667f,4.7619f},
+ {57.1429f,0.0f},
+ {47.6191f,0.0f},
+ {38.0953f,4.7619f},
+ {33.3334f,9.5238f},
+ {28.5715f,23.8095f},
+ {28.5715f,33.3333f}
+};
+
+static const SFG_StrokeStrip ch74st[] =
+{
+ {10,ch74st0}
+};
+
+static const SFG_StrokeChar ch74 = {104.762f,1,ch74st};
+
+/* char: 0x4b */
+
+static const SFG_StrokeVertex ch75st0[] =
+{
+ {19.0476f,100.0f},
+ {19.0476f,0.0f}
+};
+
+static const SFG_StrokeVertex ch75st1[] =
+{
+ {85.7143f,100.0f},
+ {19.0476f,33.3333f}
+};
+
+static const SFG_StrokeVertex ch75st2[] =
+{
+ {42.8571f,57.1429f},
+ {85.7143f,0.0f}
+};
+
+static const SFG_StrokeStrip ch75st[] =
+{
+ {2,ch75st0},
+ {2,ch75st1},
+ {2,ch75st2}
+};
+
+static const SFG_StrokeChar ch75 = {104.762f,3,ch75st};
+
+/* char: 0x4c */
+
+static const SFG_StrokeVertex ch76st0[] =
+{
+ {23.8095f,100.0f},
+ {23.8095f,0.0f}
+};
+
+static const SFG_StrokeVertex ch76st1[] =
+{
+ {23.8095f,0.0f},
+ {80.9524f,0.0f}
+};
+
+static const SFG_StrokeStrip ch76st[] =
+{
+ {2,ch76st0},
+ {2,ch76st1}
+};
+
+static const SFG_StrokeChar ch76 = {104.762f,2,ch76st};
+
+/* char: 0x4d */
+
+static const SFG_StrokeVertex ch77st0[] =
+{
+ {14.2857f,100.0f},
+ {14.2857f,0.0f}
+};
+
+static const SFG_StrokeVertex ch77st1[] =
+{
+ {14.2857f,100.0f},
+ {52.3809f,0.0f}
+};
+
+static const SFG_StrokeVertex ch77st2[] =
+{
+ {90.4762f,100.0f},
+ {52.3809f,0.0f}
+};
+
+static const SFG_StrokeVertex ch77st3[] =
+{
+ {90.4762f,100.0f},
+ {90.4762f,0.0f}
+};
+
+static const SFG_StrokeStrip ch77st[] =
+{
+ {2,ch77st0},
+ {2,ch77st1},
+ {2,ch77st2},
+ {2,ch77st3}
+};
+
+static const SFG_StrokeChar ch77 = {104.762f,4,ch77st};
+
+/* char: 0x4e */
+
+static const SFG_StrokeVertex ch78st0[] =
+{
+ {19.0476f,100.0f},
+ {19.0476f,0.0f}
+};
+
+static const SFG_StrokeVertex ch78st1[] =
+{
+ {19.0476f,100.0f},
+ {85.7143f,0.0f}
+};
+
+static const SFG_StrokeVertex ch78st2[] =
+{
+ {85.7143f,100.0f},
+ {85.7143f,0.0f}
+};
+
+static const SFG_StrokeStrip ch78st[] =
+{
+ {2,ch78st0},
+ {2,ch78st1},
+ {2,ch78st2}
+};
+
+static const SFG_StrokeChar ch78 = {104.762f,3,ch78st};
+
+/* char: 0x4f */
+
+static const SFG_StrokeVertex ch79st0[] =
+{
+ {42.8571f,100.0f},
+ {33.3333f,95.2381f},
+ {23.8095f,85.7143f},
+ {19.0476f,76.1905f},
+ {14.2857f,61.9048f},
+ {14.2857f,38.0952f},
+ {19.0476f,23.8095f},
+ {23.8095f,14.2857f},
+ {33.3333f,4.7619f},
+ {42.8571f,0.0f},
+ {61.9047f,0.0f},
+ {71.4286f,4.7619f},
+ {80.9524f,14.2857f},
+ {85.7143f,23.8095f},
+ {90.4762f,38.0952f},
+ {90.4762f,61.9048f},
+ {85.7143f,76.1905f},
+ {80.9524f,85.7143f},
+ {71.4286f,95.2381f},
+ {61.9047f,100.0f},
+ {42.8571f,100.0f}
+};
+
+static const SFG_StrokeStrip ch79st[] =
+{
+ {21,ch79st0}
+};
+
+static const SFG_StrokeChar ch79 = {104.762f,1,ch79st};
+
+/* char: 0x50 */
+
+static const SFG_StrokeVertex ch80st0[] =
+{
+ {19.0476f,100.0f},
+ {19.0476f,0.0f}
+};
+
+static const SFG_StrokeVertex ch80st1[] =
+{
+ {19.0476f,100.0f},
+ {61.9047f,100.0f},
+ {76.1905f,95.2381f},
+ {80.9524f,90.4762f},
+ {85.7143f,80.9524f},
+ {85.7143f,66.6667f},
+ {80.9524f,57.1429f},
+ {76.1905f,52.381f},
+ {61.9047f,47.619f},
+ {19.0476f,47.619f}
+};
+
+static const SFG_StrokeStrip ch80st[] =
+{
+ {2,ch80st0},
+ {10,ch80st1}
+};
+
+static const SFG_StrokeChar ch80 = {104.762f,2,ch80st};
+
+/* char: 0x51 */
+
+static const SFG_StrokeVertex ch81st0[] =
+{
+ {42.8571f,100.0f},
+ {33.3333f,95.2381f},
+ {23.8095f,85.7143f},
+ {19.0476f,76.1905f},
+ {14.2857f,61.9048f},
+ {14.2857f,38.0952f},
+ {19.0476f,23.8095f},
+ {23.8095f,14.2857f},
+ {33.3333f,4.7619f},
+ {42.8571f,0.0f},
+ {61.9047f,0.0f},
+ {71.4286f,4.7619f},
+ {80.9524f,14.2857f},
+ {85.7143f,23.8095f},
+ {90.4762f,38.0952f},
+ {90.4762f,61.9048f},
+ {85.7143f,76.1905f},
+ {80.9524f,85.7143f},
+ {71.4286f,95.2381f},
+ {61.9047f,100.0f},
+ {42.8571f,100.0f}
+};
+
+static const SFG_StrokeVertex ch81st1[] =
+{
+ {57.1428f,19.0476f},
+ {85.7143f,-9.5238f}
+};
+
+static const SFG_StrokeStrip ch81st[] =
+{
+ {21,ch81st0},
+ {2,ch81st1}
+};
+
+static const SFG_StrokeChar ch81 = {104.762f,2,ch81st};
+
+/* char: 0x52 */
+
+static const SFG_StrokeVertex ch82st0[] =
+{
+ {19.0476f,100.0f},
+ {19.0476f,0.0f}
+};
+
+static const SFG_StrokeVertex ch82st1[] =
+{
+ {19.0476f,100.0f},
+ {61.9047f,100.0f},
+ {76.1905f,95.2381f},
+ {80.9524f,90.4762f},
+ {85.7143f,80.9524f},
+ {85.7143f,71.4286f},
+ {80.9524f,61.9048f},
+ {76.1905f,57.1429f},
+ {61.9047f,52.381f},
+ {19.0476f,52.381f}
+};
+
+static const SFG_StrokeVertex ch82st2[] =
+{
+ {52.3809f,52.381f},
+ {85.7143f,0.0f}
+};
+
+static const SFG_StrokeStrip ch82st[] =
+{
+ {2,ch82st0},
+ {10,ch82st1},
+ {2,ch82st2}
+};
+
+static const SFG_StrokeChar ch82 = {104.762f,3,ch82st};
+
+/* char: 0x53 */
+
+static const SFG_StrokeVertex ch83st0[] =
+{
+ {85.7143f,85.7143f},
+ {76.1905f,95.2381f},
+ {61.9047f,100.0f},
+ {42.8571f,100.0f},
+ {28.5714f,95.2381f},
+ {19.0476f,85.7143f},
+ {19.0476f,76.1905f},
+ {23.8095f,66.6667f},
+ {28.5714f,61.9048f},
+ {38.0952f,57.1429f},
+ {66.6666f,47.619f},
+ {76.1905f,42.8571f},
+ {80.9524f,38.0952f},
+ {85.7143f,28.5714f},
+ {85.7143f,14.2857f},
+ {76.1905f,4.7619f},
+ {61.9047f,0.0f},
+ {42.8571f,0.0f},
+ {28.5714f,4.7619f},
+ {19.0476f,14.2857f}
+};
+
+static const SFG_StrokeStrip ch83st[] =
+{
+ {20,ch83st0}
+};
+
+static const SFG_StrokeChar ch83 = {104.762f,1,ch83st};
+
+/* char: 0x54 */
+
+static const SFG_StrokeVertex ch84st0[] =
+{
+ {52.3809f,100.0f},
+ {52.3809f,0.0f}
+};
+
+static const SFG_StrokeVertex ch84st1[] =
+{
+ {19.0476f,100.0f},
+ {85.7143f,100.0f}
+};
+
+static const SFG_StrokeStrip ch84st[] =
+{
+ {2,ch84st0},
+ {2,ch84st1}
+};
+
+static const SFG_StrokeChar ch84 = {104.762f,2,ch84st};
+
+/* char: 0x55 */
+
+static const SFG_StrokeVertex ch85st0[] =
+{
+ {19.0476f,100.0f},
+ {19.0476f,28.5714f},
+ {23.8095f,14.2857f},
+ {33.3333f,4.7619f},
+ {47.619f,0.0f},
+ {57.1428f,0.0f},
+ {71.4286f,4.7619f},
+ {80.9524f,14.2857f},
+ {85.7143f,28.5714f},
+ {85.7143f,100.0f}
+};
+
+static const SFG_StrokeStrip ch85st[] =
+{
+ {10,ch85st0}
+};
+
+static const SFG_StrokeChar ch85 = {104.762f,1,ch85st};
+
+/* char: 0x56 */
+
+static const SFG_StrokeVertex ch86st0[] =
+{
+ {14.2857f,100.0f},
+ {52.3809f,0.0f}
+};
+
+static const SFG_StrokeVertex ch86st1[] =
+{
+ {90.4762f,100.0f},
+ {52.3809f,0.0f}
+};
+
+static const SFG_StrokeStrip ch86st[] =
+{
+ {2,ch86st0},
+ {2,ch86st1}
+};
+
+static const SFG_StrokeChar ch86 = {104.762f,2,ch86st};
+
+/* char: 0x57 */
+
+static const SFG_StrokeVertex ch87st0[] =
+{
+ {4.7619f,100.0f},
+ {28.5714f,0.0f}
+};
+
+static const SFG_StrokeVertex ch87st1[] =
+{
+ {52.3809f,100.0f},
+ {28.5714f,0.0f}
+};
+
+static const SFG_StrokeVertex ch87st2[] =
+{
+ {52.3809f,100.0f},
+ {76.1905f,0.0f}
+};
+
+static const SFG_StrokeVertex ch87st3[] =
+{
+ {100.0f,100.0f},
+ {76.1905f,0.0f}
+};
+
+static const SFG_StrokeStrip ch87st[] =
+{
+ {2,ch87st0},
+ {2,ch87st1},
+ {2,ch87st2},
+ {2,ch87st3}
+};
+
+static const SFG_StrokeChar ch87 = {104.762f,4,ch87st};
+
+/* char: 0x58 */
+
+static const SFG_StrokeVertex ch88st0[] =
+{
+ {19.0476f,100.0f},
+ {85.7143f,0.0f}
+};
+
+static const SFG_StrokeVertex ch88st1[] =
+{
+ {85.7143f,100.0f},
+ {19.0476f,0.0f}
+};
+
+static const SFG_StrokeStrip ch88st[] =
+{
+ {2,ch88st0},
+ {2,ch88st1}
+};
+
+static const SFG_StrokeChar ch88 = {104.762f,2,ch88st};
+
+/* char: 0x59 */
+
+static const SFG_StrokeVertex ch89st0[] =
+{
+ {14.2857f,100.0f},
+ {52.3809f,52.381f},
+ {52.3809f,0.0f}
+};
+
+static const SFG_StrokeVertex ch89st1[] =
+{
+ {90.4762f,100.0f},
+ {52.3809f,52.381f}
+};
+
+static const SFG_StrokeStrip ch89st[] =
+{
+ {3,ch89st0},
+ {2,ch89st1}
+};
+
+static const SFG_StrokeChar ch89 = {104.762f,2,ch89st};
+
+/* char: 0x5a */
+
+static const SFG_StrokeVertex ch90st0[] =
+{
+ {85.7143f,100.0f},
+ {19.0476f,0.0f}
+};
+
+static const SFG_StrokeVertex ch90st1[] =
+{
+ {19.0476f,100.0f},
+ {85.7143f,100.0f}
+};
+
+static const SFG_StrokeVertex ch90st2[] =
+{
+ {19.0476f,0.0f},
+ {85.7143f,0.0f}
+};
+
+static const SFG_StrokeStrip ch90st[] =
+{
+ {2,ch90st0},
+ {2,ch90st1},
+ {2,ch90st2}
+};
+
+static const SFG_StrokeChar ch90 = {104.762f,3,ch90st};
+
+/* char: 0x5b */
+
+static const SFG_StrokeVertex ch91st0[] =
+{
+ {35.7143f,119.048f},
+ {35.7143f,-33.3333f}
+};
+
+static const SFG_StrokeVertex ch91st1[] =
+{
+ {40.4762f,119.048f},
+ {40.4762f,-33.3333f}
+};
+
+static const SFG_StrokeVertex ch91st2[] =
+{
+ {35.7143f,119.048f},
+ {69.0476f,119.048f}
+};
+
+static const SFG_StrokeVertex ch91st3[] =
+{
+ {35.7143f,-33.3333f},
+ {69.0476f,-33.3333f}
+};
+
+static const SFG_StrokeStrip ch91st[] =
+{
+ {2,ch91st0},
+ {2,ch91st1},
+ {2,ch91st2},
+ {2,ch91st3}
+};
+
+static const SFG_StrokeChar ch91 = {104.762f,4,ch91st};
+
+/* char: 0x5c */
+
+static const SFG_StrokeVertex ch92st0[] =
+{
+ {19.0476f,100.0f},
+ {85.7143f,-14.2857f}
+};
+
+static const SFG_StrokeStrip ch92st[] =
+{
+ {2,ch92st0}
+};
+
+static const SFG_StrokeChar ch92 = {104.762f,1,ch92st};
+
+/* char: 0x5d */
+
+static const SFG_StrokeVertex ch93st0[] =
+{
+ {64.2857f,119.048f},
+ {64.2857f,-33.3333f}
+};
+
+static const SFG_StrokeVertex ch93st1[] =
+{
+ {69.0476f,119.048f},
+ {69.0476f,-33.3333f}
+};
+
+static const SFG_StrokeVertex ch93st2[] =
+{
+ {35.7143f,119.048f},
+ {69.0476f,119.048f}
+};
+
+static const SFG_StrokeVertex ch93st3[] =
+{
+ {35.7143f,-33.3333f},
+ {69.0476f,-33.3333f}
+};
+
+static const SFG_StrokeStrip ch93st[] =
+{
+ {2,ch93st0},
+ {2,ch93st1},
+ {2,ch93st2},
+ {2,ch93st3}
+};
+
+static const SFG_StrokeChar ch93 = {104.762f,4,ch93st};
+
+/* char: 0x5e */
+
+static const SFG_StrokeVertex ch94st0[] =
+{
+ {52.3809f,109.524f},
+ {14.2857f,42.8571f}
+};
+
+static const SFG_StrokeVertex ch94st1[] =
+{
+ {52.3809f,109.524f},
+ {90.4762f,42.8571f}
+};
+
+static const SFG_StrokeStrip ch94st[] =
+{
+ {2,ch94st0},
+ {2,ch94st1}
+};
+
+static const SFG_StrokeChar ch94 = {104.762f,2,ch94st};
+
+/* char: 0x5f */
+
+static const SFG_StrokeVertex ch95st0[] =
+{
+ {0,-33.3333f},
+ {104.762f,-33.3333f},
+ {104.762f,-28.5714f},
+ {0,-28.5714f},
+ {0,-33.3333f}
+};
+
+static const SFG_StrokeStrip ch95st[] =
+{
+ {5,ch95st0}
+};
+
+static const SFG_StrokeChar ch95 = {104.762f,1,ch95st};
+
+/* char: 0x60 */
+
+static const SFG_StrokeVertex ch96st0[] =
+{
+ {42.8572f,100.0f},
+ {66.6667f,71.4286f}
+};
+
+static const SFG_StrokeVertex ch96st1[] =
+{
+ {42.8572f,100.0f},
+ {38.0953f,95.2381f},
+ {66.6667f,71.4286f}
+};
+
+static const SFG_StrokeStrip ch96st[] =
+{
+ {2,ch96st0},
+ {3,ch96st1}
+};
+
+static const SFG_StrokeChar ch96 = {104.762f,2,ch96st};
+
+/* char: 0x61 */
+
+static const SFG_StrokeVertex ch97st0[] =
+{
+ {80.9524f,66.6667f},
+ {80.9524f,0.0f}
+};
+
+static const SFG_StrokeVertex ch97st1[] =
+{
+ {80.9524f,52.381f},
+ {71.4285f,61.9048f},
+ {61.9047f,66.6667f},
+ {47.619f,66.6667f},
+ {38.0952f,61.9048f},
+ {28.5714f,52.381f},
+ {23.8095f,38.0952f},
+ {23.8095f,28.5714f},
+ {28.5714f,14.2857f},
+ {38.0952f,4.7619f},
+ {47.619f,0.0f},
+ {61.9047f,0.0f},
+ {71.4285f,4.7619f},
+ {80.9524f,14.2857f}
+};
+
+static const SFG_StrokeStrip ch97st[] =
+{
+ {2,ch97st0},
+ {14,ch97st1}
+};
+
+static const SFG_StrokeChar ch97 = {104.762f,2,ch97st};
+
+/* char: 0x62 */
+
+static const SFG_StrokeVertex ch98st0[] =
+{
+ {23.8095f,100.0f},
+ {23.8095f,0.0f}
+};
+
+static const SFG_StrokeVertex ch98st1[] =
+{
+ {23.8095f,52.381f},
+ {33.3333f,61.9048f},
+ {42.8571f,66.6667f},
+ {57.1428f,66.6667f},
+ {66.6666f,61.9048f},
+ {76.1905f,52.381f},
+ {80.9524f,38.0952f},
+ {80.9524f,28.5714f},
+ {76.1905f,14.2857f},
+ {66.6666f,4.7619f},
+ {57.1428f,0.0f},
+ {42.8571f,0.0f},
+ {33.3333f,4.7619f},
+ {23.8095f,14.2857f}
+};
+
+static const SFG_StrokeStrip ch98st[] =
+{
+ {2,ch98st0},
+ {14,ch98st1}
+};
+
+static const SFG_StrokeChar ch98 = {104.762f,2,ch98st};
+
+/* char: 0x63 */
+
+static const SFG_StrokeVertex ch99st0[] =
+{
+ {80.9524f,52.381f},
+ {71.4285f,61.9048f},
+ {61.9047f,66.6667f},
+ {47.619f,66.6667f},
+ {38.0952f,61.9048f},
+ {28.5714f,52.381f},
+ {23.8095f,38.0952f},
+ {23.8095f,28.5714f},
+ {28.5714f,14.2857f},
+ {38.0952f,4.7619f},
+ {47.619f,0.0f},
+ {61.9047f,0.0f},
+ {71.4285f,4.7619f},
+ {80.9524f,14.2857f}
+};
+
+static const SFG_StrokeStrip ch99st[] =
+{
+ {14,ch99st0}
+};
+
+static const SFG_StrokeChar ch99 = {104.762f,1,ch99st};
+
+/* char: 0x64 */
+
+static const SFG_StrokeVertex ch100st0[] =
+{
+ {80.9524f,100.0f},
+ {80.9524f,0.0f}
+};
+
+static const SFG_StrokeVertex ch100st1[] =
+{
+ {80.9524f,52.381f},
+ {71.4285f,61.9048f},
+ {61.9047f,66.6667f},
+ {47.619f,66.6667f},
+ {38.0952f,61.9048f},
+ {28.5714f,52.381f},
+ {23.8095f,38.0952f},
+ {23.8095f,28.5714f},
+ {28.5714f,14.2857f},
+ {38.0952f,4.7619f},
+ {47.619f,0.0f},
+ {61.9047f,0.0f},
+ {71.4285f,4.7619f},
+ {80.9524f,14.2857f}
+};
+
+static const SFG_StrokeStrip ch100st[] =
+{
+ {2,ch100st0},
+ {14,ch100st1}
+};
+
+static const SFG_StrokeChar ch100 = {104.762f,2,ch100st};
+
+/* char: 0x65 */
+
+static const SFG_StrokeVertex ch101st0[] =
+{
+ {23.8095f,38.0952f},
+ {80.9524f,38.0952f},
+ {80.9524f,47.619f},
+ {76.1905f,57.1429f},
+ {71.4285f,61.9048f},
+ {61.9047f,66.6667f},
+ {47.619f,66.6667f},
+ {38.0952f,61.9048f},
+ {28.5714f,52.381f},
+ {23.8095f,38.0952f},
+ {23.8095f,28.5714f},
+ {28.5714f,14.2857f},
+ {38.0952f,4.7619f},
+ {47.619f,0.0f},
+ {61.9047f,0.0f},
+ {71.4285f,4.7619f},
+ {80.9524f,14.2857f}
+};
+
+static const SFG_StrokeStrip ch101st[] =
+{
+ {17,ch101st0}
+};
+
+static const SFG_StrokeChar ch101 = {104.762f,1,ch101st};
+
+/* char: 0x66 */
+
+static const SFG_StrokeVertex ch102st0[] =
+{
+ {71.4286f,100.0f},
+ {61.9048f,100.0f},
+ {52.381f,95.2381f},
+ {47.6191f,80.9524f},
+ {47.6191f,0.0f}
+};
+
+static const SFG_StrokeVertex ch102st1[] =
+{
+ {33.3334f,66.6667f},
+ {66.6667f,66.6667f}
+};
+
+static const SFG_StrokeStrip ch102st[] =
+{
+ {5,ch102st0},
+ {2,ch102st1}
+};
+
+static const SFG_StrokeChar ch102 = {104.762f,2,ch102st};
+
+/* char: 0x67 */
+
+static const SFG_StrokeVertex ch103st0[] =
+{
+ {80.9524f,66.6667f},
+ {80.9524f,-9.5238f},
+ {76.1905f,-23.8095f},
+ {71.4285f,-28.5714f},
+ {61.9047f,-33.3333f},
+ {47.619f,-33.3333f},
+ {38.0952f,-28.5714f}
+};
+
+static const SFG_StrokeVertex ch103st1[] =
+{
+ {80.9524f,52.381f},
+ {71.4285f,61.9048f},
+ {61.9047f,66.6667f},
+ {47.619f,66.6667f},
+ {38.0952f,61.9048f},
+ {28.5714f,52.381f},
+ {23.8095f,38.0952f},
+ {23.8095f,28.5714f},
+ {28.5714f,14.2857f},
+ {38.0952f,4.7619f},
+ {47.619f,0.0f},
+ {61.9047f,0.0f},
+ {71.4285f,4.7619f},
+ {80.9524f,14.2857f}
+};
+
+static const SFG_StrokeStrip ch103st[] =
+{
+ {7,ch103st0},
+ {14,ch103st1}
+};
+
+static const SFG_StrokeChar ch103 = {104.762f,2,ch103st};
+
+/* char: 0x68 */
+
+static const SFG_StrokeVertex ch104st0[] =
+{
+ {26.1905f,100.0f},
+ {26.1905f,0.0f}
+};
+
+static const SFG_StrokeVertex ch104st1[] =
+{
+ {26.1905f,47.619f},
+ {40.4762f,61.9048f},
+ {50.0f,66.6667f},
+ {64.2857f,66.6667f},
+ {73.8095f,61.9048f},
+ {78.5715f,47.619f},
+ {78.5715f,0.0f}
+};
+
+static const SFG_StrokeStrip ch104st[] =
+{
+ {2,ch104st0},
+ {7,ch104st1}
+};
+
+static const SFG_StrokeChar ch104 = {104.762f,2,ch104st};
+
+/* char: 0x69 */
+
+static const SFG_StrokeVertex ch105st0[] =
+{
+ {47.6191f,100.0f},
+ {52.381f,95.2381f},
+ {57.1429f,100.0f},
+ {52.381f,104.762f},
+ {47.6191f,100.0f}
+};
+
+static const SFG_StrokeVertex ch105st1[] =
+{
+ {52.381f,66.6667f},
+ {52.381f,0.0f}
+};
+
+static const SFG_StrokeStrip ch105st[] =
+{
+ {5,ch105st0},
+ {2,ch105st1}
+};
+
+static const SFG_StrokeChar ch105 = {104.762f,2,ch105st};
+
+/* char: 0x6a */
+
+static const SFG_StrokeVertex ch106st0[] =
+{
+ {57.1429f,100.0f},
+ {61.9048f,95.2381f},
+ {66.6667f,100.0f},
+ {61.9048f,104.762f},
+ {57.1429f,100.0f}
+};
+
+static const SFG_StrokeVertex ch106st1[] =
+{
+ {61.9048f,66.6667f},
+ {61.9048f,-14.2857f},
+ {57.1429f,-28.5714f},
+ {47.6191f,-33.3333f},
+ {38.0953f,-33.3333f}
+};
+
+static const SFG_StrokeStrip ch106st[] =
+{
+ {5,ch106st0},
+ {5,ch106st1}
+};
+
+static const SFG_StrokeChar ch106 = {104.762f,2,ch106st};
+
+/* char: 0x6b */
+
+static const SFG_StrokeVertex ch107st0[] =
+{
+ {26.1905f,100.0f},
+ {26.1905f,0.0f}
+};
+
+static const SFG_StrokeVertex ch107st1[] =
+{
+ {73.8095f,66.6667f},
+ {26.1905f,19.0476f}
+};
+
+static const SFG_StrokeVertex ch107st2[] =
+{
+ {45.2381f,38.0952f},
+ {78.5715f,0.0f}
+};
+
+static const SFG_StrokeStrip ch107st[] =
+{
+ {2,ch107st0},
+ {2,ch107st1},
+ {2,ch107st2}
+};
+
+static const SFG_StrokeChar ch107 = {104.762f,3,ch107st};
+
+/* char: 0x6c */
+
+static const SFG_StrokeVertex ch108st0[] =
+{
+ {52.381f,100.0f},
+ {52.381f,0.0f}
+};
+
+static const SFG_StrokeStrip ch108st[] =
+{
+ {2,ch108st0}
+};
+
+static const SFG_StrokeChar ch108 = {104.762f,1,ch108st};
+
+/* char: 0x6d */
+
+static const SFG_StrokeVertex ch109st0[] =
+{
+ {0,66.6667f},
+ {0,0.0f}
+};
+
+static const SFG_StrokeVertex ch109st1[] =
+{
+ {0,47.619f},
+ {14.2857f,61.9048f},
+ {23.8095f,66.6667f},
+ {38.0952f,66.6667f},
+ {47.619f,61.9048f},
+ {52.381f,47.619f},
+ {52.381f,0.0f}
+};
+
+static const SFG_StrokeVertex ch109st2[] =
+{
+ {52.381f,47.619f},
+ {66.6667f,61.9048f},
+ {76.1905f,66.6667f},
+ {90.4762f,66.6667f},
+ {100.0f,61.9048f},
+ {104.762f,47.619f},
+ {104.762f,0.0f}
+};
+
+static const SFG_StrokeStrip ch109st[] =
+{
+ {2,ch109st0},
+ {7,ch109st1},
+ {7,ch109st2}
+};
+
+static const SFG_StrokeChar ch109 = {104.762f,3,ch109st};
+
+/* char: 0x6e */
+
+static const SFG_StrokeVertex ch110st0[] =
+{
+ {26.1905f,66.6667f},
+ {26.1905f,0.0f}
+};
+
+static const SFG_StrokeVertex ch110st1[] =
+{
+ {26.1905f,47.619f},
+ {40.4762f,61.9048f},
+ {50.0f,66.6667f},
+ {64.2857f,66.6667f},
+ {73.8095f,61.9048f},
+ {78.5715f,47.619f},
+ {78.5715f,0.0f}
+};
+
+static const SFG_StrokeStrip ch110st[] =
+{
+ {2,ch110st0},
+ {7,ch110st1}
+};
+
+static const SFG_StrokeChar ch110 = {104.762f,2,ch110st};
+
+/* char: 0x6f */
+
+static const SFG_StrokeVertex ch111st0[] =
+{
+ {45.2381f,66.6667f},
+ {35.7143f,61.9048f},
+ {26.1905f,52.381f},
+ {21.4286f,38.0952f},
+ {21.4286f,28.5714f},
+ {26.1905f,14.2857f},
+ {35.7143f,4.7619f},
+ {45.2381f,0.0f},
+ {59.5238f,0.0f},
+ {69.0476f,4.7619f},
+ {78.5714f,14.2857f},
+ {83.3334f,28.5714f},
+ {83.3334f,38.0952f},
+ {78.5714f,52.381f},
+ {69.0476f,61.9048f},
+ {59.5238f,66.6667f},
+ {45.2381f,66.6667f}
+};
+
+static const SFG_StrokeStrip ch111st[] =
+{
+ {17,ch111st0}
+};
+
+static const SFG_StrokeChar ch111 = {104.762f,1,ch111st};
+
+/* char: 0x70 */
+
+static const SFG_StrokeVertex ch112st0[] =
+{
+ {23.8095f,66.6667f},
+ {23.8095f,-33.3333f}
+};
+
+static const SFG_StrokeVertex ch112st1[] =
+{
+ {23.8095f,52.381f},
+ {33.3333f,61.9048f},
+ {42.8571f,66.6667f},
+ {57.1428f,66.6667f},
+ {66.6666f,61.9048f},
+ {76.1905f,52.381f},
+ {80.9524f,38.0952f},
+ {80.9524f,28.5714f},
+ {76.1905f,14.2857f},
+ {66.6666f,4.7619f},
+ {57.1428f,0.0f},
+ {42.8571f,0.0f},
+ {33.3333f,4.7619f},
+ {23.8095f,14.2857f}
+};
+
+static const SFG_StrokeStrip ch112st[] =
+{
+ {2,ch112st0},
+ {14,ch112st1}
+};
+
+static const SFG_StrokeChar ch112 = {104.762f,2,ch112st};
+
+/* char: 0x71 */
+
+static const SFG_StrokeVertex ch113st0[] =
+{
+ {80.9524f,66.6667f},
+ {80.9524f,-33.3333f}
+};
+
+static const SFG_StrokeVertex ch113st1[] =
+{
+ {80.9524f,52.381f},
+ {71.4285f,61.9048f},
+ {61.9047f,66.6667f},
+ {47.619f,66.6667f},
+ {38.0952f,61.9048f},
+ {28.5714f,52.381f},
+ {23.8095f,38.0952f},
+ {23.8095f,28.5714f},
+ {28.5714f,14.2857f},
+ {38.0952f,4.7619f},
+ {47.619f,0.0f},
+ {61.9047f,0.0f},
+ {71.4285f,4.7619f},
+ {80.9524f,14.2857f}
+};
+
+static const SFG_StrokeStrip ch113st[] =
+{
+ {2,ch113st0},
+ {14,ch113st1}
+};
+
+static const SFG_StrokeChar ch113 = {104.762f,2,ch113st};
+
+/* char: 0x72 */
+
+static const SFG_StrokeVertex ch114st0[] =
+{
+ {33.3334f,66.6667f},
+ {33.3334f,0.0f}
+};
+
+static const SFG_StrokeVertex ch114st1[] =
+{
+ {33.3334f,38.0952f},
+ {38.0953f,52.381f},
+ {47.6191f,61.9048f},
+ {57.1429f,66.6667f},
+ {71.4286f,66.6667f}
+};
+
+static const SFG_StrokeStrip ch114st[] =
+{
+ {2,ch114st0},
+ {5,ch114st1}
+};
+
+static const SFG_StrokeChar ch114 = {104.762f,2,ch114st};
+
+/* char: 0x73 */
+
+static const SFG_StrokeVertex ch115st0[] =
+{
+ {78.5715f,52.381f},
+ {73.8095f,61.9048f},
+ {59.5238f,66.6667f},
+ {45.2381f,66.6667f},
+ {30.9524f,61.9048f},
+ {26.1905f,52.381f},
+ {30.9524f,42.8571f},
+ {40.4762f,38.0952f},
+ {64.2857f,33.3333f},
+ {73.8095f,28.5714f},
+ {78.5715f,19.0476f},
+ {78.5715f,14.2857f},
+ {73.8095f,4.7619f},
+ {59.5238f,0.0f},
+ {45.2381f,0.0f},
+ {30.9524f,4.7619f},
+ {26.1905f,14.2857f}
+};
+
+static const SFG_StrokeStrip ch115st[] =
+{
+ {17,ch115st0}
+};
+
+static const SFG_StrokeChar ch115 = {104.762f,1,ch115st};
+
+/* char: 0x74 */
+
+static const SFG_StrokeVertex ch116st0[] =
+{
+ {47.6191f,100.0f},
+ {47.6191f,19.0476f},
+ {52.381f,4.7619f},
+ {61.9048f,0.0f},
+ {71.4286f,0.0f}
+};
+
+static const SFG_StrokeVertex ch116st1[] =
+{
+ {33.3334f,66.6667f},
+ {66.6667f,66.6667f}
+};
+
+static const SFG_StrokeStrip ch116st[] =
+{
+ {5,ch116st0},
+ {2,ch116st1}
+};
+
+static const SFG_StrokeChar ch116 = {104.762f,2,ch116st};
+
+/* char: 0x75 */
+
+static const SFG_StrokeVertex ch117st0[] =
+{
+ {26.1905f,66.6667f},
+ {26.1905f,19.0476f},
+ {30.9524f,4.7619f},
+ {40.4762f,0.0f},
+ {54.7619f,0.0f},
+ {64.2857f,4.7619f},
+ {78.5715f,19.0476f}
+};
+
+static const SFG_StrokeVertex ch117st1[] =
+{
+ {78.5715f,66.6667f},
+ {78.5715f,0.0f}
+};
+
+static const SFG_StrokeStrip ch117st[] =
+{
+ {7,ch117st0},
+ {2,ch117st1}
+};
+
+static const SFG_StrokeChar ch117 = {104.762f,2,ch117st};
+
+/* char: 0x76 */
+
+static const SFG_StrokeVertex ch118st0[] =
+{
+ {23.8095f,66.6667f},
+ {52.3809f,0.0f}
+};
+
+static const SFG_StrokeVertex ch118st1[] =
+{
+ {80.9524f,66.6667f},
+ {52.3809f,0.0f}
+};
+
+static const SFG_StrokeStrip ch118st[] =
+{
+ {2,ch118st0},
+ {2,ch118st1}
+};
+
+static const SFG_StrokeChar ch118 = {104.762f,2,ch118st};
+
+/* char: 0x77 */
+
+static const SFG_StrokeVertex ch119st0[] =
+{
+ {14.2857f,66.6667f},
+ {33.3333f,0.0f}
+};
+
+static const SFG_StrokeVertex ch119st1[] =
+{
+ {52.3809f,66.6667f},
+ {33.3333f,0.0f}
+};
+
+static const SFG_StrokeVertex ch119st2[] =
+{
+ {52.3809f,66.6667f},
+ {71.4286f,0.0f}
+};
+
+static const SFG_StrokeVertex ch119st3[] =
+{
+ {90.4762f,66.6667f},
+ {71.4286f,0.0f}
+};
+
+static const SFG_StrokeStrip ch119st[] =
+{
+ {2,ch119st0},
+ {2,ch119st1},
+ {2,ch119st2},
+ {2,ch119st3}
+};
+
+static const SFG_StrokeChar ch119 = {104.762f,4,ch119st};
+
+/* char: 0x78 */
+
+static const SFG_StrokeVertex ch120st0[] =
+{
+ {26.1905f,66.6667f},
+ {78.5715f,0.0f}
+};
+
+static const SFG_StrokeVertex ch120st1[] =
+{
+ {78.5715f,66.6667f},
+ {26.1905f,0.0f}
+};
+
+static const SFG_StrokeStrip ch120st[] =
+{
+ {2,ch120st0},
+ {2,ch120st1}
+};
+
+static const SFG_StrokeChar ch120 = {104.762f,2,ch120st};
+
+/* char: 0x79 */
+
+static const SFG_StrokeVertex ch121st0[] =
+{
+ {26.1905f,66.6667f},
+ {54.7619f,0.0f}
+};
+
+static const SFG_StrokeVertex ch121st1[] =
+{
+ {83.3334f,66.6667f},
+ {54.7619f,0.0f},
+ {45.2381f,-19.0476f},
+ {35.7143f,-28.5714f},
+ {26.1905f,-33.3333f},
+ {21.4286f,-33.3333f}
+};
+
+static const SFG_StrokeStrip ch121st[] =
+{
+ {2,ch121st0},
+ {6,ch121st1}
+};
+
+static const SFG_StrokeChar ch121 = {104.762f,2,ch121st};
+
+/* char: 0x7a */
+
+static const SFG_StrokeVertex ch122st0[] =
+{
+ {78.5715f,66.6667f},
+ {26.1905f,0.0f}
+};
+
+static const SFG_StrokeVertex ch122st1[] =
+{
+ {26.1905f,66.6667f},
+ {78.5715f,66.6667f}
+};
+
+static const SFG_StrokeVertex ch122st2[] =
+{
+ {26.1905f,0.0f},
+ {78.5715f,0.0f}
+};
+
+static const SFG_StrokeStrip ch122st[] =
+{
+ {2,ch122st0},
+ {2,ch122st1},
+ {2,ch122st2}
+};
+
+static const SFG_StrokeChar ch122 = {104.762f,3,ch122st};
+
+/* char: 0x7b */
+
+static const SFG_StrokeVertex ch123st0[] =
+{
+ {64.2857f,119.048f},
+ {54.7619f,114.286f},
+ {50.0f,109.524f},
+ {45.2381f,100.0f},
+ {45.2381f,90.4762f},
+ {50.0f,80.9524f},
+ {54.7619f,76.1905f},
+ {59.5238f,66.6667f},
+ {59.5238f,57.1429f},
+ {50.0f,47.619f}
+};
+
+static const SFG_StrokeVertex ch123st1[] =
+{
+ {54.7619f,114.286f},
+ {50.0f,104.762f},
+ {50.0f,95.2381f},
+ {54.7619f,85.7143f},
+ {59.5238f,80.9524f},
+ {64.2857f,71.4286f},
+ {64.2857f,61.9048f},
+ {59.5238f,52.381f},
+ {40.4762f,42.8571f},
+ {59.5238f,33.3333f},
+ {64.2857f,23.8095f},
+ {64.2857f,14.2857f},
+ {59.5238f,4.7619f},
+ {54.7619f,0.0f},
+ {50.0f,-9.5238f},
+ {50.0f,-19.0476f},
+ {54.7619f,-28.5714f}
+};
+
+static const SFG_StrokeVertex ch123st2[] =
+{
+ {50.0f,38.0952f},
+ {59.5238f,28.5714f},
+ {59.5238f,19.0476f},
+ {54.7619f,9.5238f},
+ {50.0f,4.7619f},
+ {45.2381f,-4.7619f},
+ {45.2381f,-14.2857f},
+ {50.0f,-23.8095f},
+ {54.7619f,-28.5714f},
+ {64.2857f,-33.3333f}
+};
+
+static const SFG_StrokeStrip ch123st[] =
+{
+ {10,ch123st0},
+ {17,ch123st1},
+ {10,ch123st2}
+};
+
+static const SFG_StrokeChar ch123 = {104.762f,3,ch123st};
+
+/* char: 0x7c */
+
+static const SFG_StrokeVertex ch124st0[] =
+{
+ {52.381f,119.048f},
+ {52.381f,-33.3333f}
+};
+
+static const SFG_StrokeStrip ch124st[] =
+{
+ {2,ch124st0}
+};
+
+static const SFG_StrokeChar ch124 = {104.762f,1,ch124st};
+
+/* char: 0x7d */
+
+static const SFG_StrokeVertex ch125st0[] =
+{
+ {40.4762f,119.048f},
+ {50.0f,114.286f},
+ {54.7619f,109.524f},
+ {59.5238f,100.0f},
+ {59.5238f,90.4762f},
+ {54.7619f,80.9524f},
+ {50.0f,76.1905f},
+ {45.2381f,66.6667f},
+ {45.2381f,57.1429f},
+ {54.7619f,47.619f}
+};
+
+static const SFG_StrokeVertex ch125st1[] =
+{
+ {50.0f,114.286f},
+ {54.7619f,104.762f},
+ {54.7619f,95.2381f},
+ {50.0f,85.7143f},
+ {45.2381f,80.9524f},
+ {40.4762f,71.4286f},
+ {40.4762f,61.9048f},
+ {45.2381f,52.381f},
+ {64.2857f,42.8571f},
+ {45.2381f,33.3333f},
+ {40.4762f,23.8095f},
+ {40.4762f,14.2857f},
+ {45.2381f,4.7619f},
+ {50.0f,0.0f},
+ {54.7619f,-9.5238f},
+ {54.7619f,-19.0476f},
+ {50.0f,-28.5714f}
+};
+
+static const SFG_StrokeVertex ch125st2[] =
+{
+ {54.7619f,38.0952f},
+ {45.2381f,28.5714f},
+ {45.2381f,19.0476f},
+ {50.0f,9.5238f},
+ {54.7619f,4.7619f},
+ {59.5238f,-4.7619f},
+ {59.5238f,-14.2857f},
+ {54.7619f,-23.8095f},
+ {50.0f,-28.5714f},
+ {40.4762f,-33.3333f}
+};
+
+static const SFG_StrokeStrip ch125st[] =
+{
+ {10,ch125st0},
+ {17,ch125st1},
+ {10,ch125st2}
+};
+
+static const SFG_StrokeChar ch125 = {104.762f,3,ch125st};
+
+/* char: 0x7e */
+
+static const SFG_StrokeVertex ch126st0[] =
+{
+ {9.5238f,28.5714f},
+ {9.5238f,38.0952f},
+ {14.2857f,52.381f},
+ {23.8095f,57.1429f},
+ {33.3333f,57.1429f},
+ {42.8571f,52.381f},
+ {61.9048f,38.0952f},
+ {71.4286f,33.3333f},
+ {80.9524f,33.3333f},
+ {90.4762f,38.0952f},
+ {95.2381f,47.619f}
+};
+
+static const SFG_StrokeVertex ch126st1[] =
+{
+ {9.5238f,38.0952f},
+ {14.2857f,47.619f},
+ {23.8095f,52.381f},
+ {33.3333f,52.381f},
+ {42.8571f,47.619f},
+ {61.9048f,33.3333f},
+ {71.4286f,28.5714f},
+ {80.9524f,28.5714f},
+ {90.4762f,33.3333f},
+ {95.2381f,47.619f},
+ {95.2381f,57.1429f}
+};
+
+static const SFG_StrokeStrip ch126st[] =
+{
+ {11,ch126st0},
+ {11,ch126st1}
+};
+
+static const SFG_StrokeChar ch126 = {104.762f,2,ch126st};
+
+/* char: 0x7f */
+
+static const SFG_StrokeVertex ch127st0[] =
+{
+ {71.4286f,100.0f},
+ {33.3333f,-33.3333f}
+};
+
+static const SFG_StrokeVertex ch127st1[] =
+{
+ {47.619f,66.6667f},
+ {33.3333f,61.9048f},
+ {23.8095f,52.381f},
+ {19.0476f,38.0952f},
+ {19.0476f,23.8095f},
+ {23.8095f,14.2857f},
+ {33.3333f,4.7619f},
+ {47.619f,0.0f},
+ {57.1428f,0.0f},
+ {71.4286f,4.7619f},
+ {80.9524f,14.2857f},
+ {85.7143f,28.5714f},
+ {85.7143f,42.8571f},
+ {80.9524f,52.381f},
+ {71.4286f,61.9048f},
+ {57.1428f,66.6667f},
+ {47.619f,66.6667f}
+};
+
+static const SFG_StrokeStrip ch127st[] =
+{
+ {2,ch127st0},
+ {17,ch127st1}
+};
+
+static const SFG_StrokeChar ch127 = {104.762f,2,ch127st};
+
+static const SFG_StrokeChar *chars[] =
+{
+ 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,
+ &ch32, &ch33, &ch34, &ch35, &ch36, &ch37, &ch38, &ch39,
+ &ch40, &ch41, &ch42, &ch43, &ch44, &ch45, &ch46, &ch47,
+ &ch48, &ch49, &ch50, &ch51, &ch52, &ch53, &ch54, &ch55,
+ &ch56, &ch57, &ch58, &ch59, &ch60, &ch61, &ch62, &ch63,
+ &ch64, &ch65, &ch66, &ch67, &ch68, &ch69, &ch70, &ch71,
+ &ch72, &ch73, &ch74, &ch75, &ch76, &ch77, &ch78, &ch79,
+ &ch80, &ch81, &ch82, &ch83, &ch84, &ch85, &ch86, &ch87,
+ &ch88, &ch89, &ch90, &ch91, &ch92, &ch93, &ch94, &ch95,
+ &ch96, &ch97, &ch98, &ch99, &ch100, &ch101, &ch102, &ch103,
+ &ch104, &ch105, &ch106, &ch107, &ch108, &ch109, &ch110, &ch111,
+ &ch112, &ch113, &ch114, &ch115, &ch116, &ch117, &ch118, &ch119,
+ &ch120, &ch121, &ch122, &ch123, &ch124, &ch125, &ch126, &ch127
+};
+
+const SFG_StrokeFont fgStrokeMonoRoman = {"MonoRoman",128,152.381f,chars};
diff --git a/src/fg_stroke_roman.c b/src/fg_stroke_roman.c
new file mode 100644 (file)
index 0000000..8972d8a
--- /dev/null
@@ -0,0 +1,2849 @@
+/*
+ * freeglut_stroke_roman.c
+ *
+ * freeglut Roman stroke font definition
+ *
+ * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
+ * Written by Pawel W. Olszta, <olszta@sourceforge.net>
+ * Creation date: Thu Dec 16 1999
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/* This file has been automatically generated by the genstroke utility. */
+
+#include <GL/freeglut.h>
+#include "fg_internal.h"
+
+/* char: 0x20 */
+
+static const SFG_StrokeStrip ch32st[] =
+{
+  { 0, NULL }
+};
+
+static const SFG_StrokeChar ch32 = {104.762f,0,ch32st};
+
+/* char: 0x21 */
+
+static const SFG_StrokeVertex ch33st0[] =
+{
+ {13.3819f,100.0f},
+ {13.3819f,33.3333f}
+};
+
+static const SFG_StrokeVertex ch33st1[] =
+{
+ {13.3819f,9.5238f},
+ {8.62f,4.7619f},
+ {13.3819f,0.0f},
+ {18.1438f,4.7619f},
+ {13.3819f,9.5238f}
+};
+
+static const SFG_StrokeStrip ch33st[] =
+{
+ {2,ch33st0},
+ {5,ch33st1}
+};
+
+static const SFG_StrokeChar ch33 = {26.6238f,2,ch33st};
+
+/* char: 0x22 */
+
+static const SFG_StrokeVertex ch34st0[] =
+{
+ {4.02f,100.0f},
+ {4.02f,66.6667f}
+};
+
+static const SFG_StrokeVertex ch34st1[] =
+{
+ {42.1152f,100.0f},
+ {42.1152f,66.6667f}
+};
+
+static const SFG_StrokeStrip ch34st[] =
+{
+ {2,ch34st0},
+ {2,ch34st1}
+};
+
+static const SFG_StrokeChar ch34 = {51.4352f,2,ch34st};
+
+/* char: 0x23 */
+
+static const SFG_StrokeVertex ch35st0[] =
+{
+ {41.2952f,119.048f},
+ {7.9619f,-33.3333f}
+};
+
+static const SFG_StrokeVertex ch35st1[] =
+{
+ {69.8667f,119.048f},
+ {36.5333f,-33.3333f}
+};
+
+static const SFG_StrokeVertex ch35st2[] =
+{
+ {7.9619f,57.1429f},
+ {74.6286f,57.1429f}
+};
+
+static const SFG_StrokeVertex ch35st3[] =
+{
+ {3.2f,28.5714f},
+ {69.8667f,28.5714f}
+};
+
+static const SFG_StrokeStrip ch35st[] =
+{
+ {2,ch35st0},
+ {2,ch35st1},
+ {2,ch35st2},
+ {2,ch35st3}
+};
+
+static const SFG_StrokeChar ch35 = {79.4886f,4,ch35st};
+
+/* char: 0x24 */
+
+static const SFG_StrokeVertex ch36st0[] =
+{
+ {28.6295f,119.048f},
+ {28.6295f,-19.0476f}
+};
+
+static const SFG_StrokeVertex ch36st1[] =
+{
+ {47.6771f,119.048f},
+ {47.6771f,-19.0476f}
+};
+
+static const SFG_StrokeVertex ch36st2[] =
+{
+ {71.4867f,85.7143f},
+ {61.9629f,95.2381f},
+ {47.6771f,100.0f},
+ {28.6295f,100.0f},
+ {14.3438f,95.2381f},
+ {4.82f,85.7143f},
+ {4.82f,76.1905f},
+ {9.5819f,66.6667f},
+ {14.3438f,61.9048f},
+ {23.8676f,57.1429f},
+ {52.439f,47.619f},
+ {61.9629f,42.8571f},
+ {66.7248f,38.0952f},
+ {71.4867f,28.5714f},
+ {71.4867f,14.2857f},
+ {61.9629f,4.7619f},
+ {47.6771f,0.0f},
+ {28.6295f,0.0f},
+ {14.3438f,4.7619f},
+ {4.82f,14.2857f}
+};
+
+static const SFG_StrokeStrip ch36st[] =
+{
+ {2,ch36st0},
+ {2,ch36st1},
+ {20,ch36st2}
+};
+
+static const SFG_StrokeChar ch36 = {76.2067f,3,ch36st};
+
+/* char: 0x25 */
+
+static const SFG_StrokeVertex ch37st0[] =
+{
+ {92.0743f,100.0f},
+ {6.36f,0.0f}
+};
+
+static const SFG_StrokeVertex ch37st1[] =
+{
+ {30.1695f,100.0f},
+ {39.6933f,90.4762f},
+ {39.6933f,80.9524f},
+ {34.9314f,71.4286f},
+ {25.4076f,66.6667f},
+ {15.8838f,66.6667f},
+ {6.36f,76.1905f},
+ {6.36f,85.7143f},
+ {11.1219f,95.2381f},
+ {20.6457f,100.0f},
+ {30.1695f,100.0f},
+ {39.6933f,95.2381f},
+ {53.979f,90.4762f},
+ {68.2648f,90.4762f},
+ {82.5505f,95.2381f},
+ {92.0743f,100.0f}
+};
+
+static const SFG_StrokeVertex ch37st2[] =
+{
+ {73.0267f,33.3333f},
+ {63.5029f,28.5714f},
+ {58.741f,19.0476f},
+ {58.741f,9.5238f},
+ {68.2648f,0.0f},
+ {77.7886f,0.0f},
+ {87.3124f,4.7619f},
+ {92.0743f,14.2857f},
+ {92.0743f,23.8095f},
+ {82.5505f,33.3333f},
+ {73.0267f,33.3333f}
+};
+
+static const SFG_StrokeStrip ch37st[] =
+{
+ {2,ch37st0},
+ {16,ch37st1},
+ {11,ch37st2}
+};
+
+static const SFG_StrokeChar ch37 = {96.5743f,3,ch37st};
+
+/* char: 0x26 */
+
+static const SFG_StrokeVertex ch38st0[] =
+{
+ {101.218f,57.1429f},
+ {101.218f,61.9048f},
+ {96.4562f,66.6667f},
+ {91.6943f,66.6667f},
+ {86.9324f,61.9048f},
+ {82.1705f,52.381f},
+ {72.6467f,28.5714f},
+ {63.1229f,14.2857f},
+ {53.599f,4.7619f},
+ {44.0752f,0.0f},
+ {25.0276f,0.0f},
+ {15.5038f,4.7619f},
+ {10.7419f,9.5238f},
+ {5.98f,19.0476f},
+ {5.98f,28.5714f},
+ {10.7419f,38.0952f},
+ {15.5038f,42.8571f},
+ {48.8371f,61.9048f},
+ {53.599f,66.6667f},
+ {58.361f,76.1905f},
+ {58.361f,85.7143f},
+ {53.599f,95.2381f},
+ {44.0752f,100.0f},
+ {34.5514f,95.2381f},
+ {29.7895f,85.7143f},
+ {29.7895f,76.1905f},
+ {34.5514f,61.9048f},
+ {44.0752f,47.619f},
+ {67.8848f,14.2857f},
+ {77.4086f,4.7619f},
+ {86.9324f,0.0f},
+ {96.4562f,0.0f},
+ {101.218f,4.7619f},
+ {101.218f,9.5238f}
+};
+
+static const SFG_StrokeStrip ch38st[] =
+{
+ {34,ch38st0}
+};
+
+static const SFG_StrokeChar ch38 = {101.758f,1,ch38st};
+
+/* char: 0x27 */
+
+static const SFG_StrokeVertex ch39st0[] =
+{
+ {4.44f,100.0f},
+ {4.44f,66.6667f}
+};
+
+static const SFG_StrokeStrip ch39st[] =
+{
+ {2,ch39st0}
+};
+
+static const SFG_StrokeChar ch39 = {13.62f,1,ch39st};
+
+/* char: 0x28 */
+
+static const SFG_StrokeVertex ch40st0[] =
+{
+ {40.9133f,119.048f},
+ {31.3895f,109.524f},
+ {21.8657f,95.2381f},
+ {12.3419f,76.1905f},
+ {7.58f,52.381f},
+ {7.58f,33.3333f},
+ {12.3419f,9.5238f},
+ {21.8657f,-9.5238f},
+ {31.3895f,-23.8095f},
+ {40.9133f,-33.3333f}
+};
+
+static const SFG_StrokeStrip ch40st[] =
+{
+ {10,ch40st0}
+};
+
+static const SFG_StrokeChar ch40 = {47.1733f,1,ch40st};
+
+/* char: 0x29 */
+
+static const SFG_StrokeVertex ch41st0[] =
+{
+ {5.28f,119.048f},
+ {14.8038f,109.524f},
+ {24.3276f,95.2381f},
+ {33.8514f,76.1905f},
+ {38.6133f,52.381f},
+ {38.6133f,33.3333f},
+ {33.8514f,9.5238f},
+ {24.3276f,-9.5238f},
+ {14.8038f,-23.8095f},
+ {5.28f,-33.3333f}
+};
+
+static const SFG_StrokeStrip ch41st[] =
+{
+ {10,ch41st0}
+};
+
+static const SFG_StrokeChar ch41 = {47.5333f,1,ch41st};
+
+/* char: 0x2a */
+
+static const SFG_StrokeVertex ch42st0[] =
+{
+ {30.7695f,71.4286f},
+ {30.7695f,14.2857f}
+};
+
+static const SFG_StrokeVertex ch42st1[] =
+{
+ {6.96f,57.1429f},
+ {54.579f,28.5714f}
+};
+
+static const SFG_StrokeVertex ch42st2[] =
+{
+ {54.579f,57.1429f},
+ {6.96f,28.5714f}
+};
+
+static const SFG_StrokeStrip ch42st[] =
+{
+ {2,ch42st0},
+ {2,ch42st1},
+ {2,ch42st2}
+};
+
+static const SFG_StrokeChar ch42 = {59.439f,3,ch42st};
+
+/* char: 0x2b */
+
+static const SFG_StrokeVertex ch43st0[] =
+{
+ {48.8371f,85.7143f},
+ {48.8371f,0.0f}
+};
+
+static const SFG_StrokeVertex ch43st1[] =
+{
+ {5.98f,42.8571f},
+ {91.6943f,42.8571f}
+};
+
+static const SFG_StrokeStrip ch43st[] =
+{
+ {2,ch43st0},
+ {2,ch43st1}
+};
+
+static const SFG_StrokeChar ch43 = {97.2543f,2,ch43st};
+
+/* char: 0x2c */
+
+static const SFG_StrokeVertex ch44st0[] =
+{
+ {18.2838f,4.7619f},
+ {13.5219f,0.0f},
+ {8.76f,4.7619f},
+ {13.5219f,9.5238f},
+ {18.2838f,4.7619f},
+ {18.2838f,-4.7619f},
+ {13.5219f,-14.2857f},
+ {8.76f,-19.0476f}
+};
+
+static const SFG_StrokeStrip ch44st[] =
+{
+ {8,ch44st0}
+};
+
+static const SFG_StrokeChar ch44 = {26.0638f,1,ch44st};
+
+/* char: 0x2d */
+
+static const SFG_StrokeVertex ch45st0[] =
+{
+ {7.38f,42.8571f},
+ {93.0943f,42.8571f}
+};
+
+static const SFG_StrokeStrip ch45st[] =
+{
+ {2,ch45st0}
+};
+
+static const SFG_StrokeChar ch45 = {100.754f,1,ch45st};
+
+/* char: 0x2e */
+
+static const SFG_StrokeVertex ch46st0[] =
+{
+ {13.1019f,9.5238f},
+ {8.34f,4.7619f},
+ {13.1019f,0.0f},
+ {17.8638f,4.7619f},
+ {13.1019f,9.5238f}
+};
+
+static const SFG_StrokeStrip ch46st[] =
+{
+ {5,ch46st0}
+};
+
+static const SFG_StrokeChar ch46 = {26.4838f,1,ch46st};
+
+/* char: 0x2f */
+
+static const SFG_StrokeVertex ch47st0[] =
+{
+ {7.24f,-14.2857f},
+ {73.9067f,100.0f}
+};
+
+static const SFG_StrokeStrip ch47st[] =
+{
+ {2,ch47st0}
+};
+
+static const SFG_StrokeChar ch47 = {82.1067f,1,ch47st};
+
+/* char: 0x30 */
+
+static const SFG_StrokeVertex ch48st0[] =
+{
+ {33.5514f,100.0f},
+ {19.2657f,95.2381f},
+ {9.7419f,80.9524f},
+ {4.98f,57.1429f},
+ {4.98f,42.8571f},
+ {9.7419f,19.0476f},
+ {19.2657f,4.7619f},
+ {33.5514f,0.0f},
+ {43.0752f,0.0f},
+ {57.361f,4.7619f},
+ {66.8848f,19.0476f},
+ {71.6467f,42.8571f},
+ {71.6467f,57.1429f},
+ {66.8848f,80.9524f},
+ {57.361f,95.2381f},
+ {43.0752f,100.0f},
+ {33.5514f,100.0f}
+};
+
+static const SFG_StrokeStrip ch48st[] =
+{
+ {17,ch48st0}
+};
+
+static const SFG_StrokeChar ch48 = {77.0667f,1,ch48st};
+
+/* char: 0x31 */
+
+static const SFG_StrokeVertex ch49st0[] =
+{
+ {11.82f,80.9524f},
+ {21.3438f,85.7143f},
+ {35.6295f,100.0f},
+ {35.6295f,0.0f}
+};
+
+static const SFG_StrokeStrip ch49st[] =
+{
+ {4,ch49st0}
+};
+
+static const SFG_StrokeChar ch49 = {66.5295f,1,ch49st};
+
+/* char: 0x32 */
+
+static const SFG_StrokeVertex ch50st0[] =
+{
+ {10.1819f,76.1905f},
+ {10.1819f,80.9524f},
+ {14.9438f,90.4762f},
+ {19.7057f,95.2381f},
+ {29.2295f,100.0f},
+ {48.2771f,100.0f},
+ {57.801f,95.2381f},
+ {62.5629f,90.4762f},
+ {67.3248f,80.9524f},
+ {67.3248f,71.4286f},
+ {62.5629f,61.9048f},
+ {53.039f,47.619f},
+ {5.42f,0.0f},
+ {72.0867f,0.0f}
+};
+
+static const SFG_StrokeStrip ch50st[] =
+{
+ {14,ch50st0}
+};
+
+static const SFG_StrokeChar ch50 = {77.6467f,1,ch50st};
+
+/* char: 0x33 */
+
+static const SFG_StrokeVertex ch51st0[] =
+{
+ {14.5238f,100.0f},
+ {66.9048f,100.0f},
+ {38.3333f,61.9048f},
+ {52.619f,61.9048f},
+ {62.1429f,57.1429f},
+ {66.9048f,52.381f},
+ {71.6667f,38.0952f},
+ {71.6667f,28.5714f},
+ {66.9048f,14.2857f},
+ {57.381f,4.7619f},
+ {43.0952f,0.0f},
+ {28.8095f,0.0f},
+ {14.5238f,4.7619f},
+ {9.7619f,9.5238f},
+ {5.0f,19.0476f}
+};
+
+static const SFG_StrokeStrip ch51st[] =
+{
+ {15,ch51st0}
+};
+
+static const SFG_StrokeChar ch51 = {77.0467f,1,ch51st};
+
+/* char: 0x34 */
+
+static const SFG_StrokeVertex ch52st0[] =
+{
+ {51.499f,100.0f},
+ {3.88f,33.3333f},
+ {75.3086f,33.3333f}
+};
+
+static const SFG_StrokeVertex ch52st1[] =
+{
+ {51.499f,100.0f},
+ {51.499f,0.0f}
+};
+
+static const SFG_StrokeStrip ch52st[] =
+{
+ {3,ch52st0},
+ {2,ch52st1}
+};
+
+static const SFG_StrokeChar ch52 = {80.1686f,2,ch52st};
+
+/* char: 0x35 */
+
+static const SFG_StrokeVertex ch53st0[] =
+{
+ {62.0029f,100.0f},
+ {14.3838f,100.0f},
+ {9.6219f,57.1429f},
+ {14.3838f,61.9048f},
+ {28.6695f,66.6667f},
+ {42.9552f,66.6667f},
+ {57.241f,61.9048f},
+ {66.7648f,52.381f},
+ {71.5267f,38.0952f},
+ {71.5267f,28.5714f},
+ {66.7648f,14.2857f},
+ {57.241f,4.7619f},
+ {42.9552f,0.0f},
+ {28.6695f,0.0f},
+ {14.3838f,4.7619f},
+ {9.6219f,9.5238f},
+ {4.86f,19.0476f}
+};
+
+static const SFG_StrokeStrip ch53st[] =
+{
+ {17,ch53st0}
+};
+
+static const SFG_StrokeChar ch53 = {77.6867f,1,ch53st};
+
+/* char: 0x36 */
+
+static const SFG_StrokeVertex ch54st0[] =
+{
+ {62.7229f,85.7143f},
+ {57.961f,95.2381f},
+ {43.6752f,100.0f},
+ {34.1514f,100.0f},
+ {19.8657f,95.2381f},
+ {10.3419f,80.9524f},
+ {5.58f,57.1429f},
+ {5.58f,33.3333f},
+ {10.3419f,14.2857f},
+ {19.8657f,4.7619f},
+ {34.1514f,0.0f},
+ {38.9133f,0.0f},
+ {53.199f,4.7619f},
+ {62.7229f,14.2857f},
+ {67.4848f,28.5714f},
+ {67.4848f,33.3333f},
+ {62.7229f,47.619f},
+ {53.199f,57.1429f},
+ {38.9133f,61.9048f},
+ {34.1514f,61.9048f},
+ {19.8657f,57.1429f},
+ {10.3419f,47.619f},
+ {5.58f,33.3333f}
+};
+
+static const SFG_StrokeStrip ch54st[] =
+{
+ {23,ch54st0}
+};
+
+static const SFG_StrokeChar ch54 = {73.8048f,1,ch54st};
+
+/* char: 0x37 */
+
+static const SFG_StrokeVertex ch55st0[] =
+{
+ {72.2267f,100.0f},
+ {24.6076f,0.0f}
+};
+
+static const SFG_StrokeVertex ch55st1[] =
+{
+ {5.56f,100.0f},
+ {72.2267f,100.0f}
+};
+
+static const SFG_StrokeStrip ch55st[] =
+{
+ {2,ch55st0},
+ {2,ch55st1}
+};
+
+static const SFG_StrokeChar ch55 = {77.2267f,2,ch55st};
+
+/* char: 0x38 */
+
+static const SFG_StrokeVertex ch56st0[] =
+{
+ {29.4095f,100.0f},
+ {15.1238f,95.2381f},
+ {10.3619f,85.7143f},
+ {10.3619f,76.1905f},
+ {15.1238f,66.6667f},
+ {24.6476f,61.9048f},
+ {43.6952f,57.1429f},
+ {57.981f,52.381f},
+ {67.5048f,42.8571f},
+ {72.2667f,33.3333f},
+ {72.2667f,19.0476f},
+ {67.5048f,9.5238f},
+ {62.7429f,4.7619f},
+ {48.4571f,0.0f},
+ {29.4095f,0.0f},
+ {15.1238f,4.7619f},
+ {10.3619f,9.5238f},
+ {5.6f,19.0476f},
+ {5.6f,33.3333f},
+ {10.3619f,42.8571f},
+ {19.8857f,52.381f},
+ {34.1714f,57.1429f},
+ {53.219f,61.9048f},
+ {62.7429f,66.6667f},
+ {67.5048f,76.1905f},
+ {67.5048f,85.7143f},
+ {62.7429f,95.2381f},
+ {48.4571f,100.0f},
+ {29.4095f,100.0f}
+};
+
+static const SFG_StrokeStrip ch56st[] =
+{
+ {29,ch56st0}
+};
+
+static const SFG_StrokeChar ch56 = {77.6667f,1,ch56st};
+
+/* char: 0x39 */
+
+static const SFG_StrokeVertex ch57st0[] =
+{
+ {68.5048f,66.6667f},
+ {63.7429f,52.381f},
+ {54.219f,42.8571f},
+ {39.9333f,38.0952f},
+ {35.1714f,38.0952f},
+ {20.8857f,42.8571f},
+ {11.3619f,52.381f},
+ {6.6f,66.6667f},
+ {6.6f,71.4286f},
+ {11.3619f,85.7143f},
+ {20.8857f,95.2381f},
+ {35.1714f,100.0f},
+ {39.9333f,100.0f},
+ {54.219f,95.2381f},
+ {63.7429f,85.7143f},
+ {68.5048f,66.6667f},
+ {68.5048f,42.8571f},
+ {63.7429f,19.0476f},
+ {54.219f,4.7619f},
+ {39.9333f,0.0f},
+ {30.4095f,0.0f},
+ {16.1238f,4.7619f},
+ {11.3619f,14.2857f}
+};
+
+static const SFG_StrokeStrip ch57st[] =
+{
+ {23,ch57st0}
+};
+
+static const SFG_StrokeChar ch57 = {74.0648f,1,ch57st};
+
+/* char: 0x3a */
+
+static const SFG_StrokeVertex ch58st0[] =
+{
+ {14.0819f,66.6667f},
+ {9.32f,61.9048f},
+ {14.0819f,57.1429f},
+ {18.8438f,61.9048f},
+ {14.0819f,66.6667f}
+};
+
+static const SFG_StrokeVertex ch58st1[] =
+{
+ {14.0819f,9.5238f},
+ {9.32f,4.7619f},
+ {14.0819f,0.0f},
+ {18.8438f,4.7619f},
+ {14.0819f,9.5238f}
+};
+
+static const SFG_StrokeStrip ch58st[] =
+{
+ {5,ch58st0},
+ {5,ch58st1}
+};
+
+static const SFG_StrokeChar ch58 = {26.2238f,2,ch58st};
+
+/* char: 0x3b */
+
+static const SFG_StrokeVertex ch59st0[] =
+{
+ {12.9619f,66.6667f},
+ {8.2f,61.9048f},
+ {12.9619f,57.1429f},
+ {17.7238f,61.9048f},
+ {12.9619f,66.6667f}
+};
+
+static const SFG_StrokeVertex ch59st1[] =
+{
+ {17.7238f,4.7619f},
+ {12.9619f,0.0f},
+ {8.2f,4.7619f},
+ {12.9619f,9.5238f},
+ {17.7238f,4.7619f},
+ {17.7238f,-4.7619f},
+ {12.9619f,-14.2857f},
+ {8.2f,-19.0476f}
+};
+
+static const SFG_StrokeStrip ch59st[] =
+{
+ {5,ch59st0},
+ {8,ch59st1}
+};
+
+static const SFG_StrokeChar ch59 = {26.3038f,2,ch59st};
+
+/* char: 0x3c */
+
+static const SFG_StrokeVertex ch60st0[] =
+{
+ {79.2505f,85.7143f},
+ {3.06f,42.8571f},
+ {79.2505f,0.0f}
+};
+
+static const SFG_StrokeStrip ch60st[] =
+{
+ {3,ch60st0}
+};
+
+static const SFG_StrokeChar ch60 = {81.6105f,1,ch60st};
+
+/* char: 0x3d */
+
+static const SFG_StrokeVertex ch61st0[] =
+{
+ {5.7f,57.1429f},
+ {91.4143f,57.1429f}
+};
+
+static const SFG_StrokeVertex ch61st1[] =
+{
+ {5.7f,28.5714f},
+ {91.4143f,28.5714f}
+};
+
+static const SFG_StrokeStrip ch61st[] =
+{
+ {2,ch61st0},
+ {2,ch61st1}
+};
+
+static const SFG_StrokeChar ch61 = {97.2543f,2,ch61st};
+
+/* char: 0x3e */
+
+static const SFG_StrokeVertex ch62st0[] =
+{
+ {2.78f,85.7143f},
+ {78.9705f,42.8571f},
+ {2.78f,0.0f}
+};
+
+static const SFG_StrokeStrip ch62st[] =
+{
+ {3,ch62st0}
+};
+
+static const SFG_StrokeChar ch62 = {81.6105f,1,ch62st};
+
+/* char: 0x3f */
+
+static const SFG_StrokeVertex ch63st0[] =
+{
+ {8.42f,76.1905f},
+ {8.42f,80.9524f},
+ {13.1819f,90.4762f},
+ {17.9438f,95.2381f},
+ {27.4676f,100.0f},
+ {46.5152f,100.0f},
+ {56.039f,95.2381f},
+ {60.801f,90.4762f},
+ {65.5629f,80.9524f},
+ {65.5629f,71.4286f},
+ {60.801f,61.9048f},
+ {56.039f,57.1429f},
+ {36.9914f,47.619f},
+ {36.9914f,33.3333f}
+};
+
+static const SFG_StrokeVertex ch63st1[] =
+{
+ {36.9914f,9.5238f},
+ {32.2295f,4.7619f},
+ {36.9914f,0.0f},
+ {41.7533f,4.7619f},
+ {36.9914f,9.5238f}
+};
+
+static const SFG_StrokeStrip ch63st[] =
+{
+ {14,ch63st0},
+ {5,ch63st1}
+};
+
+static const SFG_StrokeChar ch63 = {73.9029f,2,ch63st};
+
+/* char: 0x40 */
+
+static const SFG_StrokeVertex ch64st0[] =
+{
+ {49.2171f,52.381f},
+ {39.6933f,57.1429f},
+ {30.1695f,57.1429f},
+ {25.4076f,47.619f},
+ {25.4076f,42.8571f},
+ {30.1695f,33.3333f},
+ {39.6933f,33.3333f},
+ {49.2171f,38.0952f}
+};
+
+static const SFG_StrokeVertex ch64st1[] =
+{
+ {49.2171f,57.1429f},
+ {49.2171f,38.0952f},
+ {53.979f,33.3333f},
+ {63.5029f,33.3333f},
+ {68.2648f,42.8571f},
+ {68.2648f,47.619f},
+ {63.5029f,61.9048f},
+ {53.979f,71.4286f},
+ {39.6933f,76.1905f},
+ {34.9314f,76.1905f},
+ {20.6457f,71.4286f},
+ {11.1219f,61.9048f},
+ {6.36f,47.619f},
+ {6.36f,42.8571f},
+ {11.1219f,28.5714f},
+ {20.6457f,19.0476f},
+ {34.9314f,14.2857f},
+ {39.6933f,14.2857f},
+ {53.979f,19.0476f}
+};
+
+static const SFG_StrokeStrip ch64st[] =
+{
+ {8,ch64st0},
+ {19,ch64st1}
+};
+
+static const SFG_StrokeChar ch64 = {74.3648f,2,ch64st};
+
+/* char: 0x41 */
+
+static const SFG_StrokeVertex ch65st0[] =
+{
+ {40.5952f,100.0f},
+ {2.5f,0.0f}
+};
+
+static const SFG_StrokeVertex ch65st1[] =
+{
+ {40.5952f,100.0f},
+ {78.6905f,0.0f}
+};
+
+static const SFG_StrokeVertex ch65st2[] =
+{
+ {16.7857f,33.3333f},
+ {64.4048f,33.3333f}
+};
+
+static const SFG_StrokeStrip ch65st[] =
+{
+ {2,ch65st0},
+ {2,ch65st1},
+ {2,ch65st2}
+};
+
+static const SFG_StrokeChar ch65 = {80.4905f,3,ch65st};
+
+/* char: 0x42 */
+
+static const SFG_StrokeVertex ch66st0[] =
+{
+ {11.42f,100.0f},
+ {11.42f,0.0f}
+};
+
+static const SFG_StrokeVertex ch66st1[] =
+{
+ {11.42f,100.0f},
+ {54.2771f,100.0f},
+ {68.5629f,95.2381f},
+ {73.3248f,90.4762f},
+ {78.0867f,80.9524f},
+ {78.0867f,71.4286f},
+ {73.3248f,61.9048f},
+ {68.5629f,57.1429f},
+ {54.2771f,52.381f}
+};
+
+static const SFG_StrokeVertex ch66st2[] =
+{
+ {11.42f,52.381f},
+ {54.2771f,52.381f},
+ {68.5629f,47.619f},
+ {73.3248f,42.8571f},
+ {78.0867f,33.3333f},
+ {78.0867f,19.0476f},
+ {73.3248f,9.5238f},
+ {68.5629f,4.7619f},
+ {54.2771f,0.0f},
+ {11.42f,0.0f}
+};
+
+static const SFG_StrokeStrip ch66st[] =
+{
+ {2,ch66st0},
+ {9,ch66st1},
+ {10,ch66st2}
+};
+
+static const SFG_StrokeChar ch66 = {83.6267f,3,ch66st};
+
+/* char: 0x43 */
+
+static const SFG_StrokeVertex ch67st0[] =
+{
+ {78.0886f,76.1905f},
+ {73.3267f,85.7143f},
+ {63.8029f,95.2381f},
+ {54.279f,100.0f},
+ {35.2314f,100.0f},
+ {25.7076f,95.2381f},
+ {16.1838f,85.7143f},
+ {11.4219f,76.1905f},
+ {6.66f,61.9048f},
+ {6.66f,38.0952f},
+ {11.4219f,23.8095f},
+ {16.1838f,14.2857f},
+ {25.7076f,4.7619f},
+ {35.2314f,0.0f},
+ {54.279f,0.0f},
+ {63.8029f,4.7619f},
+ {73.3267f,14.2857f},
+ {78.0886f,23.8095f}
+};
+
+static const SFG_StrokeStrip ch67st[] =
+{
+ {18,ch67st0}
+};
+
+static const SFG_StrokeChar ch67 = {84.4886f,1,ch67st};
+
+/* char: 0x44 */
+
+static const SFG_StrokeVertex ch68st0[] =
+{
+ {11.96f,100.0f},
+ {11.96f,0.0f}
+};
+
+static const SFG_StrokeVertex ch68st1[] =
+{
+ {11.96f,100.0f},
+ {45.2933f,100.0f},
+ {59.579f,95.2381f},
+ {69.1029f,85.7143f},
+ {73.8648f,76.1905f},
+ {78.6267f,61.9048f},
+ {78.6267f,38.0952f},
+ {73.8648f,23.8095f},
+ {69.1029f,14.2857f},
+ {59.579f,4.7619f},
+ {45.2933f,0.0f},
+ {11.96f,0.0f}
+};
+
+static const SFG_StrokeStrip ch68st[] =
+{
+ {2,ch68st0},
+ {12,ch68st1}
+};
+
+static const SFG_StrokeChar ch68 = {85.2867f,2,ch68st};
+
+/* char: 0x45 */
+
+static const SFG_StrokeVertex ch69st0[] =
+{
+ {11.42f,100.0f},
+ {11.42f,0.0f}
+};
+
+static const SFG_StrokeVertex ch69st1[] =
+{
+ {11.42f,100.0f},
+ {73.3248f,100.0f}
+};
+
+static const SFG_StrokeVertex ch69st2[] =
+{
+ {11.42f,52.381f},
+ {49.5152f,52.381f}
+};
+
+static const SFG_StrokeVertex ch69st3[] =
+{
+ {11.42f,0.0f},
+ {73.3248f,0.0f}
+};
+
+static const SFG_StrokeStrip ch69st[] =
+{
+ {2,ch69st0},
+ {2,ch69st1},
+ {2,ch69st2},
+ {2,ch69st3}
+};
+
+static const SFG_StrokeChar ch69 = {78.1848f,4,ch69st};
+
+/* char: 0x46 */
+
+static const SFG_StrokeVertex ch70st0[] =
+{
+ {11.42f,100.0f},
+ {11.42f,0.0f}
+};
+
+static const SFG_StrokeVertex ch70st1[] =
+{
+ {11.42f,100.0f},
+ {73.3248f,100.0f}
+};
+
+static const SFG_StrokeVertex ch70st2[] =
+{
+ {11.42f,52.381f},
+ {49.5152f,52.381f}
+};
+
+static const SFG_StrokeStrip ch70st[] =
+{
+ {2,ch70st0},
+ {2,ch70st1},
+ {2,ch70st2}
+};
+
+static const SFG_StrokeChar ch70 = {78.7448f,3,ch70st};
+
+/* char: 0x47 */
+
+static const SFG_StrokeVertex ch71st0[] =
+{
+ {78.4886f,76.1905f},
+ {73.7267f,85.7143f},
+ {64.2029f,95.2381f},
+ {54.679f,100.0f},
+ {35.6314f,100.0f},
+ {26.1076f,95.2381f},
+ {16.5838f,85.7143f},
+ {11.8219f,76.1905f},
+ {7.06f,61.9048f},
+ {7.06f,38.0952f},
+ {11.8219f,23.8095f},
+ {16.5838f,14.2857f},
+ {26.1076f,4.7619f},
+ {35.6314f,0.0f},
+ {54.679f,0.0f},
+ {64.2029f,4.7619f},
+ {73.7267f,14.2857f},
+ {78.4886f,23.8095f},
+ {78.4886f,38.0952f}
+};
+
+static const SFG_StrokeVertex ch71st1[] =
+{
+ {54.679f,38.0952f},
+ {78.4886f,38.0952f}
+};
+
+static const SFG_StrokeStrip ch71st[] =
+{
+ {19,ch71st0},
+ {2,ch71st1}
+};
+
+static const SFG_StrokeChar ch71 = {89.7686f,2,ch71st};
+
+/* char: 0x48 */
+
+static const SFG_StrokeVertex ch72st0[] =
+{
+ {11.42f,100.0f},
+ {11.42f,0.0f}
+};
+
+static const SFG_StrokeVertex ch72st1[] =
+{
+ {78.0867f,100.0f},
+ {78.0867f,0.0f}
+};
+
+static const SFG_StrokeVertex ch72st2[] =
+{
+ {11.42f,52.381f},
+ {78.0867f,52.381f}
+};
+
+static const SFG_StrokeStrip ch72st[] =
+{
+ {2,ch72st0},
+ {2,ch72st1},
+ {2,ch72st2}
+};
+
+static const SFG_StrokeChar ch72 = {89.0867f,3,ch72st};
+
+/* char: 0x49 */
+
+static const SFG_StrokeVertex ch73st0[] =
+{
+ {10.86f,100.0f},
+ {10.86f,0.0f}
+};
+
+static const SFG_StrokeStrip ch73st[] =
+{
+ {2,ch73st0}
+};
+
+static const SFG_StrokeChar ch73 = {21.3f,1,ch73st};
+
+/* char: 0x4a */
+
+static const SFG_StrokeVertex ch74st0[] =
+{
+ {50.119f,100.0f},
+ {50.119f,23.8095f},
+ {45.3571f,9.5238f},
+ {40.5952f,4.7619f},
+ {31.0714f,0.0f},
+ {21.5476f,0.0f},
+ {12.0238f,4.7619f},
+ {7.2619f,9.5238f},
+ {2.5f,23.8095f},
+ {2.5f,33.3333f}
+};
+
+static const SFG_StrokeStrip ch74st[] =
+{
+ {10,ch74st0}
+};
+
+static const SFG_StrokeChar ch74 = {59.999f,1,ch74st};
+
+/* char: 0x4b */
+
+static const SFG_StrokeVertex ch75st0[] =
+{
+ {11.28f,100.0f},
+ {11.28f,0.0f}
+};
+
+static const SFG_StrokeVertex ch75st1[] =
+{
+ {77.9467f,100.0f},
+ {11.28f,33.3333f}
+};
+
+static const SFG_StrokeVertex ch75st2[] =
+{
+ {35.0895f,57.1429f},
+ {77.9467f,0.0f}
+};
+
+static const SFG_StrokeStrip ch75st[] =
+{
+ {2,ch75st0},
+ {2,ch75st1},
+ {2,ch75st2}
+};
+
+static const SFG_StrokeChar ch75 = {79.3267f,3,ch75st};
+
+/* char: 0x4c */
+
+static const SFG_StrokeVertex ch76st0[] =
+{
+ {11.68f,100.0f},
+ {11.68f,0.0f}
+};
+
+static const SFG_StrokeVertex ch76st1[] =
+{
+ {11.68f,0.0f},
+ {68.8229f,0.0f}
+};
+
+static const SFG_StrokeStrip ch76st[] =
+{
+ {2,ch76st0},
+ {2,ch76st1}
+};
+
+static const SFG_StrokeChar ch76 = {71.3229f,2,ch76st};
+
+/* char: 0x4d */
+
+static const SFG_StrokeVertex ch77st0[] =
+{
+ {10.86f,100.0f},
+ {10.86f,0.0f}
+};
+
+static const SFG_StrokeVertex ch77st1[] =
+{
+ {10.86f,100.0f},
+ {48.9552f,0.0f}
+};
+
+static const SFG_StrokeVertex ch77st2[] =
+{
+ {87.0505f,100.0f},
+ {48.9552f,0.0f}
+};
+
+static const SFG_StrokeVertex ch77st3[] =
+{
+ {87.0505f,100.0f},
+ {87.0505f,0.0f}
+};
+
+static const SFG_StrokeStrip ch77st[] =
+{
+ {2,ch77st0},
+ {2,ch77st1},
+ {2,ch77st2},
+ {2,ch77st3}
+};
+
+static const SFG_StrokeChar ch77 = {97.2105f,4,ch77st};
+
+/* char: 0x4e */
+
+static const SFG_StrokeVertex ch78st0[] =
+{
+ {11.14f,100.0f},
+ {11.14f,0.0f}
+};
+
+static const SFG_StrokeVertex ch78st1[] =
+{
+ {11.14f,100.0f},
+ {77.8067f,0.0f}
+};
+
+static const SFG_StrokeVertex ch78st2[] =
+{
+ {77.8067f,100.0f},
+ {77.8067f,0.0f}
+};
+
+static const SFG_StrokeStrip ch78st[] =
+{
+ {2,ch78st0},
+ {2,ch78st1},
+ {2,ch78st2}
+};
+
+static const SFG_StrokeChar ch78 = {88.8067f,3,ch78st};
+
+/* char: 0x4f */
+
+static const SFG_StrokeVertex ch79st0[] =
+{
+ {34.8114f,100.0f},
+ {25.2876f,95.2381f},
+ {15.7638f,85.7143f},
+ {11.0019f,76.1905f},
+ {6.24f,61.9048f},
+ {6.24f,38.0952f},
+ {11.0019f,23.8095f},
+ {15.7638f,14.2857f},
+ {25.2876f,4.7619f},
+ {34.8114f,0.0f},
+ {53.859f,0.0f},
+ {63.3829f,4.7619f},
+ {72.9067f,14.2857f},
+ {77.6686f,23.8095f},
+ {82.4305f,38.0952f},
+ {82.4305f,61.9048f},
+ {77.6686f,76.1905f},
+ {72.9067f,85.7143f},
+ {63.3829f,95.2381f},
+ {53.859f,100.0f},
+ {34.8114f,100.0f}
+};
+
+static const SFG_StrokeStrip ch79st[] =
+{
+ {21,ch79st0}
+};
+
+static const SFG_StrokeChar ch79 = {88.8305f,1,ch79st};
+
+/* char: 0x50 */
+
+static const SFG_StrokeVertex ch80st0[] =
+{
+ {12.1f,100.0f},
+ {12.1f,0.0f}
+};
+
+static const SFG_StrokeVertex ch80st1[] =
+{
+ {12.1f,100.0f},
+ {54.9571f,100.0f},
+ {69.2429f,95.2381f},
+ {74.0048f,90.4762f},
+ {78.7667f,80.9524f},
+ {78.7667f,66.6667f},
+ {74.0048f,57.1429f},
+ {69.2429f,52.381f},
+ {54.9571f,47.619f},
+ {12.1f,47.619f}
+};
+
+static const SFG_StrokeStrip ch80st[] =
+{
+ {2,ch80st0},
+ {10,ch80st1}
+};
+
+static const SFG_StrokeChar ch80 = {85.6667f,2,ch80st};
+
+/* char: 0x51 */
+
+static const SFG_StrokeVertex ch81st0[] =
+{
+ {33.8714f,100.0f},
+ {24.3476f,95.2381f},
+ {14.8238f,85.7143f},
+ {10.0619f,76.1905f},
+ {5.3f,61.9048f},
+ {5.3f,38.0952f},
+ {10.0619f,23.8095f},
+ {14.8238f,14.2857f},
+ {24.3476f,4.7619f},
+ {33.8714f,0.0f},
+ {52.919f,0.0f},
+ {62.4429f,4.7619f},
+ {71.9667f,14.2857f},
+ {76.7286f,23.8095f},
+ {81.4905f,38.0952f},
+ {81.4905f,61.9048f},
+ {76.7286f,76.1905f},
+ {71.9667f,85.7143f},
+ {62.4429f,95.2381f},
+ {52.919f,100.0f},
+ {33.8714f,100.0f}
+};
+
+static const SFG_StrokeVertex ch81st1[] =
+{
+ {48.1571f,19.0476f},
+ {76.7286f,-9.5238f}
+};
+
+static const SFG_StrokeStrip ch81st[] =
+{
+ {21,ch81st0},
+ {2,ch81st1}
+};
+
+static const SFG_StrokeChar ch81 = {88.0905f,2,ch81st};
+
+/* char: 0x52 */
+
+static const SFG_StrokeVertex ch82st0[] =
+{
+ {11.68f,100.0f},
+ {11.68f,0.0f}
+};
+
+static const SFG_StrokeVertex ch82st1[] =
+{
+ {11.68f,100.0f},
+ {54.5371f,100.0f},
+ {68.8229f,95.2381f},
+ {73.5848f,90.4762f},
+ {78.3467f,80.9524f},
+ {78.3467f,71.4286f},
+ {73.5848f,61.9048f},
+ {68.8229f,57.1429f},
+ {54.5371f,52.381f},
+ {11.68f,52.381f}
+};
+
+static const SFG_StrokeVertex ch82st2[] =
+{
+ {45.0133f,52.381f},
+ {78.3467f,0.0f}
+};
+
+static const SFG_StrokeStrip ch82st[] =
+{
+ {2,ch82st0},
+ {10,ch82st1},
+ {2,ch82st2}
+};
+
+static const SFG_StrokeChar ch82 = {82.3667f,3,ch82st};
+
+/* char: 0x53 */
+
+static const SFG_StrokeVertex ch83st0[] =
+{
+ {74.6667f,85.7143f},
+ {65.1429f,95.2381f},
+ {50.8571f,100.0f},
+ {31.8095f,100.0f},
+ {17.5238f,95.2381f},
+ {8.0f,85.7143f},
+ {8.0f,76.1905f},
+ {12.7619f,66.6667f},
+ {17.5238f,61.9048f},
+ {27.0476f,57.1429f},
+ {55.619f,47.619f},
+ {65.1429f,42.8571f},
+ {69.9048f,38.0952f},
+ {74.6667f,28.5714f},
+ {74.6667f,14.2857f},
+ {65.1429f,4.7619f},
+ {50.8571f,0.0f},
+ {31.8095f,0.0f},
+ {17.5238f,4.7619f},
+ {8.0f,14.2857f}
+};
+
+static const SFG_StrokeStrip ch83st[] =
+{
+ {20,ch83st0}
+};
+
+static const SFG_StrokeChar ch83 = {80.8267f,1,ch83st};
+
+/* char: 0x54 */
+
+static const SFG_StrokeVertex ch84st0[] =
+{
+ {35.6933f,100.0f},
+ {35.6933f,0.0f}
+};
+
+static const SFG_StrokeVertex ch84st1[] =
+{
+ {2.36f,100.0f},
+ {69.0267f,100.0f}
+};
+
+static const SFG_StrokeStrip ch84st[] =
+{
+ {2,ch84st0},
+ {2,ch84st1}
+};
+
+static const SFG_StrokeChar ch84 = {71.9467f,2,ch84st};
+
+/* char: 0x55 */
+
+static const SFG_StrokeVertex ch85st0[] =
+{
+ {11.54f,100.0f},
+ {11.54f,28.5714f},
+ {16.3019f,14.2857f},
+ {25.8257f,4.7619f},
+ {40.1114f,0.0f},
+ {49.6352f,0.0f},
+ {63.921f,4.7619f},
+ {73.4448f,14.2857f},
+ {78.2067f,28.5714f},
+ {78.2067f,100.0f}
+};
+
+static const SFG_StrokeStrip ch85st[] =
+{
+ {10,ch85st0}
+};
+
+static const SFG_StrokeChar ch85 = {89.4867f,1,ch85st};
+
+/* char: 0x56 */
+
+static const SFG_StrokeVertex ch86st0[] =
+{
+ {2.36f,100.0f},
+ {40.4552f,0.0f}
+};
+
+static const SFG_StrokeVertex ch86st1[] =
+{
+ {78.5505f,100.0f},
+ {40.4552f,0.0f}
+};
+
+static const SFG_StrokeStrip ch86st[] =
+{
+ {2,ch86st0},
+ {2,ch86st1}
+};
+
+static const SFG_StrokeChar ch86 = {81.6105f,2,ch86st};
+
+/* char: 0x57 */
+
+static const SFG_StrokeVertex ch87st0[] =
+{
+ {2.22f,100.0f},
+ {26.0295f,0.0f}
+};
+
+static const SFG_StrokeVertex ch87st1[] =
+{
+ {49.839f,100.0f},
+ {26.0295f,0.0f}
+};
+
+static const SFG_StrokeVertex ch87st2[] =
+{
+ {49.839f,100.0f},
+ {73.6486f,0.0f}
+};
+
+static const SFG_StrokeVertex ch87st3[] =
+{
+ {97.4581f,100.0f},
+ {73.6486f,0.0f}
+};
+
+static const SFG_StrokeStrip ch87st[] =
+{
+ {2,ch87st0},
+ {2,ch87st1},
+ {2,ch87st2},
+ {2,ch87st3}
+};
+
+static const SFG_StrokeChar ch87 = {100.518f,4,ch87st};
+
+/* char: 0x58 */
+
+static const SFG_StrokeVertex ch88st0[] =
+{
+ {2.5f,100.0f},
+ {69.1667f,0.0f}
+};
+
+static const SFG_StrokeVertex ch88st1[] =
+{
+ {69.1667f,100.0f},
+ {2.5f,0.0f}
+};
+
+static const SFG_StrokeStrip ch88st[] =
+{
+ {2,ch88st0},
+ {2,ch88st1}
+};
+
+static const SFG_StrokeChar ch88 = {72.3667f,2,ch88st};
+
+/* char: 0x59 */
+
+static const SFG_StrokeVertex ch89st0[] =
+{
+ {1.52f,100.0f},
+ {39.6152f,52.381f},
+ {39.6152f,0.0f}
+};
+
+static const SFG_StrokeVertex ch89st1[] =
+{
+ {77.7105f,100.0f},
+ {39.6152f,52.381f}
+};
+
+static const SFG_StrokeStrip ch89st[] =
+{
+ {3,ch89st0},
+ {2,ch89st1}
+};
+
+static const SFG_StrokeChar ch89 = {79.6505f,2,ch89st};
+
+/* char: 0x5a */
+
+static const SFG_StrokeVertex ch90st0[] =
+{
+ {69.1667f,100.0f},
+ {2.5f,0.0f}
+};
+
+static const SFG_StrokeVertex ch90st1[] =
+{
+ {2.5f,100.0f},
+ {69.1667f,100.0f}
+};
+
+static const SFG_StrokeVertex ch90st2[] =
+{
+ {2.5f,0.0f},
+ {69.1667f,0.0f}
+};
+
+static const SFG_StrokeStrip ch90st[] =
+{
+ {2,ch90st0},
+ {2,ch90st1},
+ {2,ch90st2}
+};
+
+static const SFG_StrokeChar ch90 = {73.7467f,3,ch90st};
+
+/* char: 0x5b */
+
+static const SFG_StrokeVertex ch91st0[] =
+{
+ {7.78f,119.048f},
+ {7.78f,-33.3333f}
+};
+
+static const SFG_StrokeVertex ch91st1[] =
+{
+ {12.5419f,119.048f},
+ {12.5419f,-33.3333f}
+};
+
+static const SFG_StrokeVertex ch91st2[] =
+{
+ {7.78f,119.048f},
+ {41.1133f,119.048f}
+};
+
+static const SFG_StrokeVertex ch91st3[] =
+{
+ {7.78f,-33.3333f},
+ {41.1133f,-33.3333f}
+};
+
+static const SFG_StrokeStrip ch91st[] =
+{
+ {2,ch91st0},
+ {2,ch91st1},
+ {2,ch91st2},
+ {2,ch91st3}
+};
+
+static const SFG_StrokeChar ch91 = {46.1133f,4,ch91st};
+
+/* char: 0x5c */
+
+static const SFG_StrokeVertex ch92st0[] =
+{
+ {5.84f,100.0f},
+ {72.5067f,-14.2857f}
+};
+
+static const SFG_StrokeStrip ch92st[] =
+{
+ {2,ch92st0}
+};
+
+static const SFG_StrokeChar ch92 = {78.2067f,1,ch92st};
+
+/* char: 0x5d */
+
+static const SFG_StrokeVertex ch93st0[] =
+{
+ {33.0114f,119.048f},
+ {33.0114f,-33.3333f}
+};
+
+static const SFG_StrokeVertex ch93st1[] =
+{
+ {37.7733f,119.048f},
+ {37.7733f,-33.3333f}
+};
+
+static const SFG_StrokeVertex ch93st2[] =
+{
+ {4.44f,119.048f},
+ {37.7733f,119.048f}
+};
+
+static const SFG_StrokeVertex ch93st3[] =
+{
+ {4.44f,-33.3333f},
+ {37.7733f,-33.3333f}
+};
+
+static const SFG_StrokeStrip ch93st[] =
+{
+ {2,ch93st0},
+ {2,ch93st1},
+ {2,ch93st2},
+ {2,ch93st3}
+};
+
+static const SFG_StrokeChar ch93 = {46.3933f,4,ch93st};
+
+/* char: 0x5e */
+
+static const SFG_StrokeVertex ch94st0[] =
+{
+ {44.0752f,109.524f},
+ {5.98f,42.8571f}
+};
+
+static const SFG_StrokeVertex ch94st1[] =
+{
+ {44.0752f,109.524f},
+ {82.1705f,42.8571f}
+};
+
+static const SFG_StrokeStrip ch94st[] =
+{
+ {2,ch94st0},
+ {2,ch94st1}
+};
+
+static const SFG_StrokeChar ch94 = {90.2305f,2,ch94st};
+
+/* char: 0x5f */
+
+static const SFG_StrokeVertex ch95st0[] =
+{
+ {-1.1f,-33.3333f},
+ {103.662f,-33.3333f},
+ {103.662f,-28.5714f},
+ {-1.1f,-28.5714f},
+ {-1.1f,-33.3333f}
+};
+
+static const SFG_StrokeStrip ch95st[] =
+{
+ {5,ch95st0}
+};
+
+static const SFG_StrokeChar ch95 = {104.062f,1,ch95st};
+
+/* char: 0x60 */
+
+static const SFG_StrokeVertex ch96st0[] =
+{
+ {33.0219f,100.0f},
+ {56.8314f,71.4286f}
+};
+
+static const SFG_StrokeVertex ch96st1[] =
+{
+ {33.0219f,100.0f},
+ {28.26f,95.2381f},
+ {56.8314f,71.4286f}
+};
+
+static const SFG_StrokeStrip ch96st[] =
+{
+ {2,ch96st0},
+ {3,ch96st1}
+};
+
+static const SFG_StrokeChar ch96 = {83.5714f,2,ch96st};
+
+/* char: 0x61 */
+
+static const SFG_StrokeVertex ch97st0[] =
+{
+ {63.8229f,66.6667f},
+ {63.8229f,0.0f}
+};
+
+static const SFG_StrokeVertex ch97st1[] =
+{
+ {63.8229f,52.381f},
+ {54.299f,61.9048f},
+ {44.7752f,66.6667f},
+ {30.4895f,66.6667f},
+ {20.9657f,61.9048f},
+ {11.4419f,52.381f},
+ {6.68f,38.0952f},
+ {6.68f,28.5714f},
+ {11.4419f,14.2857f},
+ {20.9657f,4.7619f},
+ {30.4895f,0.0f},
+ {44.7752f,0.0f},
+ {54.299f,4.7619f},
+ {63.8229f,14.2857f}
+};
+
+static const SFG_StrokeStrip ch97st[] =
+{
+ {2,ch97st0},
+ {14,ch97st1}
+};
+
+static const SFG_StrokeChar ch97 = {66.6029f,2,ch97st};
+
+/* char: 0x62 */
+
+static const SFG_StrokeVertex ch98st0[] =
+{
+ {8.76f,100.0f},
+ {8.76f,0.0f}
+};
+
+static const SFG_StrokeVertex ch98st1[] =
+{
+ {8.76f,52.381f},
+ {18.2838f,61.9048f},
+ {27.8076f,66.6667f},
+ {42.0933f,66.6667f},
+ {51.6171f,61.9048f},
+ {61.141f,52.381f},
+ {65.9029f,38.0952f},
+ {65.9029f,28.5714f},
+ {61.141f,14.2857f},
+ {51.6171f,4.7619f},
+ {42.0933f,0.0f},
+ {27.8076f,0.0f},
+ {18.2838f,4.7619f},
+ {8.76f,14.2857f}
+};
+
+static const SFG_StrokeStrip ch98st[] =
+{
+ {2,ch98st0},
+ {14,ch98st1}
+};
+
+static const SFG_StrokeChar ch98 = {70.4629f,2,ch98st};
+
+/* char: 0x63 */
+
+static const SFG_StrokeVertex ch99st0[] =
+{
+ {62.6629f,52.381f},
+ {53.139f,61.9048f},
+ {43.6152f,66.6667f},
+ {29.3295f,66.6667f},
+ {19.8057f,61.9048f},
+ {10.2819f,52.381f},
+ {5.52f,38.0952f},
+ {5.52f,28.5714f},
+ {10.2819f,14.2857f},
+ {19.8057f,4.7619f},
+ {29.3295f,0.0f},
+ {43.6152f,0.0f},
+ {53.139f,4.7619f},
+ {62.6629f,14.2857f}
+};
+
+static const SFG_StrokeStrip ch99st[] =
+{
+ {14,ch99st0}
+};
+
+static const SFG_StrokeChar ch99 = {68.9229f,1,ch99st};
+
+/* char: 0x64 */
+
+static const SFG_StrokeVertex ch100st0[] =
+{
+ {61.7829f,100.0f},
+ {61.7829f,0.0f}
+};
+
+static const SFG_StrokeVertex ch100st1[] =
+{
+ {61.7829f,52.381f},
+ {52.259f,61.9048f},
+ {42.7352f,66.6667f},
+ {28.4495f,66.6667f},
+ {18.9257f,61.9048f},
+ {9.4019f,52.381f},
+ {4.64f,38.0952f},
+ {4.64f,28.5714f},
+ {9.4019f,14.2857f},
+ {18.9257f,4.7619f},
+ {28.4495f,0.0f},
+ {42.7352f,0.0f},
+ {52.259f,4.7619f},
+ {61.7829f,14.2857f}
+};
+
+static const SFG_StrokeStrip ch100st[] =
+{
+ {2,ch100st0},
+ {14,ch100st1}
+};
+
+static const SFG_StrokeChar ch100 = {70.2629f,2,ch100st};
+
+/* char: 0x65 */
+
+static const SFG_StrokeVertex ch101st0[] =
+{
+ {5.72f,38.0952f},
+ {62.8629f,38.0952f},
+ {62.8629f,47.619f},
+ {58.101f,57.1429f},
+ {53.339f,61.9048f},
+ {43.8152f,66.6667f},
+ {29.5295f,66.6667f},
+ {20.0057f,61.9048f},
+ {10.4819f,52.381f},
+ {5.72f,38.0952f},
+ {5.72f,28.5714f},
+ {10.4819f,14.2857f},
+ {20.0057f,4.7619f},
+ {29.5295f,0.0f},
+ {43.8152f,0.0f},
+ {53.339f,4.7619f},
+ {62.8629f,14.2857f}
+};
+
+static const SFG_StrokeStrip ch101st[] =
+{
+ {17,ch101st0}
+};
+
+static const SFG_StrokeChar ch101 = {68.5229f,1,ch101st};
+
+/* char: 0x66 */
+
+static const SFG_StrokeVertex ch102st0[] =
+{
+ {38.7752f,100.0f},
+ {29.2514f,100.0f},
+ {19.7276f,95.2381f},
+ {14.9657f,80.9524f},
+ {14.9657f,0.0f}
+};
+
+static const SFG_StrokeVertex ch102st1[] =
+{
+ {0.68f,66.6667f},
+ {34.0133f,66.6667f}
+};
+
+static const SFG_StrokeStrip ch102st[] =
+{
+ {5,ch102st0},
+ {2,ch102st1}
+};
+
+static const SFG_StrokeChar ch102 = {38.6552f,2,ch102st};
+
+/* char: 0x67 */
+
+static const SFG_StrokeVertex ch103st0[] =
+{
+ {62.5029f,66.6667f},
+ {62.5029f,-9.5238f},
+ {57.741f,-23.8095f},
+ {52.979f,-28.5714f},
+ {43.4552f,-33.3333f},
+ {29.1695f,-33.3333f},
+ {19.6457f,-28.5714f}
+};
+
+static const SFG_StrokeVertex ch103st1[] =
+{
+ {62.5029f,52.381f},
+ {52.979f,61.9048f},
+ {43.4552f,66.6667f},
+ {29.1695f,66.6667f},
+ {19.6457f,61.9048f},
+ {10.1219f,52.381f},
+ {5.36f,38.0952f},
+ {5.36f,28.5714f},
+ {10.1219f,14.2857f},
+ {19.6457f,4.7619f},
+ {29.1695f,0.0f},
+ {43.4552f,0.0f},
+ {52.979f,4.7619f},
+ {62.5029f,14.2857f}
+};
+
+static const SFG_StrokeStrip ch103st[] =
+{
+ {7,ch103st0},
+ {14,ch103st1}
+};
+
+static const SFG_StrokeChar ch103 = {70.9829f,2,ch103st};
+
+/* char: 0x68 */
+
+static const SFG_StrokeVertex ch104st0[] =
+{
+ {9.6f,100.0f},
+ {9.6f,0.0f}
+};
+
+static const SFG_StrokeVertex ch104st1[] =
+{
+ {9.6f,47.619f},
+ {23.8857f,61.9048f},
+ {33.4095f,66.6667f},
+ {47.6952f,66.6667f},
+ {57.219f,61.9048f},
+ {61.981f,47.619f},
+ {61.981f,0.0f}
+};
+
+static const SFG_StrokeStrip ch104st[] =
+{
+ {2,ch104st0},
+ {7,ch104st1}
+};
+
+static const SFG_StrokeChar ch104 = {71.021f,2,ch104st};
+
+/* char: 0x69 */
+
+static const SFG_StrokeVertex ch105st0[] =
+{
+ {10.02f,100.0f},
+ {14.7819f,95.2381f},
+ {19.5438f,100.0f},
+ {14.7819f,104.762f},
+ {10.02f,100.0f}
+};
+
+static const SFG_StrokeVertex ch105st1[] =
+{
+ {14.7819f,66.6667f},
+ {14.7819f,0.0f}
+};
+
+static const SFG_StrokeStrip ch105st[] =
+{
+ {5,ch105st0},
+ {2,ch105st1}
+};
+
+static const SFG_StrokeChar ch105 = {28.8638f,2,ch105st};
+
+/* char: 0x6a */
+
+static const SFG_StrokeVertex ch106st0[] =
+{
+ {17.3876f,100.0f},
+ {22.1495f,95.2381f},
+ {26.9114f,100.0f},
+ {22.1495f,104.762f},
+ {17.3876f,100.0f}
+};
+
+static const SFG_StrokeVertex ch106st1[] =
+{
+ {22.1495f,66.6667f},
+ {22.1495f,-14.2857f},
+ {17.3876f,-28.5714f},
+ {7.8638f,-33.3333f},
+ {-1.66f,-33.3333f}
+};
+
+static const SFG_StrokeStrip ch106st[] =
+{
+ {5,ch106st0},
+ {5,ch106st1}
+};
+
+static const SFG_StrokeChar ch106 = {36.2314f,2,ch106st};
+
+/* char: 0x6b */
+
+static const SFG_StrokeVertex ch107st0[] =
+{
+ {9.6f,100.0f},
+ {9.6f,0.0f}
+};
+
+static const SFG_StrokeVertex ch107st1[] =
+{
+ {57.219f,66.6667f},
+ {9.6f,19.0476f}
+};
+
+static const SFG_StrokeVertex ch107st2[] =
+{
+ {28.6476f,38.0952f},
+ {61.981f,0.0f}
+};
+
+static const SFG_StrokeStrip ch107st[] =
+{
+ {2,ch107st0},
+ {2,ch107st1},
+ {2,ch107st2}
+};
+
+static const SFG_StrokeChar ch107 = {62.521f,3,ch107st};
+
+/* char: 0x6c */
+
+static const SFG_StrokeVertex ch108st0[] =
+{
+ {10.02f,100.0f},
+ {10.02f,0.0f}
+};
+
+static const SFG_StrokeStrip ch108st[] =
+{
+ {2,ch108st0}
+};
+
+static const SFG_StrokeChar ch108 = {19.34f,1,ch108st};
+
+/* char: 0x6d */
+
+static const SFG_StrokeVertex ch109st0[] =
+{
+ {9.6f,66.6667f},
+ {9.6f,0.0f}
+};
+
+static const SFG_StrokeVertex ch109st1[] =
+{
+ {9.6f,47.619f},
+ {23.8857f,61.9048f},
+ {33.4095f,66.6667f},
+ {47.6952f,66.6667f},
+ {57.219f,61.9048f},
+ {61.981f,47.619f},
+ {61.981f,0.0f}
+};
+
+static const SFG_StrokeVertex ch109st2[] =
+{
+ {61.981f,47.619f},
+ {76.2667f,61.9048f},
+ {85.7905f,66.6667f},
+ {100.076f,66.6667f},
+ {109.6f,61.9048f},
+ {114.362f,47.619f},
+ {114.362f,0.0f}
+};
+
+static const SFG_StrokeStrip ch109st[] =
+{
+ {2,ch109st0},
+ {7,ch109st1},
+ {7,ch109st2}
+};
+
+static const SFG_StrokeChar ch109 = {123.962f,3,ch109st};
+
+/* char: 0x6e */
+
+static const SFG_StrokeVertex ch110st0[] =
+{
+ {9.18f,66.6667f},
+ {9.18f,0.0f}
+};
+
+static const SFG_StrokeVertex ch110st1[] =
+{
+ {9.18f,47.619f},
+ {23.4657f,61.9048f},
+ {32.9895f,66.6667f},
+ {47.2752f,66.6667f},
+ {56.799f,61.9048f},
+ {61.561f,47.619f},
+ {61.561f,0.0f}
+};
+
+static const SFG_StrokeStrip ch110st[] =
+{
+ {2,ch110st0},
+ {7,ch110st1}
+};
+
+static const SFG_StrokeChar ch110 = {70.881f,2,ch110st};
+
+/* char: 0x6f */
+
+static const SFG_StrokeVertex ch111st0[] =
+{
+ {28.7895f,66.6667f},
+ {19.2657f,61.9048f},
+ {9.7419f,52.381f},
+ {4.98f,38.0952f},
+ {4.98f,28.5714f},
+ {9.7419f,14.2857f},
+ {19.2657f,4.7619f},
+ {28.7895f,0.0f},
+ {43.0752f,0.0f},
+ {52.599f,4.7619f},
+ {62.1229f,14.2857f},
+ {66.8848f,28.5714f},
+ {66.8848f,38.0952f},
+ {62.1229f,52.381f},
+ {52.599f,61.9048f},
+ {43.0752f,66.6667f},
+ {28.7895f,66.6667f}
+};
+
+static const SFG_StrokeStrip ch111st[] =
+{
+ {17,ch111st0}
+};
+
+static const SFG_StrokeChar ch111 = {71.7448f,1,ch111st};
+
+/* char: 0x70 */
+
+static const SFG_StrokeVertex ch112st0[] =
+{
+ {9.46f,66.6667f},
+ {9.46f,-33.3333f}
+};
+
+static const SFG_StrokeVertex ch112st1[] =
+{
+ {9.46f,52.381f},
+ {18.9838f,61.9048f},
+ {28.5076f,66.6667f},
+ {42.7933f,66.6667f},
+ {52.3171f,61.9048f},
+ {61.841f,52.381f},
+ {66.6029f,38.0952f},
+ {66.6029f,28.5714f},
+ {61.841f,14.2857f},
+ {52.3171f,4.7619f},
+ {42.7933f,0.0f},
+ {28.5076f,0.0f},
+ {18.9838f,4.7619f},
+ {9.46f,14.2857f}
+};
+
+static const SFG_StrokeStrip ch112st[] =
+{
+ {2,ch112st0},
+ {14,ch112st1}
+};
+
+static const SFG_StrokeChar ch112 = {70.8029f,2,ch112st};
+
+/* char: 0x71 */
+
+static const SFG_StrokeVertex ch113st0[] =
+{
+ {61.9829f,66.6667f},
+ {61.9829f,-33.3333f}
+};
+
+static const SFG_StrokeVertex ch113st1[] =
+{
+ {61.9829f,52.381f},
+ {52.459f,61.9048f},
+ {42.9352f,66.6667f},
+ {28.6495f,66.6667f},
+ {19.1257f,61.9048f},
+ {9.6019f,52.381f},
+ {4.84f,38.0952f},
+ {4.84f,28.5714f},
+ {9.6019f,14.2857f},
+ {19.1257f,4.7619f},
+ {28.6495f,0.0f},
+ {42.9352f,0.0f},
+ {52.459f,4.7619f},
+ {61.9829f,14.2857f}
+};
+
+static const SFG_StrokeStrip ch113st[] =
+{
+ {2,ch113st0},
+ {14,ch113st1}
+};
+
+static const SFG_StrokeChar ch113 = {70.7429f,2,ch113st};
+
+/* char: 0x72 */
+
+static const SFG_StrokeVertex ch114st0[] =
+{
+ {9.46f,66.6667f},
+ {9.46f,0.0f}
+};
+
+static const SFG_StrokeVertex ch114st1[] =
+{
+ {9.46f,38.0952f},
+ {14.2219f,52.381f},
+ {23.7457f,61.9048f},
+ {33.2695f,66.6667f},
+ {47.5552f,66.6667f}
+};
+
+static const SFG_StrokeStrip ch114st[] =
+{
+ {2,ch114st0},
+ {5,ch114st1}
+};
+
+static const SFG_StrokeChar ch114 = {49.4952f,2,ch114st};
+
+/* char: 0x73 */
+
+static const SFG_StrokeVertex ch115st0[] =
+{
+ {57.081f,52.381f},
+ {52.319f,61.9048f},
+ {38.0333f,66.6667f},
+ {23.7476f,66.6667f},
+ {9.4619f,61.9048f},
+ {4.7f,52.381f},
+ {9.4619f,42.8571f},
+ {18.9857f,38.0952f},
+ {42.7952f,33.3333f},
+ {52.319f,28.5714f},
+ {57.081f,19.0476f},
+ {57.081f,14.2857f},
+ {52.319f,4.7619f},
+ {38.0333f,0.0f},
+ {23.7476f,0.0f},
+ {9.4619f,4.7619f},
+ {4.7f,14.2857f}
+};
+
+static const SFG_StrokeStrip ch115st[] =
+{
+ {17,ch115st0}
+};
+
+static const SFG_StrokeChar ch115 = {62.321f,1,ch115st};
+
+/* char: 0x74 */
+
+static const SFG_StrokeVertex ch116st0[] =
+{
+ {14.8257f,100.0f},
+ {14.8257f,19.0476f},
+ {19.5876f,4.7619f},
+ {29.1114f,0.0f},
+ {38.6352f,0.0f}
+};
+
+static const SFG_StrokeVertex ch116st1[] =
+{
+ {0.54f,66.6667f},
+ {33.8733f,66.6667f}
+};
+
+static const SFG_StrokeStrip ch116st[] =
+{
+ {5,ch116st0},
+ {2,ch116st1}
+};
+
+static const SFG_StrokeChar ch116 = {39.3152f,2,ch116st};
+
+/* char: 0x75 */
+
+static const SFG_StrokeVertex ch117st0[] =
+{
+ {9.46f,66.6667f},
+ {9.46f,19.0476f},
+ {14.2219f,4.7619f},
+ {23.7457f,0.0f},
+ {38.0314f,0.0f},
+ {47.5552f,4.7619f},
+ {61.841f,19.0476f}
+};
+
+static const SFG_StrokeVertex ch117st1[] =
+{
+ {61.841f,66.6667f},
+ {61.841f,0.0f}
+};
+
+static const SFG_StrokeStrip ch117st[] =
+{
+ {7,ch117st0},
+ {2,ch117st1}
+};
+
+static const SFG_StrokeChar ch117 = {71.161f,2,ch117st};
+
+/* char: 0x76 */
+
+static const SFG_StrokeVertex ch118st0[] =
+{
+ {1.8f,66.6667f},
+ {30.3714f,0.0f}
+};
+
+static const SFG_StrokeVertex ch118st1[] =
+{
+ {58.9429f,66.6667f},
+ {30.3714f,0.0f}
+};
+
+static const SFG_StrokeStrip ch118st[] =
+{
+ {2,ch118st0},
+ {2,ch118st1}
+};
+
+static const SFG_StrokeChar ch118 = {60.6029f,2,ch118st};
+
+/* char: 0x77 */
+
+static const SFG_StrokeVertex ch119st0[] =
+{
+ {2.5f,66.6667f},
+ {21.5476f,0.0f}
+};
+
+static const SFG_StrokeVertex ch119st1[] =
+{
+ {40.5952f,66.6667f},
+ {21.5476f,0.0f}
+};
+
+static const SFG_StrokeVertex ch119st2[] =
+{
+ {40.5952f,66.6667f},
+ {59.6429f,0.0f}
+};
+
+static const SFG_StrokeVertex ch119st3[] =
+{
+ {78.6905f,66.6667f},
+ {59.6429f,0.0f}
+};
+
+static const SFG_StrokeStrip ch119st[] =
+{
+ {2,ch119st0},
+ {2,ch119st1},
+ {2,ch119st2},
+ {2,ch119st3}
+};
+
+static const SFG_StrokeChar ch119 = {80.4905f,4,ch119st};
+
+/* char: 0x78 */
+
+static const SFG_StrokeVertex ch120st0[] =
+{
+ {1.66f,66.6667f},
+ {54.041f,0.0f}
+};
+
+static const SFG_StrokeVertex ch120st1[] =
+{
+ {54.041f,66.6667f},
+ {1.66f,0.0f}
+};
+
+static const SFG_StrokeStrip ch120st[] =
+{
+ {2,ch120st0},
+ {2,ch120st1}
+};
+
+static const SFG_StrokeChar ch120 = {56.401f,2,ch120st};
+
+/* char: 0x79 */
+
+static const SFG_StrokeVertex ch121st0[] =
+{
+ {6.5619f,66.6667f},
+ {35.1333f,0.0f}
+};
+
+static const SFG_StrokeVertex ch121st1[] =
+{
+ {63.7048f,66.6667f},
+ {35.1333f,0.0f},
+ {25.6095f,-19.0476f},
+ {16.0857f,-28.5714f},
+ {6.5619f,-33.3333f},
+ {1.8f,-33.3333f}
+};
+
+static const SFG_StrokeStrip ch121st[] =
+{
+ {2,ch121st0},
+ {6,ch121st1}
+};
+
+static const SFG_StrokeChar ch121 = {66.0648f,2,ch121st};
+
+/* char: 0x7a */
+
+static const SFG_StrokeVertex ch122st0[] =
+{
+ {56.821f,66.6667f},
+ {4.44f,0.0f}
+};
+
+static const SFG_StrokeVertex ch122st1[] =
+{
+ {4.44f,66.6667f},
+ {56.821f,66.6667f}
+};
+
+static const SFG_StrokeVertex ch122st2[] =
+{
+ {4.44f,0.0f},
+ {56.821f,0.0f}
+};
+
+static const SFG_StrokeStrip ch122st[] =
+{
+ {2,ch122st0},
+ {2,ch122st1},
+ {2,ch122st2}
+};
+
+static const SFG_StrokeChar ch122 = {61.821f,3,ch122st};
+
+/* char: 0x7b */
+
+static const SFG_StrokeVertex ch123st0[] =
+{
+ {31.1895f,119.048f},
+ {21.6657f,114.286f},
+ {16.9038f,109.524f},
+ {12.1419f,100.0f},
+ {12.1419f,90.4762f},
+ {16.9038f,80.9524f},
+ {21.6657f,76.1905f},
+ {26.4276f,66.6667f},
+ {26.4276f,57.1429f},
+ {16.9038f,47.619f}
+};
+
+static const SFG_StrokeVertex ch123st1[] =
+{
+ {21.6657f,114.286f},
+ {16.9038f,104.762f},
+ {16.9038f,95.2381f},
+ {21.6657f,85.7143f},
+ {26.4276f,80.9524f},
+ {31.1895f,71.4286f},
+ {31.1895f,61.9048f},
+ {26.4276f,52.381f},
+ {7.38f,42.8571f},
+ {26.4276f,33.3333f},
+ {31.1895f,23.8095f},
+ {31.1895f,14.2857f},
+ {26.4276f,4.7619f},
+ {21.6657f,0.0f},
+ {16.9038f,-9.5238f},
+ {16.9038f,-19.0476f},
+ {21.6657f,-28.5714f}
+};
+
+static const SFG_StrokeVertex ch123st2[] =
+{
+ {16.9038f,38.0952f},
+ {26.4276f,28.5714f},
+ {26.4276f,19.0476f},
+ {21.6657f,9.5238f},
+ {16.9038f,4.7619f},
+ {12.1419f,-4.7619f},
+ {12.1419f,-14.2857f},
+ {16.9038f,-23.8095f},
+ {21.6657f,-28.5714f},
+ {31.1895f,-33.3333f}
+};
+
+static const SFG_StrokeStrip ch123st[] =
+{
+ {10,ch123st0},
+ {17,ch123st1},
+ {10,ch123st2}
+};
+
+static const SFG_StrokeChar ch123 = {41.6295f,3,ch123st};
+
+/* char: 0x7c */
+
+static const SFG_StrokeVertex ch124st0[] =
+{
+ {11.54f,119.048f},
+ {11.54f,-33.3333f}
+};
+
+static const SFG_StrokeStrip ch124st[] =
+{
+ {2,ch124st0}
+};
+
+static const SFG_StrokeChar ch124 = {23.78f,1,ch124st};
+
+/* char: 0x7d */
+
+static const SFG_StrokeVertex ch125st0[] =
+{
+ {9.18f,119.048f},
+ {18.7038f,114.286f},
+ {23.4657f,109.524f},
+ {28.2276f,100.0f},
+ {28.2276f,90.4762f},
+ {23.4657f,80.9524f},
+ {18.7038f,76.1905f},
+ {13.9419f,66.6667f},
+ {13.9419f,57.1429f},
+ {23.4657f,47.619f}
+};
+
+static const SFG_StrokeVertex ch125st1[] =
+{
+ {18.7038f,114.286f},
+ {23.4657f,104.762f},
+ {23.4657f,95.2381f},
+ {18.7038f,85.7143f},
+ {13.9419f,80.9524f},
+ {9.18f,71.4286f},
+ {9.18f,61.9048f},
+ {13.9419f,52.381f},
+ {32.9895f,42.8571f},
+ {13.9419f,33.3333f},
+ {9.18f,23.8095f},
+ {9.18f,14.2857f},
+ {13.9419f,4.7619f},
+ {18.7038f,0.0f},
+ {23.4657f,-9.5238f},
+ {23.4657f,-19.0476f},
+ {18.7038f,-28.5714f}
+};
+
+static const SFG_StrokeVertex ch125st2[] =
+{
+ {23.4657f,38.0952f},
+ {13.9419f,28.5714f},
+ {13.9419f,19.0476f},
+ {18.7038f,9.5238f},
+ {23.4657f,4.7619f},
+ {28.2276f,-4.7619f},
+ {28.2276f,-14.2857f},
+ {23.4657f,-23.8095f},
+ {18.7038f,-28.5714f},
+ {9.18f,-33.3333f}
+};
+
+static const SFG_StrokeStrip ch125st[] =
+{
+ {10,ch125st0},
+ {17,ch125st1},
+ {10,ch125st2}
+};
+
+static const SFG_StrokeChar ch125 = {41.4695f,3,ch125st};
+
+/* char: 0x7e */
+
+static const SFG_StrokeVertex ch126st0[] =
+{
+ {2.92f,28.5714f},
+ {2.92f,38.0952f},
+ {7.6819f,52.381f},
+ {17.2057f,57.1429f},
+ {26.7295f,57.1429f},
+ {36.2533f,52.381f},
+ {55.301f,38.0952f},
+ {64.8248f,33.3333f},
+ {74.3486f,33.3333f},
+ {83.8724f,38.0952f},
+ {88.6343f,47.619f}
+};
+
+static const SFG_StrokeVertex ch126st1[] =
+{
+ {2.92f,38.0952f},
+ {7.6819f,47.619f},
+ {17.2057f,52.381f},
+ {26.7295f,52.381f},
+ {36.2533f,47.619f},
+ {55.301f,33.3333f},
+ {64.8248f,28.5714f},
+ {74.3486f,28.5714f},
+ {83.8724f,33.3333f},
+ {88.6343f,47.619f},
+ {88.6343f,57.1429f}
+};
+
+static const SFG_StrokeStrip ch126st[] =
+{
+ {11,ch126st0},
+ {11,ch126st1}
+};
+
+static const SFG_StrokeChar ch126 = {91.2743f,2,ch126st};
+
+/* char: 0x7f */
+
+static const SFG_StrokeVertex ch127st0[] =
+{
+ {52.381f,100.0f},
+ {14.2857f,-33.3333f}
+};
+
+static const SFG_StrokeVertex ch127st1[] =
+{
+ {28.5714f,66.6667f},
+ {14.2857f,61.9048f},
+ {4.7619f,52.381f},
+ {0.0f,38.0952f},
+ {0.0f,23.8095f},
+ {4.7619f,14.2857f},
+ {14.2857f,4.7619f},
+ {28.5714f,0.0f},
+ {38.0952f,0.0f},
+ {52.381f,4.7619f},
+ {61.9048f,14.2857f},
+ {66.6667f,28.5714f},
+ {66.6667f,42.8571f},
+ {61.9048f,52.381f},
+ {52.381f,61.9048f},
+ {38.0952f,66.6667f},
+ {28.5714f,66.6667f}
+};
+
+static const SFG_StrokeStrip ch127st[] =
+{
+ {2,ch127st0},
+ {17,ch127st1}
+};
+
+static const SFG_StrokeChar ch127 = {66.6667f,2,ch127st};
+
+static const SFG_StrokeChar *chars[] =
+{
+ 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,
+ &ch32, &ch33, &ch34, &ch35, &ch36, &ch37, &ch38, &ch39,
+ &ch40, &ch41, &ch42, &ch43, &ch44, &ch45, &ch46, &ch47,
+ &ch48, &ch49, &ch50, &ch51, &ch52, &ch53, &ch54, &ch55,
+ &ch56, &ch57, &ch58, &ch59, &ch60, &ch61, &ch62, &ch63,
+ &ch64, &ch65, &ch66, &ch67, &ch68, &ch69, &ch70, &ch71,
+ &ch72, &ch73, &ch74, &ch75, &ch76, &ch77, &ch78, &ch79,
+ &ch80, &ch81, &ch82, &ch83, &ch84, &ch85, &ch86, &ch87,
+ &ch88, &ch89, &ch90, &ch91, &ch92, &ch93, &ch94, &ch95,
+ &ch96, &ch97, &ch98, &ch99, &ch100, &ch101, &ch102, &ch103,
+ &ch104, &ch105, &ch106, &ch107, &ch108, &ch109, &ch110, &ch111,
+ &ch112, &ch113, &ch114, &ch115, &ch116, &ch117, &ch118, &ch119,
+ &ch120, &ch121, &ch122, &ch123, &ch124, &ch125, &ch126, &ch127
+};
+
+const SFG_StrokeFont fgStrokeRoman = {"Roman",128,152.381f,chars};
diff --git a/src/fg_structure.c b/src/fg_structure.c
new file mode 100644 (file)
index 0000000..1e05653
--- /dev/null
@@ -0,0 +1,596 @@
+/*
+ * freeglut_structure.c
+ *
+ * Windows and menus need tree structure
+ *
+ * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
+ * Written by Pawel W. Olszta, <olszta@sourceforge.net>
+ * Creation date: Sat Dec 18 1999
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include <GL/freeglut.h>
+#include "fg_internal.h"
+
+/* -- GLOBAL EXPORTS ------------------------------------------------------- */
+
+/*
+ * The SFG_Structure container holds information about windows and menus
+ * created between glutInit() and glutMainLoop() return.
+ */
+
+SFG_Structure fgStructure = { { NULL, NULL },  /* The list of windows       */
+                              { NULL, NULL },  /* The list of menus         */
+                              { NULL, NULL },  /* Windows to Destroy list   */
+                              NULL,            /* The current window        */
+                              NULL,            /* The current menu          */
+                              NULL,            /* The menu OpenGL context   */
+                              NULL,            /* The game mode window      */
+                              0,               /* The current new window ID */
+                              0 };             /* The current new menu ID   */
+
+
+/* -- PRIVATE FUNCTIONS ---------------------------------------------------- */
+
+extern void fgPlatformCreateWindow ( SFG_Window *window );
+
+static void fghClearCallBacks( SFG_Window *window )
+{
+    if( window )
+    {
+        int i;
+        for( i = 0; i < TOTAL_CALLBACKS; ++i )
+            window->CallBacks[ i ] = NULL;
+    }
+}
+
+/*
+ * This private function creates, opens and adds to the hierarchy
+ * a freeglut window complete with OpenGL context and stuff...
+ *
+ * If parent is set to NULL, the window created will be a topmost one.
+ */
+SFG_Window* fgCreateWindow( SFG_Window* parent, const char* title,
+                            GLboolean positionUse, int x, int y,
+                            GLboolean sizeUse, int w, int h,
+                            GLboolean gameMode, GLboolean isMenu )
+{
+    /* Have the window object created */
+    SFG_Window *window = (SFG_Window *)calloc( sizeof(SFG_Window), 1 );
+
+       fgPlatformCreateWindow ( window );
+
+    fghClearCallBacks( window );
+
+    /* Initialize the object properties */
+    window->ID = ++fgStructure.WindowID;
+
+    fgListInit( &window->Children );
+    if( parent )
+    {
+        fgListAppend( &parent->Children, &window->Node );
+        window->Parent = parent;
+    }
+    else
+        fgListAppend( &fgStructure.Windows, &window->Node );
+
+    /* Set the default mouse cursor and reset the modifiers value */
+    window->State.Cursor    = GLUT_CURSOR_INHERIT;
+
+    window->IsMenu = isMenu;
+
+    window->State.IgnoreKeyRepeat = GL_FALSE;
+    window->State.KeyRepeating    = GL_FALSE;
+    window->State.IsFullscreen    = GL_FALSE;
+
+    /*
+     * Open the window now. The fgOpenWindow() function is system
+     * dependant, and resides in freeglut_window.c. Uses fgState.
+     */
+    fgOpenWindow( window, title, positionUse, x, y, sizeUse, w, h, gameMode,
+                  (GLboolean)(parent ? GL_TRUE : GL_FALSE) );
+
+    return window;
+}
+
+/*
+ * This private function creates a menu and adds it to the menus list
+ */
+SFG_Menu* fgCreateMenu( FGCBMenu menuCallback )
+{
+    int x = 100, y = 100, w = 1, h = 1;
+    SFG_Window *current_window = fgStructure.CurrentWindow;
+
+    /* Have the menu object created */
+    SFG_Menu* menu = (SFG_Menu *)calloc( sizeof(SFG_Menu), 1 );
+
+    menu->ParentWindow = NULL;
+
+    /* Create a window for the menu to reside in. */
+
+    fgCreateWindow( NULL, "freeglut menu", GL_TRUE, x, y, GL_TRUE, w, h,
+                    GL_FALSE, GL_TRUE );
+    menu->Window = fgStructure.CurrentWindow;
+    glutDisplayFunc( fgDisplayMenu );
+
+    glutHideWindow( );  /* Hide the window for now */
+    fgSetWindow( current_window );
+
+    /* Initialize the object properties: */
+    menu->ID       = ++fgStructure.MenuID;
+    menu->Callback = menuCallback;
+    menu->ActiveEntry = NULL;
+
+    fgListInit( &menu->Entries );
+    fgListAppend( &fgStructure.Menus, &menu->Node );
+
+    /* Newly created menus implicitly become current ones */
+    fgStructure.CurrentMenu = menu;
+
+    return menu;
+}
+
+/*
+ * Function to add a window to the linked list of windows to destroy.
+ * Subwindows are automatically added because they hang from the window
+ * structure.
+ */
+void fgAddToWindowDestroyList( SFG_Window* window )
+{
+    SFG_WindowList *new_list_entry =
+        ( SFG_WindowList* )malloc( sizeof(SFG_WindowList ) );
+    new_list_entry->window = window;
+    fgListAppend( &fgStructure.WindowsToDestroy, &new_list_entry->node );
+
+    /* Check if the window is the current one... */
+    if( fgStructure.CurrentWindow == window )
+        fgStructure.CurrentWindow = NULL;
+
+    /*
+     * Clear all window callbacks except Destroy, which will
+     * be invoked later.  Right now, we are potentially carrying
+     * out a freeglut operation at the behest of a client callback,
+     * so we are reluctant to re-enter the client with the Destroy
+     * callback, right now.  The others are all wiped out, however,
+     * to ensure that they are no longer called after this point.
+     */
+    {
+        FGCBDestroy destroy = (FGCBDestroy)FETCH_WCB( *window, Destroy );
+        fghClearCallBacks( window );
+        SET_WCB( *window, Destroy, destroy );
+    }
+}
+
+/*
+ * Function to close down all the windows in the "WindowsToDestroy" list
+ */
+void fgCloseWindows( )
+{
+    while( fgStructure.WindowsToDestroy.First )
+    {
+        SFG_WindowList *window_ptr = fgStructure.WindowsToDestroy.First;
+        fgDestroyWindow( window_ptr->window );
+        fgListRemove( &fgStructure.WindowsToDestroy, &window_ptr->node );
+        free( window_ptr );
+    }
+}
+
+/*
+ * This function destroys a window and all of its subwindows. Actually,
+ * another function, defined in freeglut_window.c is called, but this is
+ * a whole different story...
+ */
+void fgDestroyWindow( SFG_Window* window )
+{
+    FREEGLUT_INTERNAL_ERROR_EXIT ( window, "Window destroy function called with null window",
+                                   "fgDestroyWindow" );
+
+    while( window->Children.First )
+        fgDestroyWindow( ( SFG_Window * )window->Children.First );
+
+    {
+        SFG_Window *activeWindow = fgStructure.CurrentWindow;
+        INVOKE_WCB( *window, Destroy, ( ) );
+        fgSetWindow( activeWindow );
+    }
+
+    if( window->Parent )
+        fgListRemove( &window->Parent->Children, &window->Node );
+    else
+        fgListRemove( &fgStructure.Windows, &window->Node );
+
+    if( window->ActiveMenu )
+      fgDeactivateMenu( window );
+
+    fghClearCallBacks( window );
+    fgCloseWindow( window );
+    free( window );
+    if( fgStructure.CurrentWindow == window )
+        fgStructure.CurrentWindow = NULL;
+}
+
+/*
+ * This is a helper static function that removes a menu (given its pointer)
+ * from any windows that can be accessed from a given parent...
+ */
+static void fghRemoveMenuFromWindow( SFG_Window* window, SFG_Menu* menu )
+{
+    SFG_Window *subWindow;
+    int i;
+
+    /* Check whether this is the active menu in the window */
+    if ( menu == window->ActiveMenu )
+        window->ActiveMenu = NULL ;
+
+    /*
+     * Check if the menu is attached to the current window,
+     * if so, have it detached (by overwriting with a NULL):
+     */
+    for( i = 0; i < FREEGLUT_MAX_MENUS; i++ )
+        if( window->Menu[ i ] == menu )
+            window->Menu[ i ] = NULL;
+
+    /* Call this function for all of the window's children recursively: */
+    for( subWindow = (SFG_Window *)window->Children.First;
+         subWindow;
+         subWindow = (SFG_Window *)subWindow->Node.Next)
+        fghRemoveMenuFromWindow( subWindow, menu );
+}
+
+/*
+ * This is a static helper function that removes menu references
+ * from another menu, given two pointers to them...
+ */
+static void fghRemoveMenuFromMenu( SFG_Menu* from, SFG_Menu* menu )
+{
+    SFG_MenuEntry *entry;
+
+    for( entry = (SFG_MenuEntry *)from->Entries.First;
+         entry;
+         entry = ( SFG_MenuEntry * )entry->Node.Next )
+        if( entry->SubMenu == menu )
+            entry->SubMenu = NULL;
+}
+
+/*
+ * This function destroys a menu specified by the parameter. All menus
+ * and windows are updated to make sure no ill pointers hang around.
+ */
+void fgDestroyMenu( SFG_Menu* menu )
+{
+    SFG_Window *window;
+    SFG_Menu *from;
+
+    FREEGLUT_INTERNAL_ERROR_EXIT ( menu, "Menu destroy function called with null menu",
+                                   "fgDestroyMenu" );
+
+    /* First of all, have all references to this menu removed from all windows: */
+    for( window = (SFG_Window *)fgStructure.Windows.First;
+         window;
+         window = (SFG_Window *)window->Node.Next )
+        fghRemoveMenuFromWindow( window, menu );
+
+    /* Now proceed with removing menu entries that lead to this menu */
+    for( from = ( SFG_Menu * )fgStructure.Menus.First;
+         from;
+         from = ( SFG_Menu * )from->Node.Next )
+        fghRemoveMenuFromMenu( from, menu );
+
+    /*
+     * If the programmer defined a destroy callback, call it
+     * A. Donev: But first make this the active menu
+     */
+    if( menu->Destroy )
+    {
+        SFG_Menu *activeMenu=fgStructure.CurrentMenu;
+        fgStructure.CurrentMenu = menu;
+        menu->Destroy( );
+        fgStructure.CurrentMenu = activeMenu;
+    }
+
+    /*
+     * Now we are pretty sure the menu is not used anywhere
+     * and that we can remove all of its entries
+     */
+    while( menu->Entries.First )
+    {
+        SFG_MenuEntry *entry = ( SFG_MenuEntry * ) menu->Entries.First;
+
+        fgListRemove( &menu->Entries, &entry->Node );
+
+        if( entry->Text )
+            free( entry->Text );
+        entry->Text = NULL;
+
+        free( entry );
+    }
+
+    if( fgStructure.CurrentWindow == menu->Window )
+        fgSetWindow( NULL );
+    fgDestroyWindow( menu->Window );
+    fgListRemove( &fgStructure.Menus, &menu->Node );
+    if( fgStructure.CurrentMenu == menu )
+        fgStructure.CurrentMenu = NULL;
+
+    free( menu );
+}
+
+/*
+ * This function should be called on glutInit(). It will prepare the internal
+ * structure of freeglut to be used in the application. The structure will be
+ * destroyed using fgDestroyStructure() on glutMainLoop() return. In that
+ * case further use of freeglut should be preceeded with a glutInit() call.
+ */
+void fgCreateStructure( void )
+{
+    /*
+     * We will be needing two lists: the first containing windows,
+     * and the second containing the user-defined menus.
+     * Also, no current window/menu is set, as none has been created yet.
+     */
+
+    fgListInit(&fgStructure.Windows);
+    fgListInit(&fgStructure.Menus);
+    fgListInit(&fgStructure.WindowsToDestroy);
+
+    fgStructure.CurrentWindow = NULL;
+    fgStructure.CurrentMenu = NULL;
+    fgStructure.MenuContext = NULL;
+    fgStructure.GameModeWindow = NULL;
+    fgStructure.WindowID = 0;
+    fgStructure.MenuID = 0;
+}
+
+/*
+ * This function is automatically called on glutMainLoop() return.
+ * It should deallocate and destroy all remnants of previous
+ * glutInit()-enforced structure initialization...
+ */
+void fgDestroyStructure( void )
+{
+    /* Clean up the WindowsToDestroy list. */
+    fgCloseWindows( );
+
+    /* Make sure all windows and menus have been deallocated */
+    while( fgStructure.Menus.First )
+        fgDestroyMenu( ( SFG_Menu * )fgStructure.Menus.First );
+
+    while( fgStructure.Windows.First )
+        fgDestroyWindow( ( SFG_Window * )fgStructure.Windows.First );
+}
+
+/*
+ * Helper function to enumerate through all registered top-level windows
+ */
+void fgEnumWindows( FGCBenumerator enumCallback, SFG_Enumerator* enumerator )
+{
+    SFG_Window *window;
+
+    FREEGLUT_INTERNAL_ERROR_EXIT ( enumCallback && enumerator,
+                                   "Enumerator or callback missing from window enumerator call",
+                                   "fgEnumWindows" );
+
+    /* Check every of the top-level windows */
+    for( window = ( SFG_Window * )fgStructure.Windows.First;
+         window;
+         window = ( SFG_Window * )window->Node.Next )
+    {
+        enumCallback( window, enumerator );
+        if( enumerator->found )
+            return;
+    }
+}
+
+/*
+ * Helper function to enumerate through all a window's subwindows
+ * (single level descent)
+ */
+void fgEnumSubWindows( SFG_Window* window, FGCBenumerator enumCallback,
+                       SFG_Enumerator* enumerator )
+{
+    SFG_Window *child;
+
+    FREEGLUT_INTERNAL_ERROR_EXIT ( enumCallback && enumerator,
+                                   "Enumerator or callback missing from subwindow enumerator call",
+                                   "fgEnumSubWindows" );
+    FREEGLUT_INTERNAL_ERROR_EXIT_IF_NOT_INITIALISED ( "Window Enumeration" );
+
+    for( child = ( SFG_Window * )window->Children.First;
+         child;
+         child = ( SFG_Window * )child->Node.Next )
+    {
+        enumCallback( child, enumerator );
+        if( enumerator->found )
+            return;
+    }
+}
+
+/*
+ * A static helper function to look for a window given its handle
+ */
+static void fghcbWindowByHandle( SFG_Window *window,
+                                 SFG_Enumerator *enumerator )
+{
+    if ( enumerator->found )
+        return;
+
+    /* Check the window's handle. Hope this works. Looks ugly. That's for sure. */
+    if( window->Window.Handle == (SFG_WindowHandleType) (enumerator->data) )
+    {
+        enumerator->found = GL_TRUE;
+        enumerator->data = window;
+
+        return;
+    }
+
+    /* Otherwise, check this window's children */
+    fgEnumSubWindows( window, fghcbWindowByHandle, enumerator );
+}
+
+/*
+ * fgWindowByHandle returns a (SFG_Window *) value pointing to the
+ * first window in the queue matching the specified window handle.
+ * The function is defined in freeglut_structure.c file.
+ */
+SFG_Window* fgWindowByHandle ( SFG_WindowHandleType hWindow )
+{
+    SFG_Enumerator enumerator;
+
+    /* This is easy and makes use of the windows enumeration defined above */
+    enumerator.found = GL_FALSE;
+    enumerator.data = (void *)hWindow;
+    fgEnumWindows( fghcbWindowByHandle, &enumerator );
+
+    if( enumerator.found )
+        return( SFG_Window *) enumerator.data;
+    return NULL;
+}
+
+/*
+ * A static helper function to look for a window given its ID
+ */
+static void fghcbWindowByID( SFG_Window *window, SFG_Enumerator *enumerator )
+{
+    /* Make sure we do not overwrite our precious results... */
+    if( enumerator->found )
+        return;
+
+    /* Check the window's handle. Hope this works. Looks ugly. That's for sure. */
+    if( window->ID == *( int *)(enumerator->data) )
+    {
+        enumerator->found = GL_TRUE;
+        enumerator->data = window;
+
+        return;
+    }
+
+    /* Otherwise, check this window's children */
+    fgEnumSubWindows( window, fghcbWindowByID, enumerator );
+}
+
+/*
+ * This function is similiar to the previous one, except it is
+ * looking for a specified (sub)window identifier. The function
+ * is defined in freeglut_structure.c file.
+ */
+SFG_Window* fgWindowByID( int windowID )
+{
+    SFG_Enumerator enumerator;
+
+    /* Uses a method very similiar for fgWindowByHandle... */
+    enumerator.found = GL_FALSE;
+    enumerator.data = ( void * )&windowID;
+    fgEnumWindows( fghcbWindowByID, &enumerator );
+    if( enumerator.found )
+        return ( SFG_Window * )enumerator.data;
+    return NULL;
+}
+
+/*
+ * Looks up a menu given its ID. This is easier that fgWindowByXXX
+ * as all menus are placed in one doubly linked list...
+ */
+SFG_Menu* fgMenuByID( int menuID )
+{
+    SFG_Menu *menu = NULL;
+
+    /* It's enough to check all entries in fgStructure.Menus... */
+    for( menu = (SFG_Menu *)fgStructure.Menus.First;
+         menu;
+         menu = (SFG_Menu *)menu->Node.Next )
+        if( menu->ID == menuID )
+            return menu;
+    return NULL;
+}
+
+/*
+ * List functions...
+ */
+void fgListInit(SFG_List *list)
+{
+    list->First = NULL;
+    list->Last = NULL;
+}
+
+void fgListAppend(SFG_List *list, SFG_Node *node)
+{
+    if ( list->Last )
+    {
+        SFG_Node *ln = (SFG_Node *) list->Last;
+        ln->Next = node;
+        node->Prev = ln;
+    }
+    else
+    {
+        node->Prev = NULL;
+        list->First = node;
+    }
+
+    node->Next = NULL;
+    list->Last = node;
+}
+
+void fgListRemove(SFG_List *list, SFG_Node *node)
+{
+    if( node->Next )
+        ( ( SFG_Node * )node->Next )->Prev = node->Prev;
+    if( node->Prev )
+        ( ( SFG_Node * )node->Prev )->Next = node->Next;
+    if( ( ( SFG_Node * )list->First ) == node )
+        list->First = node->Next;
+    if( ( ( SFG_Node * )list->Last ) == node )
+        list->Last = node->Prev;
+}
+
+int fgListLength(SFG_List *list)
+{
+    SFG_Node *node;
+    int length = 0;
+
+    for( node =( SFG_Node * )list->First;
+         node;
+         node = ( SFG_Node * )node->Next )
+        ++length;
+
+    return length;
+}
+
+
+void fgListInsert(SFG_List *list, SFG_Node *next, SFG_Node *node)
+{
+    SFG_Node *prev;
+
+    if( (node->Next = next) )
+    {
+        prev = next->Prev;
+        next->Prev = node;
+    }
+    else
+    {
+        prev = list->Last;
+        list->Last = node;
+    }
+
+    if( (node->Prev = prev) )
+        prev->Next = node;
+    else
+        list->First = node;
+}
+
+/*** END OF FILE ***/
diff --git a/src/fg_teapot.c b/src/fg_teapot.c
new file mode 100644 (file)
index 0000000..41d0fee
--- /dev/null
@@ -0,0 +1,200 @@
+/*
+ * freeglut_teapot.c
+ *
+ * Teapot(tm) rendering code.
+ *
+ * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
+ * Written by Pawel W. Olszta, <olszta@sourceforge.net>
+ * Creation date: Fri Dec 24 1999
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * Original teapot code copyright follows:
+ */
+
+/*
+ * (c) Copyright 1993, Silicon Graphics, Inc.
+ *
+ * ALL RIGHTS RESERVED
+ *
+ * Permission to use, copy, modify, and distribute this software
+ * for any purpose and without fee is hereby granted, provided
+ * that the above copyright notice appear in all copies and that
+ * both the copyright notice and this permission notice appear in
+ * supporting documentation, and that the name of Silicon
+ * Graphics, Inc. not be used in advertising or publicity
+ * pertaining to distribution of the software without specific,
+ * written prior permission.
+ *
+ * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU
+ * "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR
+ * OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF
+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  IN NO
+ * EVENT SHALL SILICON GRAPHICS, INC.  BE LIABLE TO YOU OR ANYONE
+ * ELSE FOR ANY DIRECT, SPECIAL, INCIDENTAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER,
+ * INCLUDING WITHOUT LIMITATION, LOSS OF PROFIT, LOSS OF USE,
+ * SAVINGS OR REVENUE, OR THE CLAIMS OF THIRD PARTIES, WHETHER OR
+ * NOT SILICON GRAPHICS, INC.  HAS BEEN ADVISED OF THE POSSIBILITY
+ * OF SUCH LOSS, HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * ARISING OUT OF OR IN CONNECTION WITH THE POSSESSION, USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ *
+ * US Government Users Restricted Rights
+ *
+ * Use, duplication, or disclosure by the Government is subject to
+ * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
+ * (c)(1)(ii) of the Rights in Technical Data and Computer
+ * Software clause at DFARS 252.227-7013 and/or in similar or
+ * successor clauses in the FAR or the DOD or NASA FAR
+ * Supplement.  Unpublished-- rights reserved under the copyright
+ * laws of the United States.  Contractor/manufacturer is Silicon
+ * Graphics, Inc., 2011 N.  Shoreline Blvd., Mountain View, CA
+ * 94039-7311.
+ *
+ * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
+ */
+
+#include <GL/freeglut.h>
+#include "fg_internal.h"
+#include "fg_teapot_data.h"
+
+/* -- PRIVATE FUNCTIONS ---------------------------------------------------- */
+
+
+static void fghTeapot( GLint grid, GLdouble scale, GLenum type )
+{
+#if defined(_WIN32_WCE)
+               int i, numV=sizeof(strip_vertices)/4, numI=sizeof(strip_normals)/4;
+#else
+    double p[4][4][3], q[4][4][3], r[4][4][3], s[4][4][3];
+    long i, j, k, l;
+#endif
+
+    glPushAttrib( GL_ENABLE_BIT | GL_EVAL_BIT );
+    glEnable( GL_AUTO_NORMAL );
+    glEnable( GL_NORMALIZE );
+    glEnable( GL_MAP2_VERTEX_3 );
+    glEnable( GL_MAP2_TEXTURE_COORD_2 );
+
+    glPushMatrix();
+    glRotated( 270.0, 1.0, 0.0, 0.0 );
+    glScaled( 0.5 * scale, 0.5 * scale, 0.5 * scale );
+    glTranslated( 0.0, 0.0, -1.5 );
+
+#if defined(_WIN32_WCE)
+    glRotated( 90.0, 1.0, 0.0, 0.0 );
+    glBegin( GL_TRIANGLE_STRIP );
+
+    for( i = 0; i < numV-1; i++ )
+    {
+        int vidx = strip_vertices[i],
+            nidx = strip_normals[i];
+
+        if( vidx != -1 )
+        {
+            glNormal3fv( normals[nidx]  );
+            glVertex3fv( vertices[vidx] );
+        }
+        else
+        {
+            glEnd();
+            glBegin( GL_TRIANGLE_STRIP );
+        }
+    }
+
+    glEnd();
+#else
+    for (i = 0; i < 10; i++) {
+      for (j = 0; j < 4; j++) {
+        for (k = 0; k < 4; k++) {
+          for (l = 0; l < 3; l++) {
+            p[j][k][l] = cpdata[patchdata[i][j * 4 + k]][l];
+            q[j][k][l] = cpdata[patchdata[i][j * 4 + (3 - k)]][l];
+            if (l == 1)
+              q[j][k][l] *= -1.0;
+            if (i < 6) {
+              r[j][k][l] =
+                cpdata[patchdata[i][j * 4 + (3 - k)]][l];
+              if (l == 0)
+                r[j][k][l] *= -1.0;
+              s[j][k][l] = cpdata[patchdata[i][j * 4 + k]][l];
+              if (l == 0)
+                s[j][k][l] *= -1.0;
+              if (l == 1)
+                s[j][k][l] *= -1.0;
+            }
+          }
+        }
+      }
+
+      glMap2d(GL_MAP2_TEXTURE_COORD_2, 0.0, 1.0, 2, 2, 0.0, 1.0, 4, 2,
+        &tex[0][0][0]);
+      glMap2d(GL_MAP2_VERTEX_3, 0.0, 1.0, 3, 4, 0.0, 1.0, 12, 4,
+        &p[0][0][0]);
+      glMapGrid2d(grid, 0.0, 1.0, grid, 0.0, 1.0);
+      glEvalMesh2(type, 0, grid, 0, grid);
+      glMap2d(GL_MAP2_VERTEX_3, 0.0, 1.0, 3, 4, 0.0, 1.0, 12, 4,
+        &q[0][0][0]);
+      glEvalMesh2(type, 0, grid, 0, grid);
+      if (i < 6) {
+        glMap2d(GL_MAP2_VERTEX_3, 0.0, 1.0, 3, 4, 0.0, 1.0, 12, 4,
+          &r[0][0][0]);
+        glEvalMesh2(type, 0, grid, 0, grid);
+        glMap2d(GL_MAP2_VERTEX_3, 0.0, 1.0, 3, 4, 0.0, 1.0, 12, 4,
+          &s[0][0][0]);
+        glEvalMesh2(type, 0, grid, 0, grid);
+      }
+    }
+#endif  /* defined(_WIN32_WCE) */
+
+    glPopMatrix();
+    glPopAttrib();
+}
+
+
+/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
+
+/*
+ * Renders a beautiful wired teapot...
+ */
+void FGAPIENTRY glutWireTeapot( GLdouble size )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutWireTeapot" );
+    /* We will use the general teapot rendering code */
+    fghTeapot( 10, size, GL_LINE );
+}
+
+/*
+ * Renders a beautiful filled teapot...
+ */
+void FGAPIENTRY glutSolidTeapot( GLdouble size )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSolidTeapot" );
+    /* We will use the general teapot rendering code */
+    fghTeapot( 7, size, GL_FILL );
+}
+
+/*** END OF FILE ***/
+
+
+
+
+
diff --git a/src/fg_teapot_data.h b/src/fg_teapot_data.h
new file mode 100644 (file)
index 0000000..3bf83e1
--- /dev/null
@@ -0,0 +1,2429 @@
+/*
+ * freeglut_teapot_data.h
+ *
+ * The freeglut library teapot data include file.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#ifndef  FREEGLUT_TEAPOT_DATA_H
+#define  FREEGLUT_TEAPOT_DATA_H
+
+#if defined(_WIN32_WCE)
+/*
+ * Submitted through the kind offices of Daniel Wagner (daniel@ims.tuwien.ac.at)
+ */
+
+/* 530 vertices */
+
+const int numVertices = 530;
+const float vertices[530][3] =  {
+2.1f, 3.6f, 0.0f, 
+2.071f, 3.711f, 0.0f, 
+2.105f, 3.748f, 0.0f, 
+2.174f, 3.711f, 0.0f, 
+2.25f, 3.6f, 0.0f, 
+1.937f, 3.6f, 0.8242f, 
+1.91f, 3.711f, 0.8128f, 
+1.942f, 3.748f, 0.8261f, 
+2.005f, 3.711f, 0.8532f, 
+2.076f, 3.6f, 0.8831f, 
+1.491f, 3.6f, 1.491f, 
+1.47f, 3.711f, 1.47f, 
+1.494f, 3.748f, 1.494f, 
+1.543f, 3.711f, 1.543f, 
+1.597f, 3.6f, 1.597f, 
+0.8242f, 3.6f, 1.937f, 
+0.8128f, 3.711f, 1.91f, 
+0.8261f, 3.748f, 1.942f, 
+0.8532f, 3.711f, 2.005f, 
+0.8831f, 3.6f, 2.076f, 
+0.0f, 3.6f, 2.1f, 
+0.0f, 3.711f, 2.071f, 
+0.0f, 3.748f, 2.105f, 
+0.0f, 3.711f, 2.174f, 
+0.0f, 3.6f, 2.25f, 
+-0.8812f, 3.6f, 1.937f, 
+-0.8368f, 3.711f, 1.91f, 
+-0.8332f, 3.748f, 1.942f, 
+-0.8541f, 3.711f, 2.005f, 
+-0.8831f, 3.6f, 2.076f, 
+-1.542f, 3.6f, 1.491f, 
+-1.492f, 3.711f, 1.47f, 
+-1.501f, 3.748f, 1.494f, 
+-1.544f, 3.711f, 1.543f, 
+-1.597f, 3.6f, 1.597f, 
+-1.956f, 3.6f, 0.8242f, 
+-1.918f, 3.711f, 0.8128f, 
+-1.944f, 3.748f, 0.8261f, 
+-2.006f, 3.711f, 0.8532f, 
+-2.076f, 3.6f, 0.8831f, 
+-2.1f, 3.6f, 0.0f, 
+-2.071f, 3.711f, 0.0f, 
+-2.105f, 3.748f, 0.0f, 
+-2.174f, 3.711f, 0.0f, 
+-2.25f, 3.6f, 0.0f, 
+-1.937f, 3.6f, -0.8242f, 
+-1.91f, 3.711f, -0.8128f, 
+-1.942f, 3.748f, -0.8261f, 
+-2.005f, 3.711f, -0.8532f, 
+-2.076f, 3.6f, -0.8831f, 
+-1.491f, 3.6f, -1.491f, 
+-1.47f, 3.711f, -1.47f, 
+-1.494f, 3.748f, -1.494f, 
+-1.543f, 3.711f, -1.543f, 
+-1.597f, 3.6f, -1.597f, 
+-0.8242f, 3.6f, -1.937f, 
+-0.8128f, 3.711f, -1.91f, 
+-0.8261f, 3.748f, -1.942f, 
+-0.8532f, 3.711f, -2.005f, 
+-0.8831f, 3.6f, -2.076f, 
+0.0f, 3.6f, -2.1f, 
+0.0f, 3.711f, -2.071f, 
+0.0f, 3.748f, -2.105f, 
+0.0f, 3.711f, -2.174f, 
+0.0f, 3.6f, -2.25f, 
+0.8242f, 3.6f, -1.937f, 
+0.8128f, 3.711f, -1.91f, 
+0.8261f, 3.748f, -1.942f, 
+0.8532f, 3.711f, -2.005f, 
+0.8831f, 3.6f, -2.076f, 
+1.491f, 3.6f, -1.491f, 
+1.47f, 3.711f, -1.47f, 
+1.494f, 3.748f, -1.494f, 
+1.543f, 3.711f, -1.543f, 
+1.597f, 3.6f, -1.597f, 
+1.937f, 3.6f, -0.8242f, 
+1.91f, 3.711f, -0.8128f, 
+1.942f, 3.748f, -0.8261f, 
+2.005f, 3.711f, -0.8532f, 
+2.076f, 3.6f, -0.8831f, 
+2.525f, 3.011f, 0.0f, 
+2.766f, 2.433f, 0.0f, 
+2.936f, 1.876f, 0.0f, 
+3.0f, 1.35f, 0.0f, 
+2.33f, 3.011f, 0.9912f, 
+2.551f, 2.433f, 1.086f, 
+2.708f, 1.876f, 1.152f, 
+2.767f, 1.35f, 1.178f, 
+1.793f, 3.011f, 1.793f, 
+1.964f, 2.433f, 1.964f, 
+2.084f, 1.876f, 2.084f, 
+2.13f, 1.35f, 2.13f, 
+0.9912f, 3.011f, 2.33f, 
+1.086f, 2.433f, 2.551f, 
+1.152f, 1.876f, 2.708f, 
+1.178f, 1.35f, 2.767f, 
+0.0f, 3.011f, 2.525f, 
+0.0f, 2.433f, 2.766f, 
+0.0f, 1.876f, 2.936f, 
+0.0f, 1.35f, 3.0f, 
+-0.9912f, 3.011f, 2.33f, 
+-1.086f, 2.433f, 2.551f, 
+-1.152f, 1.876f, 2.708f, 
+-1.178f, 1.35f, 2.767f, 
+-1.793f, 3.011f, 1.793f, 
+-1.964f, 2.433f, 1.964f, 
+-2.084f, 1.876f, 2.084f, 
+-2.13f, 1.35f, 2.13f, 
+-2.33f, 3.011f, 0.9912f, 
+-2.551f, 2.433f, 1.086f, 
+-2.708f, 1.876f, 1.152f, 
+-2.767f, 1.35f, 1.178f, 
+-2.525f, 3.011f, 0.0f, 
+-2.766f, 2.433f, 0.0f, 
+-2.936f, 1.876f, 0.0f, 
+-3.0f, 1.35f, 0.0f, 
+-2.33f, 3.011f, -0.9912f, 
+-2.551f, 2.433f, -1.086f, 
+-2.708f, 1.876f, -1.152f, 
+-2.767f, 1.35f, -1.178f, 
+-1.793f, 3.011f, -1.793f, 
+-1.964f, 2.433f, -1.964f, 
+-2.084f, 1.876f, -2.084f, 
+-2.13f, 1.35f, -2.13f, 
+-0.9912f, 3.011f, -2.33f, 
+-1.086f, 2.433f, -2.551f, 
+-1.152f, 1.876f, -2.708f, 
+-1.178f, 1.35f, -2.767f, 
+0.0f, 3.011f, -2.525f, 
+0.0f, 2.433f, -2.766f, 
+0.0f, 1.876f, -2.936f, 
+0.0f, 1.35f, -3.0f, 
+0.9912f, 3.011f, -2.33f, 
+1.086f, 2.433f, -2.551f, 
+1.152f, 1.876f, -2.708f, 
+1.178f, 1.35f, -2.767f, 
+1.793f, 3.011f, -1.793f, 
+1.964f, 2.433f, -1.964f, 
+2.084f, 1.876f, -2.084f, 
+2.13f, 1.35f, -2.13f, 
+2.33f, 3.011f, -0.9912f, 
+2.551f, 2.433f, -1.086f, 
+2.708f, 1.876f, -1.152f, 
+2.767f, 1.35f, -1.178f, 
+2.883f, 0.9053f, 0.0f, 
+2.625f, 0.5766f, 0.0f, 
+2.367f, 0.3533f, 0.0f, 
+2.25f, 0.225f, 0.0f, 
+2.659f, 0.9053f, 1.132f, 
+2.422f, 0.5766f, 1.03f, 
+2.184f, 0.3533f, 0.9291f, 
+2.076f, 0.225f, 0.8831f, 
+2.047f, 0.9053f, 2.047f, 
+1.864f, 0.5766f, 1.864f, 
+1.681f, 0.3533f, 1.681f, 
+1.597f, 0.225f, 1.597f, 
+1.132f, 0.9053f, 2.659f, 
+1.03f, 0.5766f, 2.422f, 
+0.9291f, 0.3533f, 2.184f, 
+0.8831f, 0.225f, 2.076f, 
+0.0f, 0.9053f, 2.883f, 
+0.0f, 0.5766f, 2.625f, 
+0.0f, 0.3533f, 2.367f, 
+0.0f, 0.225f, 2.25f, 
+-1.132f, 0.9053f, 2.659f, 
+-1.03f, 0.5766f, 2.422f, 
+-0.9291f, 0.3533f, 2.184f, 
+-0.8831f, 0.225f, 2.076f, 
+-2.047f, 0.9053f, 2.047f, 
+-1.864f, 0.5766f, 1.864f, 
+-1.681f, 0.3533f, 1.681f, 
+-1.597f, 0.225f, 1.597f, 
+-2.659f, 0.9053f, 1.132f, 
+-2.422f, 0.5766f, 1.03f, 
+-2.184f, 0.3533f, 0.9291f, 
+-2.076f, 0.225f, 0.8831f, 
+-2.883f, 0.9053f, 0.0f, 
+-2.625f, 0.5766f, 0.0f, 
+-2.367f, 0.3533f, 0.0f, 
+-2.25f, 0.225f, 0.0f, 
+-2.659f, 0.9053f, -1.132f, 
+-2.422f, 0.5766f, -1.03f, 
+-2.184f, 0.3533f, -0.9291f, 
+-2.076f, 0.225f, -0.8831f, 
+-2.047f, 0.9053f, -2.047f, 
+-1.864f, 0.5766f, -1.864f, 
+-1.681f, 0.3533f, -1.681f, 
+-1.597f, 0.225f, -1.597f, 
+-1.132f, 0.9053f, -2.659f, 
+-1.03f, 0.5766f, -2.422f, 
+-0.9291f, 0.3533f, -2.184f, 
+-0.8831f, 0.225f, -2.076f, 
+0.0f, 0.9053f, -2.883f, 
+0.0f, 0.5766f, -2.625f, 
+0.0f, 0.3533f, -2.367f, 
+0.0f, 0.225f, -2.25f, 
+1.132f, 0.9053f, -2.659f, 
+1.03f, 0.5766f, -2.422f, 
+0.9291f, 0.3533f, -2.184f, 
+0.8831f, 0.225f, -2.076f, 
+2.047f, 0.9053f, -2.047f, 
+1.864f, 0.5766f, -1.864f, 
+1.681f, 0.3533f, -1.681f, 
+1.597f, 0.225f, -1.597f, 
+2.659f, 0.9053f, -1.132f, 
+2.422f, 0.5766f, -1.03f, 
+2.184f, 0.3533f, -0.9291f, 
+2.076f, 0.225f, -0.8831f, 
+2.199f, 0.1424f, 0.0f, 
+1.927f, 0.07031f, 0.0f, 
+1.253f, 0.01934f, 0.0f, 
+0.0f, 0.0f, 0.0f, 
+2.029f, 0.1424f, 0.8631f, 
+1.777f, 0.07031f, 0.7562f, 
+1.156f, 0.01934f, 0.4919f, 
+1.561f, 0.1424f, 1.561f, 
+1.368f, 0.07031f, 1.368f, 
+0.8899f, 0.01934f, 0.8899f, 
+0.8631f, 0.1424f, 2.029f, 
+0.7562f, 0.07031f, 1.777f, 
+0.4919f, 0.01934f, 1.156f, 
+0.0f, 0.1424f, 2.199f, 
+0.0f, 0.07031f, 1.927f, 
+0.0f, 0.01934f, 1.253f, 
+-0.8631f, 0.1424f, 2.029f, 
+-0.7562f, 0.07031f, 1.777f, 
+-0.4919f, 0.01934f, 1.156f, 
+-1.561f, 0.1424f, 1.561f, 
+-1.368f, 0.07031f, 1.368f, 
+-0.8899f, 0.01934f, 0.8899f, 
+-2.029f, 0.1424f, 0.8631f, 
+-1.777f, 0.07031f, 0.7562f, 
+-1.156f, 0.01934f, 0.4919f, 
+-2.199f, 0.1424f, 0.0f, 
+-1.927f, 0.07031f, 0.0f, 
+-1.253f, 0.01934f, 0.0f, 
+-2.029f, 0.1424f, -0.8631f, 
+-1.777f, 0.07031f, -0.7562f, 
+-1.156f, 0.01934f, -0.4919f, 
+-1.561f, 0.1424f, -1.561f, 
+-1.368f, 0.07031f, -1.368f, 
+-0.8899f, 0.01934f, -0.8899f, 
+-0.8631f, 0.1424f, -2.029f, 
+-0.7562f, 0.07031f, -1.777f, 
+-0.4919f, 0.01934f, -1.156f, 
+0.0f, 0.1424f, -2.199f, 
+0.0f, 0.07031f, -1.927f, 
+0.0f, 0.01934f, -1.253f, 
+0.8631f, 0.1424f, -2.029f, 
+0.7562f, 0.07031f, -1.777f, 
+0.4919f, 0.01934f, -1.156f, 
+1.561f, 0.1424f, -1.561f, 
+1.368f, 0.07031f, -1.368f, 
+0.8899f, 0.01934f, -0.8899f, 
+2.029f, 0.1424f, -0.8631f, 
+1.777f, 0.07031f, -0.7562f, 
+1.156f, 0.01934f, -0.4919f, 
+-2.4f, 3.038f, 0.0f, 
+-3.101f, 3.032f, 0.0f, 
+-3.619f, 2.995f, 0.0f, 
+-3.94f, 2.895f, 0.0f, 
+-4.05f, 2.7f, 0.0f, 
+-2.377f, 3.09f, 0.2531f, 
+-3.122f, 3.084f, 0.2531f, 
+-3.669f, 3.041f, 0.2531f, 
+-4.005f, 2.926f, 0.2531f, 
+-4.12f, 2.7f, 0.2531f, 
+-2.325f, 3.206f, 0.3375f, 
+-3.168f, 3.198f, 0.3375f, 
+-3.778f, 3.143f, 0.3375f, 
+-4.15f, 2.993f, 0.3375f, 
+-4.275f, 2.7f, 0.3375f, 
+-2.273f, 3.322f, 0.2531f, 
+-3.214f, 3.313f, 0.2531f, 
+-3.888f, 3.244f, 0.2531f, 
+-4.294f, 3.06f, 0.2531f, 
+-4.43f, 2.7f, 0.2531f, 
+-2.25f, 3.375f, 0.0f, 
+-3.234f, 3.364f, 0.0f, 
+-3.938f, 3.291f, 0.0f, 
+-4.359f, 3.09f, 0.0f, 
+-4.5f, 2.7f, 0.0f, 
+-2.273f, 3.322f, -0.2531f, 
+-3.214f, 3.313f, -0.2531f, 
+-3.888f, 3.244f, -0.2531f, 
+-4.294f, 3.06f, -0.2531f, 
+-4.43f, 2.7f, -0.2531f, 
+-2.325f, 3.206f, -0.3375f, 
+-3.168f, 3.198f, -0.3375f, 
+-3.778f, 3.143f, -0.3375f, 
+-4.15f, 2.993f, -0.3375f, 
+-4.275f, 2.7f, -0.3375f, 
+-2.377f, 3.09f, -0.2531f, 
+-3.122f, 3.084f, -0.2531f, 
+-3.669f, 3.041f, -0.2531f, 
+-4.005f, 2.926f, -0.2531f, 
+-4.12f, 2.7f, -0.2531f, 
+-3.991f, 2.394f, 0.0f, 
+-3.806f, 2.025f, 0.0f, 
+-3.48f, 1.656f, 0.0f, 
+-3.0f, 1.35f, 0.0f, 
+-4.055f, 2.365f, 0.2531f, 
+-3.852f, 1.98f, 0.2531f, 
+-3.496f, 1.6f, 0.2531f, 
+-2.977f, 1.28f, 0.2531f, 
+-4.196f, 2.3f, 0.3375f, 
+-3.952f, 1.881f, 0.3375f, 
+-3.531f, 1.478f, 0.3375f, 
+-2.925f, 1.125f, 0.3375f, 
+-4.336f, 2.235f, 0.2531f, 
+-4.051f, 1.782f, 0.2531f, 
+-3.566f, 1.356f, 0.2531f, 
+-2.873f, 0.9703f, 0.2531f, 
+-4.4f, 2.205f, 0.0f, 
+-4.097f, 1.737f, 0.0f, 
+-3.582f, 1.3f, 0.0f, 
+-2.85f, 0.9f, 0.0f, 
+-4.336f, 2.235f, -0.2531f, 
+-4.051f, 1.782f, -0.2531f, 
+-3.566f, 1.356f, -0.2531f, 
+-2.873f, 0.9703f, -0.2531f, 
+-4.196f, 2.3f, -0.3375f, 
+-3.952f, 1.881f, -0.3375f, 
+-3.531f, 1.478f, -0.3375f, 
+-2.925f, 1.125f, -0.3375f, 
+-4.055f, 2.365f, -0.2531f, 
+-3.852f, 1.98f, -0.2531f, 
+-3.496f, 1.6f, -0.2531f, 
+-2.977f, 1.28f, -0.2531f, 
+2.55f, 2.137f, 0.0f, 
+3.27f, 2.303f, 0.0f, 
+3.581f, 2.7f, 0.0f, 
+3.752f, 3.182f, 0.0f, 
+4.05f, 3.6f, 0.0f, 
+2.55f, 1.944f, 0.5569f, 
+3.324f, 2.159f, 0.5028f, 
+3.652f, 2.617f, 0.3839f, 
+3.838f, 3.151f, 0.265f, 
+4.191f, 3.6f, 0.2109f, 
+2.55f, 1.519f, 0.7425f, 
+3.445f, 1.844f, 0.6704f, 
+3.806f, 2.433f, 0.5119f, 
+4.027f, 3.085f, 0.3533f, 
+4.5f, 3.6f, 0.2813f, 
+2.55f, 1.093f, 0.5569f, 
+3.566f, 1.529f, 0.5028f, 
+3.961f, 2.249f, 0.3839f, 
+4.215f, 3.018f, 0.265f, 
+4.809f, 3.6f, 0.2109f, 
+2.55f, 0.9f, 0.0f, 
+3.621f, 1.385f, 0.0f, 
+4.031f, 2.166f, 0.0f, 
+4.301f, 2.988f, 0.0f, 
+4.95f, 3.6f, 0.0f, 
+2.55f, 1.093f, -0.5569f, 
+3.566f, 1.529f, -0.5028f, 
+3.961f, 2.249f, -0.3839f, 
+4.215f, 3.018f, -0.265f, 
+4.809f, 3.6f, -0.2109f, 
+2.55f, 1.519f, -0.7425f, 
+3.445f, 1.844f, -0.6704f, 
+3.806f, 2.433f, -0.5119f, 
+4.027f, 3.085f, -0.3533f, 
+4.5f, 3.6f, -0.2813f, 
+2.55f, 1.944f, -0.5569f, 
+3.324f, 2.159f, -0.5028f, 
+3.652f, 2.617f, -0.3839f, 
+3.838f, 3.151f, -0.265f, 
+4.191f, 3.6f, -0.2109f, 
+4.158f, 3.663f, 0.0f, 
+4.238f, 3.684f, 0.0f, 
+4.261f, 3.663f, 0.0f, 
+4.2f, 3.6f, 0.0f, 
+4.308f, 3.666f, 0.1978f, 
+4.379f, 3.689f, 0.1687f, 
+4.381f, 3.668f, 0.1397f, 
+4.294f, 3.6f, 0.1266f, 
+4.64f, 3.673f, 0.2637f, 
+4.69f, 3.7f, 0.225f, 
+4.645f, 3.677f, 0.1863f, 
+4.5f, 3.6f, 0.1688f, 
+4.971f, 3.68f, 0.1978f, 
+5.001f, 3.711f, 0.1687f, 
+4.909f, 3.687f, 0.1397f, 
+4.706f, 3.6f, 0.1266f, 
+5.122f, 3.683f, 0.0f, 
+5.142f, 3.716f, 0.0f, 
+5.029f, 3.691f, 0.0f, 
+4.8f, 3.6f, 0.0f, 
+4.971f, 3.68f, -0.1978f, 
+5.001f, 3.711f, -0.1687f, 
+4.909f, 3.687f, -0.1397f, 
+4.706f, 3.6f, -0.1266f, 
+4.64f, 3.673f, -0.2637f, 
+4.69f, 3.7f, -0.225f, 
+4.645f, 3.677f, -0.1863f, 
+4.5f, 3.6f, -0.1688f, 
+4.308f, 3.666f, -0.1978f, 
+4.379f, 3.689f, -0.1687f, 
+4.381f, 3.668f, -0.1397f, 
+4.294f, 3.6f, -0.1266f, 
+0.0f, 4.725f, 0.0f, 
+0.5109f, 4.651f, 0.0f, 
+0.4875f, 4.472f, 0.0f, 
+0.2953f, 4.25f, 0.0f, 
+0.3f, 4.05f, 0.0f, 
+0.4715f, 4.651f, 0.2011f, 
+0.4499f, 4.472f, 0.1918f, 
+0.2725f, 4.25f, 0.1161f, 
+0.2768f, 4.05f, 0.1178f, 
+0.3632f, 4.651f, 0.3632f, 
+0.3465f, 4.472f, 0.3465f, 
+0.2098f, 4.25f, 0.2098f, 
+0.213f, 4.05f, 0.213f, 
+0.2011f, 4.651f, 0.4715f, 
+0.1918f, 4.472f, 0.4499f, 
+0.1161f, 4.25f, 0.2725f, 
+0.1178f, 4.05f, 0.2768f, 
+0.0f, 4.651f, 0.5109f, 
+0.0f, 4.472f, 0.4875f, 
+0.0f, 4.25f, 0.2953f, 
+0.0f, 4.05f, 0.3f, 
+-0.2011f, 4.651f, 0.4715f, 
+-0.1918f, 4.472f, 0.4499f, 
+-0.1161f, 4.25f, 0.2725f, 
+-0.1178f, 4.05f, 0.2768f, 
+-0.3632f, 4.651f, 0.3632f, 
+-0.3465f, 4.472f, 0.3465f, 
+-0.2098f, 4.25f, 0.2098f, 
+-0.213f, 4.05f, 0.213f, 
+-0.4715f, 4.651f, 0.2011f, 
+-0.4499f, 4.472f, 0.1918f, 
+-0.2725f, 4.25f, 0.1161f, 
+-0.2768f, 4.05f, 0.1178f, 
+-0.5109f, 4.651f, 0.0f, 
+-0.4875f, 4.472f, 0.0f, 
+-0.2953f, 4.25f, 0.0f, 
+-0.3f, 4.05f, 0.0f, 
+-0.4715f, 4.651f, -0.2011f, 
+-0.4499f, 4.472f, -0.1918f, 
+-0.2725f, 4.25f, -0.1161f, 
+-0.2768f, 4.05f, -0.1178f, 
+-0.3632f, 4.651f, -0.3632f, 
+-0.3465f, 4.472f, -0.3465f, 
+-0.2098f, 4.25f, -0.2098f, 
+-0.213f, 4.05f, -0.213f, 
+-0.2011f, 4.651f, -0.4715f, 
+-0.1918f, 4.472f, -0.4499f, 
+-0.1161f, 4.25f, -0.2725f, 
+-0.1178f, 4.05f, -0.2768f, 
+0.0f, 4.651f, -0.5109f, 
+0.0f, 4.472f, -0.4875f, 
+0.0f, 4.25f, -0.2953f, 
+0.0f, 4.05f, -0.3f, 
+0.2011f, 4.651f, -0.4715f, 
+0.1918f, 4.472f, -0.4499f, 
+0.1161f, 4.25f, -0.2725f, 
+0.1178f, 4.05f, -0.2768f, 
+0.3632f, 4.651f, -0.3632f, 
+0.3465f, 4.472f, -0.3465f, 
+0.2098f, 4.25f, -0.2098f, 
+0.213f, 4.05f, -0.213f, 
+0.4715f, 4.651f, -0.2011f, 
+0.4499f, 4.472f, -0.1918f, 
+0.2725f, 4.25f, -0.1161f, 
+0.2768f, 4.05f, -0.1178f, 
+0.6844f, 3.916f, 0.0f, 
+1.237f, 3.825f, 0.0f, 
+1.734f, 3.734f, 0.0f, 
+1.95f, 3.6f, 0.0f, 
+0.6313f, 3.916f, 0.2686f, 
+1.142f, 3.825f, 0.4857f, 
+1.6f, 3.734f, 0.6807f, 
+1.799f, 3.6f, 0.7654f, 
+0.4859f, 3.916f, 0.4859f, 
+0.8786f, 3.825f, 0.8786f, 
+1.231f, 3.734f, 1.231f, 
+1.385f, 3.6f, 1.385f, 
+0.2686f, 3.916f, 0.6313f, 
+0.4857f, 3.825f, 1.142f, 
+0.6807f, 3.734f, 1.6f, 
+0.7654f, 3.6f, 1.799f, 
+0.0f, 3.916f, 0.6844f, 
+0.0f, 3.825f, 1.237f, 
+0.0f, 3.734f, 1.734f, 
+0.0f, 3.6f, 1.95f, 
+-0.2686f, 3.916f, 0.6313f, 
+-0.4857f, 3.825f, 1.142f, 
+-0.6807f, 3.734f, 1.6f, 
+-0.7654f, 3.6f, 1.799f, 
+-0.4859f, 3.916f, 0.4859f, 
+-0.8786f, 3.825f, 0.8786f, 
+-1.231f, 3.734f, 1.231f, 
+-1.385f, 3.6f, 1.385f, 
+-0.6313f, 3.916f, 0.2686f, 
+-1.142f, 3.825f, 0.4857f, 
+-1.6f, 3.734f, 0.6807f, 
+-1.799f, 3.6f, 0.7654f, 
+-0.6844f, 3.916f, 0.0f, 
+-1.237f, 3.825f, 0.0f, 
+-1.734f, 3.734f, 0.0f, 
+-1.95f, 3.6f, 0.0f, 
+-0.6313f, 3.916f, -0.2686f, 
+-1.142f, 3.825f, -0.4857f, 
+-1.6f, 3.734f, -0.6807f, 
+-1.799f, 3.6f, -0.7654f, 
+-0.4859f, 3.916f, -0.4859f, 
+-0.8786f, 3.825f, -0.8786f, 
+-1.231f, 3.734f, -1.231f, 
+-1.385f, 3.6f, -1.385f, 
+-0.2686f, 3.916f, -0.6313f, 
+-0.4857f, 3.825f, -1.142f, 
+-0.6807f, 3.734f, -1.6f, 
+-0.7654f, 3.6f, -1.799f, 
+0.0f, 3.916f, -0.6844f, 
+0.0f, 3.825f, -1.237f, 
+0.0f, 3.734f, -1.734f, 
+0.0f, 3.6f, -1.95f, 
+0.2686f, 3.916f, -0.6313f, 
+0.4857f, 3.825f, -1.142f, 
+0.6807f, 3.734f, -1.6f, 
+0.7654f, 3.6f, -1.799f, 
+0.4859f, 3.916f, -0.4859f, 
+0.8786f, 3.825f, -0.8786f, 
+1.231f, 3.734f, -1.231f, 
+1.385f, 3.6f, -1.385f, 
+0.6313f, 3.916f, -0.2686f, 
+1.142f, 3.825f, -0.4857f, 
+1.6f, 3.734f, -0.6807f, 
+1.799f, 3.6f, -0.7654f
+};
+
+
+/* 530 normals */
+const int numNormals = 530;
+const float normals[530][3] = {
+0.0486f, -0.9986f, 0.0168f, 
+0.9976f, -0.0678f, -0.0008f, 
+-0.233f, 0.8502f, -0.4719f, 
+-0.2299f, 0.9679f, 0.1004f, 
+-0.1648f, 0.985f, 0.0501f, 
+-0.0117f, 0.7461f, 0.6656f, 
+-0.0888f, 0.9692f, 0.2294f, 
+0.6449f, -0.7172f, -0.2637f, 
+-0.066f, 0.9851f, 0.1583f, 
+-0.6585f, -0.342f, -0.6703f, 
+-0.293f, 0.9558f, 0.0209f, 
+0.179f, 0.9825f, -0.0513f, 
+-0.0094f, 0.903f, 0.4295f, 
+-0.0059f, -0.986f, -0.1662f, 
+-0.7355f, 0.6774f, -0.0026f, 
+-0.997f, 0.0763f, 0.0019f, 
+-0.1478f, 0.9333f, 0.3271f, 
+-0.3014f, -0.6034f, -0.7382f, 
+-0.7048f, -0.0681f, 0.706f, 
+-0.3361f, 0.9332f, 0.1263f, 
+0.3709f, 0.1524f, -0.916f, 
+-0.3399f, -0.4121f, 0.8453f, 
+0.1921f, 0.9724f, -0.1316f, 
+-0.2671f, 0.7429f, 0.6137f, 
+0.0888f, 0.9692f, -0.2294f, 
+0.066f, 0.9851f, -0.1583f, 
+0.9411f, 0.338f, 0.001f, 
+0.8666f, -0.2559f, 0.4282f, 
+-0.8029f, 0.4968f, 0.3293f, 
+-0.0008f, -0.0678f, -0.9976f, 
+-0.8453f, -0.4121f, -0.3399f, 
+-0.4801f, -0.8741f, 0.0733f, 
+0.6355f, -0.772f, 0.0006f, 
+-0.9215f, -0.0678f, 0.3822f, 
+-0.6698f, -0.6907f, -0.2723f, 
+0.3734f, 0.876f, -0.3051f, 
+0.3548f, -0.4118f, 0.8393f, 
+-0.3629f, 0.2429f, 0.8995f, 
+0.9033f, 0.2079f, 0.375f, 
+-0.2824f, 0.5939f, 0.7532f, 
+0.8938f, 0.4452f, 0.0532f, 
+0.1478f, 0.9333f, -0.3271f, 
+0.0085f, -0.0031f, -0.9999f, 
+0.3595f, 0.933f, 0.0115f, 
+0.8995f, 0.2429f, 0.3629f, 
+0.7048f, -0.0681f, -0.706f, 
+-0.6428f, -0.7172f, -0.2688f, 
+0.6366f, -0.447f, 0.6283f, 
+-0.1213f, -0.9861f, -0.1128f, 
+0.8003f, 0.4978f, 0.334f, 
+0.3361f, 0.9332f, -0.1263f, 
+0.3399f, -0.4121f, -0.8453f, 
+-0.3909f, 0.4452f, 0.8055f, 
+0.0117f, 0.7462f, -0.6655f, 
+0.9215f, -0.0678f, -0.3822f, 
+0.3582f, -0.7656f, 0.5343f, 
+-0.9782f, 0.2075f, -0.0011f, 
+0.2824f, 0.5939f, -0.7532f, 
+0.035f, -0.8413f, 0.5393f, 
+-0.8044f, 0.5934f, 0.0262f, 
+-0.1128f, -0.9861f, 0.1213f, 
+0.13f, -0.1396f, 0.9816f, 
+0.6644f, 0.3392f, 0.6659f, 
+-0.0042f, -0.6898f, -0.7239f, 
+-0.1587f, 0.9851f, 0.065f, 
+-0.8719f, -0.3415f, 0.3508f, 
+0.6486f, 0.4756f, -0.5941f, 
+-0.4991f, 0.8499f, -0.1684f, 
+-0.3969f, 0.6342f, -0.6634f, 
+0.7041f, -0.3863f, -0.5956f, 
+0.3909f, 0.4452f, -0.8055f, 
+-0.0391f, -0.0113f, 0.9991f, 
+-0.3321f, 0.5936f, -0.733f, 
+0.8523f, -0.5219f, -0.0338f, 
+0.329f, 0.4978f, 0.8023f, 
+0.8044f, 0.5934f, -0.0262f, 
+0.1128f, -0.9861f, -0.1213f, 
+0.0178f, 0.9861f, -0.1651f, 
+0.3491f, 0.4045f, 0.8452f, 
+-0.2727f, 0.8505f, 0.4496f, 
+0.065f, 0.9851f, 0.1587f, 
+-0.0005f, 0.4037f, 0.9148f, 
+-0.0077f, -0.4109f, -0.9116f, 
+0.5609f, -0.604f, 0.5661f, 
+0.8236f, 0.5668f, -0.0138f, 
+0.1587f, 0.9851f, -0.065f, 
+0.8719f, -0.3415f, -0.3508f, 
+-0.7382f, -0.6034f, 0.3014f, 
+0.0346f, 0.8495f, 0.5263f, 
+-0.4373f, -0.7921f, -0.4257f, 
+-0.0532f, 0.4452f, 0.8938f, 
+0.0689f, -0.9861f, 0.1509f, 
+-0.1509f, -0.9861f, 0.0689f, 
+0.7706f, -0.2424f, -0.5893f, 
+-0.7543f, -0.6564f, 0.0105f, 
+0.0005f, 0.4037f, -0.9148f, 
+-0.9116f, -0.4109f, 0.0077f, 
+0.0058f, -0.0438f, 0.999f, 
+0.1719f, 0.985f, 0.0005f, 
+-0.1697f, 0.9693f, 0.1774f, 
+0.5874f, -0.5124f, 0.6263f, 
+0.7382f, -0.6034f, -0.3014f, 
+-0.1518f, 0.985f, -0.081f, 
+0.646f, 0.4051f, 0.6468f, 
+0.334f, 0.4978f, -0.8003f, 
+-0.7354f, -0.6034f, -0.3082f, 
+-0.6919f, 0.2428f, -0.6798f, 
+0.0532f, 0.4452f, -0.8938f, 
+0.3547f, -0.3173f, 0.8794f, 
+0.9879f, -0.1547f, -0.0033f, 
+-0.0462f, -0.9986f, 0.0223f, 
+-0.6088f, 0.4806f, 0.6311f, 
+-0.109f, -0.1969f, -0.9743f, 
+0.1509f, -0.9861f, -0.0689f, 
+-0.0568f, 0.9983f, 0.0009f, 
+0.9074f, -0.3096f, -0.2839f, 
+0.8677f, 0.4969f, 0.0026f, 
+-0.2723f, -0.6907f, 0.6698f, 
+-0.4734f, -0.6798f, 0.5599f, 
+0.9116f, -0.4109f, -0.0077f, 
+0.1697f, 0.9693f, -0.1774f, 
+0.5875f, 0.5937f, 0.5497f, 
+-0.3232f, 0.6846f, 0.6533f, 
+-0.5078f, -0.6913f, 0.5139f, 
+-0.4612f, 0.7474f, -0.478f, 
+-0.2071f, -0.8049f, 0.556f, 
+-0.6976f, -0.7164f, -0.0027f, 
+-0.8697f, 0.3388f, 0.3587f, 
+0.0462f, -0.9986f, -0.0223f, 
+0.2723f, -0.6907f, -0.6698f, 
+-0.829f, -0.4466f, -0.3365f, 
+0.9148f, 0.4037f, 0.0005f, 
+-0.1583f, 0.9851f, -0.066f, 
+0.148f, 0.9838f, 0.1002f, 
+-0.1717f, 0.985f, -0.0162f, 
+-0.4282f, -0.2559f, 0.8666f, 
+0.3094f, -0.2556f, 0.9159f, 
+0.2803f, -0.6907f, 0.6665f, 
+-0.6154f, 0.497f, 0.6117f, 
+-0.0262f, 0.5934f, -0.8044f, 
+0.0286f, 0.1639f, -0.986f, 
+-0.6924f, 0.2083f, 0.6907f, 
+-0.0105f, 0.9975f, -0.0685f, 
+0.5078f, -0.6913f, -0.5139f, 
+0.2071f, -0.8049f, -0.556f, 
+-0.4903f, -0.7178f, -0.4942f, 
+-0.2637f, -0.7172f, -0.6449f, 
+-0.3822f, -0.0678f, -0.9215f, 
+0.8697f, 0.3388f, -0.3587f, 
+0.2461f, -0.805f, 0.5397f, 
+-0.2615f, 0.9334f, 0.2452f, 
+0.6187f, 0.747f, -0.243f, 
+0.0375f, -0.8401f, -0.5411f, 
+0.0054f, 0.9691f, 0.2464f, 
+0.3587f, 0.3388f, 0.8697f, 
+0.3993f, 0.6582f, -0.6381f, 
+-0.3476f, -0.4464f, -0.8245f, 
+0.099f, 0.9692f, 0.2251f, 
+-0.3666f, -0.3412f, 0.8655f, 
+0.0396f, 0.153f, -0.9874f, 
+0.0349f, 0.9969f, -0.0698f, 
+0.1096f, 0.985f, 0.1324f, 
+-0.0578f, -0.9861f, 0.1556f, 
+0.4479f, -0.5145f, -0.7311f, 
+0.6924f, 0.2083f, -0.6907f, 
+0.6096f, 0.747f, 0.265f, 
+-0.3508f, -0.3415f, -0.8719f, 
+-0.6215f, 0.4454f, -0.6443f, 
+-0.4942f, -0.7178f, 0.4903f, 
+-0.9402f, -0.3403f, -0.0085f, 
+0.0056f, -0.0358f, 0.9993f, 
+0.2615f, 0.9334f, -0.2452f, 
+-0.0024f, 0.0291f, -0.9995f, 
+-0.2667f, 0.9637f, -0.001f, 
+0.0569f, -0.2712f, -0.9608f, 
+0.7463f, 0.254f, 0.615f, 
+0.5153f, 0.6516f, -0.5564f, 
+0.0223f, -0.9986f, 0.0462f, 
+0.3666f, -0.3412f, -0.8655f, 
+0.0578f, -0.9861f, -0.1556f, 
+0.6111f, 0.4984f, 0.6148f, 
+-0.243f, 0.747f, -0.6187f, 
+-0.0092f, 0.2338f, -0.9722f, 
+0.478f, 0.7474f, -0.4612f, 
+-0.0058f, -0.4457f, -0.8951f, 
+-0.4856f, -0.6774f, -0.5524f, 
+0.54f, 0.6414f, 0.5448f, 
+-0.3365f, -0.4466f, 0.829f, 
+-0.2257f, 0.795f, 0.5629f, 
+0.8055f, 0.4452f, 0.3909f, 
+0.3729f, 0.208f, 0.9042f, 
+-0.727f, -0.2562f, 0.6369f, 
+-0.0514f, -0.9986f, 0.0029f, 
+0.9159f, 0.1555f, -0.3699f, 
+0.0019f, -0.2377f, -0.9713f, 
+0.4942f, -0.7178f, -0.4903f, 
+0.6497f, -0.4127f, 0.6383f, 
+0.0089f, 0.0486f, -0.9987f, 
+-0.0213f, 0.6301f, -0.7761f, 
+-0.9269f, -0.3751f, 0.0038f, 
+-0.1215f, 0.9852f, 0.1207f, 
+-0.5856f, 0.5198f, 0.6218f, 
+0.8655f, -0.3412f, 0.3666f, 
+-0.2464f, 0.9691f, 0.0054f, 
+0.0123f, 0.1386f, 0.9902f, 
+0.0179f, -0.0369f, 0.9991f, 
+-0.1207f, 0.9852f, -0.1215f, 
+-0.0081f, 0.5671f, 0.8235f, 
+-0.8689f, 0.3387f, -0.3607f, 
+0.0062f, 0.0309f, -0.9995f, 
+0.3365f, -0.4466f, -0.829f, 
+-0.3787f, 0.2424f, -0.8931f, 
+-0.2904f, 0.4454f, -0.8468f, 
+-0.8707f, 0.4915f, 0.0133f, 
+0.163f, -0.8182f, 0.5512f, 
+0.4337f, -0.8052f, 0.4041f, 
+0.0514f, -0.9986f, -0.0029f, 
+-0.0084f, 0.1303f, 0.9914f, 
+-0.706f, -0.0681f, -0.7048f, 
+-0.556f, -0.8049f, -0.2071f, 
+0.8448f, 0.4045f, 0.3501f, 
+0.4259f, -0.5474f, 0.7203f, 
+-0.6907f, 0.2083f, -0.6924f, 
+0.1215f, 0.9852f, -0.1207f, 
+-0.1263f, 0.9332f, -0.3361f, 
+0.7711f, -0.0741f, -0.6323f, 
+0.2464f, 0.9691f, -0.0054f, 
+0.1774f, 0.9693f, 0.1697f, 
+-0.9042f, 0.208f, 0.3729f, 
+-0.8393f, -0.4118f, 0.3548f, 
+0.6888f, -0.7219f, -0.0648f, 
+0.1556f, -0.9861f, 0.0578f, 
+0.3271f, 0.9333f, 0.1478f, 
+-0.0024f, 0.2379f, 0.9712f, 
+-0.0026f, 0.4969f, 0.8677f, 
+0.0f, 1.0f, 0.0f, 
+0.1912f, -0.9815f, -0.0025f, 
+-0.3762f, -0.6681f, 0.6418f, 
+-0.7759f, 0.0432f, 0.6292f, 
+-0.0208f, -0.8044f, -0.5936f, 
+-0.2274f, 0.8822f, -0.4122f, 
+0.7532f, 0.5939f, 0.2824f, 
+-0.9221f, -0.0681f, -0.3807f, 
+-0.2198f, 0.8494f, 0.4796f, 
+0.0065f, -0.7656f, 0.6431f, 
+-0.5876f, 0.4472f, -0.6742f, 
+0.7981f, -0.6024f, 0.0036f, 
+-0.0383f, -0.9986f, -0.0341f, 
+-0.6369f, -0.2562f, -0.727f, 
+-0.5497f, 0.5937f, 0.5875f, 
+0.1084f, 0.9431f, 0.314f, 
+0.9042f, 0.208f, -0.3729f, 
+-0.6659f, 0.3392f, 0.6644f, 
+0.8393f, -0.4118f, -0.3548f, 
+0.0029f, -0.9986f, 0.0514f, 
+-0.9647f, -0.2552f, -0.0635f, 
+-0.2294f, 0.9692f, -0.0888f, 
+0.0026f, 0.4969f, -0.8677f, 
+0.2452f, 0.9334f, 0.2615f, 
+0.5171f, -0.4876f, -0.7033f, 
+-0.8951f, -0.4457f, 0.0058f, 
+-0.5936f, -0.8044f, 0.0208f, 
+0.5642f, -0.5426f, -0.6222f, 
+0.5938f, 0.4451f, 0.6702f, 
+0.5497f, 0.5937f, -0.5875f, 
+0.6657f, 0.4653f, 0.5832f, 
+0.4857f, -0.6243f, 0.6117f, 
+-0.0486f, -0.9986f, -0.0168f, 
+-0.6468f, 0.4051f, 0.646f, 
+0.6659f, 0.3392f, -0.6644f, 
+0.1833f, 0.9735f, -0.1365f, 
+0.3955f, 0.8505f, 0.3465f, 
+0.5139f, -0.6913f, 0.5078f, 
+0.8023f, 0.4978f, -0.329f, 
+-0.001f, 0.338f, 0.9411f, 
+-0.2496f, 0.8321f, -0.4951f, 
+0.8951f, -0.4457f, -0.0058f, 
+0.233f, 0.8502f, 0.4719f, 
+-0.0168f, -0.9986f, 0.0486f, 
+0.5936f, -0.8044f, -0.0208f, 
+-0.05f, 0.3155f, 0.9475f, 
+0.6585f, -0.342f, 0.6703f, 
+0.4909f, -0.1864f, -0.8509f, 
+-0.37f, 0.9238f, -0.0973f, 
+0.6468f, 0.4051f, -0.646f, 
+0.0059f, -0.986f, 0.1662f, 
+-0.3724f, 0.9278f, -0.0202f, 
+-0.3501f, 0.4045f, 0.8448f, 
+-0.0425f, 0.8398f, -0.5411f, 
+-0.1684f, 0.8499f, 0.4991f, 
+-0.6665f, -0.6907f, 0.2803f, 
+-0.2251f, 0.9692f, 0.099f, 
+0.9241f, -0.3816f, -0.0169f, 
+0.001f, 0.338f, -0.9411f, 
+-0.9411f, 0.338f, -0.001f, 
+-0.8666f, -0.2559f, -0.4282f, 
+0.0262f, 0.5183f, -0.8547f, 
+0.3014f, -0.6034f, 0.7382f, 
+0.0168f, -0.9986f, -0.0486f, 
+-0.3548f, -0.4118f, -0.8393f, 
+-0.6023f, -0.5297f, 0.5971f, 
+-0.9033f, 0.2079f, -0.375f, 
+-0.8938f, 0.4452f, -0.0532f, 
+0.6044f, 0.7397f, 0.2957f, 
+0.0008f, -0.0678f, 0.9976f, 
+0.7058f, 0.0906f, -0.7025f, 
+0.8453f, -0.4121f, 0.3399f, 
+-0.3595f, 0.933f, -0.0115f, 
+0.6698f, -0.6907f, 0.2723f, 
+-0.8995f, 0.2429f, -0.3629f, 
+-0.6366f, -0.447f, -0.6283f, 
+0.3501f, 0.4045f, -0.8448f, 
+-0.01f, -0.0605f, 0.9981f, 
+-0.8003f, 0.4978f, -0.334f, 
+0.1684f, 0.8499f, -0.4991f, 
+0.6665f, -0.6907f, -0.2803f, 
+0.2251f, 0.9692f, -0.099f, 
+-0.0036f, -0.6024f, 0.7981f, 
+0.6637f, -0.2967f, -0.6865f, 
+-0.081f, 0.985f, 0.1518f, 
+0.0084f, 0.2423f, 0.9701f, 
+0.0071f, -0.9029f, -0.4296f, 
+-0.8679f, 0.4966f, -0.0026f, 
+0.0123f, 0.5735f, 0.819f, 
+-0.0005f, 0.985f, 0.1719f, 
+0.6428f, -0.7172f, 0.2688f, 
+0.6588f, -0.3366f, 0.6727f, 
+0.1213f, -0.9861f, 0.1128f, 
+-0.8931f, 0.2424f, 0.3787f, 
+-0.1662f, -0.986f, 0.0059f, 
+0.9994f, 0.0313f, 0.0095f, 
+0.762f, -0.146f, 0.6308f, 
+-0.7731f, 0.0861f, -0.6283f, 
+-0.6644f, 0.3392f, -0.6659f, 
+-0.0027f, -0.7164f, 0.6976f, 
+0.0036f, -0.6024f, -0.7981f, 
+0.9782f, 0.2075f, 0.0011f, 
+0.0405f, -0.9991f, -0.0018f, 
+0.6882f, -0.703f, 0.179f, 
+-0.0115f, 0.933f, 0.3595f, 
+0.0911f, 0.0518f, -0.9944f, 
+0.0005f, 0.985f, -0.1719f, 
+0.5337f, -0.5852f, -0.6104f, 
+0.0042f, -0.6898f, 0.7239f, 
+0.4863f, 0.2366f, 0.8411f, 
+0.4991f, 0.8499f, 0.1684f, 
+-0.6543f, 0.7561f, 0.0071f, 
+0.265f, 0.747f, -0.6096f, 
+-0.329f, 0.4978f, -0.8023f, 
+0.1662f, -0.986f, -0.0059f, 
+-0.3491f, 0.4045f, -0.8452f, 
+0.3321f, 0.5936f, 0.733f, 
+-0.065f, 0.9851f, -0.1587f, 
+-0.6283f, -0.447f, 0.6366f, 
+0.0027f, -0.7164f, -0.6976f, 
+-0.1316f, 0.6339f, 0.762f, 
+-0.5609f, -0.604f, -0.5661f, 
+-0.8452f, 0.4045f, 0.3491f, 
+-0.5263f, 0.8495f, 0.0346f, 
+0.0115f, 0.933f, -0.3595f, 
+-0.0346f, 0.8495f, -0.5263f, 
+0.0077f, -0.4109f, 0.9116f, 
+0.5758f, -0.8175f, -0.0017f, 
+-0.0011f, 0.2075f, 0.9782f, 
+-0.0689f, -0.9861f, -0.1509f, 
+0.2934f, -0.5928f, -0.7499f, 
+0.0724f, 0.1198f, -0.9901f, 
+-0.7367f, -0.275f, -0.6176f, 
+-0.3131f, 0.8154f, 0.4868f, 
+-0.0114f, 0.0022f, 0.9999f, 
+0.6283f, -0.447f, -0.6366f, 
+0.8452f, 0.4045f, -0.3491f, 
+0.5263f, 0.8495f, -0.0346f, 
+-0.6383f, -0.4127f, 0.6497f, 
+-0.1719f, 0.985f, -0.0005f, 
+-0.6703f, -0.342f, 0.6585f, 
+-0.0085f, -0.3403f, 0.9402f, 
+-0.646f, 0.4051f, -0.6468f, 
+0.0011f, 0.2075f, -0.9782f, 
+-0.7216f, -0.3071f, 0.6204f, 
+0.0282f, 0.0023f, -0.9995f, 
+-0.2483f, 0.6806f, -0.6892f, 
+0.1518f, 0.985f, 0.081f, 
+0.047f, 0.0466f, -0.9978f, 
+0.7354f, -0.6034f, 0.3082f, 
+0.6919f, 0.2428f, 0.6798f, 
+0.4086f, -0.3626f, -0.8375f, 
+0.6383f, -0.4127f, -0.6497f, 
+-0.5875f, 0.5937f, -0.5497f, 
+0.6703f, -0.342f, -0.6585f, 
+-0.8245f, -0.4464f, 0.3476f, 
+0.0085f, -0.3403f, -0.9402f, 
+-0.0591f, -0.0663f, 0.996f, 
+0.0f, -1.0f, 0.0f, 
+0.4612f, 0.7474f, 0.478f, 
+0.6976f, -0.7164f, 0.0027f, 
+-0.9148f, 0.4037f, -0.0005f, 
+0.173f, -0.8158f, -0.5518f, 
+-0.3607f, 0.3387f, 0.8689f, 
+0.7836f, -0.2411f, 0.5724f, 
+-0.1985f, 0.8026f, -0.5623f, 
+-0.3094f, -0.2556f, -0.9159f, 
+-0.2803f, -0.6907f, -0.6665f, 
+0.8245f, -0.4464f, -0.3476f, 
+0.829f, -0.4466f, 0.3365f, 
+-0.4848f, 0.7385f, 0.4683f, 
+0.1583f, 0.9851f, 0.066f, 
+-0.0077f, 0.7656f, -0.6432f, 
+-0.0162f, 0.985f, 0.1717f, 
+0.1717f, 0.985f, 0.0162f, 
+0.0244f, 0.9805f, -0.1949f, 
+-0.2461f, -0.805f, -0.5397f, 
+0.0262f, 0.5934f, 0.8044f, 
+0.142f, 0.1881f, 0.9718f, 
+0.1846f, 0.1002f, 0.9776f, 
+0.4903f, -0.7178f, 0.4942f, 
+0.2637f, -0.7172f, 0.6449f, 
+0.3822f, -0.0678f, 0.9215f, 
+-0.0054f, 0.9691f, -0.2464f, 
+0.3607f, 0.3387f, -0.8689f, 
+-0.3587f, 0.3388f, -0.8697f, 
+-0.5694f, -0.8219f, 0.0081f, 
+-0.1324f, 0.985f, 0.1096f, 
+-0.099f, 0.9692f, -0.2251f, 
+-0.6702f, 0.4451f, 0.5938f, 
+0.0077f, -0.9976f, 0.0684f, 
+-0.5661f, -0.604f, 0.5609f, 
+-0.1096f, 0.985f, -0.1324f, 
+-0.6096f, 0.747f, -0.265f, 
+-0.0015f, 0.0295f, -0.9995f, 
+0.3476f, -0.4464f, 0.8245f, 
+-0.0635f, -0.2552f, 0.9647f, 
+-0.8468f, 0.4454f, 0.2904f, 
+-0.4719f, 0.8502f, 0.233f, 
+-0.0502f, 0.8385f, 0.5425f, 
+-0.6671f, 0.7448f, -0.0116f, 
+0.3508f, -0.3415f, 0.8719f, 
+-0.4119f, 0.6135f, -0.6736f, 
+-0.2688f, -0.7172f, 0.6428f, 
+-0.4041f, -0.8052f, 0.4337f, 
+-0.375f, 0.2079f, 0.9033f, 
+-0.0223f, -0.9986f, -0.0462f, 
+0.6702f, 0.4451f, -0.5938f, 
+0.9402f, -0.3403f, 0.0085f, 
+0.5661f, -0.604f, -0.5609f, 
+-0.6252f, 0.7406f, 0.246f, 
+-0.0341f, -0.9986f, 0.0383f, 
+-0.6111f, 0.4984f, -0.6148f, 
+0.6655f, 0.7462f, 0.0117f, 
+0.1233f, 0.199f, 0.9722f, 
+0.8468f, 0.4454f, -0.2904f, 
+0.7383f, 0.2702f, -0.6179f, 
+-0.8055f, 0.4452f, -0.3909f, 
+-0.3729f, 0.208f, -0.9042f, 
+0.4719f, 0.8502f, -0.233f, 
+0.243f, 0.747f, 0.6187f, 
+-0.6497f, -0.4127f, -0.6383f, 
+-0.5406f, 0.5651f, -0.623f, 
+0.0058f, -0.4457f, 0.8951f, 
+-0.3082f, -0.6034f, 0.7354f, 
+-0.8655f, -0.3412f, -0.3666f, 
+0.2688f, -0.7172f, -0.6428f, 
+0.4041f, -0.8052f, -0.4337f, 
+0.375f, 0.2079f, -0.9033f, 
+0.0341f, -0.9986f, -0.0383f, 
+-0.9701f, 0.2423f, 0.0084f, 
+-0.3807f, -0.0681f, 0.9221f, 
+0.9643f, -0.2551f, 0.0705f, 
+-0.8758f, 0.4808f, 0.0415f, 
+0.1207f, 0.9852f, 0.1215f, 
+0.4821f, 0.7724f, 0.4133f, 
+-0.0522f, 0.9982f, 0.0278f, 
+-0.4337f, -0.8052f, -0.4041f, 
+-0.6164f, 0.4198f, 0.6661f, 
+-0.8448f, 0.4045f, -0.3501f, 
+0.3082f, -0.6034f, -0.7354f, 
+0.8689f, 0.3387f, 0.3607f, 
+0.6894f, -0.7242f, 0.0091f, 
+0.3787f, 0.2424f, 0.8931f, 
+0.2904f, 0.4454f, 0.8468f, 
+0.6148f, 0.4984f, -0.6111f, 
+0.0501f, 0.985f, 0.1648f, 
+-0.5397f, -0.805f, 0.2461f, 
+-0.9159f, -0.2556f, 0.3094f, 
+0.706f, -0.0681f, 0.7048f, 
+-0.3341f, 0.4972f, 0.8006f, 
+0.556f, -0.8049f, 0.2071f, 
+-0.1774f, 0.9693f, -0.1697f, 
+0.6907f, 0.2083f, 0.6924f, 
+0.1263f, 0.9332f, 0.3361f, 
+0.3807f, -0.0681f, -0.9221f, 
+-0.1556f, -0.9861f, -0.0578f, 
+-0.3271f, 0.9333f, -0.1478f, 
+-0.3465f, 0.8505f, 0.3955f, 
+0.5315f, 0.8438f, -0.0735f, 
+0.9737f, 0.2276f, -0.0003f, 
+0.6441f, 0.7648f, -0.0112f, 
+-0.7239f, -0.6898f, 0.0042f, 
+-0.7532f, 0.5939f, -0.2824f, 
+0.1093f, 0.1415f, -0.9838f, 
+0.5397f, -0.805f, -0.2461f, 
+-0.7981f, -0.6024f, -0.0036f, 
+0.9456f, 0.3251f, -0.0052f, 
+0.1278f, 0.9696f, -0.2085f, 
+0.0208f, -0.8044f, 0.5936f, 
+0.1635f, 0.1348f, -0.9772f, 
+-0.733f, 0.5936f, 0.3321f, 
+-0.0505f, 0.9852f, -0.1635f, 
+0.4089f, -0.9069f, -0.1015f, 
+-0.0029f, -0.9986f, -0.0514f, 
+-0.1796f, 0.814f, -0.5522f, 
+0.9221f, -0.0681f, 0.3807f, 
+0.0383f, -0.9986f, 0.0341f, 
+0.6369f, -0.2562f, 0.727f, 
+0.3465f, 0.8505f, -0.3955f, 
+-0.2452f, 0.9334f, -0.2615f, 
+0.4921f, -0.247f, 0.8346f, 
+-0.9976f, -0.0678f, 0.0008f, 
+-0.5396f, 0.8418f, -0.0094f, 
+0.2294f, 0.9692f, 0.0888f, 
+0.7239f, -0.6898f, -0.0042f, 
+-0.4472f, 0.5952f, 0.6675f, 
+-0.6449f, -0.7172f, 0.2637f, 
+0.4543f, 0.2732f, -0.8478f, 
+-0.6798f, 0.2428f, 0.6919f, 
+-0.5938f, 0.4451f, -0.6702f, 
+0.733f, 0.5936f, -0.3321f, 
+-0.3955f, 0.8505f, -0.3465f, 
+-0.5139f, -0.6913f, -0.5078f, 
+-0.623f, -0.5156f, -0.5881f
+};
+
+/* 1 color   */
+/*255 255 0  */
+
+/* 1024 faces */
+/* numIdx fidx0 fidx1 fidx2 nidx0 nidx1 nidx2 coloridx */
+
+const int numFaces = 1024;
+const int faces[1024][8] = {
+3, 0, 5, 6, 255, 295, 309, 0,
+3, 6, 1, 0, 309, 465, 255, 0,
+3, 1, 6, 7, 465, 309, 134, 0,
+3, 7, 2, 1, 134, 4, 465, 0,
+3, 2, 7, 8, 4, 134, 165, 0,
+3, 8, 3, 2, 165, 448, 4, 0,
+3, 3, 8, 9, 448, 165, 49, 0,
+3, 9, 4, 3, 49, 116, 448, 0,
+3, 5, 10, 11, 295, 248, 106, 0,
+3, 11, 6, 5, 106, 309, 295, 0,
+3, 6, 11, 12, 309, 106, 102, 0,
+3, 12, 7, 6, 102, 134, 309, 0,
+3, 7, 12, 13, 134, 102, 394, 0,
+3, 13, 8, 7, 394, 165, 134, 0,
+3, 8, 13, 14, 165, 394, 180, 0,
+3, 14, 9, 8, 180, 49, 165, 0,
+3, 10, 15, 16, 248, 401, 211, 0,
+3, 16, 11, 10, 211, 106, 248, 0,
+3, 11, 16, 17, 106, 211, 427, 0,
+3, 17, 12, 11, 427, 102, 106, 0,
+3, 12, 17, 18, 102, 427, 455, 0,
+3, 18, 13, 12, 455, 394, 102, 0,
+3, 13, 18, 19, 394, 455, 74, 0,
+3, 19, 14, 13, 74, 180, 394, 0,
+3, 15, 20, 21, 401, 174, 182, 0,
+3, 21, 16, 15, 182, 211, 401, 0,
+3, 16, 21, 22, 211, 182, 507, 0,
+3, 22, 17, 16, 507, 427, 211, 0,
+3, 17, 22, 23, 427, 507, 5, 0,
+3, 23, 18, 17, 5, 455, 427, 0,
+3, 18, 23, 24, 455, 5, 234, 0,
+3, 24, 19, 18, 234, 74, 455, 0,
+3, 20, 25, 26, 174, 386, 20, 0,
+3, 26, 21, 20, 20, 182, 174, 0,
+3, 21, 26, 27, 182, 20, 410, 0,
+3, 27, 22, 21, 410, 507, 182, 0,
+3, 22, 27, 28, 507, 410, 23, 0,
+3, 28, 23, 22, 23, 5, 507, 0,
+3, 23, 28, 29, 5, 23, 485, 0,
+3, 29, 24, 23, 485, 234, 5, 0,
+3, 25, 30, 31, 386, 69, 305, 0,
+3, 31, 26, 25, 305, 20, 386, 0,
+3, 26, 31, 32, 20, 305, 503, 0,
+3, 32, 27, 26, 503, 410, 20, 0,
+3, 27, 32, 33, 410, 503, 405, 0,
+3, 33, 28, 27, 405, 23, 410, 0,
+3, 28, 33, 34, 23, 405, 138, 0,
+3, 34, 29, 28, 138, 485, 23, 0,
+3, 30, 35, 36, 69, 115, 193, 0,
+3, 36, 31, 30, 193, 305, 69, 0,
+3, 31, 36, 37, 305, 193, 270, 0,
+3, 37, 32, 31, 270, 503, 305, 0,
+3, 32, 37, 38, 503, 270, 445, 0,
+3, 38, 33, 32, 445, 405, 503, 0,
+3, 33, 38, 39, 405, 445, 28, 0,
+3, 39, 34, 33, 28, 138, 405, 0,
+3, 35, 40, 41, 115, 467, 495, 0,
+3, 41, 36, 35, 495, 193, 115, 0,
+3, 36, 41, 42, 193, 495, 11, 0,
+3, 42, 37, 36, 11, 270, 193, 0,
+3, 37, 42, 43, 270, 11, 435, 0,
+3, 43, 38, 37, 435, 445, 270, 0,
+3, 38, 43, 44, 445, 435, 322, 0,
+3, 44, 39, 38, 322, 28, 445, 0,
+3, 40, 45, 46, 467, 27, 44, 0,
+3, 46, 41, 40, 44, 495, 467, 0,
+3, 41, 46, 47, 495, 44, 409, 0,
+3, 47, 42, 41, 409, 11, 495, 0,
+3, 42, 47, 48, 11, 409, 428, 0,
+3, 48, 43, 42, 428, 435, 11, 0,
+3, 43, 48, 49, 435, 428, 313, 0,
+3, 49, 44, 43, 313, 322, 435, 0,
+3, 45, 50, 51, 27, 513, 385, 0,
+3, 51, 46, 45, 385, 44, 27, 0,
+3, 46, 51, 52, 44, 385, 382, 0,
+3, 52, 47, 46, 382, 409, 44, 0,
+3, 47, 52, 53, 409, 382, 124, 0,
+3, 53, 48, 47, 124, 428, 409, 0,
+3, 48, 53, 54, 428, 124, 447, 0,
+3, 54, 49, 48, 447, 313, 428, 0,
+3, 50, 55, 56, 513, 136, 478, 0,
+3, 56, 51, 50, 478, 385, 513, 0,
+3, 51, 56, 57, 385, 478, 161, 0,
+3, 57, 52, 51, 161, 382, 385, 0,
+3, 52, 57, 58, 382, 161, 181, 0,
+3, 58, 53, 52, 181, 124, 382, 0,
+3, 53, 58, 59, 124, 181, 348, 0,
+3, 59, 54, 53, 348, 447, 124, 0,
+3, 55, 60, 61, 136, 431, 320, 0,
+3, 61, 56, 55, 320, 478, 136, 0,
+3, 56, 61, 62, 478, 320, 481, 0,
+3, 62, 57, 56, 481, 161, 478, 0,
+3, 57, 62, 63, 161, 481, 53, 0,
+3, 63, 58, 57, 53, 181, 161, 0,
+3, 58, 63, 64, 181, 53, 257, 0,
+3, 64, 59, 58, 257, 348, 181, 0,
+3, 60, 65, 66, 431, 135, 37, 0,
+3, 66, 61, 60, 37, 320, 431, 0,
+3, 61, 66, 67, 320, 37, 408, 0,
+3, 67, 62, 61, 408, 481, 320, 0,
+3, 62, 67, 68, 481, 408, 347, 0,
+3, 68, 63, 62, 347, 53, 481, 0,
+3, 63, 68, 69, 53, 347, 104, 0,
+3, 69, 64, 63, 104, 257, 53, 0,
+3, 65, 70, 71, 135, 191, 524, 0,
+3, 71, 66, 65, 524, 37, 135, 0,
+3, 66, 71, 72, 37, 524, 319, 0,
+3, 72, 67, 66, 319, 408, 37, 0,
+3, 67, 72, 73, 408, 319, 183, 0,
+3, 73, 68, 67, 183, 347, 408, 0,
+3, 68, 73, 74, 347, 183, 480, 0,
+3, 74, 69, 68, 480, 104, 347, 0,
+3, 70, 75, 76, 191, 483, 328, 0,
+3, 76, 71, 70, 328, 524, 191, 0,
+3, 71, 76, 77, 524, 328, 422, 0,
+3, 77, 72, 71, 422, 319, 524, 0,
+3, 72, 77, 78, 319, 422, 151, 0,
+3, 78, 73, 72, 151, 183, 319, 0,
+3, 73, 78, 79, 183, 151, 273, 0,
+3, 79, 74, 73, 273, 480, 183, 0,
+3, 75, 0, 1, 483, 255, 465, 0,
+3, 1, 76, 75, 465, 328, 483, 0,
+3, 76, 1, 2, 328, 465, 4, 0,
+3, 2, 77, 76, 4, 422, 328, 0,
+3, 77, 2, 3, 422, 4, 448, 0,
+3, 3, 78, 77, 448, 151, 422, 0,
+3, 78, 3, 4, 151, 448, 116, 0,
+3, 4, 79, 78, 116, 273, 151, 0,
+3, 4, 9, 84, 116, 49, 220, 0,
+3, 84, 80, 4, 220, 131, 116, 0,
+3, 80, 84, 85, 131, 220, 476, 0,
+3, 85, 81, 80, 476, 26, 131, 0,
+3, 81, 85, 86, 26, 476, 38, 0,
+3, 86, 82, 81, 38, 336, 26, 0,
+3, 82, 86, 87, 336, 38, 511, 0,
+3, 87, 83, 82, 511, 1, 336, 0,
+3, 9, 14, 88, 49, 180, 103, 0,
+3, 88, 84, 9, 103, 220, 49, 0,
+3, 84, 88, 89, 220, 103, 62, 0,
+3, 89, 85, 84, 62, 476, 220, 0,
+3, 85, 89, 90, 476, 62, 488, 0,
+3, 90, 86, 85, 488, 38, 476, 0,
+3, 86, 90, 91, 38, 488, 484, 0,
+3, 91, 87, 86, 484, 511, 38, 0,
+3, 14, 19, 92, 180, 74, 78, 0,
+3, 92, 88, 14, 78, 103, 180, 0,
+3, 88, 92, 93, 103, 78, 154, 0,
+3, 93, 89, 88, 154, 62, 103, 0,
+3, 89, 93, 94, 62, 154, 190, 0,
+3, 94, 90, 89, 190, 488, 62, 0,
+3, 90, 94, 95, 488, 190, 417, 0,
+3, 95, 91, 90, 417, 484, 488, 0,
+3, 19, 24, 96, 74, 234, 81, 0,
+3, 96, 92, 19, 81, 78, 74, 0,
+3, 92, 96, 97, 78, 81, 274, 0,
+3, 97, 93, 92, 274, 154, 78, 0,
+3, 93, 97, 98, 154, 274, 363, 0,
+3, 98, 94, 93, 363, 190, 154, 0,
+3, 94, 98, 99, 190, 363, 304, 0,
+3, 99, 95, 94, 304, 417, 190, 0,
+3, 24, 29, 100, 234, 485, 287, 0,
+3, 100, 96, 24, 287, 81, 234, 0,
+3, 96, 100, 101, 81, 287, 398, 0,
+3, 101, 97, 96, 398, 274, 81, 0,
+3, 97, 101, 102, 274, 398, 440, 0,
+3, 102, 98, 97, 440, 363, 274, 0,
+3, 98, 102, 103, 363, 440, 466, 0,
+3, 103, 99, 98, 466, 304, 363, 0,
+3, 29, 34, 104, 485, 138, 268, 0,
+3, 104, 100, 29, 268, 287, 485, 0,
+3, 100, 104, 105, 287, 268, 252, 0,
+3, 105, 101, 100, 252, 398, 287, 0,
+3, 101, 105, 106, 398, 252, 141, 0,
+3, 106, 102, 101, 141, 440, 398, 0,
+3, 102, 106, 107, 440, 141, 18, 0,
+3, 107, 103, 102, 18, 466, 440, 0,
+3, 34, 39, 108, 138, 28, 357, 0,
+3, 108, 104, 34, 357, 268, 138, 0,
+3, 104, 108, 109, 268, 357, 127, 0,
+3, 109, 105, 104, 127, 252, 268, 0,
+3, 105, 109, 110, 252, 127, 228, 0,
+3, 110, 106, 105, 228, 141, 252, 0,
+3, 106, 110, 111, 141, 228, 33, 0,
+3, 111, 107, 106, 33, 18, 141, 0,
+3, 39, 44, 112, 28, 322, 396, 0,
+3, 112, 108, 39, 396, 357, 28, 0,
+3, 108, 112, 113, 357, 396, 294, 0,
+3, 113, 109, 108, 294, 127, 357, 0,
+3, 109, 113, 114, 127, 294, 56, 0,
+3, 114, 110, 109, 56, 228, 127, 0,
+3, 110, 114, 115, 228, 56, 517, 0,
+3, 115, 111, 110, 517, 33, 228, 0,
+3, 44, 49, 116, 322, 313, 474, 0,
+3, 116, 112, 44, 474, 396, 322, 0,
+3, 112, 116, 117, 396, 474, 208, 0,
+3, 117, 113, 112, 208, 294, 396, 0,
+3, 113, 117, 118, 294, 208, 301, 0,
+3, 118, 114, 113, 301, 56, 294, 0,
+3, 114, 118, 119, 56, 301, 242, 0,
+3, 119, 115, 114, 242, 517, 56, 0,
+3, 49, 54, 120, 313, 447, 377, 0,
+3, 120, 116, 49, 377, 474, 313, 0,
+3, 116, 120, 121, 474, 377, 333, 0,
+3, 121, 117, 116, 333, 208, 474, 0,
+3, 117, 121, 122, 208, 333, 222, 0,
+3, 122, 118, 117, 222, 301, 208, 0,
+3, 118, 122, 123, 301, 222, 218, 0,
+3, 123, 119, 118, 218, 242, 301, 0,
+3, 54, 59, 124, 447, 348, 350, 0,
+3, 124, 120, 54, 350, 377, 447, 0,
+3, 120, 124, 125, 377, 350, 420, 0,
+3, 125, 121, 120, 420, 333, 377, 0,
+3, 121, 125, 126, 333, 420, 453, 0,
+3, 126, 122, 121, 453, 222, 333, 0,
+3, 122, 126, 127, 222, 453, 147, 0,
+3, 127, 123, 122, 147, 218, 222, 0,
+3, 59, 64, 128, 348, 257, 95, 0,
+3, 128, 124, 59, 95, 350, 348, 0,
+3, 124, 128, 129, 350, 95, 293, 0,
+3, 129, 125, 124, 293, 420, 350, 0,
+3, 125, 129, 130, 420, 293, 378, 0,
+3, 130, 126, 125, 378, 453, 420, 0,
+3, 126, 130, 131, 453, 378, 29, 0,
+3, 131, 127, 126, 29, 147, 453, 0,
+3, 64, 69, 132, 257, 104, 311, 0,
+3, 132, 128, 64, 311, 95, 257, 0,
+3, 128, 132, 133, 95, 311, 419, 0,
+3, 133, 129, 128, 419, 293, 95, 0,
+3, 129, 133, 134, 293, 419, 463, 0,
+3, 134, 130, 129, 463, 378, 293, 0,
+3, 130, 134, 135, 378, 463, 490, 0,
+3, 135, 131, 130, 490, 29, 378, 0,
+3, 69, 74, 136, 104, 480, 284, 0,
+3, 136, 132, 69, 284, 311, 104, 0,
+3, 132, 136, 137, 311, 284, 269, 0,
+3, 137, 133, 132, 269, 419, 311, 0,
+3, 133, 137, 138, 419, 269, 164, 0,
+3, 138, 134, 133, 164, 463, 419, 0,
+3, 134, 138, 139, 463, 164, 45, 0,
+3, 139, 135, 134, 45, 490, 463, 0,
+3, 74, 79, 140, 480, 273, 371, 0,
+3, 140, 136, 74, 371, 284, 480, 0,
+3, 136, 140, 141, 284, 371, 148, 0,
+3, 141, 137, 136, 148, 269, 284, 0,
+3, 137, 141, 142, 269, 148, 251, 0,
+3, 142, 138, 137, 251, 164, 269, 0,
+3, 138, 142, 143, 164, 251, 54, 0,
+3, 143, 139, 138, 54, 45, 164, 0,
+3, 79, 4, 80, 273, 116, 131, 0,
+3, 80, 140, 79, 131, 371, 273, 0,
+3, 140, 80, 81, 371, 131, 26, 0,
+3, 81, 141, 140, 26, 148, 371, 0,
+3, 141, 81, 82, 148, 26, 336, 0,
+3, 82, 142, 141, 336, 251, 148, 0,
+3, 142, 82, 83, 251, 336, 1, 0,
+3, 83, 143, 142, 1, 54, 251, 0,
+3, 83, 87, 148, 1, 511, 404, 0,
+3, 148, 144, 83, 404, 276, 1, 0,
+3, 144, 148, 149, 276, 404, 308, 0,
+3, 149, 145, 144, 308, 520, 276, 0,
+3, 145, 149, 150, 520, 308, 325, 0,
+3, 150, 146, 145, 325, 395, 520, 0,
+3, 146, 150, 151, 395, 325, 384, 0,
+3, 151, 147, 146, 384, 246, 395, 0,
+3, 87, 91, 152, 511, 484, 47, 0,
+3, 152, 148, 87, 47, 404, 511, 0,
+3, 148, 152, 153, 404, 47, 272, 0,
+3, 153, 149, 148, 272, 308, 404, 0,
+3, 149, 153, 154, 308, 272, 415, 0,
+3, 154, 150, 149, 415, 325, 308, 0,
+3, 150, 154, 155, 325, 415, 83, 0,
+3, 155, 151, 150, 83, 384, 325, 0,
+3, 91, 95, 156, 484, 417, 430, 0,
+3, 156, 152, 91, 430, 47, 484, 0,
+3, 152, 156, 157, 47, 430, 137, 0,
+3, 157, 153, 152, 137, 272, 47, 0,
+3, 153, 157, 158, 272, 137, 416, 0,
+3, 158, 154, 153, 416, 415, 272, 0,
+3, 154, 158, 159, 415, 416, 297, 0,
+3, 159, 155, 154, 297, 83, 415, 0,
+3, 95, 99, 160, 417, 304, 458, 0,
+3, 160, 156, 95, 458, 430, 417, 0,
+3, 156, 160, 161, 430, 458, 343, 0,
+3, 161, 157, 156, 343, 137, 430, 0,
+3, 157, 161, 162, 137, 343, 334, 0,
+3, 162, 158, 157, 334, 416, 137, 0,
+3, 158, 162, 163, 416, 334, 317, 0,
+3, 163, 159, 158, 317, 297, 416, 0,
+3, 99, 103, 164, 304, 466, 187, 0,
+3, 164, 160, 99, 187, 458, 304, 0,
+3, 160, 164, 165, 458, 187, 117, 0,
+3, 165, 161, 160, 117, 343, 458, 0,
+3, 161, 165, 166, 343, 117, 438, 0,
+3, 166, 162, 161, 438, 334, 343, 0,
+3, 162, 166, 167, 334, 438, 459, 0,
+3, 167, 163, 162, 459, 317, 334, 0,
+3, 103, 107, 168, 466, 18, 353, 0,
+3, 168, 164, 103, 353, 187, 466, 0,
+3, 164, 168, 169, 187, 353, 123, 0,
+3, 169, 165, 164, 123, 117, 187, 0,
+3, 165, 169, 170, 117, 123, 168, 0,
+3, 170, 166, 165, 168, 438, 117, 0,
+3, 166, 170, 171, 438, 168, 426, 0,
+3, 171, 167, 166, 426, 459, 438, 0,
+3, 107, 111, 172, 18, 33, 390, 0,
+3, 172, 168, 107, 390, 353, 18, 0,
+3, 168, 172, 173, 353, 390, 290, 0,
+3, 173, 169, 168, 290, 123, 353, 0,
+3, 169, 173, 174, 123, 290, 522, 0,
+3, 174, 170, 169, 522, 168, 123, 0,
+3, 170, 174, 175, 168, 522, 87, 0,
+3, 175, 171, 170, 87, 426, 168, 0,
+3, 111, 115, 176, 33, 517, 260, 0,
+3, 176, 172, 111, 260, 390, 33, 0,
+3, 172, 176, 177, 390, 260, 497, 0,
+3, 177, 173, 172, 497, 290, 390, 0,
+3, 173, 177, 178, 290, 497, 126, 0,
+3, 178, 174, 173, 126, 522, 290, 0,
+3, 174, 178, 179, 522, 126, 501, 0,
+3, 179, 175, 174, 501, 87, 522, 0,
+3, 115, 119, 180, 517, 242, 130, 0,
+3, 180, 176, 115, 130, 260, 517, 0,
+3, 176, 180, 181, 260, 130, 34, 0,
+3, 181, 177, 176, 34, 497, 260, 0,
+3, 177, 181, 182, 497, 34, 46, 0,
+3, 182, 178, 177, 46, 126, 497, 0,
+3, 178, 182, 183, 126, 46, 105, 0,
+3, 183, 179, 178, 105, 501, 126, 0,
+3, 119, 123, 184, 242, 218, 310, 0,
+3, 184, 180, 119, 310, 130, 242, 0,
+3, 180, 184, 185, 130, 310, 528, 0,
+3, 185, 181, 180, 528, 34, 130, 0,
+3, 181, 185, 186, 34, 528, 145, 0,
+3, 186, 182, 181, 145, 46, 34, 0,
+3, 182, 186, 187, 46, 145, 356, 0,
+3, 187, 183, 182, 356, 105, 46, 0,
+3, 123, 127, 188, 218, 147, 156, 0,
+3, 188, 184, 123, 156, 310, 218, 0,
+3, 184, 188, 189, 310, 156, 402, 0,
+3, 189, 185, 184, 402, 528, 310, 0,
+3, 185, 189, 190, 528, 402, 146, 0,
+3, 190, 186, 185, 146, 145, 528, 0,
+3, 186, 190, 191, 145, 146, 17, 0,
+3, 191, 187, 186, 17, 356, 145, 0,
+3, 127, 131, 192, 147, 29, 184, 0,
+3, 192, 188, 127, 184, 156, 147, 0,
+3, 188, 192, 193, 156, 184, 63, 0,
+3, 193, 189, 188, 63, 402, 156, 0,
+3, 189, 193, 194, 402, 63, 354, 0,
+3, 194, 190, 189, 354, 146, 402, 0,
+3, 190, 194, 195, 146, 354, 335, 0,
+3, 195, 191, 190, 335, 17, 146, 0,
+3, 131, 135, 196, 29, 490, 210, 0,
+3, 196, 192, 131, 210, 184, 29, 0,
+3, 192, 196, 197, 184, 210, 129, 0,
+3, 197, 193, 192, 129, 63, 184, 0,
+3, 193, 197, 198, 63, 129, 461, 0,
+3, 198, 194, 193, 461, 354, 63, 0,
+3, 194, 198, 199, 354, 461, 475, 0,
+3, 199, 195, 194, 475, 335, 354, 0,
+3, 135, 139, 200, 490, 45, 370, 0,
+3, 200, 196, 135, 370, 210, 490, 0,
+3, 196, 200, 201, 210, 370, 143, 0,
+3, 201, 197, 196, 143, 129, 210, 0,
+3, 197, 201, 202, 129, 143, 195, 0,
+3, 202, 198, 197, 195, 461, 129, 0,
+3, 198, 202, 203, 461, 195, 444, 0,
+3, 203, 199, 198, 444, 475, 461, 0,
+3, 139, 143, 204, 45, 54, 403, 0,
+3, 204, 200, 139, 403, 370, 45, 0,
+3, 200, 204, 205, 370, 403, 315, 0,
+3, 205, 201, 200, 315, 143, 370, 0,
+3, 201, 205, 206, 143, 315, 7, 0,
+3, 206, 202, 201, 7, 195, 143, 0,
+3, 202, 206, 207, 195, 7, 101, 0,
+3, 207, 203, 202, 101, 444, 195, 0,
+3, 143, 83, 144, 54, 1, 276, 0,
+3, 144, 204, 143, 276, 403, 54, 0,
+3, 204, 144, 145, 403, 276, 520, 0,
+3, 145, 205, 204, 520, 315, 403, 0,
+3, 205, 145, 146, 315, 520, 395, 0,
+3, 146, 206, 205, 395, 7, 315, 0,
+3, 206, 146, 147, 7, 395, 246, 0,
+3, 147, 207, 206, 246, 101, 7, 0,
+3, 147, 151, 212, 246, 384, 486, 0,
+3, 212, 208, 147, 486, 279, 246, 0,
+3, 208, 212, 213, 279, 486, 231, 0,
+3, 213, 209, 208, 231, 349, 279, 0,
+3, 209, 213, 214, 349, 231, 0, 0,
+3, 214, 210, 209, 0, 216, 349, 0,
+3, 210, 214, 211, 216, 0, 393, 0,
+3, 211, 211, 210, 393, 393, 216, 0,
+3, 151, 155, 215, 384, 83, 215, 0,
+3, 215, 212, 151, 215, 486, 384, 0,
+3, 212, 215, 216, 486, 215, 327, 0,
+3, 216, 213, 212, 327, 231, 486, 0,
+3, 213, 216, 217, 231, 327, 512, 0,
+3, 217, 214, 213, 512, 0, 231, 0,
+3, 214, 217, 211, 0, 512, 393, 0,
+3, 211, 211, 214, 393, 393, 0, 0,
+3, 155, 159, 218, 83, 297, 149, 0,
+3, 218, 215, 155, 149, 215, 83, 0,
+3, 215, 218, 219, 215, 149, 91, 0,
+3, 219, 216, 215, 91, 327, 215, 0,
+3, 216, 219, 220, 327, 91, 177, 0,
+3, 220, 217, 216, 177, 512, 327, 0,
+3, 217, 220, 211, 512, 177, 393, 0,
+3, 211, 211, 217, 393, 393, 512, 0,
+3, 159, 163, 221, 297, 317, 504, 0,
+3, 221, 218, 159, 504, 149, 297, 0,
+3, 218, 221, 222, 149, 504, 285, 0,
+3, 222, 219, 218, 285, 91, 149, 0,
+3, 219, 222, 223, 91, 285, 254, 0,
+3, 223, 220, 219, 254, 177, 91, 0,
+3, 220, 223, 211, 177, 254, 393, 0,
+3, 211, 211, 220, 393, 393, 177, 0,
+3, 163, 167, 224, 317, 459, 125, 0,
+3, 224, 221, 163, 125, 504, 317, 0,
+3, 221, 224, 225, 504, 125, 162, 0,
+3, 225, 222, 221, 162, 285, 504, 0,
+3, 222, 225, 226, 285, 162, 278, 0,
+3, 226, 223, 222, 278, 254, 285, 0,
+3, 223, 226, 211, 254, 278, 393, 0,
+3, 211, 211, 223, 393, 393, 254, 0,
+3, 167, 171, 227, 459, 426, 439, 0,
+3, 227, 224, 167, 439, 125, 459, 0,
+3, 224, 227, 228, 125, 439, 60, 0,
+3, 228, 225, 224, 60, 162, 125, 0,
+3, 225, 228, 229, 162, 60, 446, 0,
+3, 229, 226, 225, 446, 278, 162, 0,
+3, 226, 229, 211, 278, 446, 393, 0,
+3, 211, 211, 226, 393, 393, 278, 0,
+3, 171, 175, 230, 426, 87, 482, 0,
+3, 230, 227, 171, 482, 439, 426, 0,
+3, 227, 230, 231, 439, 482, 92, 0,
+3, 231, 228, 227, 92, 60, 439, 0,
+3, 228, 231, 232, 60, 92, 110, 0,
+3, 232, 229, 228, 110, 446, 60, 0,
+3, 229, 232, 211, 446, 110, 393, 0,
+3, 211, 211, 229, 393, 393, 446, 0,
+3, 175, 179, 233, 87, 501, 261, 0,
+3, 233, 230, 175, 261, 482, 87, 0,
+3, 230, 233, 234, 482, 261, 329, 0,
+3, 234, 231, 230, 329, 92, 482, 0,
+3, 231, 234, 235, 92, 329, 192, 0,
+3, 235, 232, 231, 192, 110, 92, 0,
+3, 232, 235, 211, 110, 192, 393, 0,
+3, 211, 211, 232, 393, 393, 110, 0,
+3, 179, 183, 236, 501, 105, 219, 0,
+3, 236, 233, 179, 219, 261, 501, 0,
+3, 233, 236, 237, 261, 219, 491, 0,
+3, 237, 234, 233, 491, 329, 261, 0,
+3, 234, 237, 238, 329, 491, 267, 0,
+3, 238, 235, 234, 267, 192, 329, 0,
+3, 235, 238, 211, 192, 267, 393, 0,
+3, 211, 211, 235, 393, 393, 192, 0,
+3, 183, 187, 239, 105, 356, 472, 0,
+3, 239, 236, 183, 472, 219, 105, 0,
+3, 236, 239, 240, 219, 472, 48, 0,
+3, 240, 237, 236, 48, 491, 219, 0,
+3, 237, 240, 241, 491, 48, 247, 0,
+3, 241, 238, 237, 247, 267, 491, 0,
+3, 238, 241, 211, 267, 247, 393, 0,
+3, 211, 211, 238, 393, 393, 267, 0,
+3, 187, 191, 242, 356, 17, 411, 0,
+3, 242, 239, 187, 411, 472, 356, 0,
+3, 239, 242, 243, 472, 411, 364, 0,
+3, 243, 240, 239, 364, 48, 472, 0,
+3, 240, 243, 244, 48, 364, 441, 0,
+3, 244, 241, 240, 441, 247, 48, 0,
+3, 241, 244, 211, 247, 441, 393, 0,
+3, 211, 211, 241, 393, 393, 247, 0,
+3, 191, 195, 245, 17, 335, 239, 0,
+3, 245, 242, 191, 239, 411, 17, 0,
+3, 242, 245, 246, 411, 239, 13, 0,
+3, 246, 243, 242, 13, 364, 411, 0,
+3, 243, 246, 247, 364, 13, 509, 0,
+3, 247, 244, 243, 509, 441, 364, 0,
+3, 244, 247, 211, 441, 509, 393, 0,
+3, 211, 211, 244, 393, 393, 441, 0,
+3, 195, 199, 248, 335, 475, 144, 0,
+3, 248, 245, 195, 144, 239, 335, 0,
+3, 245, 248, 249, 239, 144, 179, 0,
+3, 249, 246, 245, 179, 13, 239, 0,
+3, 246, 249, 250, 13, 179, 298, 0,
+3, 250, 247, 246, 298, 509, 13, 0,
+3, 247, 250, 211, 509, 298, 393, 0,
+3, 211, 211, 247, 393, 393, 509, 0,
+3, 199, 203, 251, 475, 444, 462, 0,
+3, 251, 248, 199, 462, 144, 475, 0,
+3, 248, 251, 252, 144, 462, 76, 0,
+3, 252, 249, 248, 76, 179, 144, 0,
+3, 249, 252, 253, 179, 76, 464, 0,
+3, 253, 250, 249, 464, 298, 179, 0,
+3, 250, 253, 211, 298, 464, 393, 0,
+3, 211, 211, 250, 393, 393, 298, 0,
+3, 203, 207, 254, 444, 101, 500, 0,
+3, 254, 251, 203, 500, 462, 444, 0,
+3, 251, 254, 255, 462, 500, 113, 0,
+3, 255, 252, 251, 113, 76, 462, 0,
+3, 252, 255, 256, 76, 113, 128, 0,
+3, 256, 253, 252, 128, 464, 76, 0,
+3, 253, 256, 211, 464, 128, 393, 0,
+3, 211, 211, 253, 393, 393, 464, 0,
+3, 207, 147, 208, 101, 246, 279, 0,
+3, 208, 254, 207, 279, 500, 101, 0,
+3, 254, 208, 209, 500, 279, 349, 0,
+3, 209, 255, 254, 349, 113, 500, 0,
+3, 255, 209, 210, 113, 349, 216, 0,
+3, 210, 256, 255, 216, 128, 113, 0,
+3, 256, 210, 211, 128, 216, 393, 0,
+3, 211, 211, 256, 393, 393, 128, 0,
+3, 257, 262, 263, 425, 244, 58, 0,
+3, 263, 258, 257, 58, 337, 425, 0,
+3, 258, 263, 264, 337, 58, 214, 0,
+3, 264, 259, 258, 214, 236, 337, 0,
+3, 259, 264, 265, 236, 214, 266, 0,
+3, 265, 260, 259, 266, 32, 236, 0,
+3, 260, 265, 266, 32, 266, 331, 0,
+3, 266, 261, 260, 331, 109, 32, 0,
+3, 262, 267, 268, 244, 233, 369, 0,
+3, 268, 263, 262, 369, 58, 244, 0,
+3, 263, 268, 269, 58, 369, 71, 0,
+3, 269, 264, 263, 71, 214, 58, 0,
+3, 264, 269, 270, 214, 71, 392, 0,
+3, 270, 265, 264, 392, 266, 214, 0,
+3, 265, 270, 271, 266, 392, 312, 0,
+3, 271, 266, 265, 312, 331, 266, 0,
+3, 267, 272, 273, 233, 12, 434, 0,
+3, 273, 268, 267, 434, 369, 233, 0,
+3, 268, 273, 274, 369, 434, 188, 0,
+3, 274, 269, 268, 188, 71, 369, 0,
+3, 269, 274, 275, 71, 188, 201, 0,
+3, 275, 270, 269, 201, 392, 71, 0,
+3, 270, 275, 276, 392, 201, 238, 0,
+3, 276, 271, 270, 238, 312, 392, 0,
+3, 272, 277, 278, 12, 142, 114, 0,
+3, 278, 273, 272, 114, 434, 12, 0,
+3, 273, 278, 279, 434, 114, 173, 0,
+3, 279, 274, 273, 173, 188, 434, 0,
+3, 274, 279, 280, 188, 173, 14, 0,
+3, 280, 275, 274, 14, 201, 188, 0,
+3, 275, 280, 281, 201, 14, 15, 0,
+3, 281, 276, 275, 15, 238, 201, 0,
+3, 277, 282, 283, 142, 407, 288, 0,
+3, 283, 278, 277, 288, 114, 142, 0,
+3, 278, 283, 284, 114, 288, 400, 0,
+3, 284, 279, 278, 400, 173, 114, 0,
+3, 279, 284, 285, 173, 400, 457, 0,
+3, 285, 280, 279, 457, 14, 173, 0,
+3, 280, 285, 286, 14, 457, 332, 0,
+3, 286, 281, 280, 332, 15, 14, 0,
+3, 282, 287, 288, 407, 194, 42, 0,
+3, 288, 283, 282, 42, 288, 407, 0,
+3, 283, 288, 289, 288, 42, 380, 0,
+3, 289, 284, 283, 380, 400, 288, 0,
+3, 284, 289, 290, 400, 380, 383, 0,
+3, 290, 285, 284, 383, 457, 400, 0,
+3, 285, 290, 291, 457, 383, 197, 0,
+3, 291, 286, 285, 197, 332, 457, 0,
+3, 287, 292, 293, 194, 321, 152, 0,
+3, 293, 288, 287, 152, 42, 194, 0,
+3, 288, 293, 294, 42, 152, 397, 0,
+3, 294, 289, 288, 397, 380, 42, 0,
+3, 289, 294, 295, 380, 397, 342, 0,
+3, 295, 290, 289, 342, 383, 380, 0,
+3, 290, 295, 296, 383, 342, 225, 0,
+3, 296, 291, 290, 225, 197, 383, 0,
+3, 292, 257, 258, 321, 425, 337, 0,
+3, 258, 293, 292, 337, 152, 321, 0,
+3, 293, 258, 259, 152, 337, 236, 0,
+3, 259, 294, 293, 236, 397, 152, 0,
+3, 294, 259, 260, 397, 236, 32, 0,
+3, 260, 295, 294, 32, 342, 397, 0,
+3, 295, 260, 261, 342, 32, 109, 0,
+3, 261, 296, 295, 109, 225, 342, 0,
+3, 261, 266, 301, 109, 331, 175, 0,
+3, 301, 297, 261, 175, 502, 109, 0,
+3, 297, 301, 302, 502, 175, 265, 0,
+3, 302, 298, 297, 265, 84, 502, 0,
+3, 298, 302, 303, 84, 265, 186, 0,
+3, 303, 299, 298, 186, 496, 84, 0,
+3, 299, 303, 304, 496, 186, 470, 0,
+3, 304, 300, 299, 470, 494, 496, 0,
+3, 266, 271, 305, 331, 312, 170, 0,
+3, 305, 301, 266, 170, 175, 331, 0,
+3, 301, 305, 306, 175, 170, 97, 0,
+3, 306, 302, 301, 97, 265, 175, 0,
+3, 302, 306, 307, 265, 97, 205, 0,
+3, 307, 303, 302, 205, 186, 265, 0,
+3, 303, 307, 308, 186, 205, 449, 0,
+3, 308, 304, 303, 449, 470, 186, 0,
+3, 271, 276, 309, 312, 238, 379, 0,
+3, 309, 305, 271, 379, 170, 312, 0,
+3, 305, 309, 310, 170, 379, 300, 0,
+3, 310, 306, 305, 300, 97, 170, 0,
+3, 306, 310, 311, 97, 300, 118, 0,
+3, 311, 307, 306, 118, 205, 97, 0,
+3, 307, 311, 312, 205, 118, 237, 0,
+3, 312, 308, 307, 237, 449, 205, 0,
+3, 276, 281, 313, 238, 15, 199, 0,
+3, 313, 309, 276, 199, 379, 238, 0,
+3, 309, 313, 314, 379, 199, 94, 0,
+3, 314, 310, 309, 94, 300, 379, 0,
+3, 310, 314, 315, 300, 94, 421, 0,
+3, 315, 311, 310, 421, 118, 300, 0,
+3, 311, 315, 316, 118, 421, 31, 0,
+3, 316, 312, 311, 31, 237, 118, 0,
+3, 281, 286, 317, 15, 332, 367, 0,
+3, 317, 313, 281, 367, 199, 15, 0,
+3, 313, 317, 318, 199, 367, 529, 0,
+3, 318, 314, 313, 529, 94, 199, 0,
+3, 314, 318, 319, 94, 529, 185, 0,
+3, 319, 315, 314, 185, 421, 94, 0,
+3, 315, 319, 320, 421, 185, 89, 0,
+3, 320, 316, 315, 89, 31, 421, 0,
+3, 286, 291, 321, 332, 197, 172, 0,
+3, 321, 317, 286, 172, 367, 332, 0,
+3, 317, 321, 322, 367, 172, 209, 0,
+3, 322, 318, 317, 209, 529, 367, 0,
+3, 318, 322, 323, 529, 209, 429, 0,
+3, 323, 319, 318, 429, 185, 529, 0,
+3, 319, 323, 324, 185, 429, 112, 0,
+3, 324, 320, 319, 112, 89, 185, 0,
+3, 291, 296, 325, 197, 225, 451, 0,
+3, 325, 321, 291, 451, 172, 197, 0,
+3, 321, 325, 326, 172, 451, 66, 0,
+3, 326, 322, 321, 66, 209, 172, 0,
+3, 322, 326, 327, 209, 66, 176, 0,
+3, 327, 323, 322, 176, 429, 209, 0,
+3, 323, 327, 328, 429, 176, 155, 0,
+3, 328, 324, 323, 155, 112, 429, 0,
+3, 296, 261, 297, 225, 109, 502, 0,
+3, 297, 325, 296, 502, 451, 225, 0,
+3, 325, 297, 298, 451, 502, 84, 0,
+3, 298, 326, 325, 84, 66, 451, 0,
+3, 326, 298, 299, 66, 84, 496, 0,
+3, 299, 327, 326, 496, 176, 66, 0,
+3, 327, 299, 300, 176, 496, 494, 0,
+3, 300, 328, 327, 494, 155, 176, 0,
+3, 329, 334, 335, 3, 355, 122, 0,
+3, 335, 330, 329, 122, 518, 3, 0,
+3, 330, 335, 336, 518, 122, 111, 0,
+3, 336, 331, 330, 111, 213, 518, 0,
+3, 331, 336, 337, 213, 111, 473, 0,
+3, 337, 332, 331, 473, 468, 213, 0,
+3, 332, 337, 338, 468, 473, 521, 0,
+3, 338, 333, 332, 521, 346, 468, 0,
+3, 334, 339, 340, 355, 61, 414, 0,
+3, 340, 335, 334, 414, 122, 355, 0,
+3, 335, 340, 341, 122, 414, 413, 0,
+3, 341, 336, 335, 413, 111, 122, 0,
+3, 336, 341, 342, 111, 413, 204, 0,
+3, 342, 337, 336, 204, 473, 111, 0,
+3, 337, 342, 343, 473, 204, 217, 0,
+3, 343, 338, 337, 217, 521, 473, 0,
+3, 339, 344, 345, 61, 55, 100, 0,
+3, 345, 340, 339, 100, 414, 61, 0,
+3, 340, 345, 346, 414, 100, 399, 0,
+3, 346, 341, 340, 399, 413, 414, 0,
+3, 341, 346, 347, 413, 399, 326, 0,
+3, 347, 342, 341, 326, 204, 413, 0,
+3, 342, 347, 348, 204, 326, 221, 0,
+3, 348, 343, 342, 221, 217, 204, 0,
+3, 344, 349, 350, 55, 508, 477, 0,
+3, 350, 345, 344, 477, 100, 55, 0,
+3, 345, 350, 351, 100, 477, 292, 0,
+3, 351, 346, 345, 292, 399, 100, 0,
+3, 346, 351, 352, 399, 292, 73, 0,
+3, 352, 347, 346, 73, 326, 399, 0,
+3, 347, 352, 353, 326, 73, 362, 0,
+3, 353, 348, 347, 362, 221, 326, 0,
+3, 349, 354, 355, 508, 365, 262, 0,
+3, 355, 350, 349, 262, 477, 508, 0,
+3, 350, 355, 356, 477, 262, 93, 0,
+3, 356, 351, 350, 93, 292, 477, 0,
+3, 351, 356, 357, 292, 93, 318, 0,
+3, 357, 352, 351, 318, 73, 292, 0,
+3, 352, 357, 358, 73, 318, 163, 0,
+3, 358, 353, 352, 163, 362, 73, 0,
+3, 354, 359, 360, 365, 140, 340, 0,
+3, 360, 355, 354, 340, 262, 365, 0,
+3, 355, 360, 361, 262, 340, 505, 0,
+3, 361, 356, 355, 505, 93, 262, 0,
+3, 356, 361, 362, 93, 505, 499, 0,
+3, 362, 357, 356, 499, 318, 93, 0,
+3, 357, 362, 363, 318, 499, 159, 0,
+3, 363, 358, 357, 159, 163, 318, 0,
+3, 359, 364, 365, 140, 510, 68, 0,
+3, 365, 360, 359, 68, 340, 140, 0,
+3, 360, 365, 366, 340, 68, 167, 0,
+3, 366, 361, 360, 167, 505, 340, 0,
+3, 361, 366, 367, 505, 167, 245, 0,
+3, 367, 362, 361, 245, 499, 505, 0,
+3, 362, 367, 368, 499, 245, 437, 0,
+3, 368, 363, 362, 437, 159, 499, 0,
+3, 364, 329, 330, 510, 3, 518, 0,
+3, 330, 365, 364, 518, 68, 510, 0,
+3, 365, 330, 331, 68, 518, 213, 0,
+3, 331, 366, 365, 213, 167, 68, 0,
+3, 366, 331, 332, 167, 213, 468, 0,
+3, 332, 367, 366, 468, 245, 167, 0,
+3, 367, 332, 333, 245, 468, 346, 0,
+3, 333, 368, 367, 346, 437, 245, 0,
+3, 333, 338, 373, 346, 521, 79, 0,
+3, 373, 369, 333, 79, 286, 346, 0,
+3, 369, 373, 374, 286, 79, 77, 0,
+3, 374, 370, 369, 77, 22, 286, 0,
+3, 370, 374, 375, 22, 77, 523, 0,
+3, 375, 371, 370, 523, 330, 22, 0,
+3, 371, 375, 376, 330, 523, 259, 0,
+3, 376, 372, 371, 259, 338, 330, 0,
+3, 338, 343, 377, 521, 217, 207, 0,
+3, 377, 373, 338, 207, 79, 521, 0,
+3, 373, 377, 378, 79, 207, 471, 0,
+3, 378, 374, 373, 471, 77, 79, 0,
+3, 374, 378, 379, 77, 471, 198, 0,
+3, 379, 375, 374, 198, 523, 77, 0,
+3, 375, 379, 380, 523, 198, 366, 0,
+3, 380, 376, 375, 366, 259, 523, 0,
+3, 343, 348, 381, 217, 221, 516, 0,
+3, 381, 377, 343, 516, 207, 217, 0,
+3, 377, 381, 382, 207, 516, 250, 0,
+3, 382, 378, 377, 250, 471, 207, 0,
+3, 378, 382, 383, 471, 250, 240, 0,
+3, 383, 379, 378, 240, 198, 471, 0,
+3, 379, 383, 384, 198, 240, 381, 0,
+3, 384, 380, 379, 381, 366, 198, 0,
+3, 348, 353, 385, 221, 362, 230, 0,
+3, 385, 381, 348, 230, 516, 221, 0,
+3, 381, 385, 386, 516, 230, 303, 0,
+3, 386, 382, 381, 303, 250, 516, 0,
+3, 382, 386, 387, 250, 303, 10, 0,
+3, 387, 383, 382, 10, 240, 250, 0,
+3, 383, 387, 388, 240, 10, 283, 0,
+3, 388, 384, 383, 283, 381, 240, 0,
+3, 353, 358, 389, 362, 163, 282, 0,
+3, 389, 385, 353, 282, 230, 362, 0,
+3, 385, 389, 390, 230, 282, 35, 0,
+3, 390, 386, 385, 35, 303, 230, 0,
+3, 386, 390, 391, 303, 35, 243, 0,
+3, 391, 387, 386, 243, 10, 303, 0,
+3, 387, 391, 392, 10, 243, 368, 0,
+3, 392, 388, 387, 368, 283, 10, 0,
+3, 358, 363, 393, 163, 159, 296, 0,
+3, 393, 389, 358, 296, 282, 163, 0,
+3, 389, 393, 394, 282, 296, 160, 0,
+3, 394, 390, 389, 160, 35, 282, 0,
+3, 390, 394, 395, 35, 160, 323, 0,
+3, 395, 391, 390, 323, 243, 35, 0,
+3, 391, 395, 396, 243, 323, 280, 0,
+3, 396, 392, 391, 280, 368, 243, 0,
+3, 363, 368, 397, 159, 437, 275, 0,
+3, 397, 393, 363, 275, 296, 159, 0,
+3, 393, 397, 398, 296, 275, 133, 0,
+3, 398, 394, 393, 133, 160, 296, 0,
+3, 394, 398, 399, 160, 133, 344, 0,
+3, 399, 395, 394, 344, 323, 160, 0,
+3, 395, 399, 400, 323, 344, 108, 0,
+3, 400, 396, 395, 108, 280, 323, 0,
+3, 368, 333, 369, 437, 346, 286, 0,
+3, 369, 397, 368, 286, 275, 437, 0,
+3, 397, 369, 370, 275, 286, 22, 0,
+3, 370, 398, 397, 22, 133, 275, 0,
+3, 398, 370, 371, 133, 22, 330, 0,
+3, 371, 399, 398, 330, 344, 133, 0,
+3, 399, 371, 372, 344, 330, 338, 0,
+3, 372, 400, 399, 338, 108, 344, 0,
+3, 401, 401, 406, 235, 235, 189, 0,
+3, 406, 402, 401, 189, 40, 235, 0,
+3, 402, 406, 407, 40, 189, 306, 0,
+3, 407, 403, 402, 306, 119, 40, 0,
+3, 403, 407, 408, 119, 306, 202, 0,
+3, 408, 404, 403, 202, 443, 119, 0,
+3, 404, 408, 409, 443, 202, 241, 0,
+3, 409, 405, 404, 241, 75, 443, 0,
+3, 401, 401, 410, 235, 235, 263, 0,
+3, 410, 406, 401, 263, 189, 235, 0,
+3, 406, 410, 411, 189, 263, 196, 0,
+3, 411, 407, 406, 196, 306, 189, 0,
+3, 407, 411, 412, 306, 196, 281, 0,
+3, 412, 408, 407, 281, 202, 306, 0,
+3, 408, 412, 413, 202, 281, 121, 0,
+3, 413, 409, 408, 121, 241, 202, 0,
+3, 401, 401, 414, 235, 235, 479, 0,
+3, 414, 410, 401, 479, 263, 235, 0,
+3, 410, 414, 415, 263, 479, 36, 0,
+3, 415, 411, 410, 36, 196, 263, 0,
+3, 411, 415, 416, 196, 36, 436, 0,
+3, 416, 412, 411, 436, 281, 196, 0,
+3, 412, 416, 417, 281, 436, 351, 0,
+3, 417, 413, 412, 351, 121, 281, 0,
+3, 401, 401, 418, 235, 235, 90, 0,
+3, 418, 414, 401, 90, 479, 235, 0,
+3, 414, 418, 419, 479, 90, 361, 0,
+3, 419, 415, 414, 361, 36, 479, 0,
+3, 415, 419, 420, 36, 361, 376, 0,
+3, 420, 416, 415, 376, 436, 36, 0,
+3, 416, 420, 421, 436, 376, 412, 0,
+3, 421, 417, 416, 412, 351, 436, 0,
+3, 401, 401, 422, 235, 235, 52, 0,
+3, 422, 418, 401, 52, 90, 235, 0,
+3, 418, 422, 423, 90, 52, 21, 0,
+3, 423, 419, 418, 21, 361, 90, 0,
+3, 419, 423, 424, 361, 21, 158, 0,
+3, 424, 420, 419, 158, 376, 361, 0,
+3, 420, 424, 425, 376, 158, 39, 0,
+3, 425, 421, 420, 39, 412, 376, 0,
+3, 401, 401, 426, 235, 235, 424, 0,
+3, 426, 422, 401, 424, 52, 235, 0,
+3, 422, 426, 427, 52, 424, 373, 0,
+3, 427, 423, 422, 373, 21, 52, 0,
+3, 423, 427, 428, 21, 373, 375, 0,
+3, 428, 424, 423, 375, 158, 21, 0,
+3, 424, 428, 429, 158, 375, 249, 0,
+3, 429, 425, 424, 249, 39, 158, 0,
+3, 401, 401, 430, 235, 235, 432, 0,
+3, 430, 426, 401, 432, 424, 235, 0,
+3, 426, 430, 431, 424, 432, 229, 0,
+3, 431, 427, 426, 229, 373, 424, 0,
+3, 427, 431, 432, 373, 229, 65, 0,
+3, 432, 428, 427, 65, 375, 373, 0,
+3, 428, 432, 433, 375, 65, 506, 0,
+3, 433, 429, 428, 506, 249, 375, 0,
+3, 401, 401, 434, 235, 235, 302, 0,
+3, 434, 430, 401, 302, 432, 235, 0,
+3, 430, 434, 435, 432, 302, 96, 0,
+3, 435, 431, 430, 96, 229, 432, 0,
+3, 431, 435, 436, 229, 96, 169, 0,
+3, 436, 432, 431, 169, 65, 229, 0,
+3, 432, 436, 437, 65, 169, 59, 0,
+3, 437, 433, 432, 59, 506, 65, 0,
+3, 401, 401, 438, 235, 235, 452, 0,
+3, 438, 434, 401, 452, 302, 235, 0,
+3, 434, 438, 439, 302, 452, 30, 0,
+3, 439, 435, 434, 30, 96, 302, 0,
+3, 435, 439, 440, 96, 30, 460, 0,
+3, 440, 436, 435, 460, 169, 96, 0,
+3, 436, 440, 441, 169, 460, 498, 0,
+3, 441, 437, 436, 498, 59, 169, 0,
+3, 401, 401, 442, 235, 235, 525, 0,
+3, 442, 438, 401, 525, 452, 235, 0,
+3, 438, 442, 443, 452, 525, 456, 0,
+3, 443, 439, 438, 456, 30, 452, 0,
+3, 439, 443, 444, 30, 456, 9, 0,
+3, 444, 440, 439, 9, 460, 30, 0,
+3, 440, 444, 445, 460, 9, 388, 0,
+3, 445, 441, 440, 388, 498, 460, 0,
+3, 401, 401, 446, 235, 235, 212, 0,
+3, 446, 442, 401, 212, 525, 235, 0,
+3, 442, 446, 447, 525, 212, 299, 0,
+3, 447, 443, 442, 299, 456, 525, 0,
+3, 443, 447, 448, 456, 299, 166, 0,
+3, 448, 444, 443, 166, 9, 456, 0,
+3, 444, 448, 449, 9, 166, 72, 0,
+3, 449, 445, 444, 72, 388, 9, 0,
+3, 401, 401, 450, 235, 235, 107, 0,
+3, 450, 446, 401, 107, 212, 235, 0,
+3, 446, 450, 451, 212, 107, 82, 0,
+3, 451, 447, 446, 82, 299, 212, 0,
+3, 447, 451, 452, 299, 82, 391, 0,
+3, 452, 448, 447, 391, 166, 299, 0,
+3, 448, 452, 453, 166, 391, 139, 0,
+3, 453, 449, 448, 139, 72, 166, 0,
+3, 401, 401, 454, 235, 235, 70, 0,
+3, 454, 450, 401, 70, 107, 235, 0,
+3, 450, 454, 455, 107, 70, 51, 0,
+3, 455, 451, 450, 51, 82, 107, 0,
+3, 451, 455, 456, 82, 51, 178, 0,
+3, 456, 452, 451, 178, 391, 82, 0,
+3, 452, 456, 457, 391, 178, 57, 0,
+3, 457, 453, 452, 57, 139, 391, 0,
+3, 401, 401, 458, 235, 235, 442, 0,
+3, 458, 454, 401, 442, 70, 235, 0,
+3, 454, 458, 459, 70, 442, 387, 0,
+3, 459, 455, 454, 387, 51, 70, 0,
+3, 455, 459, 460, 51, 387, 389, 0,
+3, 460, 456, 455, 389, 178, 51, 0,
+3, 456, 460, 461, 178, 389, 264, 0,
+3, 461, 457, 456, 264, 57, 178, 0,
+3, 401, 401, 462, 235, 235, 450, 0,
+3, 462, 458, 401, 450, 442, 235, 0,
+3, 458, 462, 463, 442, 450, 253, 0,
+3, 463, 459, 458, 253, 387, 442, 0,
+3, 459, 463, 464, 387, 253, 86, 0,
+3, 464, 460, 459, 86, 389, 387, 0,
+3, 460, 464, 465, 389, 86, 526, 0,
+3, 465, 461, 460, 526, 264, 389, 0,
+3, 401, 401, 402, 235, 235, 40, 0,
+3, 402, 462, 401, 40, 450, 235, 0,
+3, 462, 402, 403, 450, 40, 119, 0,
+3, 403, 463, 462, 119, 253, 450, 0,
+3, 463, 403, 404, 253, 119, 443, 0,
+3, 404, 464, 463, 443, 86, 253, 0,
+3, 464, 404, 405, 86, 443, 75, 0,
+3, 405, 465, 464, 75, 526, 86, 0,
+3, 405, 409, 470, 75, 241, 519, 0,
+3, 470, 466, 405, 519, 226, 75, 0,
+3, 466, 470, 471, 226, 519, 406, 0,
+3, 471, 467, 466, 406, 98, 226, 0,
+3, 467, 471, 472, 98, 406, 232, 0,
+3, 472, 468, 467, 232, 43, 98, 0,
+3, 468, 472, 473, 43, 232, 345, 0,
+3, 473, 469, 468, 345, 372, 43, 0,
+3, 409, 413, 474, 241, 121, 227, 0,
+3, 474, 470, 409, 227, 519, 241, 0,
+3, 470, 474, 475, 519, 227, 469, 0,
+3, 475, 471, 470, 469, 406, 519, 0,
+3, 471, 475, 476, 406, 469, 258, 0,
+3, 476, 472, 471, 258, 232, 406, 0,
+3, 472, 476, 477, 232, 258, 271, 0,
+3, 477, 473, 472, 271, 345, 232, 0,
+3, 413, 417, 478, 121, 351, 157, 0,
+3, 478, 474, 413, 157, 227, 121, 0,
+3, 474, 478, 479, 227, 157, 80, 0,
+3, 479, 475, 474, 80, 469, 227, 0,
+3, 475, 479, 480, 469, 80, 489, 0,
+3, 480, 476, 475, 489, 258, 469, 0,
+3, 476, 480, 481, 258, 489, 277, 0,
+3, 481, 477, 476, 277, 271, 258, 0,
+3, 417, 421, 482, 351, 412, 153, 0,
+3, 482, 478, 417, 153, 157, 351, 0,
+3, 478, 482, 483, 157, 153, 324, 0,
+3, 483, 479, 478, 324, 80, 157, 0,
+3, 479, 483, 484, 80, 324, 339, 0,
+3, 484, 480, 479, 339, 489, 80, 0,
+3, 480, 484, 485, 489, 339, 88, 0,
+3, 485, 481, 480, 88, 277, 489, 0,
+3, 421, 425, 486, 412, 39, 6, 0,
+3, 486, 482, 421, 6, 153, 412, 0,
+3, 482, 486, 487, 153, 6, 8, 0,
+3, 487, 483, 482, 8, 324, 153, 0,
+3, 483, 487, 488, 324, 8, 16, 0,
+3, 488, 484, 483, 16, 339, 324, 0,
+3, 484, 488, 489, 339, 16, 289, 0,
+3, 489, 485, 484, 289, 88, 339, 0,
+3, 425, 429, 490, 39, 249, 99, 0,
+3, 490, 486, 425, 99, 6, 39, 0,
+3, 486, 490, 491, 6, 99, 200, 0,
+3, 491, 487, 486, 200, 8, 6, 0,
+3, 487, 491, 492, 8, 200, 150, 0,
+3, 492, 488, 487, 150, 16, 8, 0,
+3, 488, 492, 493, 16, 150, 493, 0,
+3, 493, 489, 488, 493, 289, 16, 0,
+3, 429, 433, 494, 249, 506, 291, 0,
+3, 494, 490, 429, 291, 99, 249, 0,
+3, 490, 494, 495, 99, 291, 64, 0,
+3, 495, 491, 490, 64, 200, 99, 0,
+3, 491, 495, 496, 200, 64, 19, 0,
+3, 496, 492, 491, 19, 150, 200, 0,
+3, 492, 496, 497, 150, 19, 433, 0,
+3, 497, 493, 492, 433, 493, 150, 0,
+3, 433, 437, 498, 506, 59, 203, 0,
+3, 498, 494, 433, 203, 291, 506, 0,
+3, 494, 498, 499, 291, 203, 374, 0,
+3, 499, 495, 494, 374, 64, 291, 0,
+3, 495, 499, 500, 64, 374, 307, 0,
+3, 500, 496, 495, 307, 19, 64, 0,
+3, 496, 500, 501, 19, 307, 358, 0,
+3, 501, 497, 496, 358, 433, 19, 0,
+3, 437, 441, 502, 59, 498, 256, 0,
+3, 502, 498, 437, 256, 203, 59, 0,
+3, 498, 502, 503, 203, 256, 132, 0,
+3, 503, 499, 498, 132, 374, 203, 0,
+3, 499, 503, 504, 374, 132, 492, 0,
+3, 504, 500, 499, 492, 307, 374, 0,
+3, 500, 504, 505, 307, 492, 67, 0,
+3, 505, 501, 500, 67, 358, 307, 0,
+3, 441, 445, 506, 498, 388, 487, 0,
+3, 506, 502, 441, 487, 256, 498, 0,
+3, 502, 506, 507, 256, 487, 206, 0,
+3, 507, 503, 502, 206, 132, 256, 0,
+3, 503, 507, 508, 132, 206, 515, 0,
+3, 508, 504, 503, 515, 492, 132, 0,
+3, 504, 508, 509, 492, 515, 527, 0,
+3, 509, 505, 504, 527, 67, 492, 0,
+3, 445, 449, 510, 388, 72, 423, 0,
+3, 510, 506, 445, 423, 487, 388, 0,
+3, 506, 510, 511, 487, 423, 352, 0,
+3, 511, 507, 506, 352, 206, 487, 0,
+3, 507, 511, 512, 206, 352, 224, 0,
+3, 512, 508, 507, 224, 515, 206, 0,
+3, 508, 512, 513, 515, 224, 2, 0,
+3, 513, 509, 508, 2, 527, 515, 0,
+3, 449, 453, 514, 72, 139, 418, 0,
+3, 514, 510, 449, 418, 423, 72, 0,
+3, 510, 514, 515, 423, 418, 341, 0,
+3, 515, 511, 510, 341, 352, 423, 0,
+3, 511, 515, 516, 352, 341, 359, 0,
+3, 516, 512, 511, 359, 224, 352, 0,
+3, 512, 516, 517, 224, 359, 360, 0,
+3, 517, 513, 512, 360, 2, 224, 0,
+3, 453, 457, 518, 139, 57, 24, 0,
+3, 518, 514, 453, 24, 418, 139, 0,
+3, 514, 518, 519, 418, 24, 25, 0,
+3, 519, 515, 514, 25, 341, 418, 0,
+3, 515, 519, 520, 341, 25, 41, 0,
+3, 520, 516, 515, 41, 359, 341, 0,
+3, 516, 520, 521, 359, 41, 314, 0,
+3, 521, 517, 516, 314, 360, 359, 0,
+3, 457, 461, 522, 57, 264, 120, 0,
+3, 522, 518, 457, 120, 24, 57, 0,
+3, 518, 522, 523, 24, 120, 223, 0,
+3, 523, 519, 518, 223, 25, 24, 0,
+3, 519, 523, 524, 25, 223, 171, 0,
+3, 524, 520, 519, 171, 41, 25, 0,
+3, 520, 524, 525, 41, 171, 514, 0,
+3, 525, 521, 520, 514, 314, 41, 0,
+3, 461, 465, 526, 264, 526, 316, 0,
+3, 526, 522, 461, 316, 120, 264, 0,
+3, 522, 526, 527, 120, 316, 85, 0,
+3, 527, 523, 522, 85, 223, 120, 0,
+3, 523, 527, 528, 223, 85, 50, 0,
+3, 528, 524, 523, 50, 171, 223, 0,
+3, 524, 528, 529, 171, 50, 454, 0,
+3, 529, 525, 524, 454, 514, 171, 0,
+3, 465, 405, 466, 526, 75, 226, 0,
+3, 466, 526, 465, 226, 316, 526, 0,
+3, 526, 466, 467, 316, 226, 98, 0,
+3, 467, 527, 526, 98, 85, 316, 0,
+3, 527, 467, 468, 85, 98, 43, 0,
+3, 468, 528, 527, 43, 50, 85, 0,
+3, 528, 468, 469, 50, 43, 372, 0,
+3, 469, 529, 528, 372, 454, 50, 0
+};
+
+
+const int strip_vertices[] = {
+508, 508, 504, 509, 504, 505, 500, 501, 496, 497, 492, 493, 488, 489, 484, 485, 480, 481, 476, 477, 472, 473, -1,
+476, 475, 480, 479, 484, 483, 488, 487, 492, 491, 496, 495, 500, 499, 504, 499, 503, 498, 502, 437, 441, -1,
+527, 526, 467, 466, 471, 470, 475, 474, 479, 478, 483, 482, 487, 486, 491, 490, 495, 494, 499, 494, 498, -1,
+490, 490, 425, 486, 421, 482, 417, 478, 413, 474, 409, 470, 405, 466, 465, 526, 465, 461, 460, 456, 455, 451, -1,
+405, 465, 464, 460, 459, 455, 454, 450, -1,
+455, 451, 450, 446, 450, 401, 454, 458, 459, 463, 464, 404, 405, 404, 409, 408, 413, 412, 417, 416, 421, 420, -1,
+421, 420, 425, 420, 424, 419, 423, 418, 422, 418, 401, 414, 410, 415, 411, 416, 411, 412, 407, 408, 403, 404, 403, 463, -1,
+418, 418, 414, 419, 415, 420, 416, -1,
+407, 403, 402, 462, -1,
+403, 463, 462, 458, 462, 401, 402, 406, 407, 406, 411, 406, 410, 401, -1,
+494, 494, 498, 433, 437, 432, 436, 431, 435, 430, 434, 430, 401, 426, 422, 427, 423, 428, 424, 429, 425, 490, -1,
+430, 430, 426, 431, 427, 432, 428, 433, 429, 494, 490, -1,
+437, 437, 441, 436, 440, 435, 439, 434, 438, 401, 442, 446, 447, 451, 452, 456, 457, 461, 522, 526, 527, -1,
+452, 448, 447, -1,
+510, 445, 449, 444, 448, 443, 447, 443, 442, 443, 438, 443, 439, 444, 440, 445, 441, 506, 502, 507, 503, -1,
+510, 506, 445, -1,
+507, 506, 511, 510, 515, 510, 514, 449, 453, 448, 453, 452, 457, -1,
+527, 523, 522, 518, 457, 518, 453, 518, 514, 519, 515, -1,
+523, 519, 518, -1,
+504, 503, 508, 507, 512, 511, 516, 515, 520, 519, 524, 523, 528, 527, 468, 467, 472, 471, 476, 475, -1,
+472, 473, 468, 469, 528, 529, 524, 525, 520, 521, 516, 517, 512, 513, 508, 509, -1,
+211, 211, 214, 210, 209, -1,
+212, 215, 216, 219, 220, 223, 220, 211, 217, 214, 213, 209, 213, 208, 212, 147, -1,
+220, 217, 216, 213, 212, -1,
+251, 251, 248, 252, 249, 253, 250, 253, 211, 256, 210, 255, 209, 254, 208, 207, 147, 206, 147, 146, 147, 151, 212, 215, -1,
+206, 206, 202, 207, 203, 254, 251, 255, 252, 256, 253, -1,
+223, 223, 222, 219, 218, 215, 155, 151, 150, 146, 145, 146, 205, 206, 201, 202, 197, 202, 198, 203, 199, 251, 248, -1,
+145, 149, 150, 154, 155, 159, 218, 221, 222, 225, 226, 229, -1,
+204, 204, 145, 144, 149, 148, 149, 153, 154, 158, 159, 163, 221, 224, 225, 228, 229, 232, 229, 211, 226, 223, 222, -1,
+224, 224, 167, 163, 162, 158, 157, 153, 152, 148, 87, 148, 83, 144, 143, 204, 139, 200, 135, 196, 131, 192, -1,
+82, 83, 142, 143, 138, 139, 134, 135, 130, 131, 126, 127, 122, 123, 118, 123, 119, 184, 180, 185, 181, -1,
+81, 82, 141, 142, 137, 138, 133, 134, 129, 130, 125, 126, 121, 122, 117, 118, 113, 114, 109, 110, -1,
+80, 81, 140, 141, 136, 137, 132, 133, 128, 129, 124, 125, 120, 121, 116, 117, 112, 113, 108, 109, -1,
+4, 80, 79, 140, 74, 136, 69, 132, 64, 128, 59, 124, 54, 120, 49, 116, 44, 112, 39, 108, -1,
+79, 79, 73, 74, 68, 69, 63, 64, 58, 59, 53, 54, 48, 49, 48, 43, 42, 37, 36, 31, 30, 31, 25, -1,
+42, 42, 48, 47, 53, 52, 58, 57, 63, 62, 68, 67, 73, 72, 78, 77, 3, 2, 8, 7, 13, -1,
+36, 36, 42, 41, 47, 46, 52, 51, 57, 56, 62, 61, 67, 66, 72, 71, 77, 76, 2, 1, 7, -1,
+66, 66, 60, 61, 55, 56, 50, 51, 45, 46, 40, 41, 35, 36, 30, -1,
+31, 31, 25, 26, 20, 21, 15, 16, 10, 11, 5, 6, 0, 1, 75, 76, 70, 71, 65, 66, 60, -1,
+1, 1, 7, 6, 12, 11, 17, 16, 22, 21, 27, 26, 32, 31, 32, 37, 38, 43, 44, 49, -1,
+7, 7, 13, 12, 18, 17, 23, 22, 28, 27, 33, 32, 33, 38, -1,
+44, 44, 38, 39, 33, 34, 28, 29, 23, 24, 18, 19, 13, 14, 8, 9, 3, 4, 78, 79, 73, -1,
+39, 108, 34, 104, 29, 100, 24, 96, 19, 92, 14, 88, 9, 84, 4, 84, 80, 85, 81, 86, 81, 82, -1,
+108, 109, 104, 105, 100, 101, 96, 97, 92, 93, 88, 89, 84, 85, -1,
+109, 110, 105, 106, 101, 102, 97, 98, 93, 94, 89, 90, 85, 86, -1,
+118, 119, 114, 115, 110, 111, 106, 107, 102, 103, 98, 99, 94, 95, 90, 91, 86, 87, 82, 83, -1,
+111, 115, 176, -1,
+107, 111, 172, 176, 177, -1,
+103, 107, 168, 172, 173, 177, 178, -1,
+99, 103, 164, 168, 169, 173, 174, 178, 179, -1,
+95, 99, 160, 164, 165, 169, 170, 174, 175, 179, 233, -1,
+91, 95, 156, 160, 161, 165, 166, 170, 171, 175, 230, 233, 234, -1,
+87, 91, 152, 156, 157, 161, 162, 166, 167, 171, 227, 230, 231, 234, 235, 234, 238, 234, 237, 233, 236, 179, -1,
+185, 185, 181, 186, 182, 187, 183, 239, 236, 240, 237, 241, 238, 211, 235, 232, 231, 228, 227, 224, 167, -1,
+236, 179, 183, 178, 182, 177, 181, 176, 180, 115, 119, -1,
+131, 192, 127, 188, 123, 188, 184, 189, 185, 190, 186, 191, 187, 242, 239, 243, 240, 244, 241, 244, 211, 247, -1,
+192, 192, 188, 193, 189, 194, 190, 195, 191, 245, 242, 246, 243, 247, 244, -1,
+211, 247, 250, 246, 249, 245, 248, 195, 199, 194, 198, 193, 197, 192, 197, 196, 201, 200, 205, 204, 145, -1,
+393, 393, 394, 398, 399, 371, -1,
+399, 395, 394, -1,
+363, 363, 393, 397, 398, 370, 371, 375, -1,
+379, 375, 374, 370, 369, 397, 368, 363, 362, -1,
+396, 395, 400, 399, 372, 371, 376, 375, 380, 379, 384, 383, 388, 387, 392, 391, 396, 391, 395, 390, 394, -1,
+374, 378, 379, 378, 383, 382, 387, 386, 391, 386, 390, 385, 389, 353, 358, 352, 357, 351, 356, 350, 355, -1,
+341, 341, 347, 346, 352, 346, 351, 345, 350, -1,
+335, 334, 340, 339, 345, 344, 350, 349, 355, 354, -1,
+390, 390, 394, 389, 393, 358, 363, 357, 362, 356, 361, 355, 360, 354, 360, 359, 365, 364, 330, 329, 335, 334, -1,
+345, 346, 340, 341, 335, 336, 330, 331, 365, 366, 360, 366, 361, 367, 362, 367, 368, 333, 369, 373, 374, 378, -1,
+353, 353, 348, 385, 381, 386, 381, 382, 377, 378, 377, 373, 338, 333, 332, 367, 332, 366, 332, 331, 337, 336, 342, 341, 347, -1,
+332, 337, 338, 343, 377, 343, 381, 343, 348, 342, 348, 347, 353, 352, -1,
+337, 342, 343, -1,
+314, 314, 319, 318, 323, 322, 323, 327, -1,
+309, 309, 314, 313, 318, 317, 322, 321, 322, 326, 327, 299, -1,
+271, 271, 309, 276, 313, 281, 317, 286, 321, 291, 321, 325, 326, 298, 299, 303, -1,
+265, 265, 271, 270, 276, 275, 281, 280, 286, 285, 291, 290, 291, 296, 325, 297, 298, 302, 303, 307, -1,
+259, 259, 265, 264, 270, 269, 275, 274, 280, 279, 285, 284, 290, 289, 290, 295, 296, 261, 297, 301, 302, 306, 307, 311, -1,
+293, 293, 259, 258, 264, 263, 269, 268, 274, 273, 279, 278, 284, 283, 289, 288, 289, 294, 295, 260, 261, 266, -1,
+309, 305, 271, 266, 265, 260, 259, 294, 293, 288, 287, 288, 282, 283, 277, 278, 272, 273, 267, 268, 262, -1,
+268, 268, 262, 263, 257, 258, 292, 293, 287, -1,
+261, 266, 301, 305, 306, 310, 311, 315, 316, 320, -1,
+316, 316, 311, 312, 307, 308, 303, 304, 299, 300, 327, 328, 323, 324, 319, 320, 319, 315, 314, 310, 309, 305, -1
+};
+
+
+const int strip_normals[] = {
+515, 515, 492, 527, 492, 67, 307, 358, 19, 433, 150, 493, 16, 289, 339, 88, 489, 277, 258, 271, 232, 345, -1,
+258, 469, 489, 80, 339, 324, 16, 8, 150, 200, 19, 64, 307, 374, 492, 374, 132, 203, 256, 59, 498, -1,
+85, 316, 98, 226, 406, 519, 469, 227, 80, 157, 324, 153, 8, 6, 200, 99, 64, 291, 374, 291, 203, -1,
+99, 99, 39, 6, 412, 153, 351, 157, 121, 227, 241, 519, 75, 226, 526, 316, 526, 264, 389, 178, 51, 82, -1,
+75, 526, 86, 389, 387, 51, 70, 107, -1,
+51, 82, 107, 212, 107, 235, 70, 442, 387, 253, 86, 443, 75, 443, 241, 202, 121, 281, 351, 436, 412, 376, -1,
+412, 376, 39, 376, 158, 361, 21, 90, 52, 90, 235, 479, 263, 36, 196, 436, 196, 281, 306, 202, 119, 443, 119, 253, -1,
+90, 90, 479, 361, 36, 376, 436, -1,
+306, 119, 40, 450, -1,
+119, 253, 450, 442, 450, 235, 40, 189, 306, 189, 196, 189, 263, 235, -1,
+291, 291, 203, 506, 59, 65, 169, 229, 96, 432, 302, 432, 235, 424, 52, 373, 21, 375, 158, 249, 39, 99, -1,
+432, 432, 424, 229, 373, 65, 375, 506, 249, 291, 99, -1,
+59, 59, 498, 169, 460, 96, 30, 302, 452, 235, 525, 212, 299, 82, 391, 178, 57, 264, 120, 316, 85, -1,
+391, 166, 299, -1,
+423, 388, 72, 9, 166, 456, 299, 456, 525, 456, 452, 456, 30, 9, 460, 388, 498, 487, 256, 206, 132, -1,
+423, 487, 388, -1,
+206, 487, 352, 423, 341, 423, 418, 72, 139, 166, 139, 391, 57, -1,
+85, 223, 120, 24, 57, 24, 139, 24, 418, 25, 341, -1,
+223, 25, 24, -1,
+492, 132, 515, 206, 224, 352, 359, 341, 41, 25, 171, 223, 50, 85, 43, 98, 232, 406, 258, 469, -1,
+232, 345, 43, 372, 50, 454, 171, 514, 41, 314, 359, 360, 224, 2, 515, 527, -1,
+393, 393, 0, 216, 349, -1,
+486, 215, 327, 91, 177, 254, 177, 393, 512, 0, 231, 349, 231, 279, 486, 246, -1,
+177, 512, 327, 231, 486, -1,
+462, 462, 144, 76, 179, 464, 298, 464, 393, 128, 216, 113, 349, 500, 279, 101, 246, 7, 246, 395, 246, 384, 486, 215, -1,
+7, 7, 195, 101, 444, 500, 462, 113, 76, 128, 464, -1,
+254, 254, 285, 91, 149, 215, 83, 384, 325, 395, 520, 395, 315, 7, 143, 195, 129, 195, 461, 444, 475, 462, 144, -1,
+520, 308, 325, 415, 83, 297, 149, 504, 285, 162, 278, 446, -1,
+403, 403, 520, 276, 308, 404, 308, 272, 415, 416, 297, 317, 504, 125, 162, 60, 446, 110, 446, 393, 278, 254, 285, -1,
+125, 125, 459, 317, 334, 416, 137, 272, 47, 404, 511, 404, 1, 276, 54, 403, 45, 370, 490, 210, 29, 184, -1,
+336, 1, 251, 54, 164, 45, 463, 490, 378, 29, 453, 147, 222, 218, 301, 218, 242, 310, 130, 528, 34, -1,
+26, 336, 148, 251, 269, 164, 419, 463, 293, 378, 420, 453, 333, 222, 208, 301, 294, 56, 127, 228, -1,
+131, 26, 371, 148, 284, 269, 311, 419, 95, 293, 350, 420, 377, 333, 474, 208, 396, 294, 357, 127, -1,
+116, 131, 273, 371, 480, 284, 104, 311, 257, 95, 348, 350, 447, 377, 313, 474, 322, 396, 28, 357, -1,
+273, 273, 183, 480, 347, 104, 53, 257, 181, 348, 124, 447, 428, 313, 428, 435, 11, 270, 193, 305, 69, 305, 386, -1,
+11, 11, 428, 409, 124, 382, 181, 161, 53, 481, 347, 408, 183, 319, 151, 422, 448, 4, 165, 134, 394, -1,
+193, 193, 11, 495, 409, 44, 382, 385, 161, 478, 481, 320, 408, 37, 319, 524, 422, 328, 4, 465, 134, -1,
+37, 37, 431, 320, 136, 478, 513, 385, 27, 44, 467, 495, 115, 193, 69, -1,
+305, 305, 386, 20, 174, 182, 401, 211, 248, 106, 295, 309, 255, 465, 483, 328, 191, 524, 135, 37, 431, -1,
+465, 465, 134, 309, 102, 106, 427, 211, 507, 182, 410, 20, 503, 305, 503, 270, 445, 435, 322, 313, -1,
+134, 134, 394, 102, 455, 427, 5, 507, 23, 410, 405, 503, 405, 445, -1,
+322, 322, 445, 28, 405, 138, 23, 485, 5, 234, 455, 74, 394, 180, 165, 49, 448, 116, 151, 273, 183, -1,
+28, 357, 138, 268, 485, 287, 234, 81, 74, 78, 180, 103, 49, 220, 116, 220, 131, 476, 26, 38, 26, 336, -1,
+357, 127, 268, 252, 287, 398, 81, 274, 78, 154, 103, 62, 220, 476, -1,
+127, 228, 252, 141, 398, 440, 274, 363, 154, 190, 62, 488, 476, 38, -1,
+301, 242, 56, 517, 228, 33, 141, 18, 440, 466, 363, 304, 190, 417, 488, 484, 38, 511, 336, 1, -1,
+33, 517, 260, -1,
+18, 33, 390, 260, 497, -1,
+466, 18, 353, 390, 290, 497, 126, -1,
+304, 466, 187, 353, 123, 290, 522, 126, 501, -1,
+417, 304, 458, 187, 117, 123, 168, 522, 87, 501, 261, -1,
+484, 417, 430, 458, 343, 117, 438, 168, 426, 87, 482, 261, 329, -1,
+511, 484, 47, 430, 137, 343, 334, 438, 459, 426, 439, 482, 92, 329, 192, 329, 267, 329, 491, 261, 219, 501, -1,
+528, 528, 34, 145, 46, 356, 105, 472, 219, 48, 491, 247, 267, 393, 192, 110, 92, 60, 439, 125, 459, -1,
+219, 501, 105, 126, 46, 497, 34, 260, 130, 517, 242, -1,
+29, 184, 147, 156, 218, 156, 310, 402, 528, 146, 145, 17, 356, 411, 472, 364, 48, 441, 247, 441, 393, 509, -1,
+184, 184, 156, 63, 402, 354, 146, 335, 17, 239, 411, 13, 364, 509, 441, -1,
+393, 509, 298, 13, 179, 239, 144, 335, 475, 354, 461, 63, 129, 184, 129, 210, 143, 370, 315, 403, 520, -1,
+296, 296, 160, 133, 344, 330, -1,
+344, 323, 160, -1,
+159, 159, 296, 275, 133, 22, 330, 523, -1,
+198, 523, 77, 22, 286, 275, 437, 159, 499, -1,
+280, 323, 108, 344, 338, 330, 259, 523, 366, 198, 381, 240, 283, 10, 368, 243, 280, 243, 323, 35, 160, -1,
+77, 471, 198, 471, 240, 250, 10, 303, 243, 303, 35, 230, 282, 362, 163, 73, 318, 292, 93, 477, 262, -1,
+413, 413, 326, 399, 73, 399, 292, 100, 477, -1,
+122, 355, 414, 61, 100, 55, 477, 508, 262, 365, -1,
+35, 35, 160, 282, 296, 163, 159, 318, 499, 93, 505, 262, 340, 365, 340, 140, 68, 510, 518, 3, 122, 355, -1,
+100, 399, 414, 413, 122, 111, 518, 213, 68, 167, 340, 167, 505, 245, 499, 245, 437, 346, 286, 79, 77, 471, -1,
+362, 362, 221, 230, 516, 303, 516, 250, 207, 471, 207, 79, 521, 346, 468, 245, 468, 167, 468, 213, 473, 111, 204, 413, 326, -1,
+468, 473, 521, 217, 207, 217, 516, 217, 221, 204, 221, 326, 362, 73, -1,
+473, 204, 217, -1,
+94, 94, 185, 529, 429, 209, 429, 176, -1,
+379, 379, 94, 199, 529, 367, 209, 172, 209, 66, 176, 496, -1,
+312, 312, 379, 238, 199, 15, 367, 332, 172, 197, 172, 451, 66, 84, 496, 186, -1,
+266, 266, 312, 392, 238, 201, 15, 14, 332, 457, 197, 383, 197, 225, 451, 502, 84, 265, 186, 205, -1,
+236, 236, 266, 214, 392, 71, 201, 188, 14, 173, 457, 400, 383, 380, 383, 342, 225, 109, 502, 175, 265, 97, 205, 118, -1,
+152, 152, 236, 337, 214, 58, 71, 369, 188, 434, 173, 114, 400, 288, 380, 42, 380, 397, 342, 32, 109, 331, -1,
+379, 170, 312, 331, 266, 32, 236, 397, 152, 42, 194, 42, 407, 288, 142, 114, 12, 434, 233, 369, 244, -1,
+369, 369, 244, 58, 425, 337, 321, 152, 194, -1,
+109, 331, 175, 170, 97, 300, 118, 421, 31, 89, -1,
+31, 31, 118, 237, 205, 449, 186, 470, 496, 494, 176, 155, 429, 112, 185, 89, 185, 421, 94, 300, 379, 170, -1
+};
+
+#else  /* defined(_WIN32_WCE) */
+
+/*
+ * Original teapot code copyright follows:
+ */
+
+/*
+ * (c) Copyright 1993, Silicon Graphics, Inc.
+ *
+ * ALL RIGHTS RESERVED
+ *
+ * Permission to use, copy, modify, and distribute this software
+ * for any purpose and without fee is hereby granted, provided
+ * that the above copyright notice appear in all copies and that
+ * both the copyright notice and this permission notice appear in
+ * supporting documentation, and that the name of Silicon
+ * Graphics, Inc. not be used in advertising or publicity
+ * pertaining to distribution of the software without specific,
+ * written prior permission.
+ *
+ * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU
+ * "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR
+ * OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF
+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  IN NO
+ * EVENT SHALL SILICON GRAPHICS, INC.  BE LIABLE TO YOU OR ANYONE
+ * ELSE FOR ANY DIRECT, SPECIAL, INCIDENTAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER,
+ * INCLUDING WITHOUT LIMITATION, LOSS OF PROFIT, LOSS OF USE,
+ * SAVINGS OR REVENUE, OR THE CLAIMS OF THIRD PARTIES, WHETHER OR
+ * NOT SILICON GRAPHICS, INC.  HAS BEEN ADVISED OF THE POSSIBILITY
+ * OF SUCH LOSS, HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * ARISING OUT OF OR IN CONNECTION WITH THE POSSESSION, USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ *
+ * US Government Users Restricted Rights
+ *
+ * Use, duplication, or disclosure by the Government is subject to
+ * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
+ * (c)(1)(ii) of the Rights in Technical Data and Computer
+ * Software clause at DFARS 252.227-7013 and/or in similar or
+ * successor clauses in the FAR or the DOD or NASA FAR
+ * Supplement.  Unpublished-- rights reserved under the copyright
+ * laws of the United States.  Contractor/manufacturer is Silicon
+ * Graphics, Inc., 2011 N.  Shoreline Blvd., Mountain View, CA
+ * 94039-7311.
+ *
+ * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
+ */
+
+/*
+ * Rim, body, lid, and bottom data must be reflected in x and y;
+ * handle and spout data across the y axis only.
+ */
+static int patchdata[][16] =
+{
+    { 102, 103, 104, 105,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15 }, /* rim    */
+    {  12,  13,  14,  15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27 }, /* body   */
+    {  24,  25,  26,  27,  29,  30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40 },
+    {  96,  96,  96,  96,  97,  98,  99, 100, 101, 101, 101, 101,   0,   1,   2,   3 }, /* lid    */
+    {   0,   1,   2,   3, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117 },
+    { 118, 118, 118, 118, 124, 122, 119, 121, 123, 126, 125, 120,  40,  39,  38,  37 }, /* bottom */
+    {  41,  42,  43,  44,  45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56 }, /* handle */
+    {  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,  64,  28,  65,  66,  67 },
+    {  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,  80,  81,  82,  83 }, /* spout  */
+    {  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95 }
+};
+
+static double cpdata[][3] =
+{
+    {0.2, 0, 2.7}, {0.2, -0.112, 2.7}, {0.112, -0.2, 2.7}, {0,
+    -0.2, 2.7}, {1.3375, 0, 2.53125}, {1.3375, -0.749, 2.53125},
+    {0.749, -1.3375, 2.53125}, {0, -1.3375, 2.53125}, {1.4375,
+    0, 2.53125}, {1.4375, -0.805, 2.53125}, {0.805, -1.4375,
+    2.53125}, {0, -1.4375, 2.53125}, {1.5, 0, 2.4}, {1.5, -0.84,
+    2.4}, {0.84, -1.5, 2.4}, {0, -1.5, 2.4}, {1.75, 0, 1.875},
+    {1.75, -0.98, 1.875}, {0.98, -1.75, 1.875}, {0, -1.75,
+    1.875}, {2, 0, 1.35}, {2, -1.12, 1.35}, {1.12, -2, 1.35},
+    {0, -2, 1.35}, {2, 0, 0.9}, {2, -1.12, 0.9}, {1.12, -2,
+    0.9}, {0, -2, 0.9}, {-2, 0, 0.9}, {2, 0, 0.45}, {2, -1.12,
+    0.45}, {1.12, -2, 0.45}, {0, -2, 0.45}, {1.5, 0, 0.225},
+    {1.5, -0.84, 0.225}, {0.84, -1.5, 0.225}, {0, -1.5, 0.225},
+    {1.5, 0, 0.15}, {1.5, -0.84, 0.15}, {0.84, -1.5, 0.15}, {0,
+    -1.5, 0.15}, {-1.6, 0, 2.025}, {-1.6, -0.3, 2.025}, {-1.5,
+    -0.3, 2.25}, {-1.5, 0, 2.25}, {-2.3, 0, 2.025}, {-2.3, -0.3,
+    2.025}, {-2.5, -0.3, 2.25}, {-2.5, 0, 2.25}, {-2.7, 0,
+    2.025}, {-2.7, -0.3, 2.025}, {-3, -0.3, 2.25}, {-3, 0,
+    2.25}, {-2.7, 0, 1.8}, {-2.7, -0.3, 1.8}, {-3, -0.3, 1.8},
+    {-3, 0, 1.8}, {-2.7, 0, 1.575}, {-2.7, -0.3, 1.575}, {-3,
+    -0.3, 1.35}, {-3, 0, 1.35}, {-2.5, 0, 1.125}, {-2.5, -0.3,
+    1.125}, {-2.65, -0.3, 0.9375}, {-2.65, 0, 0.9375}, {-2,
+    -0.3, 0.9}, {-1.9, -0.3, 0.6}, {-1.9, 0, 0.6}, {1.7, 0,
+    1.425}, {1.7, -0.66, 1.425}, {1.7, -0.66, 0.6}, {1.7, 0,
+    0.6}, {2.6, 0, 1.425}, {2.6, -0.66, 1.425}, {3.1, -0.66,
+    0.825}, {3.1, 0, 0.825}, {2.3, 0, 2.1}, {2.3, -0.25, 2.1},
+    {2.4, -0.25, 2.025}, {2.4, 0, 2.025}, {2.7, 0, 2.4}, {2.7,
+    -0.25, 2.4}, {3.3, -0.25, 2.4}, {3.3, 0, 2.4}, {2.8, 0,
+    2.475}, {2.8, -0.25, 2.475}, {3.525, -0.25, 2.49375},
+    {3.525, 0, 2.49375}, {2.9, 0, 2.475}, {2.9, -0.15, 2.475},
+    {3.45, -0.15, 2.5125}, {3.45, 0, 2.5125}, {2.8, 0, 2.4},
+    {2.8, -0.15, 2.4}, {3.2, -0.15, 2.4}, {3.2, 0, 2.4}, {0, 0,
+    3.15}, {0.8, 0, 3.15}, {0.8, -0.45, 3.15}, {0.45, -0.8,
+    3.15}, {0, -0.8, 3.15}, {0, 0, 2.85}, {1.4, 0, 2.4}, {1.4,
+    -0.784, 2.4}, {0.784, -1.4, 2.4}, {0, -1.4, 2.4}, {0.4, 0,
+    2.55}, {0.4, -0.224, 2.55}, {0.224, -0.4, 2.55}, {0, -0.4,
+    2.55}, {1.3, 0, 2.55}, {1.3, -0.728, 2.55}, {0.728, -1.3,
+    2.55}, {0, -1.3, 2.55}, {1.3, 0, 2.4}, {1.3, -0.728, 2.4},
+    {0.728, -1.3, 2.4}, {0, -1.3, 2.4}, {0, 0, 0}, {1.425,
+    -0.798, 0}, {1.5, 0, 0.075}, {1.425, 0, 0}, {0.798, -1.425,
+    0}, {0, -1.5, 0.075}, {0, -1.425, 0}, {1.5, -0.84, 0.075},
+    {0.84, -1.5, 0.075}
+};
+
+static double tex[2][2][2] =
+{
+    { {0.0, 0.0}, {1.0, 0.0} },
+    { {0.0, 1.0}, {1.0, 1.0} }
+};
+#endif  /* defined(_WIN32_WCE) */
+
+
+#endif  /* FREEGLUT_TEAPOT_DATA_H */
+
diff --git a/src/fg_videoresize.c b/src/fg_videoresize.c
new file mode 100644 (file)
index 0000000..6f8d1d1
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * freeglut_videoresize.c
+ *
+ * Video resize functions (as defined by GLUT API)
+ *
+ * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
+ * Written by Pawel W. Olszta, <olszta@sourceforge.net>
+ * Creation date: Thu Dec 16 1999
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include <GL/freeglut.h>
+#include "fg_internal.h"
+
+/*
+ * NOTE: functions declared in this file probably will not be implemented.
+ */
+
+/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
+
+int  FGAPIENTRY glutVideoResizeGet( GLenum eWhat )            {    return( 0x00 );    }
+void FGAPIENTRY glutSetupVideoResizing( void )                { /* Not implemented */ }
+void FGAPIENTRY glutStopVideoResizing( void )                 { /* Not implemented */ }
+void FGAPIENTRY glutVideoResize( int x, int y, int w, int h ) { /* Not implemented */ }
+void FGAPIENTRY glutVideoPan( int x, int y, int w, int h )    { /* Not implemented */ }
+
+/*** END OF FILE ***/
+
diff --git a/src/fg_window.c b/src/fg_window.c
new file mode 100644 (file)
index 0000000..e7f9275
--- /dev/null
@@ -0,0 +1,498 @@
+/*
+ * freeglut_window.c
+ *
+ * Window management methods.
+ *
+ * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
+ * Written by Pawel W. Olszta, <olszta@sourceforge.net>
+ * Creation date: Fri Dec 3 1999
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#define FREEGLUT_BUILDING_LIB
+#include <GL/freeglut.h>
+#include "fg_internal.h"
+
+/*
+ * TODO BEFORE THE STABLE RELEASE:
+ *
+ *  fgSetupPixelFormat      -- ignores the display mode settings
+ *  fgOpenWindow()          -- check the Win32 version, -iconic handling!
+ *  fgCloseWindow()         -- check the Win32 version
+ *  glutCreateWindow()      -- Check when default position and size is {-1,-1}
+ *  glutCreateSubWindow()   -- Check when default position and size is {-1,-1}
+ *  glutDestroyWindow()     -- check the Win32 version
+ *  glutSetWindow()         -- check the Win32 version
+ *  glutSetWindowTitle()    -- check the Win32 version
+ *  glutSetIconTitle()      -- check the Win32 version
+ *  glutShowWindow()        -- check the Win32 version
+ *  glutHideWindow()        -- check the Win32 version
+ *  glutIconifyWindow()     -- check the Win32 version
+ *  glutPushWindow()        -- check the Win32 version
+ *  glutPopWindow()         -- check the Win32 version
+ */
+
+
+extern void fgPlatformSetWindow ( SFG_Window *window );
+extern void fgPlatformOpenWindow( SFG_Window* window, const char* title,
+                                  GLboolean positionUse, int x, int y,
+                                  GLboolean sizeUse, int w, int h,
+                                  GLboolean gameMode, GLboolean isSubWindow );
+extern void fgPlatformCloseWindow( SFG_Window* window );
+extern void fgPlatformGlutShowWindow( void );
+extern void fgPlatformGlutHideWindow( void );
+extern void fgPlatformGlutIconifyWindow( void );
+extern void fgPlatformGlutSetWindowTitle( const char* title );
+extern void fgPlatformGlutSetIconTitle( const char* title );
+extern void fgPlatformGlutPositionWindow( int x, int y );
+extern void fgPlatformGlutPushWindow( void );
+extern void fgPlatformGlutPopWindow( void );
+extern void fgPlatformGlutFullScreen( SFG_Window *win );
+extern void fgPlatformGlutLeaveFullScreen( SFG_Window *win );
+extern void fgPlatformGlutFullScreenToggle( SFG_Window *win );
+
+
+/* -- PRIVATE FUNCTIONS ---------------------------------------------------- */
+
+int fghIsLegacyContextVersionRequested( void )
+{
+  return fgState.MajorVersion < 2 || (fgState.MajorVersion == 2 && fgState.MinorVersion <= 1);
+}
+
+int fghIsLegacyContextRequested( void )
+{
+  return fghIsLegacyContextVersionRequested() &&
+         fgState.ContextFlags == 0 &&
+         fgState.ContextProfile == 0;
+}
+
+int fghNumberOfAuxBuffersRequested( void )
+{
+  if ( fgState.DisplayMode & GLUT_AUX4 ) {
+    return 4;
+  }
+  if ( fgState.DisplayMode & GLUT_AUX3 ) {
+    return 3;
+  }
+  if ( fgState.DisplayMode & GLUT_AUX2 ) {
+    return 2;
+  }
+  if ( fgState.DisplayMode & GLUT_AUX1 ) { /* NOTE: Same as GLUT_AUX! */
+    return fgState.AuxiliaryBufferNumber;
+  }
+  return 0;
+}
+
+int fghMapBit( int mask, int from, int to )
+{
+  return ( mask & from ) ? to : 0;
+
+}
+
+void fghContextCreationError( void )
+{
+    fgError( "Unable to create OpenGL %d.%d context (flags %x, profile %x)",
+             fgState.MajorVersion, fgState.MinorVersion, fgState.ContextFlags,
+             fgState.ContextProfile );
+}
+
+
+/* -- SYSTEM-DEPENDENT PRIVATE FUNCTIONS ------------------------------------ */
+
+/*
+ * Sets the OpenGL context and the fgStructure "Current Window" pointer to
+ * the window structure passed in.
+ */
+void fgSetWindow ( SFG_Window *window )
+{
+       fgPlatformSetWindow ( window );
+
+    fgStructure.CurrentWindow = window;
+}
+
+/*
+ * Opens a window. Requires a SFG_Window object created and attached
+ * to the freeglut structure. OpenGL context is created here.
+ */
+void fgOpenWindow( SFG_Window* window, const char* title,
+                   GLboolean positionUse, int x, int y,
+                   GLboolean sizeUse, int w, int h,
+                   GLboolean gameMode, GLboolean isSubWindow )
+{
+       fgPlatformOpenWindow( window, title,
+                   positionUse, x, y,
+                   sizeUse, w, h,
+                   gameMode, isSubWindow );
+
+    fgSetWindow( window );
+
+    window->Window.DoubleBuffered =
+        ( fgState.DisplayMode & GLUT_DOUBLE ) ? 1 : 0;
+
+#ifndef EGL_VERSION_1_0  /* No glDrawBuffer/glReadBuffer in GLES */
+    if ( ! window->Window.DoubleBuffered )
+    {
+        glDrawBuffer ( GL_FRONT );
+        glReadBuffer ( GL_FRONT );
+    }
+#endif
+}
+
+/*
+ * Closes a window, destroying the frame and OpenGL context
+ */
+void fgCloseWindow( SFG_Window* window )
+{
+    /* if we're in gamemode and we're closing the gamemode window,
+     * call glutLeaveGameMode first to make sure the gamemode is
+     * properly closed before closing the window
+     */
+    if (fgStructure.GameModeWindow != NULL && fgStructure.GameModeWindow->ID==window->ID)
+        glutLeaveGameMode();
+
+       fgPlatformCloseWindow ( window );
+}
+
+
+/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
+
+/*
+ * Creates a new top-level freeglut window
+ */
+int FGAPIENTRY glutCreateWindow( const char* title )
+{
+    /* XXX GLUT does not exit; it simply calls "glutInit" quietly if the
+     * XXX application has not already done so.  The "freeglut" community
+     * XXX decided not to go this route (freeglut-developer e-mail from
+     * XXX Steve Baker, 12/16/04, 4:22 PM CST, "Re: [Freeglut-developer]
+     * XXX Desired 'freeglut' behaviour when there is no current window"
+     */
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutCreateWindow" );
+
+    return fgCreateWindow( NULL, title, fgState.Position.Use,
+                           fgState.Position.X, fgState.Position.Y,
+                           fgState.Size.Use, fgState.Size.X, fgState.Size.Y,
+                           GL_FALSE, GL_FALSE )->ID;
+}
+
+/*
+ * This function creates a sub window.
+ */
+int FGAPIENTRY glutCreateSubWindow( int parentID, int x, int y, int w, int h )
+{
+    int ret = 0;
+    SFG_Window* window = NULL;
+    SFG_Window* parent = NULL;
+
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutCreateSubWindow" );
+    parent = fgWindowByID( parentID );
+    freeglut_return_val_if_fail( parent != NULL, 0 );
+    if ( x < 0 )
+    {
+        x = parent->State.Width + x ;
+        if ( w >= 0 ) x -= w ;
+    }
+
+    if ( w < 0 ) w = parent->State.Width - x + w ;
+    if ( w < 0 )
+    {
+        x += w ;
+        w = -w ;
+    }
+
+    if ( y < 0 )
+    {
+        y = parent->State.Height + y ;
+        if ( h >= 0 ) y -= h ;
+    }
+
+    if ( h < 0 ) h = parent->State.Height - y + h ;
+    if ( h < 0 )
+    {
+        y += h ;
+        h = -h ;
+    }
+
+    window = fgCreateWindow( parent, "", GL_TRUE, x, y, GL_TRUE, w, h, GL_FALSE, GL_FALSE );
+    ret = window->ID;
+
+    return ret;
+}
+
+/*
+ * Destroys a window and all of its subwindows
+ */
+void FGAPIENTRY glutDestroyWindow( int windowID )
+{
+    SFG_Window* window;
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutDestroyWindow" );
+    window = fgWindowByID( windowID );
+    freeglut_return_if_fail( window != NULL );
+    {
+        fgExecutionState ExecState = fgState.ExecState;
+        fgAddToWindowDestroyList( window );
+        fgState.ExecState = ExecState;
+    }
+}
+
+/*
+ * This function selects the specified window as the current window
+ */
+void FGAPIENTRY glutSetWindow( int ID )
+{
+    SFG_Window* window = NULL;
+
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSetWindow" );
+    if( fgStructure.CurrentWindow != NULL )
+        if( fgStructure.CurrentWindow->ID == ID )
+            return;
+
+    window = fgWindowByID( ID );
+    if( window == NULL )
+    {
+        fgWarning( "glutSetWindow(): window ID %d not found!", ID );
+        return;
+    }
+
+    fgSetWindow( window );
+}
+
+/*
+ * This function returns the ID number of the current window, 0 if none exists
+ */
+int FGAPIENTRY glutGetWindow( void )
+{
+    SFG_Window *win = fgStructure.CurrentWindow;
+    /*
+     * Since GLUT did not throw an error if this function was called without a prior call to
+     * "glutInit", this function shouldn't do so here.  Instead let us return a zero.
+     * See Feature Request "[ 1307049 ] glutInit check".
+     */
+    if ( ! fgState.Initialised )
+        return 0;
+
+    while ( win && win->IsMenu )
+        win = win->Parent;
+    return win ? win->ID : 0;
+}
+
+/*
+ * This function makes the current window visible
+ */
+void FGAPIENTRY glutShowWindow( void )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutShowWindow" );
+    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutShowWindow" );
+
+       fgPlatformGlutShowWindow ();
+
+    fgStructure.CurrentWindow->State.Redisplay = GL_TRUE;
+}
+
+/*
+ * This function hides the current window
+ */
+void FGAPIENTRY glutHideWindow( void )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutHideWindow" );
+    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutHideWindow" );
+
+       fgPlatformGlutHideWindow ();
+
+    fgStructure.CurrentWindow->State.Redisplay = GL_FALSE;
+}
+
+/*
+ * Iconify the current window (top-level windows only)
+ */
+void FGAPIENTRY glutIconifyWindow( void )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutIconifyWindow" );
+    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutIconifyWindow" );
+
+    fgStructure.CurrentWindow->State.Visible   = GL_FALSE;
+
+       fgPlatformGlutIconifyWindow ();
+
+    fgStructure.CurrentWindow->State.Redisplay = GL_FALSE;
+}
+
+/*
+ * Set the current window's title
+ */
+void FGAPIENTRY glutSetWindowTitle( const char* title )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSetWindowTitle" );
+    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutSetWindowTitle" );
+    if( ! fgStructure.CurrentWindow->Parent )
+    {
+               fgPlatformGlutSetWindowTitle ( title );
+    }
+}
+
+/*
+ * Set the current window's iconified title
+ */
+void FGAPIENTRY glutSetIconTitle( const char* title )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSetIconTitle" );
+    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutSetIconTitle" );
+
+    if( ! fgStructure.CurrentWindow->Parent )
+    {
+               fgPlatformGlutSetIconTitle ( title );
+    }
+}
+
+/*
+ * Change the current window's size
+ */
+void FGAPIENTRY glutReshapeWindow( int width, int height )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutReshapeWindow" );
+    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutReshapeWindow" );
+
+    if (glutGet(GLUT_FULL_SCREEN))
+    {
+      /*  Leave full screen state before resizing. */
+      glutLeaveFullScreen();
+    }
+
+    fgStructure.CurrentWindow->State.NeedToResize = GL_TRUE;
+    fgStructure.CurrentWindow->State.Width  = width ;
+    fgStructure.CurrentWindow->State.Height = height;
+}
+
+/*
+ * Change the current window's position
+ */
+void FGAPIENTRY glutPositionWindow( int x, int y )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutPositionWindow" );
+    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutPositionWindow" );
+
+    if (glutGet(GLUT_FULL_SCREEN))
+    {
+      /*  Leave full screen state before moving. */
+      glutLeaveFullScreen();
+    }
+
+       fgPlatformGlutPositionWindow ( x, y );
+}
+
+/*
+ * Lowers the current window (by Z order change)
+ */
+void FGAPIENTRY glutPushWindow( void )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutPushWindow" );
+    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutPushWindow" );
+
+       fgPlatformGlutPushWindow ();
+}
+
+/*
+ * Raises the current window (by Z order change)
+ */
+void FGAPIENTRY glutPopWindow( void )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutPopWindow" );
+    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutPopWindow" );
+
+       fgPlatformGlutPopWindow ();
+}
+
+/*
+ * Resize the current window so that it fits the whole screen
+ */
+void FGAPIENTRY glutFullScreen( void )
+{
+    SFG_Window *win;
+
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutFullScreen" );
+    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutFullScreen" );
+
+    win = fgStructure.CurrentWindow;
+
+    if (win->Parent)
+    {
+        /* Child windows cannot be made fullscreen, consistent with GLUT's behavior
+         * Also, what would it mean for a child window to be fullscreen, given that it
+         * is confined to its parent?
+         */
+        fgWarning("glutFullScreen called on a child window, ignoring...");
+        return;
+    }
+    else if (fgStructure.GameModeWindow != NULL && fgStructure.GameModeWindow->ID==win->ID)
+    {
+        /* Ignore fullscreen call on GameMode window, those are always fullscreen already */
+        return;
+    }
+
+       fgPlatformGlutFullScreen ( win );
+}
+
+/*
+ * If we are fullscreen, resize the current window back to its original size
+ */
+void FGAPIENTRY glutLeaveFullScreen( void )
+{
+    SFG_Window *win;
+
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutFullScreen" );
+    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutFullScreen" );
+
+    win = fgStructure.CurrentWindow;
+
+       fgPlatformGlutLeaveFullScreen ( win );
+}
+
+/*
+ * Toggle the window's full screen state.
+ */
+void FGAPIENTRY glutFullScreenToggle( void )
+{
+    SFG_Window *win;
+
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutFullScreenToggle" );
+    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutFullScreenToggle" );
+
+    win = fgStructure.CurrentWindow;
+
+       fgPlatformGlutFullScreenToggle ( win );
+}
+
+/*
+ * A.Donev: Set and retrieve the window's user data
+ */
+void* FGAPIENTRY glutGetWindowData( void )
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutGetWindowData" );
+    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutGetWindowData" );
+    return fgStructure.CurrentWindow->UserData;
+}
+
+void FGAPIENTRY glutSetWindowData(void* data)
+{
+    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutSetWindowData" );
+    FREEGLUT_EXIT_IF_NO_WINDOW ( "glutSetWindowData" );
+    fgStructure.CurrentWindow->UserData = data;
+}
+
+/*** END OF FILE ***/
diff --git a/src/freeglutdll.def b/src/freeglutdll.def
new file mode 100644 (file)
index 0000000..ac52730
--- /dev/null
@@ -0,0 +1,155 @@
+LIBRARY freeglut
+VERSION 2.6
+EXPORTS
+       glutInit
+       glutInitWindowPosition
+       glutInitWindowSize
+       glutInitDisplayMode
+       glutInitDisplayString
+       glutMainLoop
+       glutMainLoopEvent
+       glutLeaveMainLoop
+       glutCreateWindow
+       glutCreateSubWindow
+       glutDestroyWindow
+       glutSetWindow
+       glutGetWindow
+       glutSetWindowData
+       glutGetWindowData
+       glutSetWindowTitle
+       glutSetIconTitle
+       glutReshapeWindow
+       glutPositionWindow
+       glutShowWindow
+       glutHideWindow
+       glutIconifyWindow
+       glutPushWindow
+       glutPopWindow
+       glutFullScreen
+       glutPostWindowRedisplay
+       glutPostRedisplay
+       glutSwapBuffers
+       glutWarpPointer
+       glutSetCursor
+       glutEstablishOverlay
+       glutRemoveOverlay
+       glutUseLayer
+       glutPostOverlayRedisplay
+       glutPostWindowOverlayRedisplay
+       glutShowOverlay
+       glutHideOverlay
+       glutCreateMenu
+       glutDestroyMenu
+       glutGetMenu
+       glutSetMenu
+       glutGetMenuData
+       glutSetMenuData
+       glutAddMenuEntry
+       glutAddSubMenu
+       glutChangeToMenuEntry
+       glutChangeToSubMenu
+       glutRemoveMenuItem
+       glutAttachMenu
+       glutDetachMenu
+       glutTimerFunc
+       glutIdleFunc
+       glutKeyboardFunc
+       glutSpecialFunc
+       glutReshapeFunc
+       glutVisibilityFunc
+       glutDisplayFunc
+       glutMouseFunc
+       glutMouseWheelFunc
+       glutMotionFunc
+       glutPassiveMotionFunc
+       glutEntryFunc
+       glutCloseFunc
+       glutWMCloseFunc
+       glutKeyboardUpFunc
+       glutSpecialUpFunc
+       glutJoystickFunc
+       glutMenuStateFunc
+       glutMenuStatusFunc
+       glutMenuDestroyFunc
+       glutOverlayDisplayFunc
+       glutWindowStatusFunc
+       glutSpaceballMotionFunc
+       glutSpaceballRotateFunc
+       glutSpaceballButtonFunc
+       glutButtonBoxFunc
+       glutDialsFunc
+       glutTabletMotionFunc
+       glutTabletButtonFunc
+       glutSetOption
+       glutGet
+       glutDeviceGet
+       glutGetModifiers
+       glutLayerGet
+       glutBitmapCharacter
+       glutBitmapWidth
+       glutStrokeCharacter
+       glutStrokeWidth
+       glutBitmapLength
+       glutStrokeLength
+       glutBitmapHeight
+       glutStrokeHeight
+       glutBitmapString
+       glutStrokeString
+       glutWireCube
+       glutSolidCube
+       glutWireSphere
+       glutSolidSphere
+       glutWireCone
+       glutSolidCone
+       glutWireTorus
+       glutSolidTorus
+       glutWireDodecahedron
+       glutSolidDodecahedron
+       glutWireOctahedron
+       glutSolidOctahedron
+       glutWireTetrahedron
+       glutSolidTetrahedron
+       glutWireIcosahedron
+       glutSolidIcosahedron
+       glutWireRhombicDodecahedron
+       glutSolidRhombicDodecahedron
+       glutWireSierpinskiSponge
+       glutSolidSierpinskiSponge
+       glutWireTeapot
+       glutSolidTeapot
+       glutWireCylinder
+       glutSolidCylinder
+       glutGameModeString
+       glutEnterGameMode
+       glutLeaveGameMode
+       glutGameModeGet
+       glutVideoResizeGet
+       glutSetupVideoResizing
+       glutStopVideoResizing
+       glutVideoResize
+       glutVideoPan
+       glutSetColor
+       glutGetColor
+       glutCopyColormap
+       glutIgnoreKeyRepeat
+       glutSetKeyRepeat
+       glutForceJoystickFunc
+       glutExtensionSupported
+       glutReportErrors
+       glutGetProcAddress
+       glutExit
+       glutFullScreenToggle
+       glutLeaveFullScreen
+       glutGetModeValues
+       glutInitContextFlags
+       glutInitContextVersion
+       glutInitContextProfile
+        glutInitErrorFunc
+        glutInitWarningFunc
+       __glutInitWithExit
+       __glutCreateWindowWithExit
+       __glutCreateMenuWithExit
+       glutMultiButtonFunc
+       glutMultiEntryFunc
+       glutMultiMotionFunc
+       glutMultiPassiveFunc
index e2c0523..b0eda70 100644 (file)
@@ -26,7 +26,7 @@
  */
 
 #include <GL/freeglut.h>
-#include "../Common/freeglut_internal.h"
+#include "../fg_internal.h"
 
 
 
index 5becaa4..6a58412 100644 (file)
@@ -26,7 +26,7 @@
  */
 
 #include <GL/freeglut.h>
-#include "../Common/freeglut_internal.h"
+#include "../fg_internal.h"
 
 
 
index 3b4fc10..efc2fa9 100644 (file)
@@ -26,7 +26,7 @@
  */
 
 #include <GL/freeglut.h>
-#include "../Common/freeglut_internal.h"
+#include "../fg_internal.h"
 
 GLUTproc fgPlatformGetGLUTProcAddress( const char* procName )
 {
index e0a7c22..3e5228d 100644 (file)
@@ -26,7 +26,7 @@
  */
 
 #include <GL/freeglut.h>
-#include "../Common/freeglut_internal.h"
+#include "../fg_internal.h"
 
 /*
  * Remembers the current visual settings, so that
index 4e1451d..f80fe78 100644 (file)
@@ -27,7 +27,7 @@
 
 #define FREEGLUT_BUILDING_LIB
 #include <GL/freeglut.h>
-#include "../Common/freeglut_internal.h"
+#include "../fg_internal.h"
 
 
 
index fb70d33..ba230d4 100644 (file)
@@ -26,7 +26,7 @@
  */
 
 #include <GL/freeglut.h>
-#include "../Common/freeglut_internal.h"
+#include "../fg_internal.h"
 
 #include <sys/types.h>
 #include <winbase.h>
index 104afbe..aefa192 100644 (file)
@@ -26,7 +26,7 @@
  */
 
 #include <GL/freeglut.h>
-#include "../Common/freeglut_internal.h"
+#include "../fg_internal.h"
 
 
 #if !defined(_WIN32_WCE)
index 8a13a84..a1c5c8c 100644 (file)
@@ -26,7 +26,7 @@
  */
 
 #include <GL/freeglut.h>
-#include "../Common/freeglut_internal.h"
+#include "../fg_internal.h"
 
 
 extern void fghRedrawWindow ( SFG_Window *window );
index b9c7797..d198cca 100644 (file)
@@ -27,7 +27,7 @@
 
 #define FREEGLUT_BUILDING_LIB
 #include <GL/freeglut.h>
-#include "../Common/freeglut_internal.h"
+#include "../fg_internal.h"
 
 
 GLvoid fgPlatformGetGameModeVMaxExtent( SFG_Window* window, int* x, int* y )
index f2b41b3..3a7af46 100644 (file)
@@ -30,7 +30,7 @@
  */
 
 #include <GL/freeglut.h>
-#include "../Common/freeglut_internal.h"
+#include "../fg_internal.h"
 
 void fgPlatformInitializeSpaceball(void)
 {
index 4daec41..07ffdb1 100644 (file)
@@ -26,7 +26,7 @@
  */
 
 #include <GL/freeglut.h>
-#include "../Common/freeglut_internal.h"
+#include "../fg_internal.h"
 
 
 extern GLboolean fgSetupPixelFormat( SFG_Window* window, GLboolean checkOnly,
index e64def7..8ccb33d 100644 (file)
@@ -26,7 +26,7 @@
  */
 
 #include <GL/freeglut.h>
-#include "../Common/freeglut_internal.h"
+#include "../fg_internal.h"
 
 
 void fgPlatformCreateWindow ( SFG_Window *window )
index 783c53d..6515063 100644 (file)
@@ -27,7 +27,7 @@
 
 #define FREEGLUT_BUILDING_LIB
 #include <GL/freeglut.h>
-#include "../Common/freeglut_internal.h"
+#include "../fg_internal.h"
 
 
 /* The following include file is available from SGI but is not standard:
diff --git a/src/util/xparsegeometry_repl.c b/src/util/xparsegeometry_repl.c
new file mode 100644 (file)
index 0000000..a059369
--- /dev/null
@@ -0,0 +1,162 @@
+#include <stdlib.h>
+
+/*
+ * Everything down to the end of the next two functions is copied from the X sources.
+ */
+
+/*
+
+Copyright 1985, 1986, 1987,1998  The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
+
+*/
+
+#include "xparsegeometry_repl.h"
+
+/*
+ *   XParseGeometry parses strings of the form
+ *   "=<width>x<height>{+-}<xoffset>{+-}<yoffset>", where
+ *   width, height, xoffset, and yoffset are unsigned integers.
+ *   Example:  "=80x24+300-49"
+ *   The equal sign is optional.
+ *   It returns a bitmask that indicates which of the four values
+ *   were actually found in the string.  For each value found,
+ *   the corresponding argument is updated;  for each value
+ *   not found, the corresponding argument is left unchanged.
+ */
+
+static int
+ReadInteger(char *string, char **NextString)
+{
+    register int Result = 0;
+    int Sign = 1;
+
+    if (*string == '+')
+        string++;
+    else if (*string == '-')
+    {
+        string++;
+        Sign = -1;
+    }
+    for (; (*string >= '0') && (*string <= '9'); string++)
+    {
+        Result = (Result * 10) + (*string - '0');
+    }
+    *NextString = string;
+    if (Sign >= 0)
+        return Result;
+    else
+        return -Result;
+}
+
+int XParseGeometry (
+    const char *string,
+    int *x,
+    int *y,
+    unsigned int *width,    /* RETURN */
+    unsigned int *height)    /* RETURN */
+{
+    int mask = NoValue;
+    register char *strind;
+    unsigned int tempWidth = 0, tempHeight = 0;
+    int tempX = 0, tempY = 0;
+    char *nextCharacter;
+
+    if ( (string == NULL) || (*string == '\0'))
+      return mask;
+    if (*string == '=')
+        string++;  /* ignore possible '=' at beg of geometry spec */
+
+    strind = (char *)string;
+    if (*strind != '+' && *strind != '-' && *strind != 'x') {
+        tempWidth = ReadInteger(strind, &nextCharacter);
+        if (strind == nextCharacter)
+            return 0;
+        strind = nextCharacter;
+        mask |= WidthValue;
+    }
+
+    if (*strind == 'x' || *strind == 'X') {
+        strind++;
+        tempHeight = ReadInteger(strind, &nextCharacter);
+        if (strind == nextCharacter)
+            return 0;
+        strind = nextCharacter;
+        mask |= HeightValue;
+    }
+
+    if ((*strind == '+') || (*strind == '-')) {
+        if (*strind == '-') {
+            strind++;
+            tempX = -ReadInteger(strind, &nextCharacter);
+            if (strind == nextCharacter)
+                return 0;
+            strind = nextCharacter;
+            mask |= XNegative;
+        }
+        else
+        {
+            strind++;
+            tempX = ReadInteger(strind, &nextCharacter);
+            if (strind == nextCharacter)
+                return 0;
+            strind = nextCharacter;
+        }
+        mask |= XValue;
+        if ((*strind == '+') || (*strind == '-')) {
+            if (*strind == '-') {
+                strind++;
+                tempY = -ReadInteger(strind, &nextCharacter);
+                if (strind == nextCharacter)
+                    return 0;
+                strind = nextCharacter;
+                mask |= YNegative;
+            }
+            else
+            {
+                strind++;
+                tempY = ReadInteger(strind, &nextCharacter);
+                if (strind == nextCharacter)
+                    return 0;
+                strind = nextCharacter;
+            }
+            mask |= YValue;
+        }
+    }
+
+    /* If strind isn't at the end of the string the it's an invalid
+       geometry specification. */
+
+    if (*strind != '\0') return 0;
+
+    if (mask & XValue)
+        *x = tempX;
+    if (mask & YValue)
+        *y = tempY;
+    if (mask & WidthValue)
+        *width = tempWidth;
+    if (mask & HeightValue)
+        *height = tempHeight;
+    return mask;
+}
diff --git a/src/util/xparsegeometry_repl.h b/src/util/xparsegeometry_repl.h
new file mode 100644 (file)
index 0000000..75ebad1
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Copied from the X sources.
+ */
+
+/*
+
+Copyright 1985, 1986, 1987,1998  The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
+
+*/
+
+#ifndef  XPARSEGEOMETRY_REPL_H
+#define  XPARSEGEOMETRY_REPL_H
+
+#define NoValue         0x0000
+#define XValue          0x0001
+#define YValue          0x0002
+#define WidthValue      0x0004
+#define HeightValue     0x0008
+#define AllValues       0x000F
+#define XNegative       0x0010
+#define YNegative       0x0020
+
+extern int XParseGeometry (const char *string,                         /* INPUT */
+                           int *x, int *y,                             /* RETURN */
+                           unsigned int *width, unsigned int *height); /* RETURN */
+
+
+#endif
index 5c2dd90..3098e53 100644 (file)
@@ -26,7 +26,7 @@
  */
 
 #include <GL/freeglut.h>
-#include "../Common/freeglut_internal.h"
+#include "../fg_internal.h"
 
 /* This code is for Posix/X11, Solaris, and OSX */
 #include <X11/cursorfont.h>
index d19e9d9..bbf9061 100644 (file)
@@ -27,7 +27,7 @@
  */
 
 #include <GL/freeglut.h>
-#include "../Common/freeglut_internal.h"
+#include "../fg_internal.h"
 
 void fgPlatformGlutSwapBuffers( SFG_PlatformDisplay *pDisplayPtr, SFG_Window* CurrentWindow )
 {
index eb4b5d3..d243cfd 100644 (file)
@@ -28,7 +28,7 @@
 
 #define GLX_GLXEXT_PROTOTYPES
 #include <GL/freeglut.h>
-#include "../Common/freeglut_internal.h"
+#include "../fg_internal.h"
 
 GLUTproc fgPlatformGetGLUTProcAddress( const char* procName )
 {
index 7dd4245..6130aeb 100644 (file)
@@ -27,7 +27,7 @@
  */
 
 #include <GL/freeglut.h>
-#include "../Common/freeglut_internal.h"
+#include "../fg_internal.h"
 
 static int xrandr_resize(int xsz, int ysz, int rate, int just_checking)
 {
index e4a29a6..f2519c5 100644 (file)
@@ -71,7 +71,7 @@
 #undef glutBitmapHelvetica12
 #undef glutBitmapHelvetica18
 
-#include "../Common/freeglut_internal.h"
+#include "../fg_internal.h"
 
 struct freeglutStrokeFont
 {
index 7c8ba93..83fe287 100644 (file)
@@ -29,7 +29,7 @@
 #define FREEGLUT_BUILDING_LIB
 #include <limits.h>  /* LONG_MAX */
 #include <GL/freeglut.h>
-#include "../Common/freeglut_internal.h"
+#include "../fg_internal.h"
 
 /* Return the atom associated with "name". */
 static Atom fghGetAtom(const char * name)
@@ -270,4 +270,4 @@ void fgPlatformDestroyContext ( SFG_PlatformDisplay pDisplay, SFG_WindowContextT
 {
     /* Note that the MVisualInfo is not owned by the MenuContext! */
     glXDestroyContext( pDisplay.Display, MContext );
-}
\ No newline at end of file
+}
index e45e02e..a94e52a 100644 (file)
@@ -35,7 +35,7 @@
 #endif
 
 #include <GL/freeglut.h>
-#include "../Common/freeglut_internal.h"
+#include "../fg_internal.h"
 
 #ifdef HAVE_ERRNO_H
 #include <errno.h>
index 962e362..5d686b5 100644 (file)
@@ -34,7 +34,7 @@
  */
 
 #include <GL/freeglut.h>
-#include "../Common/freeglut_internal.h"
+#include "../fg_internal.h"
 #ifdef HAVE_SYS_PARAM_H
 #    include <sys/param.h>
 #endif
index 710535a..e72db37 100644 (file)
@@ -27,7 +27,7 @@
  */
 
 #include <GL/freeglut.h>
-#include "../Common/freeglut_internal.h"
+#include "../fg_internal.h"
 #ifdef HAVE_ERRNO_H
 #    include <errno.h>
 #endif
index 36e87ad..0443dcd 100644 (file)
@@ -27,7 +27,7 @@
  */
 
 #include <GL/freeglut.h>
-#include "../Common/freeglut_internal.h"
+#include "../fg_internal.h"
 
 /*
  *  * Private function to get the virtual maximum screen extent
index e0d22d6..582a926 100644 (file)
@@ -10,7 +10,7 @@
  */
 
 #include <GL/freeglut.h>
-#include "../Common/freeglut_internal.h"
+#include "../fg_internal.h"
 
 #include <X11/Xlib.h>
 
index 9a5fd71..3523477 100644 (file)
@@ -26,7 +26,7 @@
  */
 
 #include <GL/freeglut.h>
-#include "../Common/freeglut_internal.h"
+#include "../fg_internal.h"
 
 /*
  * TODO BEFORE THE STABLE RELEASE:
index df62a58..cbc9129 100644 (file)
@@ -27,7 +27,7 @@
  */
 
 #include <GL/freeglut.h>
-#include "../Common/freeglut_internal.h"
+#include "../fg_internal.h"
 
 extern SFG_Structure fgStructure;
 
index 0fa4105..44c9952 100644 (file)
@@ -30,7 +30,7 @@
 #include <GL/freeglut.h>
 #include <limits.h>  /* LONG_MAX */
 #include <unistd.h>  /* usleep */
-#include "../Common/freeglut_internal.h"
+#include "../fg_internal.h"
 
 /* pushing attribute/value pairs into an array */
 #define ATTRIB(a) attributes[where++]=(a)
index a682029..fac1bf7 100644 (file)
@@ -3,7 +3,7 @@
 
 #include <GL/freeglut.h>
 
-#include "../Common/freeglut_internal.h"
+#include "../fg_internal.h"
 
 #if HAVE_X11_EXTENSIONS_XINPUT2_H