[
  {
    "path": ".gitignore",
    "content": "build\n"
  },
  {
    "path": ".gitmodules",
    "content": "[submodule \"glfw\"]\n\tpath = glfw\n\turl = https://github.com/glfw/glfw\n[submodule \"bx\"]\n\tpath = bx\n\turl = https://github.com/bkaradzic/bx\n[submodule \"bimg\"]\n\tpath = bimg\n\turl = https://github.com/bkaradzic/bimg/\n[submodule \"bgfx\"]\n\tpath = bgfx\n\turl = https://github.com/bkaradzic/bgfx/\n"
  },
  {
    "path": "LICENSE",
    "content": "Copyright 2010-2019 Branimir Karadzic\n\nRedistribution and use in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n\n   1. Redistributions of source code must retain the above copyright notice, this\n      list of conditions and the following disclaimer.\n\n   2. Redistributions in binary form must reproduce the above copyright notice,\n      this list of conditions and the following disclaimer in the documentation\n      and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\nIN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\nINDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\nBUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\nOF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE\nOR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED\nOF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "README.md",
    "content": "## bgfx-minimal-example\n\n[![License](https://img.shields.io/badge/license-BSD--2%20clause-blue.svg)](https://bkaradzic.github.io/bgfx/license.html)\n\nMinimal [bgfx](https://github.com/bkaradzic/bgfx/) \"hello world\" example.\n\nThis doesn't use the [bgfx example framework](https://github.com/bkaradzic/bgfx/tree/master/examples/common). [GLFW](https://www.glfw.org/) is used for windowing. There are separate single and multithreaded examples.\n\n[Premake 5](https://premake.github.io/) is used instead of [GENie](https://github.com/bkaradzic/GENie), so this also serves as an example of how to build [bgfx](https://github.com/bkaradzic/bgfx/), [bimg](https://github.com/bkaradzic/bimg/) and [bx](https://github.com/bkaradzic/bx/) with a different build system.\n\n### Related links\n\n[Using the bgfx library with C++ on Ubuntu](https://www.sandeepnambiar.com/getting-started-with-bgfx/) and the associated [repository](https://github.com/gamedolphin/bgfx-sample).\n\n[Hello, bgfx!](https://dev.to/pperon/hello-bgfx-4dka)\n"
  },
  {
    "path": "helloworld.cpp",
    "content": "/*\n * Copyright 2011-2019 Branimir Karadzic. All rights reserved.\n * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause\n */\n#include <stdio.h>\n#include <bx/bx.h>\n#include <bgfx/bgfx.h>\n#include <bgfx/platform.h>\n#include <GLFW/glfw3.h>\n#if BX_PLATFORM_LINUX\n#define GLFW_EXPOSE_NATIVE_X11\n#elif BX_PLATFORM_WINDOWS\n#define GLFW_EXPOSE_NATIVE_WIN32\n#elif BX_PLATFORM_OSX\n#define GLFW_EXPOSE_NATIVE_COCOA\n#endif\n#include <GLFW/glfw3native.h>\n#include \"logo.h\"\n\nstatic bool s_showStats = false;\n\nstatic void glfw_errorCallback(int error, const char *description)\n{\n\tfprintf(stderr, \"GLFW error %d: %s\\n\", error, description);\n}\n\nstatic void glfw_keyCallback(GLFWwindow *window, int key, int scancode, int action, int mods)\n{\n\tif (key == GLFW_KEY_F1 && action == GLFW_RELEASE)\n\t\ts_showStats = !s_showStats;\n}\n\nint main(int argc, char **argv)\n{\n\t// Create a GLFW window without an OpenGL context.\n\tglfwSetErrorCallback(glfw_errorCallback);\n\tif (!glfwInit())\n\t\treturn 1;\n\tglfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);\n\tGLFWwindow *window = glfwCreateWindow(1024, 768, \"helloworld\", nullptr, nullptr);\n\tif (!window)\n\t\treturn 1;\n\tglfwSetKeyCallback(window, glfw_keyCallback);\n\t// Call bgfx::renderFrame before bgfx::init to signal to bgfx not to create a render thread.\n\t// Most graphics APIs must be used on the same thread that created the window.\n\tbgfx::renderFrame();\n\t// Initialize bgfx using the native window handle and window resolution.\n\tbgfx::Init init;\n#if BX_PLATFORM_LINUX || BX_PLATFORM_BSD\n\tinit.platformData.ndt = glfwGetX11Display();\n\tinit.platformData.nwh = (void*)(uintptr_t)glfwGetX11Window(window);\n#elif BX_PLATFORM_OSX\n\tinit.platformData.nwh = glfwGetCocoaWindow(window);\n#elif BX_PLATFORM_WINDOWS\n\tinit.platformData.nwh = glfwGetWin32Window(window);\n#endif\n\tint width, height;\n\tglfwGetWindowSize(window, &width, &height);\n\tinit.resolution.width = (uint32_t)width;\n\tinit.resolution.height = (uint32_t)height;\n\tinit.resolution.reset = BGFX_RESET_VSYNC;\n\tif (!bgfx::init(init))\n\t\treturn 1;\n\t// Set view 0 to the same dimensions as the window and to clear the color buffer.\n\tconst bgfx::ViewId kClearView = 0;\n\tbgfx::setViewClear(kClearView, BGFX_CLEAR_COLOR);\n\tbgfx::setViewRect(kClearView, 0, 0, bgfx::BackbufferRatio::Equal);\n\twhile (!glfwWindowShouldClose(window)) {\n\t\tglfwPollEvents();\n\t\t// Handle window resize.\n\t\tint oldWidth = width, oldHeight = height;\n\t\tglfwGetWindowSize(window, &width, &height);\n\t\tif (width != oldWidth || height != oldHeight) {\n\t\t\tbgfx::reset((uint32_t)width, (uint32_t)height, BGFX_RESET_VSYNC);\n\t\t\tbgfx::setViewRect(kClearView, 0, 0, bgfx::BackbufferRatio::Equal);\n\t\t}\n\t\t// This dummy draw call is here to make sure that view 0 is cleared if no other draw calls are submitted to view 0.\n\t\tbgfx::touch(kClearView);\n\t\t// Use debug font to print information about this example.\n\t\tbgfx::dbgTextClear();\n\t\tbgfx::dbgTextImage(bx::max<uint16_t>(uint16_t(width / 2 / 8), 20) - 20, bx::max<uint16_t>(uint16_t(height / 2 / 16), 6) - 6, 40, 12, s_logo, 160);\n\t\tbgfx::dbgTextPrintf(0, 0, 0x0f, \"Press F1 to toggle stats.\");\n\t\tbgfx::dbgTextPrintf(0, 1, 0x0f, \"Color can be changed with ANSI \\x1b[9;me\\x1b[10;ms\\x1b[11;mc\\x1b[12;ma\\x1b[13;mp\\x1b[14;me\\x1b[0m code too.\");\n\t\tbgfx::dbgTextPrintf(80, 1, 0x0f, \"\\x1b[;0m    \\x1b[;1m    \\x1b[; 2m    \\x1b[; 3m    \\x1b[; 4m    \\x1b[; 5m    \\x1b[; 6m    \\x1b[; 7m    \\x1b[0m\");\n\t\tbgfx::dbgTextPrintf(80, 2, 0x0f, \"\\x1b[;8m    \\x1b[;9m    \\x1b[;10m    \\x1b[;11m    \\x1b[;12m    \\x1b[;13m    \\x1b[;14m    \\x1b[;15m    \\x1b[0m\");\n\t\tconst bgfx::Stats* stats = bgfx::getStats();\n\t\tbgfx::dbgTextPrintf(0, 2, 0x0f, \"Backbuffer %dW x %dH in pixels, debug text %dW x %dH in characters.\", stats->width, stats->height, stats->textWidth, stats->textHeight);\n\t\t// Enable stats or debug text.\n\t\tbgfx::setDebug(s_showStats ? BGFX_DEBUG_STATS : BGFX_DEBUG_TEXT);\n\t\t// Advance to next frame. Process submitted rendering primitives.\n\t\tbgfx::frame();\n\t}\n\tbgfx::shutdown();\n\tglfwTerminate();\n\treturn 0;\n}\n"
  },
  {
    "path": "helloworld_mt.cpp",
    "content": "/*\n * Copyright 2011-2019 Branimir Karadzic. All rights reserved.\n * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause\n */\n#include <stdio.h>\n#include <bx/bx.h>\n#include <bx/spscqueue.h>\n#include <bx/thread.h>\n#include <bgfx/bgfx.h>\n#include <bgfx/platform.h>\n#include <GLFW/glfw3.h>\n#if BX_PLATFORM_LINUX\n#define GLFW_EXPOSE_NATIVE_X11\n#elif BX_PLATFORM_WINDOWS\n#define GLFW_EXPOSE_NATIVE_WIN32\n#elif BX_PLATFORM_OSX\n#define GLFW_EXPOSE_NATIVE_COCOA\n#endif\n#include <GLFW/glfw3native.h>\n#include \"logo.h\"\n\nstatic bx::DefaultAllocator s_allocator;\nstatic bx::SpScUnboundedQueue s_apiThreadEvents(&s_allocator);\n\nenum class EventType\n{\n\tExit,\n\tKey,\n\tResize\n};\n\nstruct ExitEvent\n{\n\tEventType type = EventType::Exit;\n};\n\nstruct KeyEvent\n{\n\tEventType type = EventType::Key;\n\tint key;\n\tint action;\n};\n\nstruct ResizeEvent\n{\n\tEventType type = EventType::Resize;\n\tuint32_t width;\n\tuint32_t height;\n};\n\nstatic void glfw_errorCallback(int error, const char *description)\n{\n\tfprintf(stderr, \"GLFW error %d: %s\\n\", error, description);\n}\n\nstatic void glfw_keyCallback(GLFWwindow *window, int key, int scancode, int action, int mods)\n{\n\tauto keyEvent = new KeyEvent;\n\tkeyEvent->key = key;\n\tkeyEvent->action = action;\n\ts_apiThreadEvents.push(keyEvent);\n}\n\nstruct ApiThreadArgs\n{\n\tbgfx::PlatformData platformData;\n\tuint32_t width;\n\tuint32_t height;\n};\n\nstatic int32_t runApiThread(bx::Thread *self, void *userData)\n{\n\tauto args = (ApiThreadArgs *)userData;\n\t// Initialize bgfx using the native window handle and window resolution.\n\tbgfx::Init init;\n\tinit.platformData = args->platformData;\n\tinit.resolution.width = args->width;\n\tinit.resolution.height = args->height;\n\tinit.resolution.reset = BGFX_RESET_VSYNC;\n\tif (!bgfx::init(init))\n\t\treturn 1;\n\t// Set view 0 to the same dimensions as the window and to clear the color buffer.\n\tconst bgfx::ViewId kClearView = 0;\n\tbgfx::setViewClear(kClearView, BGFX_CLEAR_COLOR);\n\tbgfx::setViewRect(kClearView, 0, 0, bgfx::BackbufferRatio::Equal);\n\tuint32_t width = args->width;\n\tuint32_t height = args->height;\n\tbool showStats = false;\n\tbool exit = false;\n\twhile (!exit) {\n\t\t// Handle events from the main thread.\n\t\twhile (auto ev = (EventType *)s_apiThreadEvents.pop()) {\n\t\t\tif (*ev == EventType::Key) {\n\t\t\t\tauto keyEvent = (KeyEvent *)ev;\n\t\t\t\tif (keyEvent->key == GLFW_KEY_F1 && keyEvent->action == GLFW_RELEASE)\n\t\t\t\t\tshowStats = !showStats;\n\t\t\t}\n\t\t\telse if (*ev == EventType::Resize) {\n\t\t\t\tauto resizeEvent = (ResizeEvent *)ev;\n\t\t\t\tbgfx::reset(resizeEvent->width, resizeEvent->height, BGFX_RESET_VSYNC);\n\t\t\t\tbgfx::setViewRect(kClearView, 0, 0, bgfx::BackbufferRatio::Equal);\n\t\t\t\twidth = resizeEvent->width;\n\t\t\t\theight = resizeEvent->height;\n\t\t\t} else if (*ev == EventType::Exit) {\n\t\t\t\texit = true;\n\t\t\t}\n\t\t\tdelete ev;\n\t\t}\n\t\t// This dummy draw call is here to make sure that view 0 is cleared if no other draw calls are submitted to view 0.\n\t\tbgfx::touch(kClearView);\n\t\t// Use debug font to print information about this example.\n\t\tbgfx::dbgTextClear();\n\t\tbgfx::dbgTextImage(bx::max<uint16_t>(uint16_t(width / 2 / 8), 20) - 20, bx::max<uint16_t>(uint16_t(height / 2 / 16), 6) - 6, 40, 12, s_logo, 160);\n\t\tbgfx::dbgTextPrintf(0, 0, 0x0f, \"Press F1 to toggle stats.\");\n\t\tbgfx::dbgTextPrintf(0, 1, 0x0f, \"Color can be changed with ANSI \\x1b[9;me\\x1b[10;ms\\x1b[11;mc\\x1b[12;ma\\x1b[13;mp\\x1b[14;me\\x1b[0m code too.\");\n\t\tbgfx::dbgTextPrintf(80, 1, 0x0f, \"\\x1b[;0m    \\x1b[;1m    \\x1b[; 2m    \\x1b[; 3m    \\x1b[; 4m    \\x1b[; 5m    \\x1b[; 6m    \\x1b[; 7m    \\x1b[0m\");\n\t\tbgfx::dbgTextPrintf(80, 2, 0x0f, \"\\x1b[;8m    \\x1b[;9m    \\x1b[;10m    \\x1b[;11m    \\x1b[;12m    \\x1b[;13m    \\x1b[;14m    \\x1b[;15m    \\x1b[0m\");\n\t\tconst bgfx::Stats* stats = bgfx::getStats();\n\t\tbgfx::dbgTextPrintf(0, 2, 0x0f, \"Backbuffer %dW x %dH in pixels, debug text %dW x %dH in characters.\", stats->width, stats->height, stats->textWidth, stats->textHeight);\n\t\t// Enable stats or debug text.\n\t\tbgfx::setDebug(showStats ? BGFX_DEBUG_STATS : BGFX_DEBUG_TEXT);\n\t\t// Advance to next frame. Main thread will be kicked to process submitted rendering primitives.\n\t\tbgfx::frame();\n\t}\n\tbgfx::shutdown();\n\treturn 0;\n}\n\nint main(int argc, char **argv)\n{\n\t// Create a GLFW window without an OpenGL context.\n\tglfwSetErrorCallback(glfw_errorCallback);\n\tif (!glfwInit())\n\t\treturn 1;\n\tglfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);\n\tGLFWwindow *window = glfwCreateWindow(1024, 768, \"helloworld multithreaded\", nullptr, nullptr);\n\tif (!window)\n\t\treturn 1;\n\tglfwSetKeyCallback(window, glfw_keyCallback);\n\t// Call bgfx::renderFrame before bgfx::init to signal to bgfx not to create a render thread.\n\t// Most graphics APIs must be used on the same thread that created the window.\n\tbgfx::renderFrame();\n\t// Create a thread to call the bgfx API from (except bgfx::renderFrame).\n\tApiThreadArgs apiThreadArgs;\n#if BX_PLATFORM_LINUX || BX_PLATFORM_BSD\n\tapiThreadArgs.platformData.ndt = glfwGetX11Display();\n\tapiThreadArgs.platformData.nwh = (void*)(uintptr_t)glfwGetX11Window(window);\n#elif BX_PLATFORM_OSX\n\tapiThreadArgs.platformData.nwh = glfwGetCocoaWindow(window);\n#elif BX_PLATFORM_WINDOWS\n\tapiThreadArgs.platformData.nwh = glfwGetWin32Window(window);\n#endif\n\tint width, height;\n\tglfwGetWindowSize(window, &width, &height);\n\tapiThreadArgs.width = (uint32_t)width;\n\tapiThreadArgs.height = (uint32_t)height;\n\tbx::Thread apiThread;\n\tapiThread.init(runApiThread, &apiThreadArgs);\n\t// Run GLFW message pump.\n\tbool exit = false;\n\twhile (!exit) {\n\t\tglfwPollEvents();\n\t\t// Send window close event to the API thread.\n\t\tif (glfwWindowShouldClose(window)) {\n\t\t\ts_apiThreadEvents.push(new ExitEvent);\n\t\t\texit = true;\n\t\t}\n\t\t// Send window resize event to the API thread.\n\t\tint oldWidth = width, oldHeight = height;\n\t\tglfwGetWindowSize(window, &width, &height);\n\t\tif (width != oldWidth || height != oldHeight) {\n\t\t\tauto resize = new ResizeEvent;\n\t\t\tresize->width = (uint32_t)width;\n\t\t\tresize->height = (uint32_t)height;\n\t\t\ts_apiThreadEvents.push(resize);\n\t\t}\n\t\t// Wait for the API thread to call bgfx::frame, then process submitted rendering primitives.\n\t\tbgfx::renderFrame();\n\t}\n\t// Wait for the API thread to finish before shutting down.\n\twhile (bgfx::RenderFrame::NoContext != bgfx::renderFrame()) {}\n\tapiThread.shutdown();\n\tglfwTerminate();\n\treturn apiThread.getExitCode();\n}\n"
  },
  {
    "path": "logo.h",
    "content": "static const uint8_t s_logo[4000] =\n{\n\t0xdc, 0x03, 0xdc, 0x03, 0xdc, 0x03, 0xdc, 0x03, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, // ........ . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0xdc, 0x08, //  . . . . . . ...\n\t0xdc, 0x03, 0xdc, 0x07, 0xdc, 0x07, 0xdc, 0x08, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, // ........ . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0xde, 0x03, 0xb0, 0x3b, 0xb1, 0x3b, 0xb2, 0x3b, 0xdb, 0x3b, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, // ...;.;.;.; . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0xdc, 0x03, 0xb1, 0x3b, 0xb2, 0x3b, //  . . . . ....;.;\n\t0xdb, 0x3b, 0xdf, 0x03, 0xdf, 0x3b, 0xb2, 0x3f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, // .;...;.? . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0xb1, 0x3b, 0xb1, 0x3b, 0xb2, 0x3b, 0xb2, 0x3f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  ..;.;.;.? . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0xb1, 0x3b, 0xb1, 0x3b, 0xb2, 0x3b, //  . . . . ..;.;.;\n\t0xb2, 0x3f, 0x20, 0x0f, 0x20, 0x0f, 0xdf, 0x03, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, // .? . ... . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0xb1, 0x3b, 0xb1, 0x3b, 0xb1, 0x3b, 0xb1, 0x3f, 0xdc, 0x0b, 0xdc, 0x03, 0xdc, 0x03, //  ..;.;.;.?......\n\t0xdc, 0x03, 0xdc, 0x03, 0x20, 0x0f, 0x20, 0x0f, 0xdc, 0x08, 0xdc, 0x03, 0xdc, 0x03, 0xdc, 0x03, // .... . .........\n\t0xdc, 0x03, 0xdc, 0x03, 0xdc, 0x03, 0xdc, 0x08, 0x20, 0x0f, 0xb1, 0x3b, 0xb1, 0x3b, 0xb1, 0x3b, // ........ ..;.;.;\n\t0xb1, 0x3f, 0xb1, 0x3f, 0xb2, 0x0b, 0x20, 0x0f, 0x20, 0x0f, 0xdc, 0x03, 0xdc, 0x03, 0xdc, 0x03, // .?.?.. . .......\n\t0x20, 0x0f, 0x20, 0x0f, 0xdc, 0x03, 0xdc, 0x03, 0xdc, 0x03, 0x20, 0x0f, 0x20, 0x01, 0x20, 0x0f, //  . ....... . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0xb2, 0x3b, 0xb1, 0x3b, 0xb0, 0x3b, 0xb0, 0x3f, 0x20, 0x0f, 0xde, 0x03, 0xb0, 0x3f, //  ..;.;.;.? ....?\n\t0xb1, 0x3f, 0xb2, 0x3f, 0xdd, 0x03, 0xde, 0x03, 0xdb, 0x03, 0xdb, 0x03, 0xb2, 0x3f, 0x20, 0x0f, // .?.?.........? .\n\t0x20, 0x0f, 0xb0, 0x3f, 0xb1, 0x3f, 0xb2, 0x3f, 0xde, 0x38, 0xb2, 0x3b, 0xb1, 0x3b, 0xb0, 0x3b, //  ..?.?.?.8.;.;.;\n\t0xb0, 0x3f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0xb0, 0x3b, 0xb1, 0x3b, 0xb2, 0x3b, 0xb2, 0x3f, // .? . . ..;.;.;.?\n\t0xdd, 0x03, 0xde, 0x03, 0xb0, 0x3f, 0xb1, 0x3f, 0xb2, 0x3f, 0xdd, 0x03, 0x20, 0x01, 0x20, 0x0f, // .....?.?.?.. . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0xb2, 0x3b, 0xb1, 0x3b, 0xb0, 0x3b, 0xb0, 0x3f, 0x20, 0x0f, 0x20, 0x0f, 0xdb, 0x03, //  ..;.;.;.? . ...\n\t0xb0, 0x3f, 0xb1, 0x3f, 0xdd, 0x03, 0xb1, 0x3b, 0xb0, 0x3b, 0xdb, 0x03, 0xb1, 0x3f, 0x20, 0x0f, // .?.?...;.;...? .\n\t0x20, 0x0f, 0x20, 0x3f, 0xb0, 0x3f, 0xb1, 0x3f, 0xb0, 0x3b, 0xb2, 0x3b, 0xb1, 0x3b, 0xb0, 0x3b, //  . ?.?.?.;.;.;.;\n\t0xb0, 0x3f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0xdc, 0x08, 0xdc, 0x3b, 0xb1, 0x3b, 0xb1, 0x3f, // .? . . ....;.;.?\n\t0xb1, 0x3b, 0xb0, 0x3b, 0xb2, 0x3b, 0xb0, 0x3f, 0xdc, 0x03, 0x20, 0x0f, 0x20, 0x01, 0x20, 0x0f, // .;.;.;.?.. . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0xb2, 0x3b, 0xb1, 0x3b, 0xb0, 0x3b, 0xb0, 0x3f, 0xdc, 0x0b, 0xdc, 0x07, 0xdb, 0x03, //  ..;.;.;.?......\n\t0xdb, 0x03, 0xdc, 0x38, 0x20, 0x0f, 0xdf, 0x03, 0xb1, 0x3b, 0xb0, 0x3b, 0xb0, 0x3f, 0xdc, 0x03, // ...8 ....;.;.?..\n\t0xdc, 0x07, 0xb0, 0x3f, 0xb1, 0x3f, 0xb2, 0x3f, 0xdd, 0x3b, 0xb2, 0x3b, 0xb1, 0x3b, 0xdc, 0x78, // ...?.?.?.;.;.;.x\n\t0xdf, 0x08, 0x20, 0x0f, 0x20, 0x0f, 0xde, 0x08, 0xb2, 0x3b, 0xb1, 0x3b, 0xb0, 0x3b, 0xb0, 0x3f, // .. . ....;.;.;.?\n\t0x20, 0x0f, 0xdf, 0x03, 0xb1, 0x3b, 0xb2, 0x3b, 0xdb, 0x03, 0xdd, 0x03, 0x20, 0x01, 0x20, 0x0f, //  ....;.;.... . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0xdc, 0x08, 0xdc, 0x08, 0xdc, 0x08, 0x20, 0x0f, //  . . . ....... .\n\t0x20, 0x0f, 0xb0, 0x3f, 0xb0, 0x3f, 0xb1, 0x3f, 0xdd, 0x3b, 0xdb, 0x0b, 0xdf, 0x03, 0x20, 0x0f, //  ..?.?.?.;.... .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0xdf, 0x08, 0xdf, 0x03, 0xdf, 0x03, 0xdf, 0x08, //  . . . .........\n\t0x20, 0x0f, 0x20, 0x0f, 0xdf, 0x08, 0xdf, 0x03, 0xdf, 0x03, 0x20, 0x0f, 0x20, 0x01, 0x20, 0x0f, //  . ....... . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0xdb, 0x08, 0xb2, 0x38, 0xb1, 0x38, 0xdc, 0x03, //  . . . ....8.8..\n\t0xdc, 0x07, 0xb0, 0x3b, 0xb1, 0x3b, 0xdf, 0x3b, 0xdf, 0x08, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, // ...;.;.;.. . . .\n\t0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, //  . . . . . . . .\n\t0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, //  . . . . . . . .\n\t0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, //  . . . . . . . .\n\t0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, //  . . . . . . . .\n\t0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, //  . . . . . . . .\n\t0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, //  . . . . . . . .\n\t0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, //  . . . . . . . .\n\t0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0b, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x2d, 0x08, 0x3d, 0x08, 0x20, 0x0a, 0x43, 0x0b, 0x72, 0x0b, 0x6f, 0x0b, 0x73, 0x0b, 0x73, 0x0b, // -.=. .C.r.o.s.s.\n\t0x2d, 0x0b, 0x70, 0x0b, 0x6c, 0x0b, 0x61, 0x0b, 0x74, 0x0b, 0x66, 0x0b, 0x6f, 0x0b, 0x72, 0x0b, // -.p.l.a.t.f.o.r.\n\t0x6d, 0x0b, 0x20, 0x0b, 0x72, 0x0b, 0x65, 0x0b, 0x6e, 0x0b, 0x64, 0x0b, 0x65, 0x0b, 0x72, 0x0b, // m. .r.e.n.d.e.r.\n\t0x69, 0x0b, 0x6e, 0x0b, 0x67, 0x0b, 0x20, 0x0b, 0x6c, 0x0b, 0x69, 0x0b, 0x62, 0x0b, 0x72, 0x0b, // i.n.g. .l.i.b.r.\n\t0x61, 0x0b, 0x72, 0x0b, 0x79, 0x0b, 0x20, 0x0f, 0x3d, 0x08, 0x2d, 0x08, 0x20, 0x01, 0x20, 0x0f, // a.r.y. .=.-. . .\n\t0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, //  . . . . . . . .\n\t0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, //  . . . . . . . .\n\t0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, //  . . . . . . . .\n\t0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, //  . . . . . . . .\n\t0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, 0x20, 0x0a, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n\t0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, 0x20, 0x0f, //  . . . . . . . .\n};\n"
  },
  {
    "path": "premake5.lua",
    "content": "local BUILD_DIR = path.join(\"build\", _ACTION)\nif _OPTIONS[\"cc\"] ~= nil then\n\tBUILD_DIR = BUILD_DIR .. \"_\" .. _OPTIONS[\"cc\"]\nend\nlocal BGFX_DIR = \"bgfx\"\nlocal BIMG_DIR = \"bimg\"\nlocal BX_DIR = \"bx\"\nlocal GLFW_DIR = \"glfw\"\n\nsolution \"bgfx-minimal-example\"\n\tlocation(BUILD_DIR)\n\tstartproject \"helloworld\"\n\tconfigurations { \"Release\", \"Debug\" }\n\tif os.is64bit() and not os.istarget(\"windows\") then\n\t\tplatforms \"x86_64\"\n\telse\n\t\tplatforms { \"x86\", \"x86_64\" }\n\tend\n\tfilter \"configurations:Release\"\n\t\tdefines\n\t\t{\n\t\t\t\"NDEBUG\",\n\t\t\t\"BX_CONFIG_DEBUG=0\"\n\t\t}\n\t\toptimize \"Full\"\n\tfilter \"configurations:Debug*\"\n\t\tdefines\n\t\t{\n\t\t\t\"_DEBUG\",\n\t\t\t\"BX_CONFIG_DEBUG=1\"\n\t\t}\n\t\toptimize \"Debug\"\n\t\tsymbols \"On\"\n\tfilter \"platforms:x86\"\n\t\tarchitecture \"x86\"\n\tfilter \"platforms:x86_64\"\n\t\tarchitecture \"x86_64\"\n\tfilter \"system:macosx\"\n\t\txcodebuildsettings {\n\t\t\t[\"MACOSX_DEPLOYMENT_TARGET\"] = \"10.9\",\n\t\t\t[\"ALWAYS_SEARCH_USER_PATHS\"] = \"YES\", -- This is the minimum version of macos we'll be able to run on\n\t\t};\n\nfunction setBxCompat()\n\tfilter \"action:vs*\"\n\t\tincludedirs { path.join(BX_DIR, \"include/compat/msvc\") }\n\tfilter { \"system:windows\", \"action:gmake\" }\n\t\tincludedirs { path.join(BX_DIR, \"include/compat/mingw\") }\n\tfilter { \"system:macosx\" }\n\t\tincludedirs { path.join(BX_DIR, \"include/compat/osx\") }\n\t\tbuildoptions { \"-x objective-c++\" }\nend\n\t\nproject \"helloworld\"\n\tkind \"ConsoleApp\"\n\tlanguage \"C++\"\n\tcppdialect \"C++14\"\n\texceptionhandling \"Off\"\n\trtti \"Off\"\n\tfiles \"helloworld.cpp\"\n\tincludedirs\n\t{\n\t\tpath.join(BGFX_DIR, \"include\"),\n\t\tpath.join(BX_DIR, \"include\"),\n\t\tpath.join(GLFW_DIR, \"include\")\n\t}\n\tlinks { \"bgfx\", \"bimg\", \"bx\", \"glfw\" }\n\tfilter \"system:windows\"\n\t\tlinks { \"gdi32\", \"kernel32\", \"psapi\" }\n\tfilter \"system:linux\"\n\t\tlinks { \"dl\", \"GL\", \"pthread\", \"X11\" }\n\tfilter \"system:macosx\"\n\t\tlinks { \"QuartzCore.framework\", \"Metal.framework\", \"Cocoa.framework\", \"IOKit.framework\", \"CoreVideo.framework\" }\n\tsetBxCompat()\n\nproject \"helloworld_mt\"\n\tkind \"ConsoleApp\"\n\tlanguage \"C++\"\n\tcppdialect \"C++14\"\n\texceptionhandling \"Off\"\n\trtti \"Off\"\n\tfiles \"helloworld_mt.cpp\"\n\tincludedirs\n\t{\n\t\tpath.join(BGFX_DIR, \"include\"),\n\t\tpath.join(BX_DIR, \"include\"),\n\t\tpath.join(GLFW_DIR, \"include\")\n\t}\n\tlinks { \"bgfx\", \"bimg\", \"bx\", \"glfw\" }\n\tfilter \"system:windows\"\n\t\tlinks { \"gdi32\", \"kernel32\", \"psapi\" }\n\tfilter \"system:linux\"\n\t\tlinks { \"dl\", \"GL\", \"pthread\", \"X11\" }\n\tfilter \"system:macosx\"\n\t\tlinks { \"QuartzCore.framework\", \"Metal.framework\", \"Cocoa.framework\", \"IOKit.framework\", \"CoreVideo.framework\" }\n\tsetBxCompat()\n\t\nproject \"bgfx\"\n\tkind \"StaticLib\"\n\tlanguage \"C++\"\n\tcppdialect \"C++14\"\n\texceptionhandling \"Off\"\n\trtti \"Off\"\n\tdefines \"__STDC_FORMAT_MACROS\"\n\tfiles\n\t{\n\t\tpath.join(BGFX_DIR, \"include/bgfx/**.h\"),\n\t\tpath.join(BGFX_DIR, \"src/*.cpp\"),\n\t\tpath.join(BGFX_DIR, \"src/*.h\"),\n\t}\n\texcludes\n\t{\n\t\tpath.join(BGFX_DIR, \"src/amalgamated.cpp\"),\n\t}\n\tincludedirs\n\t{\n\t\tpath.join(BX_DIR, \"include\"),\n\t\tpath.join(BIMG_DIR, \"include\"),\n\t\tpath.join(BGFX_DIR, \"include\"),\n\t\tpath.join(BGFX_DIR, \"3rdparty\"),\n\t\tpath.join(BGFX_DIR, \"3rdparty/dxsdk/include\"),\n\t\tpath.join(BGFX_DIR, \"3rdparty/khronos\")\n\t}\n\tfilter \"action:vs*\"\n\t\tdefines \"_CRT_SECURE_NO_WARNINGS\"\n\t\texcludes\n\t\t{\n\t\t\tpath.join(BGFX_DIR, \"src/glcontext_glx.cpp\"),\n\t\t\tpath.join(BGFX_DIR, \"src/glcontext_egl.cpp\")\n\t\t}\n\tfilter \"system:macosx\"\n\t\tfiles\n\t\t{\n\t\t\tpath.join(BGFX_DIR, \"src/*.mm\"),\n\t\t}\n\tsetBxCompat()\n\nproject \"bimg\"\n\tkind \"StaticLib\"\n\tlanguage \"C++\"\n\tcppdialect \"C++14\"\n\texceptionhandling \"Off\"\n\trtti \"Off\"\n\tfiles\n\t{\n\t\tpath.join(BIMG_DIR, \"include/bimg/*.h\"),\n\t\tpath.join(BIMG_DIR, \"src/image.cpp\"),\n\t\tpath.join(BIMG_DIR, \"src/image_gnf.cpp\"),\n\t\tpath.join(BIMG_DIR, \"src/*.h\"),\n\t\tpath.join(BIMG_DIR, \"3rdparty/astc-codec/src/decoder/*.cc\")\n\t}\n\tincludedirs\n\t{\n\t\tpath.join(BX_DIR, \"include\"),\n\t\tpath.join(BIMG_DIR, \"include\"),\n\t\tpath.join(BIMG_DIR, \"3rdparty/astc-codec\"),\n\t\tpath.join(BIMG_DIR, \"3rdparty/astc-codec/include\"),\n\t}\n\tsetBxCompat()\n\nproject \"bx\"\n\tkind \"StaticLib\"\n\tlanguage \"C++\"\n\tcppdialect \"C++14\"\n\texceptionhandling \"Off\"\n\trtti \"Off\"\n\tdefines \"__STDC_FORMAT_MACROS\"\n\tfiles\n\t{\n\t\tpath.join(BX_DIR, \"include/bx/*.h\"),\n\t\tpath.join(BX_DIR, \"include/bx/inline/*.inl\"),\n\t\tpath.join(BX_DIR, \"src/*.cpp\")\n\t}\n\texcludes\n\t{\n\t\tpath.join(BX_DIR, \"src/amalgamated.cpp\"),\n\t\tpath.join(BX_DIR, \"src/crtnone.cpp\")\n\t}\n\tincludedirs\n\t{\n\t\tpath.join(BX_DIR, \"3rdparty\"),\n\t\tpath.join(BX_DIR, \"include\")\n\t}\n\tfilter \"configurations:Release\"\n\t\tdefines \"BX_CONFIG_DEBUG=0\"\n\tfilter \"configurations:Debug\"\n\t\tdefines \"BX_CONFIG_DEBUG=1\"\n\tfilter \"action:vs*\"\n\t\tdefines \"_CRT_SECURE_NO_WARNINGS\"\n\tsetBxCompat()\n\t\t\nproject \"glfw\"\n\tkind \"StaticLib\"\n\tlanguage \"C\"\n\tfiles\n\t{\n\t\tpath.join(GLFW_DIR, \"include/GLFW/*.h\"),\n\t\tpath.join(GLFW_DIR, \"src/context.c\"),\n\t\tpath.join(GLFW_DIR, \"src/egl_context.*\"),\n\t\tpath.join(GLFW_DIR, \"src/init.c\"),\n\t\tpath.join(GLFW_DIR, \"src/input.c\"),\n\t\tpath.join(GLFW_DIR, \"src/internal.h\"),\n\t\tpath.join(GLFW_DIR, \"src/monitor.c\"),\n\t\tpath.join(GLFW_DIR, \"src/null*.*\"),\n\t\tpath.join(GLFW_DIR, \"src/osmesa_context.*\"),\n\t\tpath.join(GLFW_DIR, \"src/platform.c\"),\n\t\tpath.join(GLFW_DIR, \"src/vulkan.c\"),\n\t\tpath.join(GLFW_DIR, \"src/window.c\"),\n\t}\n\tincludedirs { path.join(GLFW_DIR, \"include\") }\n\tfilter \"system:windows\"\n\t\tdefines \"_GLFW_WIN32\"\n\t\tfiles\n\t\t{\n\t\t\tpath.join(GLFW_DIR, \"src/win32_*.*\"),\n\t\t\tpath.join(GLFW_DIR, \"src/wgl_context.*\")\n\t\t}\n\tfilter \"system:linux\"\n\t\tdefines \"_GLFW_X11\"\n\t\tfiles\n\t\t{\n\t\t\tpath.join(GLFW_DIR, \"src/glx_context.*\"),\n\t\t\tpath.join(GLFW_DIR, \"src/linux*.*\"),\n\t\t\tpath.join(GLFW_DIR, \"src/posix*.*\"),\n\t\t\tpath.join(GLFW_DIR, \"src/x11*.*\"),\n\t\t\tpath.join(GLFW_DIR, \"src/xkb*.*\")\n\t\t}\n\tfilter \"system:macosx\"\n\t\tdefines \"_GLFW_COCOA\"\n\t\tfiles\n\t\t{\n\t\t\tpath.join(GLFW_DIR, \"src/cocoa_*.*\"),\n\t\t\tpath.join(GLFW_DIR, \"src/posix_thread.h\"),\n\t\t\tpath.join(GLFW_DIR, \"src/nsgl_context.h\"),\n\t\t\tpath.join(GLFW_DIR, \"src/egl_context.h\"),\n\t\t\tpath.join(GLFW_DIR, \"src/osmesa_context.h\"),\n\n\t\t\tpath.join(GLFW_DIR, \"src/posix_thread.c\"),\n\t\t\tpath.join(GLFW_DIR, \"src/nsgl_context.m\"),\n\t\t\tpath.join(GLFW_DIR, \"src/egl_context.c\"),\n\t\t\tpath.join(GLFW_DIR, \"src/nsgl_context.m\"),\n\t\t\tpath.join(GLFW_DIR, \"src/osmesa_context.c\"),                       \n\t\t}\n\n\tfilter \"action:vs*\"\n\t\tdefines \"_CRT_SECURE_NO_WARNINGS\"\n"
  }
]