diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 7b10630ea..81e6f144a 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -666,8 +666,6 @@ set( FASTMATH_SOURCES common/utility/strnatcmp.c common/rendering/gl_load/gl_load.c - # Another bit of cruft just to make S(hit)DL happy... - sdlappicon.cpp gitinfo.cpp ) diff --git a/source/build/include/baselayer.h b/source/build/include/baselayer.h index 4b25d62ca..0ede685fe 100644 --- a/source/build/include/baselayer.h +++ b/source/build/include/baselayer.h @@ -22,7 +22,6 @@ extern char nogl; extern int32_t swapcomplete; -EXTERN_CVAR(Int, r_borderless); EXTERN_CVAR(Bool, r_usenewaspect) // video diff --git a/source/build/include/build.h b/source/build/include/build.h index 92ab6304d..76c2741f7 100644 --- a/source/build/include/build.h +++ b/source/build/include/build.h @@ -23,7 +23,6 @@ static_assert('\xff' == 255, "Char must be unsigned!"); #include "collections.h" #include "compat.h" -#include "glbuild.h" #include "palette.h" #include "pragmas.h" @@ -1074,7 +1073,6 @@ enum { TEXFILTER_ON = 5, // GL_LINEAR_MIPMAP_LINEAR }; -extern int32_t glmultisample, glnvmultisamplehint; extern int32_t glprojectionhacks; extern int32_t gltexmaxsize; void gltexapplyprops (void); diff --git a/source/build/include/dxdidf.h b/source/build/include/dxdidf.h deleted file mode 100644 index 74324113f..000000000 --- a/source/build/include/dxdidf.h +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef dxdidf_h_ -#define dxdidf_h_ - -// Joystick - -static DIOBJECTDATAFORMAT c_dfDIJoystick_odf[] = { - { &GUID_XAxis, 0, 0x80FFFF03, 0x00000100 }, - { &GUID_YAxis, 4, 0x80FFFF03, 0x00000100 }, - { &GUID_ZAxis, 8, 0x80FFFF03, 0x00000100 }, - { &GUID_RxAxis, 12, 0x80FFFF03, 0x00000100 }, - { &GUID_RyAxis, 16, 0x80FFFF03, 0x00000100 }, - { &GUID_RzAxis, 20, 0x80FFFF03, 0x00000100 }, - { &GUID_Slider, 24, 0x80FFFF03, 0x00000100 }, - { &GUID_Slider, 28, 0x80FFFF03, 0x00000100 }, - { &GUID_POV, 32, 0x80FFFF10, 0x00000000 }, - { &GUID_POV, 36, 0x80FFFF10, 0x00000000 }, - { &GUID_POV, 40, 0x80FFFF10, 0x00000000 }, - { &GUID_POV, 44, 0x80FFFF10, 0x00000000 }, - { NULL, 48, 0x80FFFF0C, 0x00000000 }, - { NULL, 49, 0x80FFFF0C, 0x00000000 }, - { NULL, 50, 0x80FFFF0C, 0x00000000 }, - { NULL, 51, 0x80FFFF0C, 0x00000000 }, - { NULL, 52, 0x80FFFF0C, 0x00000000 }, - { NULL, 53, 0x80FFFF0C, 0x00000000 }, - { NULL, 54, 0x80FFFF0C, 0x00000000 }, - { NULL, 55, 0x80FFFF0C, 0x00000000 }, - { NULL, 56, 0x80FFFF0C, 0x00000000 }, - { NULL, 57, 0x80FFFF0C, 0x00000000 }, - { NULL, 58, 0x80FFFF0C, 0x00000000 }, - { NULL, 59, 0x80FFFF0C, 0x00000000 }, - { NULL, 60, 0x80FFFF0C, 0x00000000 }, - { NULL, 61, 0x80FFFF0C, 0x00000000 }, - { NULL, 62, 0x80FFFF0C, 0x00000000 }, - { NULL, 63, 0x80FFFF0C, 0x00000000 }, - { NULL, 64, 0x80FFFF0C, 0x00000000 }, - { NULL, 65, 0x80FFFF0C, 0x00000000 }, - { NULL, 66, 0x80FFFF0C, 0x00000000 }, - { NULL, 67, 0x80FFFF0C, 0x00000000 }, - { NULL, 68, 0x80FFFF0C, 0x00000000 }, - { NULL, 69, 0x80FFFF0C, 0x00000000 }, - { NULL, 70, 0x80FFFF0C, 0x00000000 }, - { NULL, 71, 0x80FFFF0C, 0x00000000 }, - { NULL, 72, 0x80FFFF0C, 0x00000000 }, - { NULL, 73, 0x80FFFF0C, 0x00000000 }, - { NULL, 74, 0x80FFFF0C, 0x00000000 }, - { NULL, 75, 0x80FFFF0C, 0x00000000 }, - { NULL, 76, 0x80FFFF0C, 0x00000000 }, - { NULL, 77, 0x80FFFF0C, 0x00000000 }, - { NULL, 78, 0x80FFFF0C, 0x00000000 }, - { NULL, 79, 0x80FFFF0C, 0x00000000 } -}; - -const DIDATAFORMAT c_dfDIJoystick = { sizeof(DIDATAFORMAT), sizeof(DIOBJECTDATAFORMAT), 0x00000001, 80, 44, c_dfDIJoystick_odf }; - -#endif // dxdidf_h_ diff --git a/source/build/include/glbuild.h b/source/build/include/glbuild.h deleted file mode 100644 index 6a1118cc7..000000000 --- a/source/build/include/glbuild.h +++ /dev/null @@ -1,20 +0,0 @@ - -#ifndef BGLBUILD_H_INCLUDED_ -#define BGLBUILD_H_INCLUDED_ - -#ifdef USE_OPENGL - -#if !defined GEKKO -# define USE_GLEXT -#endif - -#if defined EDUKE32_OSX -# include -#else -# include -#endif - -#endif //USE_OPENGL - - -#endif diff --git a/source/build/include/linklist.h b/source/build/include/linklist.h deleted file mode 100644 index 4ef968d05..000000000 --- a/source/build/include/linklist.h +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef linklist_h_ -#define linklist_h_ - -#include "compat.h" - -namespace LL -{ -template FORCE_INLINE CONSTEXPR_CXX14 void Reset(T const node) { node->next = node->prev = node; } -template FORCE_INLINE CONSTEXPR_CXX14 void Unlink(T const node) -{ - node->prev->next = node->next; - node->next->prev = node->prev; -} - -template FORCE_INLINE CONSTEXPR_CXX14 void Insert(T const root, T const node) -{ - node->next = root; - node->prev = root->prev; - root->prev->next = node; - root->prev = node; -} - -template FORCE_INLINE CONSTEXPR_CXX14 void Remove(T const node) -{ - Unlink(node); - Reset(node); -} - -template FORCE_INLINE CONSTEXPR_CXX14 void Move(T const node, T const root) -{ - Unlink(node); - Insert(root, node); -} - -template FORCE_INLINE CONSTEXPR_CXX14 void SortedInsert(T const root, T const node, Tt remove_pointer_t::*m) -{ - T best = root->next; - while ((best != root) && (node->*m > best->*m)) - best = best->next; - Insert(best, node); -} - -template FORCE_INLINE CONSTEXPR bool Empty(T const root) { return ((root->next == root) && (root->prev == root)); } - -#if 0 -template FORCE_INLINE void ReverseList(T const root) -{ - T node = root->next; - for (T trav = root->prev, tprev; trav != node; trav = tprev) - { - tprev = trav->prev; - Move(trav, node); - } -} -#endif -} // namespace LL -#endif diff --git a/source/build/include/mutex.h b/source/build/include/mutex.h deleted file mode 100644 index fba6f994c..000000000 --- a/source/build/include/mutex.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef mutex_h_ -#define mutex_h_ - -#include - -typedef std::mutex mutex_t; - -inline void mutex_lock(mutex_t* mutex) -{ - mutex->lock(); -} - -inline void mutex_unlock(mutex_t* mutex) -{ - mutex->unlock(); -} - - - -#endif diff --git a/source/build/include/osd.h b/source/build/include/osd.h index d7ed8e84d..6a6c5ae67 100644 --- a/source/build/include/osd.h +++ b/source/build/include/osd.h @@ -8,7 +8,6 @@ #include #include "compat.h" -#include "mutex.h" #include "printf.h" struct osdfuncparm_t diff --git a/source/build/include/sdl_inc.h b/source/build/include/sdl_inc.h deleted file mode 100644 index 160395c14..000000000 --- a/source/build/include/sdl_inc.h +++ /dev/null @@ -1,87 +0,0 @@ -#ifndef SDL_INC_H_ -#define SDL_INC_H_ - -// include this before SDL does -#ifdef _WIN32 -# include "windows_inc.h" -#endif - -// Workaround for i686-MinGW-w64. -#if defined __MINGW64_VERSION_MAJOR && !defined __MINGW64__ -# define __MINGW64_VERSION_MAJOR_BACKUP __MINGW64_VERSION_MAJOR -# undef __MINGW64_VERSION_MAJOR -#endif - -#if defined SDL_USEFOLDER -# if SDL_TARGET == 2 -# include -# include -# else -# include -# include -# endif -#else -# include "SDL.h" -# if !defined __APPLE__ -# include "SDL_syswm.h" -# endif -#endif - -#if defined __MINGW64_VERSION_MAJOR_BACKUP && !defined __MINGW64__ -# define __MINGW64_VERSION_MAJOR __MINGW64_VERSION_MAJOR_BACKUP -# undef __MINGW64_VERSION_MAJOR_BACKUP -#endif - -/* ================================================================= -Minimum required SDL versions: -=================================================================== */ - -#define SDL_MIN_X 1 -#define SDL_MIN_Y 2 -#define SDL_MIN_Z 10 - -#define SDL_REQUIREDVERSION (SDL_VERSIONNUM(SDL_MIN_X,SDL_MIN_Y,SDL_MIN_Z)) - -#define SDL_MIXER_MIN_X 1 -#define SDL_MIXER_MIN_Y 2 -#define SDL_MIXER_MIN_Z 7 -#define MIX_REQUIREDVERSION (SDL_VERSIONNUM(SDL_MIXER_MIN_X,SDL_MIXER_MIN_Y,SDL_MIXER_MIN_Z)) - -#if !(SDL_VERSION_ATLEAST(SDL_MIN_X,SDL_MIN_Y,SDL_MIN_Z)) -#error SDL version found is too old -#endif - -#if defined NEED_SDL_MIXER - -# if defined SDL_USEFOLDER -# if SDL_TARGET == 2 -# include -# else -# include -# endif -# else -# include "SDL_mixer.h" -# endif - -/* starting with 1.2.1, SDL_mixer provides MIX_xxx version - macros. the new SDL_MIXER_xxx version macros start with - 1.2.6 but they keep backwards compatibility. 1.2.0 does - not even have any version macros, so let's reject it */ -# if !defined(MIX_MAJOR_VERSION) || !defined(MIX_MINOR_VERSION) || !defined(MIX_PATCHLEVEL) -# error SDL_mixer version found is too old -# endif - -# ifndef MIX_COMPILEDVERSION -# define MIX_COMPILEDVERSION (SDL_VERSIONNUM(MIX_MAJOR_VERSION,MIX_MINOR_VERSION,MIX_PATCHLEVEL)) -# endif -# if MIX_COMPILEDVERSION < MIX_REQUIREDVERSION -# error SDL_mixer version found is too old -# endif - -# if SDL_MAJOR_VERSION != MIX_MAJOR_VERSION -# error Major version of SDL_mixer headers does not match SDL headers -# endif - -#endif - -#endif /* SDL_INC_H_ */ diff --git a/source/build/include/sdlappicon.h b/source/build/include/sdlappicon.h deleted file mode 100644 index 68bb97bcc..000000000 --- a/source/build/include/sdlappicon.h +++ /dev/null @@ -1,5 +0,0 @@ - -struct sdlappicon { - int width,height; - const char *pixels; -}; diff --git a/source/build/include/sdlayer.h b/source/build/include/sdlayer.h index 7aba4beb0..cb659ae76 100644 --- a/source/build/include/sdlayer.h +++ b/source/build/include/sdlayer.h @@ -8,75 +8,6 @@ #include "baselayer.h" #include "compat.h" -#define EDUKE32_SDL_LINKED_PREREQ(x, a, b, c) ((x).major > (a) || ((x).major == (a) && ((x).minor > (b) || ((x).minor == (b) && (x).patch >= (c))))) - -#ifdef _WIN32 -HWND win_gethwnd(void); -HINSTANCE win_gethinstance(void); -#endif - -#include "sdlappicon.h" - -#if (SDL_MAJOR_VERSION == 1 && SDL_MINOR_VERSION < 3) // SDL 1.2 -int32_t SDL_WaitEventTimeout(SDL_Event *event, int32_t timeout); -#endif - -#define SDL_GL_ATTRIBUTES(iter, attrib) \ - for (iter = 0; iter < (int32_t)ARRAY_SIZE(attrib); iter++) \ - { \ - int32_t j = attrib[iter].value; \ - if (!multisamplecheck && \ - (attrib[iter].attr == SDL_GL_MULTISAMPLEBUFFERS || attrib[iter].attr == SDL_GL_MULTISAMPLESAMPLES)) \ - { \ - j = 0; \ - } \ - SDL_GL_SetAttribute(attrib[iter].attr, j); \ - } - -#define SDL_ADDMODE(x, y, c, f) \ - { \ - int fullscreen; \ - for (fullscreen = f; fullscreen >= 0; --fullscreen) \ - { \ - if (validmodecnt < MAXVALIDMODES) \ - { \ - int32_t mn; \ - for (mn = 0; mn < validmodecnt; mn++) \ - if (validmode[mn].xdim == x && validmode[mn].ydim == y && validmode[mn].bpp == c && \ - validmode[mn].fs == fullscreen) \ - break; \ - if (mn == validmodecnt) \ - { \ - validmode[validmodecnt].xdim = x; \ - validmode[validmodecnt].ydim = y; \ - validmode[validmodecnt].bpp = c; \ - validmode[validmodecnt].fs = fullscreen; \ - validmodecnt++; \ - /*initprintf(" - %dx%d %d-bit %s\n", x, y, c, (fullscreen&1)?"fullscreen":"windowed");*/ \ - } \ - } \ - } \ - } - -#define SDL_CHECKMODE(w, h) ((w < MAXXDIM) && (h < MAXYDIM) && (w >= MINXDIM) && (h >= MINYDIM) && (((float)w/(float)h) >= 1.2f)) - -#define SDL_CHECKFSMODES(w, h) \ - if (w == 0 && h == 0) \ - { \ - initprintf("No fullscreen modes available!\n"); \ - w = MAXXDIM; \ - h = MAXYDIM; \ - } - -#if SDL_MAJOR_VERSION != 1 -#define SDL2_VIDEO_ERR(XX) \ - { \ - initprintf("Unable to set video mode: " XX " failed: %s\n", SDL_GetError()); \ - destroy_window_resources(); \ - return -1; \ - } -#endif - inline void idle(int const msec = 1) { diff --git a/source/build/src/mdsprite.cpp b/source/build/src/mdsprite.cpp index db9fc050e..9f28372f8 100644 --- a/source/build/src/mdsprite.cpp +++ b/source/build/src/mdsprite.cpp @@ -1492,7 +1492,7 @@ static int32_t polymost_md3draw(md3model_t *m, tspriteptr_t tspr) md3xyzn_t *v0, *v1; int32_t i, surfi; float f, g, k0, k1, k2=0, k3=0, mat[16]; // inits: compiler-happy - GLfloat pc[4]; + float pc[4]; // int32_t texunits = GL_TEXTURE0; const int32_t owner = tspr->owner; diff --git a/source/build/src/palette.cpp b/source/build/src/palette.cpp index 0e88f9b0a..149535007 100644 --- a/source/build/src/palette.cpp +++ b/source/build/src/palette.cpp @@ -577,7 +577,7 @@ void setBlendFactor(int index, int alpha) void handle_blend(uint8_t enable, uint8_t blend, uint8_t def) { - static GLenum const blendFuncTokens[NUMBLENDFACTORS] = + static uint8_t const blendFuncTokens[NUMBLENDFACTORS] = { STYLEALPHA_Zero, STYLEALPHA_One, diff --git a/source/build/src/polymost.cpp b/source/build/src/polymost.cpp index 5c70754b7..bdc5cf495 100644 --- a/source/build/src/polymost.cpp +++ b/source/build/src/polymost.cpp @@ -118,10 +118,6 @@ static int32_t drawpoly_srepeat = 0, drawpoly_trepeat = 0; static int32_t lastglpolygonmode = 0; //FUK -#ifdef USE_GLEXT -int32_t glmultisample = 0, glnvmultisamplehint = 0; -#endif - int32_t glprojectionhacks = 2; static FHardwareTexture *polymosttext = 0; int32_t glrendmode = REND_POLYMOST; diff --git a/source/build/src/sdlayer.cpp b/source/build/src/sdlayer.cpp index 42da220e7..42531b83f 100644 --- a/source/build/src/sdlayer.cpp +++ b/source/build/src/sdlayer.cpp @@ -46,7 +46,6 @@ #include "../../glbackend/glbackend.h" #ifdef USE_OPENGL -# include "glbuild.h" # include "glsurface.h" #endif @@ -60,15 +59,6 @@ # include #endif -FString progdir; - -CVAR(Int, r_displayindex, 0, CVAR_ARCHIVE | CVAR_VIDEOCONFIG) -CVAR(Int, r_borderless, 2, CVAR_ARCHIVE | CVAR_VIDEOCONFIG) -CVAR(Int, maxrefreshfreq, 0, CVAR_ARCHIVE | CVAR_VIDEOCONFIG) -CVAR(Int, windowpos, 0, CVAR_ARCHIVE | CVAR_VIDEOCONFIG) -CVAR(Int, windowx, -1, CVAR_ARCHIVE | CVAR_VIDEOCONFIG) -CVAR(Int, windowy, -1, CVAR_ARCHIVE | CVAR_VIDEOCONFIG) - double g_beforeSwapTime; GameInterface* gi; diff --git a/source/common/rendering/v_video.cpp b/source/common/rendering/v_video.cpp index 98ffe51f6..2c8df26e9 100644 --- a/source/common/rendering/v_video.cpp +++ b/source/common/rendering/v_video.cpp @@ -619,7 +619,7 @@ void V_Init2() polymost_glinit(); GLInterface.Init(SCREENHEIGHT); - GLInterface.InitGLState(4, glmultisample); + GLInterface.InitGLState(4, 4/*glmultisample*/); GLInterface.mSamplers->SetTextureFilterMode(hw_texfilter, hw_anisotropy); //setsizeneeded = true; diff --git a/source/platform/win32/gl_sysfb.cpp b/source/platform/win32/gl_sysfb.cpp index f3269f572..fa7b412f6 100644 --- a/source/platform/win32/gl_sysfb.cpp +++ b/source/platform/win32/gl_sysfb.cpp @@ -66,10 +66,15 @@ PFNWGLSWAPINTERVALEXTPROC myWglSwapIntervalExtProc; // // //========================================================================== +#ifndef OFFSCREEN +#define MS 4 +#else +#define MS 0 +#endif SystemGLFrameBuffer::SystemGLFrameBuffer(void *hMonitor, bool fullscreen) : SystemBaseFrameBuffer(hMonitor, fullscreen) { - if (!static_cast(Video)->InitHardware(Window, 0)) + if (!static_cast(Video)->InitHardware(Window, MS)) { I_FatalError("Unable to initialize OpenGL"); return; diff --git a/source/platform/win32/i_specialpaths.cpp b/source/platform/win32/i_specialpaths.cpp index 5b5ad0ee2..9a07e0584 100644 --- a/source/platform/win32/i_specialpaths.cpp +++ b/source/platform/win32/i_specialpaths.cpp @@ -47,7 +47,7 @@ //#include "version.h" // for GAMENAME // Stuff that needs to be set up later. -extern FString progdir; +FString progdir; static bool batchrun; #define GAMENAMELOWERCASE "demolition" #define GAMENAME "Demolition" diff --git a/source/sdlappicon.cpp b/source/sdlappicon.cpp deleted file mode 100644 index 05fd15d87..000000000 --- a/source/sdlappicon.cpp +++ /dev/null @@ -1,415 +0,0 @@ -#include "sdlappicon.h" - -sdlappicon sdlappicon = { - 48, 48, - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\037\004\004\001\325\036" - "\036(\325\036\036_\325\036\036\222\325\036\036\270\325\036\036\321\325\036\036\343\325" - "\036\036\355\325\036\036\355\325\036\036\343\325\036\036\321\325\036\036\270\325\036" - "\036\222\325\036\036_\325\036\036(\037\004\004\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\325\036\036" - "\036\325\036\036s\325\036\036\304\325\036\036\365\343<<\377\350aa\377\355\202\202" - "\377\361\242\242\377\366\277\277\377\366\301\301\377\366\277\277\377\362" - "\251\251\377\355\202\202\377\350ee\377\345JJ\377\340--\377\325\036\036\365" - "\325\036\036\304\325\036\036s\325\036\036\036\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\334\037\037&\325\036\036\222\325\036\036\354\343" - "AA\377\360\227\227\377\371\334\334\377\375\364\364\377\376\371\371\377\376" - "\371\371\377\375\366\366\377\374\353\353\377\372\341\341\377\371\330\330" - "\377\370\315\315\377\365\274\274\377\364\267\267\377\364\267\267\377\363" - "\253\253\377\360\235\235\377\352oo\377\341\062\062\377\325\036\036\354\325\036" - "\036\222\334\037\037&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\311\034\034\014\325\036\036" - "|\325\036\036\354\345NN\377\365\270\270\377\373\350\350\377\375\362\362\377" - "\375\362\362\377\375\366\366\377\375\360\360\377\375\362\362\377\375\362" - "\362\377\373\350\350\377\371\334\334\377\371\326\326\377\367\312\312\377" - "\365\270\270\377\363\262\262\377\363\254\254\377\361\244\244\377\361\242" - "\242\377\362\247\247\377\363\262\262\377\361\236\236\377\344GG\377\325\036" - "\036\354\325\036\036|\311\034\034\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\325\036\036\064\325\036\036\305\341\062" - "\062\377\360\231\231\377\367\310\310\377\370\325\325\377\371\334\334\377\373" - "\350\350\377\374\357\357\377\375\364\364\377\375\366\366\377\375\366\366" - "\377\376\367\367\377\375\366\366\377\375\366\366\377\375\364\364\377\374" - "\353\353\377\372\341\341\377\370\323\323\377\365\270\270\377\361\236\236" - "\377\361\236\236\377\361\244\244\377\363\262\262\377\366\301\301\377\367" - "\310\310\377\363\254\254\377\342\067\067\377\325\036\036\305\325\036\036\064\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\325\036\036Z\325" - "\036\036\356\344GG\377\361\236\236\377\363\262\262\377\365\272\272\377\367" - "\310\310\377\371\326\326\377\373\350\350\377\375\364\364\377\376\371\371" - "\377\371\330\330\377\362\251\251\377\355\206\206\377\351ll\377\347WW\377" - "\346OO\377\347XX\377\352oo\377\360\227\227\377\370\325\325\377\375\362\362" - "\377\370\325\325\377\365\270\270\377\365\274\274\377\366\301\301\377\367" - "\307\307\377\370\323\323\377\372\341\341\377\351ff\377\325\036\036\356\325" - "\036\036Z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\325\036\036q\325\036" - "\036\374\347XX\377\357\220\220\377\360\225\225\377\361\242\242\377\364\263" - "\263\377\370\325\325\377\375\360\360\377\370\323\323\377\356\213\213\377" - "\345NN\377\342\067\067\377\342\067\067\377\342\067\067\377\341\062\062\377\340++" - "\377\337$$\377\331\037\037\377\320\035\035\377\314\035\035\377\311\034\034\377\337" - "\040\040\377\353tt\377\370\315\315\377\374\353\353\377\371\326\326\377\370" - "\315\315\377\371\330\330\377\373\346\346\377\374\351\351\377\357\224\224" - "\377\325\036\036\374\325\036\036q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\325\036\036q\320" - "\035\035\377\347XX\377\355\206\206\377\355\206\206\377\356\215\215\377\361" - "\244\244\377\371\330\330\377\370\321\321\377\347\\\\\377\340''\377\340--" - "\377\342\065\065\377\342\067\067\377\342\067\067\377\342\067\067\377\342\065\065\377" - "\340++\377\340%%\377\327\036\036\377\320\035\035\377\314\035\035\377\303\034\034" - "\377\302\033\033\377\307\034\034\377\322\036\036\377\347XX\377\370\323\323\377" - "\374\353\353\377\373\343\343\377\373\350\350\377\373\346\346\377\374\351" - "\351\377\363\254\254\377\332\037\037\377\325\036\036q\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\325\036\036" - "Z\325\036\036\374\347WW\377\354yy\377\353xx\377\354\177\177\377\363\254\254" - "\377\376\367\367\377\353tt\377\313\035\035\377\327\036\036\377\337\040\040\377" - "\340++\377\341\064\064\377\342\067\067\377\342\067\067\377\342\067\067\377\342\065" - "\065\377\340--\377\340%%\377\327\036\036\377\320\035\035\377\313\035\035\377\303" - "\034\034\377\302\033\033\377\313\035\035\377\325\036\036\377\331\037\037\377\336\037" - "\037\377\356\207\207\377\376\371\371\377\374\353\353\377\373\346\346\377\372" - "\341\341\377\371\334\334\377\361\236\236\377\325\036\036\374\325\036\036Z\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\327" - "\036\036\061\325\036\036\355\345NN\377\354{{\377\352oo\377\353tt\377\364\263\263" - "\377\373\350\350\377\343<<\377\275\032\032\377\303\034\034\377\320\035\035\377" - "\336\037\037\377\340''\377\341..\377\342\065\065\377\342\067\067\377\342\067\067" - "\377\342\065\065\377\340--\377\337$$\377\327\036\036\377\320\035\035\377\311\034" - "\034\377\302\033\033\377\303\034\034\377\320\035\035\377\331\037\037\377\332\037\037" - "\377\340''\377\340--\377\351ff\377\374\357\357\377\374\353\353\377\371\330" - "\330\377\370\315\315\377\367\310\310\377\354}}\377\325\036\036\355\327\036\036" - "\061\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\331\037\037\013" - "\325\036\036\310\342\071\071\377\356\213\213\377\354\177\177\377\354yy\377\364" - "\263\263\377\371\326\326\377\320\035\035\377\262\031\031\377\266\031\031\377\275" - "\032\032\377\307\034\034\377\327\036\036\377\337$$\377\340--\377\342\065\065\377" - "\342\067\067\377\342\067\067\377\342\065\065\377\340--\377\337$$\377\327\036\036" - "\377\314\035\035\377\311\034\034\377\302\033\033\377\311\034\034\377\325\036\036\377" - "\331\037\037\377\337\040\040\377\340--\377\341..\377\341..\377\345JJ\377\371" - "\334\334\377\373\343\343\377\366\277\277\377\365\270\270\377\366\277\277" - "\377\346QQ\377\325\036\036\310\331\037\037\013\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\325\036\036|\336\037\037\377\360\225\225\377\357\220\220\377" - "\356\207\207\377\363\262\262\377\372\341\341\377\303\034\034\377\257\030\030" - "\377\260\031\031\377\262\031\031\377\271\032\032\377\340''\377\363\254\254\377" - "\340--\377\340))\377\341\062\062\377\342\067\067\377\342\067\067\377\342\067\067" - "\377\340--\377\337$$\377\322\036\036\377\314\035\035\377\307\034\034\377\303\034" - "\034\377\320\035\035\377\331\037\037\377\353tt\377\345JJ\377\341..\377\341..\377" - "\340++\377\340''\377\342\065\065\377\373\344\344\377\370\323\323\377\364\263" - "\263\377\364\263\263\377\363\254\254\377\337$$\377\325\036\036|\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\322\036\036\"\325\036\036\356\354\177\177\377\361" - "\244\244\377\360\227\227\377\361\242\242\377\375\366\366\377\340''\377\257" - "\030\030\377\253\030\030\377\253\030\030\377\260\031\031\377\343<<\377\375\360\360" - "\377\370\323\323\377\361\236\236\377\337$$\377\331\037\037\377\275\032\032\377" - "\246\027\027\377\223\025\025\377\203\022\022\377\203\022\022\377\214\023\023\377\232" - "\026\026\377\250\030\030\377\273\032\032\377\322\036\036\377\342\071\071\377\376\367" - "\367\377\375\362\362\377\351jj\377\340--\377\340''\377\336\037\037\377\325" - "\036\036\377\343AA\377\375\366\366\377\365\272\272\377\362\251\251\377\361" - "\236\236\377\355\202\202\377\325\036\036\356\322\036\036\"\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\325\036\036\222\342\067\067\377\364\267\267\377\362\251\251\377" - "\361\244\244\377\370\325\325\377\351ll\377\271\032\032\377\264\031\031\377\262" - "\031\031\377\253\030\030\377\346SS\377\376\367\367\377\362\251\251\377\360\225" - "\225\377\375\366\366\377\313\035\035\377\177\022\022\377~\021\021\377x\021\021\377" - "w\020\020\377u\020\020\377u\020\020\377w\020\020\377x\021\021\377~\021\021\377\177\022" - "\022\377\250\030\030\377\363\253\253\377\374\357\357\377\374\357\357\377\376" - "\371\371\377\354yy\377\336\037\037\377\327\036\036\377\322\036\036\377\314\035\035" - "\377\353tt\377\371\326\326\377\360\231\231\377\360\227\227\377\360\235\235" - "\377\342\065\065\377\325\036\036\222\000\000\000\000\000\000\000\000\000\000\000\000\325\036\036\036\325" - "\036\036\355\360\227\227\377\366\277\277\377\363\262\262\377\367\310\310\377" - "\370\315\315\377\303\034\034\377\276\033\033\377\275\032\032\377\266\031\031\377" - "\343<<\377\376\367\367\377\357\220\220\377\354{{\377\351ff\377\356\213\213" - "\377\360\227\227\377w\020\020\377u\020\020\377u\020\020\377u\020\020\377u\020\020\377" - "u\020\020\377u\020\020\377u\020\020\377u\020\020\377w\020\020\377\253\030\030\377\371" - "\330\330\377\363\253\253\377\373\344\344\377\371\334\334\377\376\371\371" - "\377\347XX\377\322\036\036\377\314\035\035\377\303\034\034\377\302\033\033\377\370" - "\315\315\377\364\267\267\377\357\220\220\377\357\220\220\377\354\177\177" - "\377\325\036\036\355\325\036\036\036\000\000\000\000\000\000\000\000\325\036\036q\341..\377\367" - "\312\312\377\366\301\301\377\365\274\274\377\374\351\351\377\346OO\377\313" - "\035\035\377\307\034\034\377\302\033\033\377\340''\377\374\353\353\377\361\244" - "\244\377\353tt\377\346QQ\377\346OO\377\365\270\270\377\376\375\375\377\302" - "\033\033\377u\020\020\377u\020\020\377u\020\020\377u\020\020\377u\020\020\377u\020\020" - "\377u\020\020\377u\020\020\377u\020\020\377\360\231\231\377\370\323\323\377\346" - "OO\377\357\220\220\377\366\301\301\377\370\315\315\377\374\357\357\377\341" - "..\377\302\033\033\377\276\033\033\377\275\032\032\377\343AA\377\372\341\341\377" - "\357\220\220\377\357\224\224\377\360\235\235\377\340))\377\325\036\036q\000\000" - "\000\000\221\024\024\003\325\036\036\305\353tt\377\366\301\301\377\365\272\272\377" - "\367\312\312\377\370\315\315\377\325\036\036\377\322\036\036\377\320\035\035\377" - "\314\035\035\377\364\263\263\377\367\307\307\377\357\220\220\377\350aa\377" - "\346OO\377\367\310\310\377\376\375\375\377\376\375\375\377\367\312\312\377" - "|\021\021\377u\020\020\377u\020\020\377u\020\020\377u\020\020\377u\020\020\377u\020\020" - "\377u\020\020\377\271\032\032\377\376\375\375\377\376\375\375\377\367\310\310" - "\377\346OO\377\356\207\207\377\363\262\262\377\370\315\315\377\364\263\263" - "\377\276\033\033\377\275\032\032\377\273\032\032\377\273\032\032\377\367\310\310" - "\377\363\253\253\377\360\225\225\377\360\231\231\377\350ee\377\325\036\036" - "\305\221\024\024\003\327\036\036'\325\036\036\366\363\253\253\377\364\267\267\377" - "\365\270\270\377\373\343\343\377\353rr\377\327\036\036\377\327\036\036\377\327" - "\036\036\377\345NN\377\374\351\351\377\363\256\256\377\357\220\220\377\341" - "\064\064\377\365\270\270\377\376\375\375\377\376\375\375\377\376\375\375\377" - "\376\375\375\377\343AA\377u\020\020\377u\020\020\377u\020\020\377u\020\020\377u\020" - "\020\377u\020\020\377u\020\020\377\364\267\267\377\376\375\375\377\376\375\375" - "\377\376\375\375\377\365\270\270\377\341\064\064\377\356\215\215\377\360\227" - "\227\377\373\343\343\377\343<<\377\275\032\032\377\275\032\032\377\276\033\033" - "\377\350ee\377\370\323\323\377\357\224\224\377\357\224\224\377\357\220\220" - "\377\325\036\036\366\327\036\036'\325\036\036_\341..\377\364\267\267\377\364\263" - "\263\377\364\263\263\377\376\371\371\377\337\040\040\377\322\036\036\377\322" - "\036\036\377\327\036\036\377\366\277\277\377\370\323\323\377\365\272\272\377" - "\351ff\377\356\207\207\377\376\375\375\377\376\375\375\377\376\375\375\377" - "\376\375\375\377\376\375\375\377\374\353\353\377\223\025\025\377u\020\020\377" - "u\020\020\377u\020\020\377u\020\020\377u\020\020\377\320\035\035\377\376\375\375\377" - "\376\375\375\377\376\375\375\377\376\375\375\377\376\375\375\377\356\207" - "\207\377\346SS\377\357\224\224\377\365\270\270\377\365\272\272\377\275\032" - "\032\377\275\032\032\377\275\032\032\377\314\035\035\377\376\367\367\377\360\231" - "\231\377\360\231\231\377\361\242\242\377\340++\377\325\036\036_\325\036\036\222" - "\344GG\377\364\267\267\377\363\262\262\377\366\277\277\377\367\307\307\377" - "\320\035\035\377\320\035\035\377\320\035\035\377\340--\377\376\371\371\377\365" - "\274\274\377\361\242\242\377\343<<\377\372\335\335\377\376\375\375\377\376" - "\375\375\377\376\375\375\377\376\375\375\377\376\375\375\377\376\375\375" - "\377\354\177\177\377\241\027\027\377\346SS\377\352oo\377\340%%\377\212\023\023" - "\377\367\312\312\377\376\375\375\377\376\375\375\377\376\375\375\377\376" - "\375\375\377\376\375\375\377\372\335\335\377\343<<\377\355\202\202\377\360" - "\225\225\377\376\367\367\377\331\037\037\377\275\032\032\377\276\033\033\377\302" - "\033\033\377\366\305\305\377\364\263\263\377\361\236\236\377\363\253\253\377" - "\344CC\377\325\036\036\222\325\036\036\272\351ff\377\364\263\263\377\363\256" - "\256\377\370\323\323\377\357\220\220\377\320\035\035\377\320\035\035\377\320" - "\035\035\377\351ff\377\372\341\341\377\364\263\263\377\352oo\377\354yy\377" - "\376\375\375\377\376\375\375\377\376\375\375\377\376\375\375\377\376\375" - "\375\377\376\375\375\377\376\375\375\377\376\375\375\377\376\375\375\377" - "\376\375\375\377\376\375\375\377\376\375\375\377\376\375\375\377\376\375" - "\375\377\376\375\375\377\376\375\375\377\376\375\375\377\376\375\375\377" - "\376\375\375\377\376\375\375\377\354yy\377\350]]\377\360\231\231\377\371" - "\330\330\377\350aa\377\302\033\033\377\302\033\033\377\303\034\034\377\357\220" - "\220\377\367\312\312\377\361\242\242\377\362\247\247\377\351jj\377\325\036" - "\036\272\325\036\036\321\355\202\202\377\365\270\270\377\363\262\262\377\372" - "\341\341\377\352mm\377\320\035\035\377\314\035\035\377\314\035\035\377\360\227" - "\227\377\370\321\321\377\363\256\256\377\345JJ\377\363\256\256\377\376\375" - "\375\377\376\375\375\377\376\375\375\377\376\375\375\377\376\375\375\377" - "\376\375\375\377\376\375\375\377\376\375\375\377\376\375\375\377\376\375" - "\375\377\376\375\375\377\376\375\375\377\376\375\375\377\376\375\375\377" - "\376\375\375\377\376\375\375\377\376\375\375\377\376\375\375\377\376\375" - "\375\377\376\375\375\377\363\256\256\377\344EE\377\361\236\236\377\367\310" - "\310\377\357\224\224\377\303\034\034\377\303\034\034\377\303\034\034\377\351jj" - "\377\371\330\330\377\362\247\247\377\363\253\253\377\356\207\207\377\325" - "\036\036\321\325\036\036\343\361\242\242\377\365\270\270\377\364\263\263\377" - "\373\350\350\377\347WW\377\320\035\035\377\320\035\035\377\320\035\035\377\365" - "\272\272\377\367\307\307\377\363\262\262\377\341..\377\371\326\326\377\376" - "\375\375\377\376\375\375\377\376\375\375\377\376\375\375\377\376\375\375" - "\377\376\375\375\377\376\375\375\377\376\375\375\377\363\256\256\377\244" - "\027\027\377u\020\020\377\276\033\033\377\370\323\323\377\376\375\375\377\376\375" - "\375\377\376\375\375\377\376\375\375\377\376\375\375\377\376\375\375\377" - "\376\375\375\377\371\326\326\377\340--\377\362\247\247\377\365\274\274\377" - "\366\277\277\377\311\034\034\377\311\034\034\377\311\034\034\377\346QQ\377\373" - "\344\344\377\363\253\253\377\363\254\254\377\357\224\224\377\325\036\036\343" - "\325\036\036\355\364\263\263\377\366\305\305\377\366\277\277\377\374\357\357" - "\377\345NN\377\327\036\036\377\327\036\036\377\327\036\036\377\370\315\315\377" - "\367\312\312\377\367\310\310\377\345JJ\377\375\364\364\377\376\375\375\377" - "\376\375\375\377\376\375\375\377\376\375\375\377\376\375\375\377\376\375" - "\375\377\376\375\375\377\376\367\367\377\223\025\025\377u\020\020\377u\020\020" - "\377u\020\020\377\275\032\032\377\376\375\375\377\376\375\375\377\376\375\375" - "\377\376\375\375\377\376\375\375\377\376\375\375\377\376\375\375\377\375" - "\364\364\377\344GG\377\365\274\274\377\365\274\274\377\367\312\312\377\313" - "\035\035\377\313\035\035\377\313\035\035\377\344CC\377\374\351\351\377\363\254" - "\254\377\363\256\256\377\361\244\244\377\325\036\036\355\325\036\036\355\365" - "\270\270\377\367\312\312\377\367\310\310\377\375\360\360\377\346QQ\377\336" - "\037\037\377\336\037\037\377\336\037\037\377\363\254\254\377\370\321\321\377\370" - "\321\321\377\365\272\272\377\364\267\267\377\364\267\267\377\364\267\267" - "\377\364\267\267\377\364\267\267\377\364\267\267\377\372\341\341\377\376" - "\375\375\377\367\307\307\377u\020\020\377u\020\020\377u\020\020\377u\020\020\377" - "\201\022\022\377\376\375\375\377\376\375\375\377\370\323\323\377\364\267\267" - "\377\364\267\267\377\364\267\267\377\364\267\267\377\364\267\267\377\365" - "\272\272\377\370\315\315\377\370\315\315\377\361\244\244\377\311\034\034\377" - "\311\034\034\377\311\034\034\377\343AA\377\373\350\350\377\363\253\253\377\363" - "\254\254\377\361\244\244\377\325\036\036\355\325\036\036\343\365\270\270\377" - "\370\323\323\377\370\315\315\377\374\357\357\377\350aa\377\337\040\040\377" - "\337$$\377\337$$\377\337$$\377\337$$\377\337$$\377\221\024\024\377w\020\020\377" - "u\020\020\377u\020\020\377u\020\020\377u\020\020\377u\020\020\377\346OO\377\376\375" - "\375\377\375\360\360\377\210\023\023\377u\020\020\377u\020\020\377u\020\020\377\253" - "\030\030\377\376\375\375\377\376\375\375\377\320\035\035\377u\020\020\377u\020\020" - "\377u\020\020\377u\020\020\377w\020\020\377\214\023\023\377\311\034\034\377\311\034" - "\034\377\311\034\034\377\311\034\034\377\311\034\034\377\311\034\034\377\346QQ\377" - "\373\344\344\377\363\253\253\377\363\253\253\377\360\235\235\377\325\036\036" - "\343\325\036\036\321\361\242\242\377\371\330\330\377\370\325\325\377\374\353" - "\353\377\354yy\377\337$$\377\340''\377\340''\377\340''\377\340''\377\340" - "%%\377\241\027\027\377x\021\021\377u\020\020\377u\020\020\377u\020\020\377u\020\020\377" - "u\020\020\377\331\037\037\377\376\375\375\377\376\375\375\377\360\225\225\377" - "\210\023\023\377u\020\020\377\233\026\026\377\366\301\301\377\376\375\375\377\376" - "\375\375\377\233\026\026\377u\020\020\377u\020\020\377u\020\020\377u\020\020\377x\021" - "\021\377\232\026\026\377\313\035\035\377\313\035\035\377\311\034\034\377\311\034\034" - "\377\311\034\034\377\311\034\034\377\351jj\377\371\334\334\377\363\253\253\377" - "\363\256\256\377\356\207\207\377\325\036\036\321\325\036\036\272\354\177\177" - "\377\371\334\334\377\371\330\330\377\373\346\346\377\360\235\235\377\340" - "%%\377\340''\377\340%%\377\340%%\377\337\040\040\377\337\040\040\377\262\031\031" - "\377~\021\021\377u\020\020\377u\020\020\377u\020\020\377u\020\020\377u\020\020\377~\021" - "\021\377\367\312\312\377\376\375\375\377\376\375\375\377\376\375\375\377\373" - "\344\344\377\376\375\375\377\376\375\375\377\376\375\375\377\360\231\231" - "\377u\020\020\377u\020\020\377u\020\020\377u\020\020\377u\020\020\377~\021\021\377\251" - "\030\030\377\311\034\034\377\311\034\034\377\311\034\034\377\311\034\034\377\311\034" - "\034\377\313\035\035\377\357\220\220\377\370\321\321\377\363\254\254\377\363" - "\262\262\377\352mm\377\325\036\036\272\325\036\036\222\347XX\377\371\334\334" - "\377\371\330\330\377\371\334\334\377\367\312\312\377\337$$\377\337\040\040" - "\377\337\040\040\377\336\037\037\377\332\037\037\377\331\037\037\377\303\034\034\377" - "\177\022\022\377w\020\020\377u\020\020\377u\020\020\377u\020\020\377u\020\020\377u\020" - "\020\377\235\026\026\377\367\307\307\377\376\375\375\377\376\375\375\377\376" - "\375\375\377\376\375\375\377\376\375\375\377\361\236\236\377\212\023\023\377" - "u\020\020\377u\020\020\377u\020\020\377u\020\020\377w\020\020\377\177\022\022\377\271" - "\032\032\377\307\034\034\377\307\034\034\377\311\034\034\377\311\034\034\377\311\034" - "\034\377\311\034\034\377\366\305\305\377\366\277\277\377\363\256\256\377\363" - "\262\262\377\345JJ\377\325\036\036\222\325\036\036_\342\065\065\377\371\330\330" - "\377\370\325\325\377\370\321\321\377\376\371\371\377\341..\377\336\037\037" - "\377\331\037\037\377\327\036\036\377\327\036\036\377\320\035\035\377\313\035\035\377" - "\241\027\027\377|\021\021\377u\020\020\377u\020\020\377u\020\020\377u\020\020\377u\020" - "\020\377u\020\020\377\351ll\377\376\375\375\377\376\375\375\377\376\375\375" - "\377\376\375\375\377\376\375\375\377\340%%\377u\020\020\377u\020\020\377u\020" - "\020\377u\020\020\377u\020\020\377|\021\021\377\241\027\027\377\302\033\033\377\302" - "\033\033\377\303\034\034\377\311\034\034\377\311\034\034\377\311\034\034\377\332\037" - "\037\377\376\371\371\377\363\254\254\377\363\254\254\377\363\262\262\377\340" - "--\377\325\036\036_\327\036\036'\325\036\036\366\366\277\277\377\367\312\312\377" - "\367\307\307\377\373\346\346\377\353rr\377\327\036\036\377\322\036\036\377\320" - "\035\035\377\313\035\035\377\302\033\033\377\276\033\033\377\266\031\031\377\177\022" - "\022\377w\020\020\377u\020\020\377u\020\020\377u\020\020\377u\020\020\377\253\030\030" - "\377\376\367\367\377\376\375\375\377\376\375\375\377\376\375\375\377\376" - "\375\375\377\376\375\375\377\373\344\344\377\210\023\023\377u\020\020\377u\020" - "\020\377u\020\020\377w\020\020\377\177\022\022\377\262\031\031\377\275\032\032\377\276" - "\033\033\377\302\033\033\377\302\033\033\377\303\034\034\377\303\034\034\377\351ff" - "\377\371\334\334\377\362\251\251\377\363\253\253\377\362\247\247\377\325" - "\036\036\366\327\036\036'\221\024\024\003\325\036\036\305\354}}\377\367\310\310\377" - "\366\301\301\377\370\315\315\377\367\312\312\377\320\035\035\377\311\034\034" - "\377\303\034\034\377\302\033\033\377\275\032\032\377\275\032\032\377\276\033\033\377" - "\253\030\030\377~\021\021\377w\020\020\377u\020\020\377u\020\020\377w\020\020\377\365" - "\272\272\377\376\375\375\377\376\375\375\377\376\375\375\377\376\375\375" - "\377\376\375\375\377\376\375\375\377\376\375\375\377\354\177\177\377u\020" - "\020\377u\020\020\377w\020\020\377~\021\021\377\253\030\030\377\271\032\032\377\271" - "\032\032\377\273\032\032\377\275\032\032\377\276\033\033\377\302\033\033\377\303\034" - "\034\377\367\310\310\377\364\267\267\377\361\244\244\377\363\253\253\377\352" - "oo\377\325\036\036\305\221\024\024\003\000\000\000\000\325\036\036q\340--\377\367\307\307" - "\377\365\270\270\377\363\262\262\377\373\346\346\377\344GG\377\302\033\033" - "\377\275\032\032\377\275\032\032\377\275\032\032\377\275\032\032\377\275\032\032\377" - "\275\032\032\377\250\030\030\377~\021\021\377w\020\020\377u\020\020\377\343AA\377\376" - "\375\375\377\376\375\375\377\376\375\375\377\376\375\375\377\376\375\375" - "\377\376\375\375\377\376\375\375\377\376\375\375\377\376\375\375\377\271" - "\032\032\377w\020\020\377~\021\021\377\250\030\030\377\275\032\032\377\275\032\032\377" - "\273\032\032\377\273\032\032\377\271\032\032\377\275\032\032\377\275\032\032\377\343" - "AA\377\373\344\344\377\361\236\236\377\361\244\244\377\363\254\254\377\340" - "++\377\325\036\036q\000\000\000\000\000\000\000\000\325\036\036\036\325\036\036\355\356\215\215" - "\377\363\262\262\377\362\247\247\377\365\272\272\377\370\315\315\377\276" - "\033\033\377\275\032\032\377\275\032\032\377\275\032\032\377\275\032\032\377\275\032" - "\032\377\273\032\032\377\275\032\032\377\257\030\030\377\177\022\022\377\237\026\026" - "\377\374\353\353\377\376\375\375\377\376\375\375\377\376\375\375\377\376" - "\375\375\377\376\375\375\377\376\375\375\377\376\375\375\377\376\375\375" - "\377\373\346\346\377\370\315\315\377\206\023\023\377\260\031\031\377\276\033\033" - "\377\275\032\032\377\276\033\033\377\275\032\032\377\273\032\032\377\271\032\032\377" - "\271\032\032\377\275\032\032\377\370\315\315\377\365\270\270\377\360\227\227" - "\377\361\242\242\377\356\213\213\377\325\036\036\355\325\036\036\036\000\000\000\000\000" - "\000\000\000\000\000\000\000\325\036\036\222\340--\377\362\247\247\377\360\227\227\377\360" - "\225\225\377\370\323\323\377\352mm\377\275\032\032\377\275\032\032\377\275\032" - "\032\377\273\032\032\377\273\032\032\377\275\032\032\377\302\033\033\377\303\034\034" - "\377\276\033\033\377\363\254\254\377\357\224\224\377\354yy\377\363\256\256" - "\377\371\326\326\377\375\362\362\377\375\362\362\377\371\326\326\377\363" - "\256\256\377\354yy\377\343<<\377\365\270\270\377\355\202\202\377\311\034\034" - "\377\303\034\034\377\276\033\033\377\275\032\032\377\275\032\032\377\275\032\032\377" - "\275\032\032\377\273\032\032\377\351jj\377\370\315\315\377\356\215\215\377\357" - "\224\224\377\361\236\236\377\343<<\377\325\036\036\222\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\322\036\036\"\325\036\036\356\353tt\377\360\227\227\377\360\225" - "\225\377\362\251\251\377\375\366\366\377\340--\377\275\032\032\377\273\032\032" - "\377\273\032\032\377\275\032\032\377\302\033\033\377\303\034\034\377\311\034\034\377" - "\350aa\377\373\346\346\377\361\242\242\377\353tt\377\345NN\377\341\062\062" - "\377\336\037\037\377\336\037\037\377\341\062\062\377\345JJ\377\352oo\377\360\231" - "\231\377\363\262\262\377\375\366\366\377\341\062\062\377\311\034\034\377\302" - "\033\033\377\275\032\032\377\275\032\032\377\275\032\032\377\275\032\032\377\340--" - "\377\375\366\366\377\361\236\236\377\356\213\213\377\357\220\220\377\354" - "}}\377\325\036\036\356\322\036\036\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\325\036\036|\331\037\037\377\360\227\227\377\360\231\231\377\360\227\227\377" - "\366\277\277\377\372\341\341\377\327\036\036\377\273\032\032\377\275\032\032\377" - "\276\033\033\377\302\033\033\377\307\034\034\377\332\037\037\377\373\350\350\377" - "\370\323\323\377\366\277\277\377\365\270\270\377\365\270\270\377\366\277" - "\277\377\367\310\310\377\367\312\312\377\366\277\277\377\364\267\267\377" - "\364\263\263\377\364\263\263\377\367\312\312\377\373\346\346\377\356\207" - "\207\377\311\034\034\377\303\034\034\377\302\033\033\377\275\032\032\377\275\032\032" - "\377\327\036\036\377\373\343\343\377\366\277\277\377\357\220\220\377\357\220" - "\220\377\357\224\224\377\340''\377\325\036\036|\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\331\037\037\013\325\036\036\310\342\067\067\377\361\236\236" - "\377\357\224\224\377\357\220\220\377\366\305\305\377\371\330\330\377\336" - "\037\037\377\276\033\033\377\302\033\033\377\303\034\034\377\311\034\034\377\320\035" - "\035\377\346QQ\377\366\277\277\377\376\367\367\377\373\344\344\377\370\325" - "\325\377\371\330\330\377\370\325\325\377\371\326\326\377\371\330\330\377" - "\370\325\325\377\373\343\343\377\375\366\366\377\365\274\274\377\345JJ\377" - "\303\034\034\377\307\034\034\377\311\034\034\377\307\034\034\377\302\033\033\377\336" - "\037\037\377\371\330\330\377\367\310\310\377\360\225\225\377\357\224\224\377" - "\360\225\225\377\345JJ\377\325\036\036\310\331\037\037\013\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\327\036\036\061\325\036\036\355\347XX\377" - "\360\225\225\377\357\220\220\377\357\220\220\377\366\301\301\377\374\351" - "\351\377\343AA\377\302\033\033\377\311\034\034\377\314\035\035\377\322\036\036\377" - "\327\036\036\377\327\036\036\377\337$$\377\350ee\377\361\236\236\377\363\253" - "\253\377\370\321\321\377\370\321\321\377\363\253\253\377\361\236\236\377" - "\350ee\377\336\037\037\377\320\035\035\377\314\035\035\377\311\034\034\377\307\034" - "\034\377\311\034\034\377\311\034\034\377\343AA\377\374\351\351\377\366\301\301" - "\377\360\225\225\377\360\225\225\377\360\231\231\377\352mm\377\325\036\036" - "\355\327\036\036\061\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\325\036\036Z\325\036\036\374\352mm\377\360\227\227\377\357\224" - "\224\377\360\227\227\377\366\277\277\377\376\371\371\377\354yy\377\313\035" - "\035\377\320\035\035\377\322\036\036\377\325\036\036\377\325\036\036\377\322\036\036" - "\377\320\035\035\377\325\036\036\377\331\037\037\377\336\037\037\377\336\037\037\377" - "\331\037\037\377\322\036\036\377\320\035\035\377\320\035\035\377\320\035\035\377\320" - "\035\035\377\313\035\035\377\307\034\034\377\307\034\034\377\354yy\377\376\371\371" - "\377\366\277\277\377\360\231\231\377\360\225\225\377\360\231\231\377\354" - "\177\177\377\325\036\036\374\325\036\036Z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\325\036\036q\322\036\036" - "\377\353rr\377\360\235\235\377\361\236\236\377\361\236\236\377\363\262\262" - "\377\371\334\334\377\370\321\321\377\345JJ\377\327\036\036\377\327\036\036\377" - "\322\036\036\377\322\036\036\377\320\035\035\377\327\036\036\377\331\037\037\377\336" - "\037\037\377\336\037\037\377\332\037\037\377\325\036\036\377\320\035\035\377\320\035" - "\035\377\320\035\035\377\320\035\035\377\313\035\035\377\344CC\377\370\315\315\377" - "\371\330\330\377\363\262\262\377\361\244\244\377\362\247\247\377\361\236" - "\236\377\355\202\202\377\336\037\037\377\325\036\036q\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\325\036\036q\325\036\036\374\351ff\377\361\236\236\377\362\251\251\377" - "\362\251\251\377\363\256\256\377\370\315\315\377\374\353\353\377\367\312" - "\312\377\354}}\377\341..\377\320\035\035\377\322\036\036\377\327\036\036\377\332" - "\037\037\377\336\037\037\377\336\037\037\377\332\037\037\377\327\036\036\377\322\036" - "\036\377\320\035\035\377\340++\377\354yy\377\367\312\312\377\373\350\350\377" - "\366\305\305\377\362\247\247\377\363\253\253\377\363\253\253\377\362\251" - "\251\377\353tt\377\325\036\036\374\325\036\036q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\325\036\036Z\325\036\036\356\345JJ\377\363\254\254\377\364" - "\263\263\377\364\263\263\377\365\270\270\377\365\274\274\377\370\315\315" - "\377\372\341\341\377\375\364\364\377\370\323\323\377\361\236\236\377\354" - "{{\377\353tt\377\346QQ\377\346QQ\377\353tt\377\354{{\377\361\236\236\377" - "\370\323\323\377\375\364\364\377\371\334\334\377\366\305\305\377\363\254" - "\254\377\362\251\251\377\362\247\247\377\363\262\262\377\363\256\256\377" - "\346SS\377\325\036\036\356\325\036\036Z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\325\036\036\064\325\036\036\305\340))\377\357\220\220" - "\377\365\274\274\377\366\277\277\377\366\277\277\377\365\274\274\377\365" - "\272\272\377\364\263\263\377\366\301\301\377\370\325\325\377\373\343\343" - "\377\373\344\344\377\375\360\360\377\375\360\360\377\373\346\346\377\373" - "\343\343\377\370\325\325\377\366\301\301\377\364\267\267\377\364\267\267" - "\377\363\262\262\377\364\263\263\377\363\262\262\377\363\254\254\377\357" - "\220\220\377\341..\377\325\036\036\305\325\036\036\064\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\311\034\034\014\325" - "\036\036|\325\036\036\354\343<<\377\361\236\236\377\367\307\307\377\366\277\277" - "\377\365\272\272\377\364\267\267\377\364\267\267\377\365\272\272\377\366" - "\277\277\377\366\301\301\377\367\312\312\377\370\315\315\377\367\310\310" - "\377\366\277\277\377\365\270\270\377\364\267\267\377\364\263\263\377\364" - "\263\263\377\365\272\272\377\364\267\267\377\361\236\236\377\344EE\377\325" - "\036\036\354\325\036\036|\311\034\034\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\334\037" - "\037&\325\036\036\222\325\036\036\354\340))\377\353tt\377\363\256\256\377\366" - "\277\277\377\366\301\301\377\366\277\277\377\366\305\305\377\367\307\307" - "\377\370\315\315\377\370\321\321\377\370\315\315\377\367\307\307\377\366" - "\277\277\377\366\277\277\377\365\270\270\377\363\254\254\377\354{{\377\341" - "\064\064\377\325\036\036\354\325\036\036\222\334\037\037&\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\325\036\036\036\325\036\036s\325\036\036" - "\304\325\036\036\365\340++\377\345JJ\377\352mm\377\357\220\220\377\363\254" - "\254\377\364\267\267\377\364\267\267\377\363\256\256\377\357\220\220\377" - "\353rr\377\346OO\377\340--\377\325\036\036\365\325\036\036\304\325\036\036s\325" - "\036\036\036\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\037\004\004\001\325\036\036(\325\036\036_\325\036\036" - "\222\325\036\036\270\325\036\036\321\325\036\036\343\325\036\036\355\325\036\036\355" - "\325\036\036\343\325\036\036\321\325\036\036\270\325\036\036\222\325\036\036_\325\036" - "\036(\037\004\004\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000", -};