From 030413c9cc5d6389f135a3f8f8c8c154fc1c3c7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tur=C3=A1nszki=20J=C3=A1nos?= Date: Sat, 7 Jun 2025 17:38:36 +0200 Subject: [PATCH] Project creator (#1118) --- Editor/Editor.cpp | 76 +- Editor/Editor.h | 12 + Editor/Editor_SOURCE.vcxitems | 2 + Editor/Editor_SOURCE.vcxitems.filters | 2 + Editor/GeneralWindow.cpp | 7 +- Editor/IconDefinitions.h | 1 + Editor/ProjectCreatorWindow.cpp | 381 ++++ Editor/ProjectCreatorWindow.h | 29 + Editor/icon.c | 651 ------- Editor/icon.h | 2056 ++++++++++++++++++++++ Editor/main_SDL2.cpp | 16 +- Editor/main_Windows.cpp | 13 +- Editor/wicked.ico | Bin 86358 -> 88878 bytes Samples/Example_ImGui/wicked.ico | Bin 86358 -> 88878 bytes Samples/Example_ImGui_Docking/wicked.ico | Bin 86358 -> 88878 bytes Samples/Tests/wicked.ico | Bin 86358 -> 88878 bytes WickedEngine/shaders/fontPS.hlsl | 2 + WickedEngine/wiApplication.cpp | 45 +- WickedEngine/wiApplication.h | 2 + WickedEngine/wiFont.cpp | 2 +- WickedEngine/wiHelper.cpp | 243 ++- WickedEngine/wiHelper.h | 15 +- WickedEngine/wiVersion.cpp | 2 +- 23 files changed, 2851 insertions(+), 706 deletions(-) create mode 100644 Editor/ProjectCreatorWindow.cpp create mode 100644 Editor/ProjectCreatorWindow.h delete mode 100644 Editor/icon.c create mode 100644 Editor/icon.h diff --git a/Editor/Editor.cpp b/Editor/Editor.cpp index b6bfad545..480510871 100644 --- a/Editor/Editor.cpp +++ b/Editor/Editor.cpp @@ -6,6 +6,13 @@ #include "Translator.h" #include "DummyVisualizer.h" +// some application parameters can be overwritten in the executable by finding the 256 byte long pattern in the first member: +extern ApplicationExeCustomization exe_customization = { + "Wicked Editor ", + wi::Color(130, 210, 220, 255), + wi::Color::Black() +}; + using namespace wi::graphics; using namespace wi::primitive; using namespace wi::scene; @@ -310,6 +317,12 @@ void Editor::Initialize() filetypes[x] = FileType::IMAGE; } + wi::backlog::setFontColor(exe_customization.backlog_color); + XMFLOAT4 clearcol = exe_customization.background_color; + swapChain.desc.clear_color[0] = clearcol.x; + swapChain.desc.clear_color[1] = clearcol.y; + swapChain.desc.clear_color[2] = clearcol.z; + Application::Initialize(); infoDisplay.active = true; @@ -322,21 +335,22 @@ void Editor::Initialize() //infoDisplay.heap_allocation_counter = true; //infoDisplay.vram_usage = true; - wi::backlog::setFontColor(wi::Color(130, 210, 220, 255)); - wi::renderer::SetOcclusionCullingEnabled(true); - renderComponent.main = this; - uint32_t msaa = 4; - if (config.Has("gui_antialiasing")) + if (!IsScriptReplacement()) // we only activate editor functionality if this exe does not have a script replacement { - msaa = std::max(1u, (uint32_t)config.GetInt("gui_antialiasing")); - } - renderComponent.setMSAASampleCount(msaa); - renderComponent.Load(); - ActivatePath(&renderComponent, 0.5f, wi::Color::Black(), wi::FadeManager::FadeType::CrossFade); + renderComponent.main = this; + uint32_t msaa = 4; + if (config.Has("gui_antialiasing")) + { + msaa = std::max(1u, (uint32_t)config.GetInt("gui_antialiasing")); + } + renderComponent.setMSAASampleCount(msaa); + renderComponent.Load(); + ActivatePath(&renderComponent, 0.5f, wi::Color::Black(), wi::FadeManager::FadeType::CrossFade); - wi::lua::EnableEditorFunctionality(this, &renderComponent); + wi::lua::EnableEditorFunctionality(this, &renderComponent); + } } void Editor::HotReload() { @@ -415,6 +429,9 @@ void EditorComponent::ResizeLayout() contentBrowserWnd.SetSize(XMFLOAT2(screenW / 1.6f, screenH / 1.2f)); contentBrowserWnd.SetPos(XMFLOAT2(screenW / 2.0f - contentBrowserWnd.scale.x / 2.0f, screenH / 2.0f - contentBrowserWnd.scale.y / 2.0f)); + projectCreatorWnd.SetSize(XMFLOAT2(projectCreatorWnd.backgroundColorPicker.GetSize().x * 2 + 4 * 3, 780)); + projectCreatorWnd.SetPos(XMFLOAT2(screenW / 2.0f - projectCreatorWnd.scale.x / 2.0f, screenH / 2.0f - projectCreatorWnd.scale.y / 2.0f)); + } void EditorComponent::Load() { @@ -960,6 +977,17 @@ void EditorComponent::Load() topmenuWnd.AddWidget(&stopButton); + projectCreatorButton.Create(ICON_PROJECT_CREATE); + projectCreatorButton.SetLocalizationEnabled(wi::gui::LocalizationEnabled::Tooltip); + projectCreatorButton.font.params.shadowColor = wi::Color::Transparent(); + projectCreatorButton.SetShadowRadius(2); + projectCreatorButton.SetTooltip("Create a new project."); + projectCreatorButton.OnClick([&](wi::gui::EventArgs args) { + projectCreatorWnd.SetVisible(!projectCreatorWnd.IsVisible()); + }); + topmenuWnd.AddWidget(&projectCreatorButton); + + saveButton.Create("Save"); saveButton.SetLocalizationEnabled(wi::gui::LocalizationEnabled::Tooltip); @@ -1274,6 +1302,9 @@ void EditorComponent::Load() contentBrowserWnd.Create(this); GetGUI().AddWidget(&contentBrowserWnd); + projectCreatorWnd.Create(this); + GetGUI().AddWidget(&projectCreatorWnd); + std::string theme = main->config.GetSection("options").GetText("theme"); if(theme.empty()) { @@ -5195,14 +5226,11 @@ void EditorComponent::SaveAs() }); } -Texture EditorComponent::CreateThumbnailScreenshot() const +Texture EditorComponent::CreateThumbnail(Texture texture, uint32_t target_width, uint32_t target_height, bool mipmaps) const { GraphicsDevice* device = GetDevice(); CommandList cmd = device->BeginCommandList(); - static const uint32_t target_width = 256; - static const uint32_t target_height = 128; - - Texture thumbnail = *renderPath->GetLastPostprocessRT(); + Texture thumbnail = texture; // Overestimate actual size with aspect (note that downscale factor will be 4x later): uint32_t current_width = target_width; @@ -5218,6 +5246,7 @@ Texture EditorComponent::CreateThumbnailScreenshot() const TextureDesc desc = thumbnail.desc; desc.width = current_width; desc.height = current_height; + desc.mip_levels = mipmaps? 0 : 1; desc.bind_flags = BindFlag::SHADER_RESOURCE | BindFlag::RENDER_TARGET | BindFlag::UNORDERED_ACCESS; Texture upsized; device->CreateTexture(&desc, nullptr, &upsized); @@ -5272,6 +5301,7 @@ Texture EditorComponent::CreateThumbnailScreenshot() const TextureDesc desc = thumbnail.desc; desc.width = std::max(target_width, desc.width / 4u); desc.height = std::max(target_height, desc.height / 4u); + desc.mip_levels = mipmaps ? 0 : 1; desc.bind_flags = BindFlag::SHADER_RESOURCE | BindFlag::RENDER_TARGET | BindFlag::UNORDERED_ACCESS; Texture downsized; device->CreateTexture(&desc, nullptr, &downsized); @@ -5279,8 +5309,18 @@ Texture EditorComponent::CreateThumbnailScreenshot() const thumbnail = downsized; } + if (mipmaps) + { + device->CreateMipgenSubresources(thumbnail); + wi::renderer::GenerateMipChain(thumbnail, wi::renderer::MIPGENFILTER_LINEAR, cmd); + } + return thumbnail; } +Texture EditorComponent::CreateThumbnailScreenshot() const +{ + return CreateThumbnail(*renderPath->GetLastPostprocessRT(), 256, 128); +} void EditorComponent::PostSaveText(const std::string& message, const std::string& filename, float time_seconds) { @@ -5608,8 +5648,10 @@ void EditorComponent::UpdateDynamicWidgets() float static_pos = screenW - wid_idle * 12; + projectCreatorButton.SetSize(XMFLOAT2(wid_idle * 0.75f, hei)); + projectCreatorButton.SetPos(XMFLOAT2(static_pos - stopButton.GetSize().x - 20, y)); stopButton.SetSize(XMFLOAT2(wid_idle * 0.75f, hei)); - stopButton.SetPos(XMFLOAT2(static_pos - stopButton.GetSize().x - 20, y)); + stopButton.SetPos(XMFLOAT2(projectCreatorButton.GetPos().x - playButton.GetSize().x - padding, y)); playButton.SetSize(XMFLOAT2(wid_idle * 0.75f, hei)); playButton.SetPos(XMFLOAT2(stopButton.GetPos().x - playButton.GetSize().x - padding, y)); diff --git a/Editor/Editor.h b/Editor/Editor.h index 3e1e11503..8467f46e3 100644 --- a/Editor/Editor.h +++ b/Editor/Editor.h @@ -4,6 +4,7 @@ #include "ComponentsWindow.h" #include "ProfilerWindow.h" #include "ContentBrowserWindow.h" +#include "ProjectCreatorWindow.h" #include "GraphicsWindow.h" #include "CameraWindow.h" #include "MaterialPickerWindow.h" @@ -46,6 +47,7 @@ public: wi::gui::Button playButton; wi::gui::Button stopButton; + wi::gui::Button projectCreatorButton; wi::gui::Button saveButton; wi::gui::Button openButton; @@ -63,6 +65,7 @@ public: ComponentsWindow componentsWnd; ProfilerWindow profilerWnd; ContentBrowserWindow contentBrowserWnd; + ProjectCreatorWindow projectCreatorWnd; wi::gui::Window topmenuWnd; wi::gui::Button generalButton; @@ -182,6 +185,7 @@ public: void SaveAs(); bool deleting = false; + wi::graphics::Texture CreateThumbnail(wi::graphics::Texture texture, uint32_t target_width, uint32_t target_height, bool mipmaps = false) const; wi::graphics::Texture CreateThumbnailScreenshot() const; std::string save_text_message = ""; @@ -287,3 +291,11 @@ static const char* EditorLocalizationStrings[] = { "Content", }; static_assert(arraysize(EditorLocalizationStrings) == size_t(EditorLocalization::Count)); + +struct ApplicationExeCustomization +{ + char name_256padded[256] = {}; + wi::Color backlog_color = wi::Color(130, 210, 220, 255); // color of backlog font (startup text) + wi::Color background_color = wi::Color(114, 170, 229); // color of startup background behind startup text +}; +extern ApplicationExeCustomization exe_customization; diff --git a/Editor/Editor_SOURCE.vcxitems b/Editor/Editor_SOURCE.vcxitems index b9008f547..f71bf27a5 100644 --- a/Editor/Editor_SOURCE.vcxitems +++ b/Editor/Editor_SOURCE.vcxitems @@ -49,6 +49,7 @@ + @@ -122,6 +123,7 @@ + diff --git a/Editor/Editor_SOURCE.vcxitems.filters b/Editor/Editor_SOURCE.vcxitems.filters index 590b733c1..2298f9961 100644 --- a/Editor/Editor_SOURCE.vcxitems.filters +++ b/Editor/Editor_SOURCE.vcxitems.filters @@ -53,6 +53,7 @@ + @@ -111,6 +112,7 @@ + diff --git a/Editor/GeneralWindow.cpp b/Editor/GeneralWindow.cpp index 135fb24c2..6082c0fa4 100644 --- a/Editor/GeneralWindow.cpp +++ b/Editor/GeneralWindow.cpp @@ -507,6 +507,7 @@ void GeneralWindow::Create(EditorComponent* _editor) highlight.z *= 2; editor->newEntityCombo.SetAngularHighlightColor(highlight); editor->componentsWnd.newComponentCombo.SetAngularHighlightColor(highlight); + editor->projectCreatorWnd.createButton.SetAngularHighlightColor(highlight); editor->componentsWnd.materialWnd.textureSlotButton.SetColor(wi::Color::White(), wi::gui::IDLE); editor->componentsWnd.objectWnd.lightmapPreviewButton.SetColor(wi::Color::White()); for (auto& x : editor->componentsWnd.objectWnd.lightmapPreviewButton.sprites) @@ -516,6 +517,8 @@ void GeneralWindow::Create(EditorComponent* _editor) editor->componentsWnd.spriteWnd.textureButton.SetColor(wi::Color::White(), wi::gui::IDLE); editor->paintToolWnd.brushTextureButton.SetColor(wi::Color::White(), wi::gui::IDLE); editor->paintToolWnd.revealTextureButton.SetColor(wi::Color::White(), wi::gui::IDLE); + editor->projectCreatorWnd.iconButton.SetColor(wi::Color::White(), wi::gui::IDLE); + editor->projectCreatorWnd.thumbnailButton.SetColor(wi::Color::White(), wi::gui::IDLE); editor->aboutLabel.sprites[wi::gui::FOCUS] = editor->aboutLabel.sprites[wi::gui::IDLE]; int scene_id = 0; for (auto& editorscene : editor->scenes) @@ -683,8 +686,8 @@ void GeneralWindow::Create(EditorComponent* _editor) editor->playButton.sprites[i].params.enableCornerRounding(); editor->playButton.sprites[i].params.corners_rounding[0].radius = 10; - editor->stopButton.sprites[i].params.enableCornerRounding(); - editor->stopButton.sprites[i].params.corners_rounding[1].radius = 10; + editor->projectCreatorButton.sprites[i].params.enableCornerRounding(); + editor->projectCreatorButton.sprites[i].params.corners_rounding[1].radius = 10; editor->translateButton.sprites[i].params.enableCornerRounding(); editor->translateButton.sprites[i].params.corners_rounding[0].radius = 10; diff --git a/Editor/IconDefinitions.h b/Editor/IconDefinitions.h index c23b76cd2..85df2f020 100644 --- a/Editor/IconDefinitions.h +++ b/Editor/IconDefinitions.h @@ -104,4 +104,5 @@ #define ICON_PAINTTOOL ICON_FA_PAINTBRUSH #define ICON_EYE ICON_FA_EYE +#define ICON_PROJECT_CREATE ICON_FA_FILE_EXPORT diff --git a/Editor/ProjectCreatorWindow.cpp b/Editor/ProjectCreatorWindow.cpp new file mode 100644 index 000000000..e6be81bb7 --- /dev/null +++ b/Editor/ProjectCreatorWindow.cpp @@ -0,0 +1,381 @@ +#include "stdafx.h" +#include "ProjectCreatorWindow.h" + +using namespace wi::ecs; +using namespace wi::scene; + +void ProjectCreatorWindow::Create(EditorComponent* _editor) +{ + editor = _editor; + control_size = 30; + + wi::gui::Window::Create("Project Creator"); + + infoLabel.Create("projectCreatorInfo"); + infoLabel.SetFitTextEnabled(true); + infoLabel.SetText("Here you can create a new Wicked Engine application project. It will create a new folder with the project name, and set up an executable, lua script startup, custom icon, thumbnail and base colors."); + AddWidget(&infoLabel); + + projectNameInput.Create("projectName"); + projectNameInput.SetText(""); + projectNameInput.SetDescription("Name: "); + projectNameInput.SetCancelInputEnabled(false); + AddWidget(&projectNameInput); + + iconButton.Create("projectIcon"); + iconButton.SetText(""); + iconButton.SetDescription("Icon: "); + iconButton.SetSize(XMFLOAT2(128 * 0.5f, 128 * 0.5f)); + iconButton.SetTooltip("The icon will be used for the executable icon."); + iconButton.OnClick([this](wi::gui::EventArgs args) { + if (iconResource.IsValid()) + { + iconResource = {}; + iconName = {}; + iconButton.SetImage(iconResource); + } + else + { + wi::helper::FileDialogParams params; + params.type = wi::helper::FileDialogParams::OPEN; + params.description = "Texture"; + params.extensions = wi::resourcemanager::GetSupportedImageExtensions(); + wi::helper::FileDialog(params, [this](std::string fileName) { + wi::eventhandler::Subscribe_Once(wi::eventhandler::EVENT_THREAD_SAFE_POINT, [=](uint64_t userdata) { + wi::Resource res = wi::resourcemanager::Load(fileName); + if (!res.IsValid()) + return; + iconResource.SetTexture(editor->CreateThumbnail(res.GetTexture(), 128, 128, true)); + iconName = fileName; + iconButton.SetImage(iconResource); + }); + }); + } + }); + AddWidget(&iconButton); + + thumbnailButton.Create("projectThumbnail"); + thumbnailButton.SetText(""); + thumbnailButton.SetDescription("Thumbnail: "); + thumbnailButton.SetSize(XMFLOAT2(480 * 0.5f, 270 * 0.5f)); + thumbnailButton.SetTooltip("The thumbnail will be used for displaying the project in the editor."); + thumbnailButton.OnClick([this](wi::gui::EventArgs args) { + if (thumbnailResource.IsValid()) + { + thumbnailResource = {}; + thumbnailName = {}; + thumbnailButton.SetImage(thumbnailResource); + } + else + { + wi::helper::FileDialogParams params; + params.type = wi::helper::FileDialogParams::OPEN; + params.description = "Texture"; + params.extensions = wi::resourcemanager::GetSupportedImageExtensions(); + wi::helper::FileDialog(params, [this](std::string fileName) { + wi::eventhandler::Subscribe_Once(wi::eventhandler::EVENT_THREAD_SAFE_POINT, [=](uint64_t userdata) { + wi::Resource res = wi::resourcemanager::Load(fileName); + if (!res.IsValid()) + return; + thumbnailResource.SetTexture(editor->CreateThumbnail(res.GetTexture(), 480, 270)); + thumbnailName = fileName; + thumbnailButton.SetImage(thumbnailResource); + }); + }); + } + }); + AddWidget(&thumbnailButton); + + backlogColorPicker.Create("backlog color", wi::gui::Window::WindowControls::NONE); + backlogColorPicker.SetSize(XMFLOAT2(256, 256)); + backlogColorPicker.SetPickColor(exe_customization.backlog_color); + AddWidget(&backlogColorPicker); + + backgroundColorPicker.Create("background color", wi::gui::Window::WindowControls::NONE); + backgroundColorPicker.SetSize(XMFLOAT2(256, 256)); + backgroundColorPicker.SetPickColor(exe_customization.background_color); + AddWidget(&backgroundColorPicker); + + colorPreviewButton.Create("colorPreviewButton"); + colorPreviewButton.SetText("Preview:\nThese colors will be used by the application when showing the initialization screen. The text color will be also used for the backlog.\n\n[Click on this preview to reset colors]"); + colorPreviewButton.SetSize(XMFLOAT2(256, 128)); + colorPreviewButton.OnClick([this](wi::gui::EventArgs args) { + backlogColorPicker.SetPickColor(exe_customization.backlog_color); + backgroundColorPicker.SetPickColor(exe_customization.background_color); + }); + AddWidget(&colorPreviewButton); + + createButton.Create("projectCreate"); + createButton.SetText(ICON_PROJECT_CREATE " Select folder and create project"); + createButton.SetAngularHighlightWidth(6); + createButton.SetSize(XMFLOAT2(64, 64)); + createButton.font.params.scaling = 1.5f; + createButton.OnClick([this](wi::gui::EventArgs args) { + if (projectNameInput.GetText().empty()) + { + wi::helper::messageBox("Application name must be provided first!"); + return; + } + std::string folder = wi::helper::FolderDialog("Select location where project folder will be created."); + if (folder.empty()) + return; + std::string name = projectNameInput.GetText(); + while (name.length() > 250) + { + // The name cannot be longer than 256 - ".lua", so cut from the end of it + // It is specifically because I will later overwrite a reserved 256-long string inside the executable + name.pop_back(); + } + std::string directory = folder + "/" + name + "/"; + wi::helper::DirectoryCreate(directory); + wilog("Project creator: created directory %s", directory.c_str()); + + static const std::string script = R"( +-- This script was generated by Wicked Editor Project Creator. +-- Read the scripting API documentation here: https://github.com/turanszkij/WickedEngine/blob/master/Content/Documentation/ScriptingAPI-Documentation.md + +runProcess(function() + + -- set up a 3D render path, so if you load a model it will be displayed + local renderpath = RenderPath3D() + application.SetActivePath(renderpath) + + -- set up a simple text that will dynamically change every frame + local counter = 0 + local font = SpriteFont() + renderpath.AddFont(font) + + -- run an endless update loop, it will run until killProcesses() is called or the application exits + while true do + update() + + -- every frame the text is positioned to the center of the screen and display the value of the frame counter + font.SetText("Hello World! Current frame counter = " .. counter) + font.SetSize(12) + font.SetScale(3) + font.SetPos(Vector(GetScreenWidth() * 0.5, GetScreenHeight() * 0.5)) + font.SetAlign(WIFALIGN_CENTER, WIFALIGN_CENTER) + + counter = counter + 1 + + end + +end) +)"; + + std::string scriptfilename = name + ".lua"; + wi::helper::FileWrite(directory + scriptfilename, (const uint8_t*)script.data(), script.size()); + if (iconResource.IsValid()) + { + wi::helper::saveTextureToFile(iconResource.GetTexture(), directory + "icon.png"); + wi::helper::saveTextureToFile(iconResource.GetTexture(), directory + "icon.ico"); + } + if (thumbnailResource.IsValid()) + { + wi::helper::saveTextureToFile(thumbnailResource.GetTexture(), directory + "thumbnail.png"); + } + + wi::unordered_set exes; + exes.insert(wi::helper::BackslashToForwardSlash(wi::helper::GetExecutablePath())); + exes.insert(wi::helper::BackslashToForwardSlash(wi::helper::GetCurrentPath() + "/Editor_Windows.exe")); + exes.insert(wi::helper::BackslashToForwardSlash(wi::helper::GetCurrentPath() + "/Editor_Linux")); + + for (auto& exepath_src : exes) + { + if (!wi::helper::FileExists(exepath_src)) + continue; + std::string exepath_dst = directory + name; + std::string extension = wi::helper::toUpper(wi::helper::GetExtensionFromFileName(exepath_src)); + if (extension.find("EXE") != std::string::npos) + { + exepath_dst += "_Windows.exe"; + } + else + { + exepath_dst += "_Linux"; + } + if (wi::helper::FileCopy(exepath_src, exepath_dst)) + { + wilog("Project creator: preparing executable %s -> %s", exepath_src.c_str(), exepath_dst.c_str()); + wi::vector exedata; + if (wi::helper::FileRead(exepath_dst, exedata)) + { + // ApplicationExeCustomization replacement in the executable: + { + wi::vector match_padded256(256); + std::memcpy(match_padded256.data(), exe_customization.name_256padded, sizeof(exe_customization.name_256padded)); + + auto it = std::search(exedata.begin(), exedata.end(), match_padded256.begin(), match_padded256.end()); + if (it != exedata.end()) + { + wi::vector replacement(sizeof(ApplicationExeCustomization)); + ApplicationExeCustomization& customization = *(ApplicationExeCustomization*)replacement.data(); + std::memcpy(customization.name_256padded, name.c_str(), name.length()); + customization.backlog_color = backlogColorPicker.GetPickColor(); + customization.background_color = backgroundColorPicker.GetPickColor(); + std::copy(replacement.begin(), replacement.end(), it); + wilog("\tOverwritten ApplicationExeCustomization structure"); + } + } + + // startup script string replacement in the executable: + { + auto it = std::search(exedata.begin(), exedata.end(), editor->main->rewriteable_startup_script_text.begin(), editor->main->rewriteable_startup_script_text.end()); + if (it != exedata.end()) + { + wi::vector replacement(scriptfilename.length() + 1); + std::copy(scriptfilename.begin(), scriptfilename.end(), replacement.begin()); + std::copy(replacement.begin(), replacement.end(), it); + wilog("\tOverwritten startup script name: %s", scriptfilename.c_str()); + } + } + + // Win32 icon replacement: + if (iconResource.IsValid()) + { + wi::graphics::Texture tex = iconResource.GetTexture(); + + struct ICONDIR + { + uint16_t idReserved; // Reserved (must be 0) + uint16_t idType; // Resource Type (1 for icon) + uint16_t idCount; // Number of images + }; + struct ICONDIRENTRY + { + uint8_t bWidth; // Width, in pixels + uint8_t bHeight; // Height, in pixels + uint8_t bColorCount; // Number of colors (0 if >= 8bpp) + uint8_t bReserved; // Reserved (must be 0) + uint16_t wPlanes; // Color Planes + uint16_t wBitCount; // Bits per pixel + uint32_t dwBytesInRes; // Size of image data + uint32_t dwImageOffset;// Offset to image data + }; + struct BITMAPINFOHEADER + { + uint32_t biSize; // Size of this header + int32_t biWidth; // Width in pixels + int32_t biHeight; // Height in pixels (doubled for icon) + uint16_t biPlanes; // Number of color planes + uint16_t biBitCount; // Bits per pixel + uint32_t biCompression;// Compression method + uint32_t biSizeImage; // Size of image data + int32_t biXPelsPerMeter; // Horizontal resolution + int32_t biYPelsPerMeter; // Vertical resolution + uint32_t biClrUsed; // Colors used + uint32_t biClrImportant; // Important colors + }; + + const int resolutions[] = {128,64,32}; + + for (int res : resolutions) + { + const uint32_t pixelCount = res * res; + const uint32_t rgbDataSize = pixelCount * 4; // 32-bit RGBA + const uint32_t maskSize = ((res + 7) / 8) * res; // 1-bit mask, padded to byte + const uint32_t bmpInfoHeaderSize = sizeof(BITMAPINFOHEADER); + + BITMAPINFOHEADER bmpHeader = { + bmpInfoHeaderSize, // Size of header + int32_t(res), // Width + int32_t(res * 2), // Height (doubled for XOR + AND mask) + 1, // Planes + 32, // Bits per pixel + 0, // No compression + rgbDataSize + maskSize, // Image size + 0, // X pixels per meter + 0, // Y pixels per meter + 0, // Colors used + 0 // Important colors + }; + + wi::vector bmpvec(sizeof(bmpHeader)); + std::memcpy(bmpvec.data(), &bmpHeader, sizeof(bmpHeader)); + + // searches for exact BMP header match: + // TODO: add some validation here because this method is quite stupid, just checking header bit pattern is not foolproof + auto it = std::search(exedata.begin(), exedata.end(), bmpvec.begin(), bmpvec.end()); + if (it != exedata.end()) + { + wi::vector iconfiledata; + if (wi::helper::saveTextureToMemoryFile(editor->CreateThumbnail(tex, res, res, false), "ico", iconfiledata)) // note: individual mip thumbnails at this point! + { + // replace the BMP header and data part: + std::copy(iconfiledata.begin() + sizeof(ICONDIR) + sizeof(ICONDIRENTRY), iconfiledata.end(), it); + wilog("\tOverwritten Win32 icon at %d * %d resolution", res, res); + } + } + } + } + + // SDL icon replacement: + if (iconResource.IsValid()) + { + wi::graphics::Texture tex = iconResource.GetTexture(); + + std::string match = "Wicked Editor Embedded Icon Data SDL"; + wi::vector match_padded256(256); + std::memcpy(match_padded256.data(), match.c_str(), match.length()); + + // searches for match string: + auto it = std::search(exedata.begin(), exedata.end(), match_padded256.begin(), match_padded256.end()); + if (it != exedata.end()) + { + wi::vector iconfiledata; + if (wi::helper::saveTextureToMemoryFile(tex, "raw", iconfiledata)) + { + // replace the pixel data part: + std::copy(iconfiledata.begin(), iconfiledata.end(), it + 256); + wilog("\tOverwritten SDL icon"); + } + } + } + + if (wi::helper::FileWrite(exepath_dst, exedata.data(), exedata.size())) + { + wilog("\tSuccessfully prepared executable %s", exepath_dst.c_str()); + } + else + { + wilog_error("\nWriting executable %s failed!", exepath_dst.c_str()); + } + } + } + } + editor->RegisterRecentlyUsed(directory + scriptfilename); + wi::helper::OpenUrl(directory); + }); + AddWidget(&createButton); + + SetVisible(false); +} + +void ProjectCreatorWindow::ResizeLayout() +{ + wi::gui::Window::ResizeLayout(); + + layout.margin_left = 60; + + layout.add_fullwidth(infoLabel); + layout.add(projectNameInput); + + layout.jump(); + + layout.add_right(iconButton, thumbnailButton); + + layout.jump(); + + layout.add_fullwidth(colorPreviewButton); + layout.add_right(backlogColorPicker, backgroundColorPicker); + + layout.jump(); + + layout.add_fullwidth(createButton); + + colorPreviewButton.SetColor(backgroundColorPicker.GetPickColor()); + colorPreviewButton.font.params.color = backlogColorPicker.GetPickColor(); + colorPreviewButton.font.params.v_align = wi::font::WIFALIGN_TOP; + colorPreviewButton.font.params.h_align = wi::font::WIFALIGN_LEFT; + colorPreviewButton.font.params.h_wrap = colorPreviewButton.GetSize().x; +} diff --git a/Editor/ProjectCreatorWindow.h b/Editor/ProjectCreatorWindow.h new file mode 100644 index 000000000..9fcd4fd12 --- /dev/null +++ b/Editor/ProjectCreatorWindow.h @@ -0,0 +1,29 @@ +#pragma once +class EditorComponent; + +class ProjectCreatorWindow : public wi::gui::Window +{ +public: + void Create(EditorComponent* editor); + + EditorComponent* editor = nullptr; + + wi::gui::Label infoLabel; + wi::gui::TextInputField projectNameInput; + wi::gui::Button iconButton; + wi::gui::Button thumbnailButton; + wi::gui::Button createButton; + + wi::Resource iconResource; + std::string iconName; + + wi::gui::ColorPicker backlogColorPicker; + wi::gui::ColorPicker backgroundColorPicker; + wi::gui::Button colorPreviewButton; + + wi::Resource thumbnailResource; + std::string thumbnailName; + + void ResizeLayout() override; +}; + diff --git a/Editor/icon.c b/Editor/icon.c deleted file mode 100644 index 51e21f081..000000000 --- a/Editor/icon.c +++ /dev/null @@ -1,651 +0,0 @@ -/* GIMP RGBA C-Source image dump (Icon.c) */ - -static const struct { - uint width; - uint height; - uint bytes_per_pixel; /* 2:RGB16, 3:RGB, 4:RGBA */ - const char *comment; - unsigned char pixel_data[64 * 64 * 4 + 1]; -} gimp_image = { - 64, 64, 4, - "Wicked Engine logo for Icon in SDL_Window", - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377" - "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377" - "\377\000\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\377\377\377\000\377\377\377\000\377\377\377\001\377\377\377\001\377" - "\377\377\001\377\377\377\002\377\377\377\002\377\377\377\002\377\377\377\002\377\377" - "\377\001\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\000\377\377\377" - "\000\015\015\015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377\377\377\000\377\377\377\001\377\377\377" - "\002\377\377\377\002\377\377\377\003\377\377\377\004\377\377\377\004\377\377\377\005" - "\377\377\377\005\377\377\377\004\377\377\377\004\377\377\377\003\377\377\377\003\377" - "\377\377\002\377\377\377\002\377\377\377\001\377\377\377\001\377\377\377\000,,,\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377" - "\377\377\001\377\377\377\002\377\377\377\003\377\377\377\004\377\377\377\005\377\377" - "\377\007\377\377\377\010\377\377\377\011\377\377\377\012\377\377\377\012\377\377" - "\377\011\377\377\377\010\377\377\377\007\377\377\377\006\377\377\377\005\377\377" - "\377\004\377\377\377\003\377\377\377\002\377\377\377\001\377\377\377\000\377\377\377" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377" - "\001\377\377\377\002\377\377\377\004\377\377\377\006\377\377\377\010\377\377\377\012" - "\377\377\377\015\377\377\377\017\377\377\377\021\377\377\377\022\377\377\377" - "\022\377\377\377\022\377\377\377\020\377\377\377\016\377\377\377\014\377\377\377" - "\012\377\377\377\010\377\377\377\006\377\377\377\004\377\377\377\003\377\377\377" - "\002\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377\377\377" - "\001\377\377\377\002\377\377\377\003\377\377\377\005\377\377\377\007\377\377\377\012" - "\377\377\377\016\377\377\377\022\377\377\377\026\377\377\377\032\377\377\377" - "\035\377\377\377\037\377\377\377\037\377\377\377\036\377\377\377\034\377\377\377" - "\031\377\377\377\025\377\377\377\022\377\377\377\017\377\377\377\013\377\377\377" - "\010\377\377\377\005\377\377\377\003\377\377\377\002\377\377\377\001\377\377\377\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\377\377\377\000\377\377\377\001\377\377\377\002\377\377\377\004\377\377\377\006\377" - "\377\377\011\377\377\377\015\377\377\377\022\377\377\377\027\377\377\377\036\377" - "\377\377$\377\377\377)\377\377\377.\377\377\377\061\377\377\377\061\377\377" - "\377/\377\377\377,\377\377\377(\377\377\377#\377\377\377\036\377\377\377\030" - "\377\377\377\023\377\377\377\016\377\377\377\012\377\377\377\006\377\377\377\004" - "\377\377\377\002\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377\002\377" - "\377\377\004\377\377\377\006\377\377\377\012\377\377\377\017\377\377\377\025\377" - "\377\377\034\377\377\377$\377\377\377-\377\377\377\066\377\377\377D\377\377" - "\377S\376\376\376]\371\371\371`\376\376\376O\377\377\377B\377\377\377<\377" - "\377\377\065\377\377\377.\377\377\377&\377\377\377\036\377\377\377\026\377\377" - "\377\020\377\377\377\012\377\377\377\006\377\377\377\003\377\377\377\002\377\377" - "\377\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\000\000\000\000\000\000\000\000\000\000\000\000\033\033\033\000\377\377" - "\377\000\377\377\377\001\377\377\377\003\377\377\377\006\377\377\377\012\377\377\377" - "\020\377\377\377\027\377\377\377\040\377\377\377*\377\377\377\065\377\377\377" - "@\377\377\377R\255\255\255\244www\331\\\\\\\350\062\062\062\363\315\315\315" - "\230\377\377\377^\377\377\377U\377\377\377S\377\377\377L\377\377\377:\377" - "\377\377,\377\377\377!\377\377\377\030\377\377\377\020\377\377\377\012\377\377" - "\377\006\377\377\377\003\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377\003\377\377\377\005" - "\377\377\377\011\377\377\377\017\377\377\377\027\377\377\377\"\377\377\377." - "\377\377\377<\377\377\377J\377\377\377W\377\377\377p~~~\335\000\000\000\377\000\000" - "\000\377\000\000\000\377\241\241\241\324\377\377\377\210\377\377\377\177\274\274" - "\274\256~~~\312\362\362\362o\377\377\377B\377\377\377/\377\377\377\"\377" - "\377\377\027\377\377\377\017\377\377\377\011\377\377\377\004\377\377\377\002\377" - "\377\377\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\000\000\000\000\010\010\010\000\377\377\377\000\377\377" - "\377\002\377\377\377\004\377\377\377\007\377\377\377\015\377\377\377\026\377\377" - "\377!\377\377\377.\377\377\377E\327\327\327z\357\357\357\200\377\377\377" - "{\372\372\372\232mmm\356\000\000\000\377\000\000\000\377\000\000\000\377\063\063\063\374\201\201" - "\201\347\235\235\235\335\026\026\026\375\000\000\000\377ZZZ\350\335\335\335\204\377" - "\377\377D\377\377\377-\377\377\377\037\377\377\377\024\377\377\377\014\377\377" - "\377\007\377\377\377\003\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\377\377\377\001\377\377\377\002\377\377\377\005\377\377\377\012\377\377" - "\377\022\377\377\377\034\377\377\377+\377\377\377@\345\345\345~AAA\362;;;\367" - "\245\245\245\331^^^\362\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377" - "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377AAA\356\371\371\371a\377" - "\377\377:\377\377\377(\377\377\377\033\377\377\377\021\377\377\377\011\377\377" - "\377\005\377\377\377\002\377\377\377\001bbb\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377" - "\377\377\001\377\377\377\003\377\377\377\007\377\377\377\015\377\377\377\026\377" - "\377\377$\377\377\377\066\367\367\367fggg\341\000\000\000\377\000\000\000\377\000\000\000\377" - "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000" - "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\235\235\235\316\377\377\377h\377\377" - "\377F\377\377\377\063\377\377\377\"\377\377\377\026\377\377\377\015\377\377" - "\377\007\377\377\377\003\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377" - "\377\000\377\377\377\002\377\377\377\004\377\377\377\011\377\377\377\020\377\377" - "\377\033\377\377\377*\377\377\377B\246\246\246\246\000\000\000\377\000\000\000\377\000\000" - "\000\377\000\000\000\377\000\000\000\377\001\001\001\377\002\002\002\377\004\004\004\377\005\005\005\377\004\004\004" - "\377\002\002\002\377\000\000\000\377\000\000\000\377\000\000\000\377\011\011\011\377\333\333\333\270" - "\377\377\377q\377\377\377T\377\377\377=\377\377\377*\377\377\377\033\377\377" - "\377\020\377\377\377\011\377\377\377\004\377\377\377\002\377\377\377\000\031\031\031" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\377\377\377\001\377\377\377\002\377\377\377\005\377\377\377\013\377\377" - "\377\023\377\377\377\040\377\377\377\061\377\377\377H\370\370\370z}}}\343\000" - "\000\000\377\000\000\000\377\000\000\000\377\001\001\001\377\005\005\005\377\013\013\013\377\021\021\021\377" - "\023\023\023\377\020\020\020\377\013\013\013\377\004\004\004\377\001\001\001\377\000\000\000\377\000\000" - "\000\377\203\203\203\347\367\367\367\236\374\374\374z\376\376\376P\377\377" - "\377\062\377\377\377!\377\377\377\024\377\377\377\013\377\377\377\006\377\377" - "\377\003\377\377\377\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\000ddd\000\377\377\377\001\377\377\377\003\377\377\377" - "\006\377\377\377\014\377\377\377\026\377\377\377$\377\377\377\067\377\377\377" - "N\377\377\377n\335\335\335\266\002\002\002\377\000\000\000\377\000\000\000\377\004\004\004\377\015" - "\015\015\377\030\030\030\377\"\"\"\377'''\377\"\"\"\377\027\027\027\377\014\014\014" - "\377\004\004\004\377\000\000\000\377\000\000\000\377\003\003\003\377\026\026\026\375###\367\301\301" - "\301\216\377\377\377;\377\377\377%\377\377\377\027\377\377\377\015\377\377" - "\377\007\377\377\377\003\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\001\377" - "\377\377\003\377\377\377\007\377\377\377\016\377\377\377\030\377\377\377(\377\377" - "\377<\377\377\377Z\377\377\377\203\262\262\262\322\000\000\000\377\000\000\000\377\002" - "\002\002\377\011\011\011\377\026\026\026\377'''\377\071\071\071\377AAA\377\067\067\067\377" - "%%%\377\024\024\024\377\010\010\010\377\001\001\001\377\000\000\000\377\000\000\000\377\000\000\000\377" - "\000\000\000\377\255\255\255\256\377\377\377C\377\377\377)\377\377\377\031\377\377" - "\377\017\377\377\377\007\377\377\377\004\377\377\377\001\377\377\377\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377" - "\000\377\377\377\001\377\377\377\004\377\377\377\010\377\377\377\017\377\377\377" - "\032\377\377\377*\377\377\377F\264\264\264\242qqq\345***\374\000\000\000\377\000\000" - "\000\377\003\003\003\377\015\015\015\377\035\035\035\377\064\064\064\377NNN\377___\377LLL" - "\377\060\060\060\377\032\032\032\377\013\013\013\377\003\003\003\377\000\000\000\377\000\000\000\377" - "\000\000\000\377\000\000\000\377\226\226\226\301\377\377\377I\377\377\377*\377\377\377" - "\032\377\377\377\017\377\377\377\010\377\377\377\004\377\377\377\001\377\377\377" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\377\377\377\000\377\377\377\001\377\377\377\004\377\377\377\010\377\377\377\020" - "\377\377\377\033\377\377\377+\377\377\377K\204\204\204\315\000\000\000\377\000\000\000" - "\377\000\000\000\377\000\000\000\377\003\003\003\377\016\016\016\377\037\037\037\377\065\065\065\377" - "PPP\377bbb\377OOO\377\062\062\062\377\033\033\033\377\014\014\014\377\003\003\003\377\000" - "\000\000\377\000\000\000\377\000\000\000\377\007\007\007\375\212\212\212\300\377\377\377H\377\377" - "\377*\377\377\377\032\377\377\377\017\377\377\377\010\377\377\377\004\377\377" - "\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377\004\377\377\377" - "\010\377\377\377\017\377\377\377\032\377\377\377*\377\377\377G\237\237\237\274" - "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\002\002\002\377\013\013\013\377\031\031\031" - "\377+++\377===\377EEE\377;;;\377(((\377\027\027\027\377\011\011\011\377\002\002\002\377" - "\000\000\000\377\000\000\000\377\215\215\215\345\346\346\346\235\375\375\375f\377\377" - "\377?\377\377\377(\377\377\377\031\377\377\377\016\377\377\377\007\377\377\377" - "\003\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377\003" - "\377\377\377\007\377\377\377\016\377\377\377\030\377\377\377'\377\377\377@\262" - "\262\262\244\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\001\001\001\377\007\007\007\377" - "\021\021\021\377\035\035\035\377(((\377,,,\377&&&\377\033\033\033\377\017\017\017\377" - "\006\006\006\377\001\001\001\377\000\000\000\377\001\001\001\377\316\316\316\274\377\377\377q\377" - "\377\377Q\377\377\377\071\377\377\377%\377\377\377\027\377\377\377\015\377\377" - "\377\006\377\377\377\003\377\377\377\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\377\377\377\001\377\377" - "\377\003\377\377\377\006\377\377\377\014\377\377\377\026\377\377\377#\377\377\377" - "\066\346\346\346i\270\270\270\256\273\273\273\313LLL\367\000\000\000\377\000\000\000\377" - "\002\002\002\377\010\010\010\377\020\020\020\377\026\026\026\377\030\030\030\377\025\025\025\377" - "\016\016\016\377\007\007\007\377\002\002\002\377\000\000\000\377\000\000\000\377\002\002\002\377\266\266\266" - "\312\377\377\377q\377\377\377J\377\377\377\063\377\377\377!\377\377\377\024" - "\377\377\377\013\377\377\377\006\377\377\377\002\377\377\377\001\060\060\060\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000MMM\000" - "\377\377\377\001\377\377\377\002\377\377\377\005\377\377\377\012\377\377\377\022" - "\377\377\377\036\377\377\377.\377\377\377C\377\377\377^\377\377\377\177\276" - "\276\276\313\000\000\000\377\000\000\000\377\000\000\000\377\002\002\002\377\005\005\005\377\011\011\011\377" - "\012\012\012\377\010\010\010\377\005\005\005\377\002\002\002\377\000\000\000\377\000\000\000\377\000\000\000" - "\377\000\000\000\377\023\023\023\375\273\273\273\237\377\377\377E\377\377\377-\377" - "\377\377\035\377\377\377\021\377\377\377\011\377\377\377\005\377\377\377\002\377" - "\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377\377\377\002\377\377\377\004\377" - "\377\377\010\377\377\377\017\377\377\377\030\377\377\377&\377\377\377\070\377" - "\377\377M\377\377\377m\301\301\301\302\000\000\000\377\000\000\000\377\000\000\000\377\000\000" - "\000\377\000\000\000\377\001\001\001\377\002\002\002\377\001\001\001\377\001\001\001\377\000\000\000\377\000\000\000" - "\377\000\000\000\377\000\000\000\377\000\000\000\377\062\062\062\367\330\330\330\202\377\377\377" - ";\377\377\377&\377\377\377\030\377\377\377\016\377\377\377\010\377\377\377\004" - "\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377\377\377\001" - "\377\377\377\003\377\377\377\006\377\377\377\013\377\377\377\023\377\377\377\037" - "\377\377\377.\377\377\377A\370\370\370kQQQ\355\000\000\000\377\000\000\000\377\000\000\000" - "\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377" - "\025\025\025\376^^^\364\001\001\001\377\012\012\012\376\272\272\272\247\377\377\377L" - "\377\377\377/\377\377\377\037\377\377\377\024\377\377\377\013\377\377\377\006" - "\377\377\377\003\377\377\377\001\311\311\311\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000HHH\000\377\377\377" - "\001\377\377\377\002\377\377\377\004\377\377\377\010\377\377\377\017\377\377\377" - "\030\377\377\377%\377\377\377\065\373\373\373W\230\230\230\300\023\023\023\375" - "\000\000\000\377\000\000\000\377WWW\371\015\015\015\377\000\000\000\377\000\000\000\377\000\000\000\377\000" - "\000\000\377WWW\367\333\333\333\271\375\375\375\224\275\275\275\260\233\233\233" - "\263\377\377\377W\377\377\377\065\377\377\377%\377\377\377\031\377\377\377" - "\017\377\377\377\011\377\377\377\005\377\377\377\002\377\377\377\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\377\377\377\000\377\377\377\001\377\377\377\002\377\377\377\003\377\377" - "\377\006\377\377\377\013\377\377\377\023\377\377\377\035\377\377\377*\377\377" - "\377<\377\377\377]\302\302\302\250\071\071\071\366\214\214\214\335\353\353\353" - "\301\"\"\"\375\210\210\210\363\000\000\000\377\000\000\000\377\000\000\000\377~~~\343\377\377" - "\377\200\377\377\377d\377\377\377Y\377\377\377L\377\377\377\067\377\377\377" - "(\377\377\377\034\377\377\377\023\377\377\377\014\377\377\377\006\377\377\377" - "\003\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\257\257\257\000\377\377\377\000\377\377\377\000\377\377\377\001\377" - "\377\377\001\377\377\377\001\377\377\377\001\377\377\377\002\377\377\377\003\377\377" - "\377\005\377\377\377\011\377\377\377\017\377\377\377\027\377\377\377\"\377\377" - "\377/\377\377\377?\377\377\377W\346\346\346~\374\374\374\200\310\310\310" - "\265NNN\366\306\306\306\316\000\000\000\377\006\006\006\376!!!\371\206\206\206\312\377" - "\377\377d\377\377\377N\377\377\377A\377\377\377\065\377\377\377)\377\377\377" - "\037\377\377\377\026\377\377\377\016\377\377\377\011\377\377\377\005\377\377\377" - "\002\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\377\377\377\000\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377" - "\002\377\377\377\002\377\377\377\002\377\377\377\002\377\377\377\003\377\377\377\004" - "\377\377\377\005\377\377\377\010\377\377\377\015\377\377\377\023\377\377\377\034" - "\377\377\377&\377\377\377\063\377\377\377@\377\377\377N\377\377\377b\237\237" - "\237\304ggg\350\366\366\366\215\313\313\313\237\342\342\342\217\371\371\371" - "z\375\375\375a\377\377\377J\377\377\377=\377\377\377\063\377\377\377)\377" - "\377\377\040\377\377\377\030\377\377\377\021\377\377\377\013\377\377\377\007\377" - "\377\377\004\377\377\377\002\377\377\377\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\377\377\377\000\377\377\377\001\377\377\377\001\377\377\377\002\377\377" - "\377\003\377\377\377\003\377\377\377\004\377\377\377\004\377\377\377\004\377\377\377" - "\005\377\377\377\005\377\377\377\007\377\377\377\011\377\377\377\015\377\377\377" - "\022\377\377\377\031\377\377\377!\377\377\377+\377\377\377\066\377\377\377A" - "\377\377\377Zwww\330~~~\330\377\377\377f\377\377\377W\377\377\377Q\377\377" - "\377I\377\377\377A\377\377\377\071\377\377\377\061\377\377\377*\377\377\377" - "\"\377\377\377\033\377\377\377\024\377\377\377\016\377\377\377\011\377\377\377" - "\005\377\377\377\003\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377\002\377\377\377\002\377" - "\377\377\004\377\377\377\005\377\377\377\006\377\377\377\007\377\377\377\007\377\377" - "\377\007\377\377\377\010\377\377\377\011\377\377\377\012\377\377\377\014\377\377" - "\377\021\353\353\353\032\377\377\377\031\377\377\377\037\377\377\377'\377\377" - "\377\060\377\377\377\071\376\376\376ZNNN\353\214\214\214\306\377\377\377S\377" - "\377\377E\377\377\377@\377\377\377;\377\377\377\066\377\377\377\060\377\377" - "\377+\377\377\377%\377\377\377\040\377\377\377\033\377\377\377\024\377\377\377" - "\015\377\377\377\010\377\377\377\005\377\377\377\003\377\377\377\001\377\377\377" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000###\000\377\377\377\000\377\377\377\001\377\377" - "\377\002\377\377\377\004\377\377\377\005\377\377\377\007\377\377\377\011\377\377\377" - "\012\377\377\377\013\377\377\377\014\377\377\377\014\377\377\377\015\377\377\377" - "\016\377\377\377\020\377\377\377\033\215\215\215[\377\377\377#\354\354\354(" - "\377\377\377(\377\377\377.\377\377\377\066\364\364\364`...\366\232\232\232" - "\264\377\377\377G\377\377\377;\377\377\377\070\377\377\377\064\377\377\377" - "\060\377\377\377-\377\377\377*\377\377\377/\365\365\365A\255\255\255a\254" - "\254\254\071\377\377\377\017\377\377\377\011\377\377\377\005\377\377\377\003\377" - "\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377" - "\377\001\377\377\377\002\377\377\377\003\377\377\377\005\351\351\351\013\375\375\375" - "\021\377\377\377\021\377\377\377\017\377\377\377\020\377\377\377\022\377\377\377" - "\022\377\377\377\023\377\377\377\024\377\377\377\026\377\377\377%}}}\225\376" - "\376\376\071\244\244\244Y\374\374\374\065\377\377\377\060\377\377\377\066\354" - "\354\354i\005\005\005\373\252\252\252\245\377\377\377@\377\377\377\067\377\377\377" - "\064\377\377\377\061\377\377\377/\377\377\377\061\374\374\374F\245\245\245\230" - "???\350\213\213\213\227\372\372\372#\377\377\377\020\377\377\377\012\377\377" - "\377\006\377\377\377\003\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377\002\377\377\377\004\377\377" - "\377\006\323\323\323\025~~~b\256\256\256]\375\375\375+\377\377\377\033\377\377" - "\377\030\377\377\377\031\377\377\377\032\377\377\377\034\377\377\377\036\377\377" - "\377+}}}\253\320\320\320i\300\300\300f\275\275\275k\377\377\377\070\377\377" - "\377:\327\327\327x\000\000\000\377\265\265\265\226\377\377\377>\377\377\377\067" - "\377\377\377\065\377\377\377\063\377\377\377\066\363\363\363Wrrr\312\022\022\022" - "\375zzz\302\376\376\376\071\377\377\377\030\377\377\377\020\377\377\377\012\377" - "\377\377\006\377\377\377\003\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377\002\377\377\377\004\377" - "\377\377\007\377\377\377\014\371\371\371$\177\177\177\232bbb\305\314\314\314" - "f\377\377\377\060\377\377\377#\377\377\377#\377\377\377$\377\377\377&\377" - "\377\377\060\236\236\236\232\224\224\224\255\371\371\371X\202\202\202\257" - "\377\377\377H\377\377\377A\315\315\315\205\000\000\000\377\302\302\302\215\377" - "\377\377@\377\377\377;\377\377\377\071\377\377\377:\367\367\367Xlll\322rr" - "r\347]]]\352\340\340\340b\377\377\377$\377\377\377\030\377\377\377\021\377" - "\377\377\013\377\377\377\006\377\377\377\003\377\377\377\001\377\377\377\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377\002\377" - "\377\377\004\377\377\377\007\377\377\377\013\377\377\377\022\377\377\377+\236\236" - "\236\222'''\364\214\214\214\257\363\363\363O\377\377\377\061\377\377\377." - "\377\377\377\060\377\377\377\066\306\306\306\201NNN\346\375\375\375gzzz\301" - "\360\360\360d\377\377\377J\303\303\303\227\001\001\001\377\324\324\324\206\377" - "\377\377E\377\377\377A\377\377\377@\376\376\376U\205\205\205\304]]]\351\267" - "\267\267\274xxx\304\377\377\377<\377\377\377\"\377\377\377\031\377\377\377" - "\021\377\377\377\013\377\377\377\006\377\377\377\003\377\377\377\001\377\377\377" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\001\377\377\377\002\377" - "\377\377\004\377\377\377\007\377\377\377\013\377\377\377\021\377\377\377\030\377" - "\377\377/\261\261\261\213\036\036\036\371[[[\336\335\335\335n\377\377\377?\377" - "\377\377:\377\377\377>\361\361\361i%%%\367\327\327\327\214\242\242\242\257" - "\273\273\273\230\377\377\377W\275\275\275\242\004\004\004\376\331\331\331\205\377" - "\377\377L\377\377\377I\377\377\377U\247\247\247\255\071\071\071\364\342\342" - "\342\226___\343\305\305\305\202\377\377\377\062\377\377\377#\377\377\377\032" - "\377\377\377\022\377\377\377\013\377\377\377\006\377\377\377\003\377\377\377\001" - "\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\001\377" - "\377\377\002\377\377\377\004\377\377\377\007\377\377\377\013\377\377\377\020\377" - "\377\377\027\377\377\377\037\377\377\377\066\260\260\260\226\016\016\016\375DD" - "D\355\333\333\333|\377\377\377K\377\377\377H\377\377\377^kkk\336\237\237" - "\237\300\322\322\322\231\207\207\207\312\377\377\377i\256\256\256\261\017" - "\017\017\376\347\347\347\201\377\377\377V\345\345\345e\312\312\312\230&&&\370" - "\301\301\301\250\272\272\272\244KKK\351\372\372\372W\372\372\372\064\355\355" - "\355,\377\377\377\033\377\377\377\022\377\377\377\013\377\377\377\006\377\377" - "\377\003\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\001\001" - "\000\377\377\377\000\377\377\377\001\377\377\377\003\377\377\377\006\377\377\377\012" - "\377\377\377\017\377\377\377\027\377\377\377\037\377\377\377)\377\377\377D\236" - "\236\236\261\002\002\002\377FFF\357\336\336\336\205\377\377\377Y\377\377\377^\244" - "\244\244\273```\351\365\365\365\224RRR\351\375\375\375\200\254\254\254\273" - "\024\024\024\375\360\360\360\205\377\377\377g\274\274\274\241RRR\356\230\230" - "\230\311\317\317\317\226}}}\330\222\222\222\274\377\377\377I\333\333\333" - "L\272\272\272S\377\377\377\035\377\377\377\022\377\377\377\013\377\377\377\006" - "\377\377\377\003\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377\003\377\377\377\005\377\377" - "\377\011\377\377\377\017\377\377\377\026\377\377\377\037\377\377\377)\377\377" - "\377\066\374\374\374Zttt\326\012\012\012\377JJJ\357\341\341\341\216\377\377\377" - "i\335\335\335\227\023\023\023\374\344\344\344\252iii\350\331\331\331\245\254" - "\254\254\303\031\031\031\375\365\365\365\217\340\340\340\222ddd\347ggg\347\363" - "\363\363\216\261\261\261\267\062\062\062\367\332\332\332\206\377\377\377F\276" - "\276\276u\260\260\260p\377\377\377\040\377\377\377\023\377\377\377\014\377\377" - "\377\007\377\377\377\004\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377\003\377\377\377\005" - "\377\377\377\011\377\377\377\017\377\377\377\026\377\377\377\037\377\377\377" - ",\361\361\361?\377\377\377I\346\346\346\200:::\365eee\366OOO\357\352\352" - "\352\224\376\376\376\207___\354\252\252\252\321\244\244\244\324\260\260\260" - "\313\256\256\256\320$$$\372\373\373\373\235\222\222\222\324$$$\373\335\335" - "\335\250\260\260\260\263\252\252\252\313jjj\344\324\324\324z\377\377\377" - "N\227\227\227\250\300\300\300m\377\377\377!\377\377\377\024\377\377\377\015" - "\377\377\377\007\377\377\377\004\377\377\377\002\377\377\377\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\017\017\017\000\377\377\377\000\377\377\377\001\377\377\377\003\377" - "\377\377\005\377\377\377\011\377\377\377\017\377\377\377\027\377\377\377!\377" - "\377\377\061\244\244\244y\366\366\366\\\335\335\335u\261\261\261\272NNN\371" - "\220\220\220\353fff\352\366\366\366\234\256\256\256\315YYY\363\323\323\323" - "\306\202\202\202\350\256\256\256\335...\371\363\363\363\264///\372\232\232" - "\232\330\352\352\352\242\253\253\253\314ddd\356\230\230\230\321\325\325\325" - "|\370\370\370iPPP\341\351\351\351W\377\377\377!\377\377\377\026\377\377\377" - "\016\377\377\377\010\377\377\377\004\377\377\377\002\377\377\377\001\377\377\377" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\"\"\"\000\377\377\377\000\377\377\377\001\377\377\377\002\377" - "\377\377\004\377\377\377\007\377\377\377\013\377\377\377\022\367\367\367\040\377" - "\377\377)\377\377\377\064\324\324\324j\235\235\235\257\273\273\273\235\361" - "\361\361\223jjj\352\222\222\222\352\204\204\204\355\205\205\205\342\355\355" - "\355\272)))\374\322\322\322\321TTT\365\252\252\252\350\061\061\061\372\304\304" - "\304\331...\373\355\355\355\263\224\224\224\326\275\275\275\321TTT\366\234" - "\234\234\316\375\375\375w\237\237\237\272ppp\321\377\377\377C\377\377\377" - "\"\377\377\377\027\377\377\377\017\377\377\377\011\377\377\377\005\377\377\377" - "\003\377\377\377\001\377\377\377\000FFF\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\030\030\030\000\377\377\377\000\377\377\377\000\377\377" - "\377\001\377\377\377\002\377\377\377\003\377\377\377\005\377\377\377\011\377\377\377" - "\015\377\377\377\025\263\263\263H\236\236\236|\375\375\375L\377\377\377T\235" - "\235\235\262\253\253\253\304\237\237\237\312\334\334\334\273###\374\313\313" - "\313\326ddd\364\254\254\254\340\217\217\217\355\225\225\225\354\212\212\212" - "\356\213\213\213\364\063\063\063\374\214\214\214\363\226\226\226\344\330\330" - "\330\303\241\241\241\342bbb\364\217\217\217\350\260\260\260\275\327\327\327" - "\244\"\"\"\372\305\305\305\215\377\377\377\070\377\377\377%\377\377\377\032" - "\377\377\377\021\377\377\377\013\377\377\377\007\377\377\377\004\377\377\377\002" - "\377\377\377\001\377\377\377\001\377\377\377\000\202\202\202\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377\001\377\377" - "\377\001\377\377\377\002\377\377\377\003\377\377\377\005\377\377\377\010\377\377\377" - "\013\377\377\377\021\377\377\377\031\377\377\377+\251\251\251\203mmm\314\322" - "\322\322\213\374\374\374\177|||\334\205\205\205\350\243\243\243\335\242\242" - "\242\346___\365\340\340\340\321DDD\372\244\244\244\357---\375\261\261\261" - "\352CCC\374\035\035\035\376\061\061\061\376\333\333\333\321vvv\355\254\254\254" - "\345bbb\370qqq\360\350\350\350\261RRR\361~~~\323\377\377\377Z\377\377\377" - "\067\377\377\377(\377\377\377\035\377\377\377\023\377\377\377\015\377\377\377" - "\010\377\377\377\005\377\377\377\004\377\377\377\002\377\377\377\002\377\377\377\001" - "\377\377\377\001\377\377\377\000\255\255\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\032\032\032\000\377\377\377\000\377\377\377\000" - "\377\377\377\001\377\377\377\001\377\377\377\002\377\377\377\002\377\377\377\003\377" - "\377\377\004\377\377\377\005\377\377\377\010\377\377\377\013\377\377\377\017\377" - "\377\377\025\377\377\377\035\377\377\377)\377\377\377@\315\315\315\205OOO\352" - "\212\212\212\324\343\343\343\263lll\357BBB\372\221\221\221\360___\372\222" - "\222\222\354\322\322\322\333BBB\375\061\061\061\376\240\240\240\362\023\023\023" - "\377\000\000\000\377ddd\367\310\310\310\336\230\230\230\357OOO\372nnn\370\253\253" - "\253\342kkk\360aaa\353\361\361\361\205\377\377\377Z\376\376\376J\374\374" - "\374\070\377\377\377$\377\377\377\027\377\377\377\020\377\377\377\013\377\377" - "\377\010\377\377\377\006\377\377\377\004\377\377\377\003\377\377\377\002\377\377\377" - "\002\377\377\377\001\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377\377\377\000\377\377\377\001\377\377\377" - "\001\377\377\377\002\377\377\377\003\377\377\377\003\377\377\377\004\377\377\377\005" - "\377\377\377\007\377\377\377\011\377\377\377\014\377\377\377\020\377\377\377\025" - "\377\377\377\036\374\374\374-\373\373\373=\373\373\373M\374\374\374e\361\361" - "\361\217\234\234\234\331EEE\367\250\250\250\344ppp\370\014\014\014\377YYY\374" - "\022\022\022\377\257\257\257\350\262\262\262\351\000\000\000\377jjj\373\\\\\\\374" - "\000\000\000\377\260\260\260\353ppp\365\217\217\217\363QQQ\374KKK\374ddd\370ee" - "e\366\311\311\311\305\233\233\233\303{{{\305\227\227\227\242\253\253\253" - "u\307\307\307@\377\377\377\034\377\377\377\024\377\377\377\017\377\377\377\013" - "\377\377\377\011\377\377\377\007\377\377\377\005\377\377\377\004\377\377\377\003\377" - "\377\377\002\377\377\377\002\377\377\377\001\377\377\377\000mmm\000\000\000\000\000\000\000\000\000" - ")))\000\377\377\377\000\377\377\377\001\377\377\377\001\377\377\377\002\377\377\377" - "\003\377\377\377\004\377\377\377\005\377\377\377\006\377\377\377\007\377\377\377\011" - "\377\377\377\013\377\377\377\015\377\377\377\021\377\377\377\025\344\344\344" - "!\264\264\264=\254\254\254^\244\244\244{\233\233\233\225\214\214\214\262" - "uuu\321vvv\347vvv\362\030\030\030\376AAA\375\031\031\031\377\003\003\003\377\001\001\001\377" - "\004\004\004\377\260\260\260\354\206\206\206\365\000\000\000\377uuu\372\003\003\003\377\245" - "\245\245\361www\370+++\376%%%\376\015\015\015\377\005\005\005\377WWW\367\205\205\205" - "\343\310\310\310\264\333\333\333\225\261\261\261\227\240\240\240\201\260" - "\260\260U\340\340\340&\377\377\377\030\377\377\377\023\377\377\377\017\377\377" - "\377\014\377\377\377\012\377\377\377\010\377\377\377\007\377\377\377\005\377\377" - "\377\004\377\377\377\003\377\377\377\002\377\377\377\001\377\377\377\000\000\000\000\000\000" - "\000\000\000\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\002\377\377\377" - "\003\377\377\377\005\377\377\377\006\377\377\377\010\377\377\377\011\377\377\377" - "\013\377\377\377\015\377\377\377\020\377\377\377\023\377\377\377\027\377\377\377" - "\033\377\377\377\"\377\377\377+\377\377\377\066\377\377\377C\377\377\377R\377" - "\377\377c\377\377\377x\357\357\357\225\305\305\305\276\225\225\225\340QQ" - "Q\367\007\007\007\377\000\000\000\377\000\000\000\377\000\000\000\377\003\003\003\377|||\371)))\376KKK" - "\375\000\000\000\377@@@\375\071\071\071\375\022\022\022\377\004\004\004\377NNN\374\207\207" - "\207\361\234\234\234\344\203\203\203\340}}}\317\245\245\245\245\331\331\331" - "k\373\373\373D\377\377\377\060\377\377\377#\377\377\377\034\377\377\377\027" - "\377\377\377\023\377\377\377\020\377\377\377\016\377\377\377\014\377\377\377" - "\012\377\377\377\010\377\377\377\006\377\377\377\004\377\377\377\003\377\377\377" - "\002\377\377\377\001\377\377\377\000\000\000\000\000\377\377\377\001\377\377\377\001\377\377" - "\377\002\377\377\377\003\377\377\377\005\377\377\377\007\377\377\377\011\377\377\377" - "\013\377\377\377\015\377\377\377\017\377\377\377\022\377\377\377\025\377\377\377" - "\030\377\377\377\034\377\377\377\"\375\375\375/\354\354\354G\304\304\304p\254" - "\254\254\223\243\243\243\254\226\226\226\276\224\224\224\310\227\227\227" - "\317\235\235\235\324\255\255\255\326\271\271\271\335\236\236\236\354nnn\371" - "\037\037\037\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377" - "\023\023\023\377\000\000\000\377\000\000\000\377\031\031\031\377III\373\213\213\213\353\277" - "\277\277\314\354\354\354\244\375\375\375\202\375\375\375j\377\377\377V\377" - "\377\377F\377\377\377\071\377\377\377/\377\377\377&\377\377\377\040\377\377" - "\377\032\377\377\377\026\377\377\377\022\377\377\377\017\377\377\377\015\377\377" - "\377\012\377\377\377\010\377\377\377\006\377\377\377\004\377\377\377\003\377\377" - "\377\002\377\377\377\001\377\377\377\001\377\377\377\002\377\377\377\002\377\377\377" - "\003\377\377\377\005\377\377\377\007\377\377\377\011\377\377\377\013\377\377\377" - "\016\377\377\377\021\377\377\377\024\377\377\377\030\377\377\377\035\377\377\377" - "$\377\377\377.\363\363\363?\314\314\314n\262\262\262\233\256\256\256\271" - "\232\232\232\320\212\212\212\343ooo\360\060\060\060\373\005\005\005\377\000\000\000\377" - "\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000" - "\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\000\000" - "\000\377\002\002\002\377\010\010\010\377\015\015\015\376\021\021\021\374...\365JJJ\354aaa" - "\340nnn\320\201\201\201\276\216\216\216\252\241\241\241\224\257\257\257|" - "\316\316\316`\355\355\355B\377\377\377.\377\377\377\037\377\377\377\024\377" - "\377\377\016\377\377\377\012\377\377\377\007\377\377\377\005\377\377\377\003\377" - "\377\377\002\377\377\377\001\377\377\377\001\377\377\377\002\377\377\377\003\377\377" - "\377\004\377\377\377\006\377\377\377\010\377\377\377\013\377\377\377\020\377\377" - "\377\030\377\377\377$\376\376\376\063\346\346\346L\277\277\277n\236\236\236" - "\223\204\204\204\265fff\324???\355\036\036\036\372\000\000\000\376\007\007\007\374###\370" - "===\363LLL\353[[[\345uuu\334\177\177\177\330\211\211\211\321\224\224\224" - "\314\233\233\233\312\246\246\246\303\254\254\254\276\255\255\255\275\260" - "\260\260\273\273\273\273\263\301\301\301\257\305\305\305\255\307\307\307" - "\254\311\311\311\252\311\311\311\251\310\310\310\247\306\306\306\244\301" - "\301\301\242\270\270\270\241\252\252\252\250\243\243\243\251\240\240\240" - "\247\234\234\234\246\225\225\225\254\207\207\207\265}}}\271ppp\305ggg\316" - "JJJ\334>>>\345OOO\324xxx\252\246\246\246m\346\346\346\065\377\377\377\032\377" - "\377\377\015\377\377\377\006\377\377\377\004\377\377\377\002\377\377\377\001\377\377" - "\377\001\377\377\377\003\377\377\377\003\377\377\377\005\377\377\377\011\377\377\377" - "\023\372\372\372$\314\314\314H\222\222\222\207mmm\272GGG\335\063\063\063\346" - "TTT\335hhh\312\201\201\201\272\220\220\220\252\240\240\240\233\265\265\265" - "\212\313\313\313y\342\342\342k\356\356\356b\375\375\375\\\377\377\377Y\377" - "\377\377Y\377\377\377Y\377\377\377Z\377\377\377Z\377\377\377Z\377\377\377" - "[\377\377\377[\377\377\377Z\377\377\377Z\377\377\377Z\377\377\377Y\377\377" - "\377W\377\377\377W\377\377\377U\377\377\377T\377\377\377R\377\377\377O\377" - "\377\377K\377\377\377G\377\377\377B\377\377\377?\377\377\377:\377\377\377" - "\065\377\377\377\061\377\377\377/\377\377\377.\377\377\377,\377\377\377.\377" - "\377\377/\377\377\377\063\372\372\372;\336\336\336J\267\267\267c\220\220\220" - "\203uuu\231uuu\207\205\205\205Y\326\326\326\025\377\377\377\005\377\377\377" - "\002\377\377\377\002\377\377\377\001\377\377\377\003\377\377\377\003\377\377\377\005" - "\256\256\256&wwwuqqq\222zzz\225\233\233\233z\301\301\301_\344\344\344G\376" - "\376\376;\377\377\377\064\377\377\377/\377\377\377-\377\377\377+\377\377\377" - "*\377\377\377*\377\377\377+\377\377\377,\377\377\377.\377\377\377\060\377" - "\377\377\062\377\377\377\064\377\377\377\066\377\377\377\070\377\377\377\071\377" - "\377\377;\377\377\377<\377\377\377<\377\377\377<\377\377\377<\377\377\377" - "<\377\377\377<\377\377\377;\377\377\377;\377\377\377:\377\377\377\071\377" - "\377\377\067\377\377\377\065\377\377\377\063\377\377\377\060\377\377\377-\377" - "\377\377)\377\377\377&\377\377\377\"\377\377\377\037\377\377\377\035\377\377" - "\377\033\377\377\377\031\377\377\377\027\377\377\377\026\377\377\377\025\377\377" - "\377\024\377\377\377\024\377\377\377\024\377\377\377\025\377\377\377\031\377\377" - "\377\033\322\322\322\"\237\237\237\037\377\377\377\004\377\377\377\002\377\377" - "\377\001\377\377\377\001\377\377\377\003\377\377\377\003\377\377\377\005\361\361\361" - "\017\367\367\367\032\377\377\377\031\377\377\377\027\377\377\377\025\377\377\377" - "\024\377\377\377\025\377\377\377\025\377\377\377\026\377\377\377\027\377\377\377" - "\031\377\377\377\032\377\377\377\033\377\377\377\035\377\377\377\036\377\377\377" - "\040\377\377\377!\377\377\377\"\377\377\377$\377\377\377%\377\377\377&\377" - "\377\377&\377\377\377'\377\377\377(\377\377\377(\377\377\377(\377\377\377" - "(\377\377\377(\377\377\377(\377\377\377'\377\377\377'\377\377\377'\377\377" - "\377&\377\377\377%\377\377\377$\377\377\377#\377\377\377\"\377\377\377\040" - "\377\377\377\036\377\377\377\034\377\377\377\032\377\377\377\030\377\377\377" - "\026\377\377\377\025\377\377\377\023\377\377\377\022\377\377\377\021\377\377\377" - "\021\377\377\377\020\377\377\377\017\377\377\377\016\377\377\377\015\377\377\377" - "\013\377\377\377\012\377\377\377\010\377\377\377\007\377\377\377\005\377\377\377" - "\003\377\377\377\002\377\377\377\001\377\377\377\001\377\377\377\002\377\377\377\003" - "\377\377\377\004\377\377\377\005\377\377\377\007\377\377\377\011\377\377\377\012" - "\377\377\377\014\377\377\377\016\377\377\377\017\377\377\377\020\377\377\377" - "\021\377\377\377\022\377\377\377\022\377\377\377\023\377\377\377\024\377\377\377" - "\025\377\377\377\025\377\377\377\026\377\377\377\026\377\377\377\027\377\377\377" - "\027\377\377\377\030\377\377\377\030\377\377\377\030\377\377\377\031\377\377\377" - "\031\377\377\377\031\377\377\377\031\377\377\377\031\377\377\377\031\377\377\377" - "\030\377\377\377\030\377\377\377\030\377\377\377\027\377\377\377\027\377\377\377" - "\027\377\377\377\026\377\377\377\025\377\377\377\025\377\377\377\024\377\377\377" - "\022\377\377\377\021\377\377\377\020\377\377\377\017\377\377\377\016\377\377\377" - "\016\377\377\377\015\377\377\377\014\377\377\377\014\377\377\377\014\377\377\377" - "\013\377\377\377\013\377\377\377\012\377\377\377\011\377\377\377\010\377\377\377" - "\007\377\377\377\006\377\377\377\005\377\377\377\003\377\377\377\002\377\377\377\001" - "\377\377\377\001\377\377\377\001\377\377\377\002\377\377\377\002\377\377\377\003\377" - "\377\377\004\377\377\377\005\377\377\377\006\377\377\377\010\377\377\377\011\377" - "\377\377\012\377\377\377\013\377\377\377\013\377\377\377\014\377\377\377\014\377" - "\377\377\014\377\377\377\015\377\377\377\015\377\377\377\015\377\377\377\016\377" - "\377\377\016\377\377\377\016\377\377\377\016\377\377\377\016\377\377\377\016\377" - "\377\377\016\377\377\377\016\377\377\377\016\377\377\377\016\377\377\377\016\377" - "\377\377\016\377\377\377\016\377\377\377\016\377\377\377\016\377\377\377\016\377" - "\377\377\015\377\377\377\015\377\377\377\015\377\377\377\015\377\377\377\014\377" - "\377\377\014\377\377\377\014\377\377\377\013\377\377\377\012\377\377\377\012\377" - "\377\377\011\377\377\377\011\377\377\377\010\377\377\377\010\377\377\377\010\377" - "\377\377\010\377\377\377\010\377\377\377\007\377\377\377\007\377\377\377\007\377" - "\377\377\006\377\377\377\006\377\377\377\006\377\377\377\005\377\377\377\004\377\377" - "\377\003\377\377\377\002\377\377\377\002\377\377\377\001\377\377\377\000\000\000\000\000\377" - "\377\377\001\377\377\377\001\377\377\377\002\377\377\377\003\377\377\377\003\377\377" - "\377\004\377\377\377\005\377\377\377\006\377\377\377\006\377\377\377\007\377\377\377" - "\007\377\377\377\007\377\377\377\007\377\377\377\007\377\377\377\007\377\377\377\010" - "\377\377\377\010\377\377\377\010\377\377\377\010\377\377\377\010\377\377\377" - "\010\377\377\377\010\377\377\377\007\377\377\377\007\377\377\377\007\377\377\377" - "\007\377\377\377\007\377\377\377\007\377\377\377\007\377\377\377\007\377\377\377\007" - "\377\377\377\007\377\377\377\007\377\377\377\006\377\377\377\006\377\377\377\006\377" - "\377\377\006\377\377\377\006\377\377\377\006\377\377\377\005\377\377\377\005\377\377" - "\377\005\377\377\377\005\377\377\377\005\377\377\377\004\377\377\377\004\377\377\377" - "\004\377\377\377\004\377\377\377\004\377\377\377\004\377\377\377\004\377\377\377\004" - "\377\377\377\004\377\377\377\004\377\377\377\004\377\377\377\003\377\377\377\003\377" - "\377\377\002\377\377\377\002\377\377\377\001\377\377\377\001\377\377\377\000\"\"\"" - "\000\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377\001\377\377\377\001\377\377" - "\377\002\377\377\377\002\377\377\377\003\377\377\377\003\377\377\377\004\377\377\377" - "\004\377\377\377\004\377\377\377\004\377\377\377\004\377\377\377\004\377\377\377\004" - "\377\377\377\004\377\377\377\004\377\377\377\004\377\377\377\004\377\377\377\004\377" - "\377\377\004\377\377\377\004\377\377\377\004\377\377\377\004\377\377\377\003\377\377" - "\377\003\377\377\377\003\377\377\377\003\377\377\377\003\377\377\377\003\377\377\377" - "\003\377\377\377\003\377\377\377\003\377\377\377\003\377\377\377\003\377\377\377\003" - "\377\377\377\003\377\377\377\003\377\377\377\002\377\377\377\002\377\377\377\002\377" - "\377\377\002\377\377\377\002\377\377\377\002\377\377\377\002\377\377\377\002\377\377" - "\377\002\377\377\377\002\377\377\377\002\377\377\377\002\377\377\377\002\377\377\377" - "\002\377\377\377\002\377\377\377\002\377\377\377\002\377\377\377\002\377\377\377\001" - "\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\377\377\377\000\377\377\377\001\377\377\377\001\377\377" - "\377\001\377\377\377\001\377\377\377\002\377\377\377\002\377\377\377\002\377\377\377" - "\002\377\377\377\002\377\377\377\002\377\377\377\002\377\377\377\002\377\377\377\002" - "\377\377\377\002\377\377\377\002\377\377\377\002\377\377\377\002\377\377\377\002\377" - "\377\377\002\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\001\377\377" - "\377\001\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377" - "\001\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\001" - "\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\001\377" - "\377\377\001\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\001\377\377" - "\377\001\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377" - "\001\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\000" - "\377\377\377\000\"\"\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\060\060\060\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\001" - "\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\001\377\377\377\001\377" - "\377\377\001\377\377\377\001\377\377\377\000\377\377\377\000\377\377\377\000\377\377" - "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377" - "\000\377\377\377\000\377\377\377\000JJJ\000$$$\000\040\040\040\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" - "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000", -}; - diff --git a/Editor/icon.h b/Editor/icon.h new file mode 100644 index 000000000..1502923bf --- /dev/null +++ b/Editor/icon.h @@ -0,0 +1,2056 @@ +struct EmbeddedImage { +const unsigned int width = 128; +const unsigned int height = 128; +const unsigned int bytes_per_pixel = 4; +const char comment[256] = "Wicked Editor Embedded Icon Data SDL"; +const unsigned char pixel_data[128 * 128 * 4] = { +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,0,14,14,14,0,15,15,15,0,15,15,15,0,15,15,15,0, +15,15,15,0,15,15,15,0,15,15,15,0,15,15,15,0,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,1,1,0,19,19,19,0,92,92,92,1,159,159,159,1,229,229,229,1,233,233,233,1,236,236,236,1,238,238,238,1, +238,238,238,1,238,238,238,1,238,238,238,1,238,238,238,1,167,167,167,1,104,104,104,1,99,99,99,1,21,21,21,0, +14,14,14,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,0, +61,61,61,0,218,218,218,1,243,243,243,1,248,248,248,1,251,251,251,2,253,253,253,2,254,254,254,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,254,254,254,1,240,240,240,1, +231,231,231,1,113,113,113,1,57,57,57,0,14,14,14,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,54,54,54,0,161,161,161,1, +238,238,238,1,249,249,249,1,251,251,251,2,253,253,253,2,254,254,254,3,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,1,247,247,247,1,231,231,231,1,113,113,113,1,57,57,57,0,8,8,8,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,1,1,0,14,14,14,0,56,56,56,0,112,112,112,1,235,235,235,1,251,251,251,1, +253,253,253,2,253,253,253,2,254,254,254,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,5, +255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,247,247,247,1,167,167,167,1,57,57,57,0, +8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,0,15,15,15,0, +57,57,57,0,104,104,104,1,113,113,113,1,230,230,230,1,245,245,245,1,254,254,254,1,254,254,254,2,254,254,254,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,7, +255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5, +255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,247,247,247,1, +167,167,167,1,57,57,57,0,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,0,57,57,57,0,167,167,167,1,238,238,238,1, +247,247,247,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4, +255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,10,255,255,255,10, +255,255,255,10,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,8,255,255,255,8,255,255,255,7,255,255,255,7, +255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2, +255,255,255,1,247,247,247,1,161,161,161,1,20,20,20,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,1,1,0,56,56,56,0,167,167,167,1,247,247,247,1,255,255,255,1,255,255,255,2, +255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6, +255,255,255,7,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,13,255,255,255,13, +255,255,255,13,255,255,255,13,255,255,255,13,255,255,255,12,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,9, +255,255,255,8,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3, +255,255,255,2,255,255,255,2,254,254,254,1,232,232,232,1,63,63,63,0,1,1,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,13,13,13,0,108,108,108,1,239,239,239,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,10, +255,255,255,11,255,255,255,12,255,255,255,14,255,255,255,15,255,255,255,16,255,255,255,17,255,255,255,18,255,255,255,18, +255,255,255,18,255,255,255,17,255,255,255,17,255,255,255,16,255,255,255,16,255,255,255,15,255,255,255,14,255,255,255,13, +255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4, +255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,1,239,239,239,1,65,65,65,0,8,8,8,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +13,13,13,0,162,162,162,1,254,254,254,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,4, +255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,11,255,255,255,12,255,255,255,14, +255,255,255,15,255,255,255,17,255,255,255,18,255,255,255,20,255,255,255,21,255,255,255,22,255,255,255,23,255,255,255,23, +255,255,255,23,255,255,255,23,255,255,255,22,255,255,255,21,255,255,255,20,255,255,255,19,255,255,255,18,255,255,255,17, +255,255,255,15,255,255,255,14,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,8,255,255,255,7,255,255,255,6, +255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,1,247,247,247,1,161,161,161,1,13,13,13,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,56,56,56,0, +168,168,168,1,254,254,254,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6, +255,255,255,7,255,255,255,9,255,255,255,10,255,255,255,12,255,255,255,13,255,255,255,15,255,255,255,17,255,255,255,18, +255,255,255,20,255,255,255,22,255,255,255,24,255,255,255,26,255,255,255,27,255,255,255,28,255,255,255,29,255,255,255,29, +255,255,255,29,255,255,255,29,255,255,255,28,255,255,255,27,255,255,255,26,255,255,255,24,255,255,255,23,255,255,255,21, +255,255,255,20,255,255,255,18,255,255,255,17,255,255,255,15,255,255,255,13,255,255,255,11,255,255,255,9,255,255,255,8, +255,255,255,7,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,254,254,254,1,162,162,162,1, +13,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,63,63,63,0,239,239,239,1, +255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,9, +255,255,255,10,255,255,255,12,255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,20,255,255,255,22,255,255,255,24, +255,255,255,27,255,255,255,29,255,255,255,32,255,255,255,34,255,255,255,35,255,255,255,36,255,255,255,37,255,255,255,37, +255,255,255,37,255,255,255,36,255,255,255,35,255,255,255,34,255,255,255,33,255,255,255,31,255,255,255,29,255,255,255,27, +255,255,255,25,255,255,255,23,255,255,255,21,255,255,255,19,255,255,255,17,255,255,255,15,255,255,255,13,255,255,255,11, +255,255,255,9,255,255,255,7,255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,254,254,254,1, +161,161,161,1,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,20,20,0,232,232,232,1,255,255,255,1, +255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,8,255,255,255,10,255,255,255,12, +255,255,255,14,255,255,255,16,255,255,255,18,255,255,255,21,255,255,255,23,255,255,255,26,255,255,255,29,255,255,255,32, +255,255,255,34,255,255,255,37,255,255,255,40,255,255,255,42,255,255,255,43,255,255,255,44,255,255,255,45,255,255,255,45, +255,255,255,45,255,255,255,44,255,255,255,44,255,255,255,42,255,255,255,41,255,255,255,39,255,255,255,37,255,255,255,34, +255,255,255,32,255,255,255,29,255,255,255,26,255,255,255,23,255,255,255,21,255,255,255,19,255,255,255,16,255,255,255,14, +255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2, +247,247,247,1,65,65,65,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,13,13,0,162,162,162,1,254,254,254,1,255,255,255,2, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,7,255,255,255,8,255,255,255,10,255,255,255,13,255,255,255,15, +255,255,255,18,255,255,255,20,255,255,255,23,255,255,255,26,255,255,255,30,255,255,255,33,255,255,255,36,255,255,255,40, +255,255,255,42,255,255,255,45,255,255,255,48,255,255,255,50,255,255,255,52,255,255,255,54,255,255,255,54,255,255,255,55, +255,255,255,55,255,255,255,54,255,255,255,53,255,255,255,51,255,255,255,49,255,255,255,47,255,255,255,45,255,255,255,42, +255,255,255,39,255,255,255,36,255,255,255,33,255,255,255,29,255,255,255,26,255,255,255,23,255,255,255,20,255,255,255,17, +255,255,255,14,255,255,255,12,255,255,255,10,255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2, +255,255,255,1,239,239,239,1,63,63,63,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,13,13,13,0,162,162,162,1,254,254,254,1,255,255,255,2,255,255,255,3, +255,255,255,4,255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,11,255,255,255,13,255,255,255,16,255,255,255,19, +255,255,255,22,255,255,255,26,255,255,255,29,255,255,255,33,255,255,255,37,255,255,255,41,255,255,255,44,255,255,255,48, +255,255,255,52,255,255,255,55,255,255,255,58,255,255,255,61,255,255,255,64,255,255,255,66,255,255,255,68,255,255,255,69, +255,255,255,68,255,255,255,65,255,255,255,63,255,255,255,61,255,255,255,59,255,255,255,57,255,255,255,54,255,255,255,51, +255,255,255,47,255,255,255,44,255,255,255,40,255,255,255,36,255,255,255,32,255,255,255,29,255,255,255,25,255,255,255,21, +255,255,255,18,255,255,255,15,255,255,255,12,255,255,255,10,255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,3, +255,255,255,2,255,255,255,1,232,232,232,1,20,20,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,1,1,0,108,108,108,1,254,254,254,1,255,255,255,2,255,255,255,3,255,255,255,4, +255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,11,255,255,255,13,255,255,255,16,255,255,255,20,255,255,255,23, +255,255,255,27,255,255,255,32,255,255,255,36,255,255,255,40,255,255,255,45,255,255,255,49,255,255,255,53,255,255,255,57, +255,255,255,62,255,255,255,68,255,255,255,77,255,255,255,84,255,255,255,91,255,255,255,97,252,252,252,104,247,247,247,109, +245,245,245,104,254,254,254,86,255,255,255,76,255,255,255,72,255,255,255,70,255,255,255,67,255,255,255,64,255,255,255,60, +255,255,255,56,255,255,255,52,255,255,255,48,255,255,255,43,255,255,255,39,255,255,255,35,255,255,255,30,255,255,255,26, +255,255,255,22,255,255,255,18,255,255,255,15,255,255,255,12,255,255,255,10,255,255,255,8,255,255,255,6,255,255,255,4, +255,255,255,3,255,255,255,2,254,254,254,1,161,161,161,1,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,56,56,56,0,239,239,239,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,5, +255,255,255,6,255,255,255,8,255,255,255,11,255,255,255,13,255,255,255,17,255,255,255,20,255,255,255,24,255,255,255,28, +255,255,255,33,255,255,255,38,255,255,255,42,255,255,255,47,255,255,255,53,255,255,255,58,255,255,255,63,255,255,255,67, +255,255,255,75,251,251,251,95,221,221,221,131,183,183,183,157,150,150,150,176,120,120,120,192,92,92,92,206,64,64,64,218, +67,67,67,211,240,240,240,124,255,255,255,92,255,255,255,84,255,255,255,81,255,255,255,78,255,255,255,74,255,255,255,70, +255,255,255,67,255,255,255,62,255,255,255,56,255,255,255,51,255,255,255,46,255,255,255,41,255,255,255,36,255,255,255,31, +255,255,255,27,255,255,255,22,255,255,255,18,255,255,255,15,255,255,255,12,255,255,255,9,255,255,255,7,255,255,255,5, +255,255,255,4,255,255,255,3,255,255,255,2,247,247,247,1,65,65,65,0,1,1,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,8,8,8,0,167,167,167,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6, +255,255,255,8,255,255,255,11,255,255,255,13,255,255,255,17,255,255,255,20,255,255,255,24,255,255,255,29,255,255,255,34, +255,255,255,39,255,255,255,44,255,255,255,50,255,255,255,56,255,255,255,61,255,255,255,67,255,255,255,73,255,255,255,79, +255,255,255,91,201,201,201,142,23,23,23,242,9,9,9,251,5,5,5,253,2,2,2,254,0,0,0,255,0,0,0,255, +9,9,9,251,183,183,183,169,255,255,255,112,255,255,255,98,255,255,255,93,255,255,255,90,255,255,255,88,255,255,255,90, +251,251,251,92,255,255,255,82,255,255,255,69,255,255,255,60,255,255,255,54,255,255,255,48,255,255,255,42,255,255,255,37, +255,255,255,31,255,255,255,27,255,255,255,22,255,255,255,18,255,255,255,15,255,255,255,12,255,255,255,9,255,255,255,7, +255,255,255,5,255,255,255,3,255,255,255,2,255,255,255,1,232,232,232,1,20,20,20,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,57,57,57,0,247,247,247,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8, +255,255,255,10,255,255,255,13,255,255,255,16,255,255,255,20,255,255,255,24,255,255,255,29,255,255,255,34,255,255,255,39, +255,255,255,45,255,255,255,52,255,255,255,58,255,255,255,65,255,255,255,71,255,255,255,77,255,255,255,83,255,255,255,90, +255,255,255,106,189,189,189,165,9,9,9,251,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +1,1,1,254,108,108,108,208,253,253,253,135,255,255,255,114,255,255,255,108,255,255,255,105,255,255,255,112,226,226,226,139, +104,104,104,189,199,199,199,144,254,254,254,99,255,255,255,76,255,255,255,63,255,255,255,56,255,255,255,49,255,255,255,43, +255,255,255,37,255,255,255,31,255,255,255,26,255,255,255,22,255,255,255,18,255,255,255,14,255,255,255,11,255,255,255,8, +255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2,254,254,254,1,108,108,108,1,1,1,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8,8,8,0,167,167,167,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,5,255,255,255,7,255,255,255,9, +255,255,255,12,255,255,255,15,255,255,255,19,255,255,255,23,255,255,255,28,255,255,255,34,255,255,255,39,255,255,255,46, +255,255,255,52,255,255,255,60,255,255,255,69,255,255,255,76,255,255,255,82,255,255,255,88,255,255,255,95,255,255,255,102, +255,255,255,119,180,180,180,178,8,8,8,252,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,50,50,50,237,238,238,238,171,254,254,254,143,255,255,255,132,255,255,255,134,214,214,214,163,56,56,56,228, +2,2,2,254,28,28,28,240,162,162,162,172,250,250,250,111,255,255,255,81,255,255,255,65,255,255,255,56,255,255,255,49, +255,255,255,43,255,255,255,36,255,255,255,31,255,255,255,26,255,255,255,21,255,255,255,17,255,255,255,13,255,255,255,10, +255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2,239,239,239,1,56,56,56,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +57,57,57,0,247,247,247,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,11, +255,255,255,14,255,255,255,18,255,255,255,22,255,255,255,27,255,255,255,33,255,255,255,39,255,255,255,45,255,255,255,52, +255,255,255,60,255,255,255,74,251,251,251,94,249,249,249,106,255,255,255,104,255,255,255,104,255,255,255,108,255,255,255,117, +255,255,255,138,172,172,172,194,7,7,7,253,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,6,6,6,253,62,62,62,235,109,109,109,214,183,183,183,191,196,196,196,191,44,44,44,238,1,1,1,255, +0,0,0,255,0,0,0,255,13,13,13,249,115,115,115,194,242,242,242,123,255,255,255,86,255,255,255,66,255,255,255,56, +255,255,255,49,255,255,255,42,255,255,255,36,255,255,255,30,255,255,255,24,255,255,255,20,255,255,255,16,255,255,255,12, +255,255,255,9,255,255,255,7,255,255,255,5,255,255,255,3,255,255,255,2,255,255,255,1,167,167,167,1,8,8,8,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,0, +167,167,167,1,255,255,255,1,255,255,255,2,255,255,255,4,255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,13, +255,255,255,17,255,255,255,21,255,255,255,26,255,255,255,31,255,255,255,37,255,255,255,44,255,255,255,52,255,255,255,59, +255,255,255,73,252,252,252,103,137,137,137,173,79,79,79,208,195,195,195,165,250,250,250,138,255,255,255,134,252,252,252,148, +205,205,205,182,78,78,78,231,3,3,3,254,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,9,9,9,252,15,15,15,251,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,5,5,5,253,75,75,75,215,221,221,221,134,254,254,254,85,255,255,255,65, +255,255,255,55,255,255,255,48,255,255,255,40,255,255,255,34,255,255,255,28,255,255,255,22,255,255,255,18,255,255,255,14, +255,255,255,11,255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2,240,240,240,1,21,21,21,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,21,21,0, +240,240,240,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,11,255,255,255,15, +255,255,255,19,255,255,255,23,255,255,255,29,255,255,255,36,255,255,255,42,255,255,255,50,255,255,255,58,255,255,255,70, +254,254,254,97,180,180,180,162,19,19,19,245,1,1,1,255,16,16,16,248,90,90,90,218,200,200,200,191,115,115,115,215, +21,21,21,248,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,2,2,2,254,58,58,58,218,244,244,244,108,255,255,255,74, +255,255,255,62,255,255,255,54,255,255,255,45,255,255,255,38,255,255,255,32,255,255,255,26,255,255,255,21,255,255,255,16, +255,255,255,13,255,255,255,9,255,255,255,7,255,255,255,5,255,255,255,3,255,255,255,2,254,254,254,1,108,108,108,1, +1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,99,99,1, +254,254,254,1,255,255,255,2,255,255,255,3,255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,13,255,255,255,17, +255,255,255,21,255,255,255,26,255,255,255,33,255,255,255,39,255,255,255,47,255,255,255,55,255,255,255,66,255,255,255,89, +216,216,216,143,38,38,38,235,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,12,12,12,252,3,3,3,254, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255, +1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,2,2,2,254,102,102,102,201,251,251,251,110,255,255,255,80, +255,255,255,68,255,255,255,59,255,255,255,51,255,255,255,43,255,255,255,36,255,255,255,29,255,255,255,23,255,255,255,19, +255,255,255,15,255,255,255,11,255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2,232,232,232,1, +20,20,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,0,167,167,167,1, +255,255,255,1,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,11,255,255,255,15,255,255,255,19, +255,255,255,23,255,255,255,29,255,255,255,36,255,255,255,44,255,255,255,52,255,255,255,62,255,255,255,81,240,240,240,126, +67,67,67,219,1,1,1,254,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,1,1,1,255,1,1,1,255,2,2,2,255,3,3,3,255,4,4,4,255,5,5,5,255,5,5,5,255, +5,5,5,255,5,5,5,255,4,4,4,255,2,2,2,255,1,1,1,255,1,1,1,255,1,1,1,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,30,30,30,242,221,221,221,156,255,255,255,106,255,255,255,85, +255,255,255,74,255,255,255,64,255,255,255,56,255,255,255,47,255,255,255,39,255,255,255,32,255,255,255,26,255,255,255,21, +255,255,255,17,255,255,255,13,255,255,255,9,255,255,255,7,255,255,255,5,255,255,255,3,255,255,255,2,254,254,254,1, +99,99,99,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,21,21,0,240,240,240,1, +255,255,255,2,255,255,255,3,255,255,255,5,255,255,255,6,255,255,255,9,255,255,255,12,255,255,255,16,255,255,255,21, +255,255,255,26,255,255,255,32,255,255,255,40,255,255,255,48,255,255,255,57,255,255,255,70,248,248,248,105,105,105,105,197, +4,4,4,253,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255, +1,1,1,255,2,2,2,255,4,4,4,255,7,7,7,255,10,10,10,255,14,14,14,255,16,16,16,255,17,17,17,255, +17,17,17,255,15,15,15,255,12,12,12,255,9,9,9,255,6,6,6,255,3,3,3,255,1,1,1,255,1,1,1,255, +0,0,0,255,0,0,0,255,0,0,0,255,4,4,4,254,127,127,127,209,253,253,253,137,255,255,255,106,255,255,255,92, +255,255,255,80,255,255,255,70,255,255,255,61,255,255,255,52,255,255,255,43,255,255,255,36,255,255,255,29,255,255,255,23, +255,255,255,18,255,255,255,14,255,255,255,10,255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,2,255,255,255,1, +167,167,167,1,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,99,99,1,254,254,254,1, +255,255,255,2,255,255,255,3,255,255,255,5,255,255,255,7,255,255,255,10,255,255,255,13,255,255,255,18,255,255,255,22, +255,255,255,28,255,255,255,35,255,255,255,43,255,255,255,52,255,255,255,61,255,255,255,77,200,200,200,133,19,19,19,244, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255, +2,2,2,255,6,6,6,255,12,12,12,255,18,18,18,255,24,24,24,255,29,29,29,255,32,32,32,255,33,33,33,255, +33,33,33,255,31,31,31,255,26,26,26,255,21,21,21,255,15,15,15,255,9,9,9,255,4,4,4,255,1,1,1,255, +1,1,1,255,0,0,0,255,0,0,0,255,9,9,9,253,179,179,179,200,255,255,255,140,255,255,255,112,255,255,255,98, +255,255,255,87,255,255,255,76,255,255,255,65,255,255,255,56,255,255,255,47,255,255,255,39,255,255,255,32,255,255,255,25, +255,255,255,20,255,255,255,16,255,255,255,12,255,255,255,9,255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2, +240,240,240,1,21,21,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,113,113,113,1,255,255,255,1, +255,255,255,2,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,11,255,255,255,15,255,255,255,19,255,255,255,24, +255,255,255,31,255,255,255,38,255,255,255,46,255,255,255,55,255,255,255,65,255,255,255,80,248,248,248,114,117,117,117,196, +8,8,8,252,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,2,2,2,255, +8,8,8,255,16,16,16,255,25,25,25,255,34,34,34,255,41,41,41,255,47,47,47,255,50,50,50,255,52,52,52,255, +51,51,51,255,48,48,48,255,44,44,44,255,37,37,37,255,29,29,29,255,20,20,20,255,11,11,11,255,4,4,4,255, +1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,54,54,54,236,240,240,240,162,255,255,255,125,255,255,255,108, +255,255,255,96,255,255,255,83,255,255,255,71,255,255,255,60,255,255,255,51,255,255,255,42,255,255,255,34,255,255,255,27, +255,255,255,22,255,255,255,17,255,255,255,13,255,255,255,10,255,255,255,7,255,255,255,5,255,255,255,3,255,255,255,2, +254,254,254,1,99,99,99,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,14,14,0,231,231,231,1,255,255,255,2, +255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,9,255,255,255,12,255,255,255,16,255,255,255,20,255,255,255,26, +255,255,255,33,255,255,255,41,255,255,255,49,255,255,255,59,255,255,255,69,255,255,255,81,255,255,255,100,246,246,246,137, +108,108,108,210,6,6,6,253,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,2,2,2,255,8,8,8,255, +17,17,17,255,28,28,28,255,39,39,39,255,49,49,49,255,57,57,57,255,63,63,63,255,68,68,68,255,70,70,70,255, +69,69,69,255,66,66,66,255,61,61,61,255,52,52,52,255,43,43,43,255,33,33,33,255,22,22,22,255,12,12,12,255, +4,4,4,255,1,1,1,255,1,1,1,255,0,0,0,255,6,6,6,253,145,145,145,206,249,249,249,156,250,250,250,136, +252,252,252,122,253,253,253,105,255,255,255,83,255,255,255,65,255,255,255,54,255,255,255,45,255,255,255,37,255,255,255,30, +255,255,255,23,255,255,255,19,255,255,255,14,255,255,255,11,255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,2, +255,255,255,1,113,113,113,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,15,15,0,238,238,238,1,255,255,255,2, +255,255,255,3,255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,13,255,255,255,17,255,255,255,22,255,255,255,28, +255,255,255,35,255,255,255,43,255,255,255,52,255,255,255,62,255,255,255,72,255,255,255,84,255,255,255,97,255,255,255,118, +245,245,245,160,78,78,78,231,1,1,1,255,0,0,0,255,1,1,1,255,2,2,2,255,7,7,7,255,16,16,16,255, +28,28,28,255,40,40,40,255,52,52,52,255,63,63,63,255,72,72,72,255,78,78,78,255,83,83,83,255,85,85,85,255, +85,85,85,255,81,81,81,255,75,75,75,255,66,66,66,255,56,56,56,255,45,45,45,255,33,33,33,255,21,21,21,255, +10,10,10,255,3,3,3,255,1,1,1,255,1,1,1,255,0,0,0,255,29,29,29,247,73,73,73,229,80,80,80,220, +86,86,86,212,103,103,103,194,235,235,235,114,255,255,255,73,255,255,255,57,255,255,255,48,255,255,255,40,255,255,255,32, +255,255,255,25,255,255,255,20,255,255,255,15,255,255,255,11,255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,3, +255,255,255,2,231,231,231,1,14,14,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,57,57,57,0,247,247,247,1,255,255,255,2, +255,255,255,3,255,255,255,5,255,255,255,7,255,255,255,10,255,255,255,14,255,255,255,18,255,255,255,23,255,255,255,30, +255,255,255,37,255,255,255,45,255,255,255,54,255,255,255,64,255,255,255,76,255,255,255,87,255,255,255,100,255,255,255,118, +248,248,248,155,70,70,70,231,0,0,0,255,0,0,0,255,1,1,1,255,4,4,4,255,12,12,12,255,25,25,25,255, +38,38,38,255,51,51,51,255,63,63,63,255,74,74,74,255,84,84,84,255,93,93,93,255,99,99,99,255,102,102,102,255, +101,101,101,255,96,96,96,255,88,88,88,255,78,78,78,255,68,68,68,255,55,55,55,255,43,43,43,255,30,30,30,255, +17,17,17,255,7,7,7,255,2,2,2,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,10,10,10,250,192,192,192,149,255,255,255,82,255,255,255,60,255,255,255,50,255,255,255,42,255,255,255,34, +255,255,255,27,255,255,255,21,255,255,255,16,255,255,255,12,255,255,255,9,255,255,255,7,255,255,255,5,255,255,255,3, +255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,104,104,1,255,255,255,1,255,255,255,2, +255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,11,255,255,255,14,255,255,255,19,255,255,255,24,255,255,255,31, +255,255,255,38,255,255,255,47,255,255,255,56,255,255,255,67,255,255,255,79,255,255,255,91,255,255,255,105,255,255,255,125, +232,232,232,169,24,24,24,247,0,0,0,255,1,1,1,255,2,2,2,255,7,7,7,255,17,17,17,255,32,32,32,255, +46,46,46,255,61,61,61,255,73,73,73,255,85,85,85,255,97,97,97,255,107,107,107,255,114,114,114,255,117,117,117,255, +116,116,116,255,110,110,110,255,101,101,101,255,89,89,89,255,77,77,77,255,65,65,65,255,51,51,51,255,38,38,38,255, +24,24,24,255,12,12,12,255,4,4,4,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,6,6,6,252,158,158,158,171,255,255,255,89,255,255,255,63,255,255,255,52,255,255,255,43,255,255,255,35, +255,255,255,28,255,255,255,22,255,255,255,17,255,255,255,13,255,255,255,9,255,255,255,7,255,255,255,5,255,255,255,3, +255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,104,104,1,255,255,255,1,255,255,255,2, +255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,11,255,255,255,15,255,255,255,19,255,255,255,25,255,255,255,32, +255,255,255,40,255,255,255,48,255,255,255,58,255,255,255,69,255,255,255,84,255,255,255,101,255,255,255,121,252,252,252,147, +179,179,179,198,9,9,9,253,0,0,0,255,1,1,1,255,3,3,3,255,10,10,10,255,23,23,23,255,38,38,38,255, +53,53,53,255,68,68,68,255,82,82,82,255,96,96,96,255,108,108,108,255,120,120,120,255,129,129,129,255,133,133,133,255, +131,131,131,255,124,124,124,255,112,112,112,255,99,99,99,255,86,86,86,255,72,72,72,255,58,58,58,255,43,43,43,255, +29,29,29,255,15,15,15,255,6,6,6,255,2,2,2,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,3,3,3,254,128,128,128,187,255,255,255,95,255,255,255,66,255,255,255,53,255,255,255,44,255,255,255,36, +255,255,255,29,255,255,255,23,255,255,255,17,255,255,255,13,255,255,255,10,255,255,255,7,255,255,255,5,255,255,255,3, +255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,104,104,1,255,255,255,2,255,255,255,3, +255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,11,255,255,255,15,255,255,255,20,255,255,255,26,255,255,255,33, +255,255,255,40,255,255,255,49,255,255,255,60,255,255,255,75,250,250,250,104,227,227,227,144,160,160,160,184,94,94,94,217, +37,37,37,244,1,1,1,255,0,0,0,255,1,1,1,255,4,4,4,255,12,12,12,255,27,27,27,255,43,43,43,255, +58,58,58,255,73,73,73,255,89,89,89,255,103,103,103,255,117,117,117,255,131,131,131,255,142,142,142,255,148,148,148,255, +146,146,146,255,135,135,135,255,122,122,122,255,107,107,107,255,92,92,92,255,77,77,77,255,62,62,62,255,47,47,47,255, +33,33,33,255,18,18,18,255,8,8,8,255,2,2,2,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,99,99,99,202,253,253,253,102,255,255,255,68,255,255,255,55,255,255,255,45,255,255,255,37, +255,255,255,30,255,255,255,23,255,255,255,18,255,255,255,14,255,255,255,10,255,255,255,7,255,255,255,5,255,255,255,3, +255,255,255,2,240,240,240,1,21,21,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,104,104,1,255,255,255,2,255,255,255,3, +255,255,255,4,255,255,255,6,255,255,255,9,255,255,255,12,255,255,255,16,255,255,255,21,255,255,255,27,255,255,255,33, +255,255,255,41,255,255,255,50,255,255,255,61,255,255,255,83,154,154,154,159,22,22,22,243,6,6,6,253,1,1,1,255, +0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,4,4,4,255,14,14,14,255,29,29,29,255,45,45,45,255, +61,61,61,255,76,76,76,255,92,92,92,255,108,108,108,255,123,123,123,255,137,137,137,255,152,152,152,255,160,160,160,255, +157,157,157,255,144,144,144,255,128,128,128,255,112,112,112,255,95,95,95,255,80,80,80,255,65,65,65,255,49,49,49,255, +35,35,35,255,20,20,20,255,9,9,9,255,2,2,2,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,71,71,71,216,249,249,249,110,255,255,255,69,255,255,255,55,255,255,255,46,255,255,255,37, +255,255,255,30,255,255,255,24,255,255,255,18,255,255,255,14,255,255,255,10,255,255,255,7,255,255,255,5,255,255,255,3, +255,255,255,2,254,254,254,1,99,99,99,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,0,167,167,167,1,255,255,255,2,255,255,255,3, +255,255,255,4,255,255,255,6,255,255,255,9,255,255,255,12,255,255,255,16,255,255,255,21,255,255,255,27,255,255,255,34, +255,255,255,41,255,255,255,51,255,255,255,62,255,255,255,87,156,156,156,167,6,6,6,252,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,4,4,4,255,14,14,14,255,29,29,29,255,46,46,46,255, +61,61,61,255,77,77,77,255,93,93,93,255,108,108,108,255,124,124,124,255,139,139,139,255,153,153,153,255,161,161,161,255, +158,158,158,255,144,144,144,255,128,128,128,255,113,113,113,255,97,97,97,255,81,81,81,255,66,66,66,255,50,50,50,255, +35,35,35,255,21,21,21,255,9,9,9,255,3,3,3,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,47,47,47,226,244,244,244,112,255,255,255,70,255,255,255,56,255,255,255,46,255,255,255,37, +255,255,255,30,255,255,255,24,255,255,255,18,255,255,255,14,255,255,255,10,255,255,255,7,255,255,255,5,255,255,255,3, +255,255,255,2,247,247,247,1,57,57,57,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,0,167,167,167,1,255,255,255,2,255,255,255,3, +255,255,255,4,255,255,255,6,255,255,255,9,255,255,255,12,255,255,255,16,255,255,255,21,255,255,255,27,255,255,255,33, +255,255,255,41,255,255,255,50,255,255,255,61,255,255,255,84,193,193,193,154,10,10,10,250,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,4,4,4,255,13,13,13,255,28,28,28,255,45,45,45,255, +60,60,60,255,76,76,76,255,90,90,90,255,105,105,105,255,120,120,120,255,132,132,132,255,144,144,144,255,151,151,151,255, +148,148,148,255,137,137,137,255,124,124,124,255,109,109,109,255,94,94,94,255,79,79,79,255,64,64,64,255,49,49,49,255, +34,34,34,255,20,20,20,255,8,8,8,255,2,2,2,255,1,1,1,255,0,0,0,255,0,0,0,255,5,5,5,253, +18,18,18,248,55,55,55,227,126,126,126,180,249,249,249,98,255,255,255,68,255,255,255,55,255,255,255,45,255,255,255,37, +255,255,255,30,255,255,255,23,255,255,255,18,255,255,255,14,255,255,255,10,255,255,255,7,255,255,255,5,255,255,255,3, +255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,104,104,1,255,255,255,2,255,255,255,3, +255,255,255,4,255,255,255,6,255,255,255,9,255,255,255,12,255,255,255,16,255,255,255,21,255,255,255,26,255,255,255,33, +255,255,255,41,255,255,255,50,255,255,255,60,255,255,255,80,230,230,230,138,17,17,17,247,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,3,3,3,255,11,11,11,255,25,25,25,255,42,42,42,255, +57,57,57,255,72,72,72,255,86,86,86,255,100,100,100,255,112,112,112,255,123,123,123,255,131,131,131,255,135,135,135,255, +134,134,134,255,126,126,126,255,115,115,115,255,102,102,102,255,89,89,89,255,75,75,75,255,60,60,60,255,46,46,46,255, +31,31,31,255,17,17,17,255,7,7,7,255,2,2,2,255,1,1,1,255,0,0,0,255,28,28,28,247,148,148,148,205, +221,221,221,165,246,246,246,134,254,254,254,106,255,255,255,81,255,255,255,65,255,255,255,54,255,255,255,44,255,255,255,36, +255,255,255,29,255,255,255,23,255,255,255,17,255,255,255,13,255,255,255,9,255,255,255,7,255,255,255,5,255,255,255,3, +255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,104,104,1,255,255,255,1,255,255,255,3, +255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,11,255,255,255,15,255,255,255,20,255,255,255,25,255,255,255,32, +255,255,255,40,255,255,255,48,255,255,255,58,255,255,255,76,241,241,241,127,32,32,32,238,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,2,2,2,255,8,8,8,255,21,21,21,255,37,37,37,255, +52,52,52,255,66,66,66,255,79,79,79,255,91,91,91,255,102,102,102,255,111,111,111,255,118,118,118,255,121,121,121,255, +119,119,119,255,114,114,114,255,104,104,104,255,93,93,93,255,81,81,81,255,68,68,68,255,55,55,55,255,41,41,41,255, +27,27,27,255,14,14,14,255,5,5,5,255,1,1,1,255,1,1,1,255,0,0,0,255,75,75,75,228,249,249,249,156, +255,255,255,122,255,255,255,103,255,255,255,88,255,255,255,75,255,255,255,63,255,255,255,52,255,255,255,43,255,255,255,35, +255,255,255,28,255,255,255,22,255,255,255,17,255,255,255,13,255,255,255,9,255,255,255,7,255,255,255,5,255,255,255,3, +255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,104,104,1,255,255,255,1,255,255,255,2, +255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,11,255,255,255,15,255,255,255,19,255,255,255,25,255,255,255,31, +255,255,255,39,255,255,255,47,255,255,255,56,255,255,255,72,245,245,245,116,52,52,52,226,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,5,5,5,255,15,15,15,255,30,30,30,255, +45,45,45,255,58,58,58,255,70,70,70,255,81,81,81,255,91,91,91,255,99,99,99,255,104,104,104,255,107,107,107,255, +105,105,105,255,100,100,100,255,92,92,92,255,83,83,83,255,72,72,72,255,61,61,61,255,48,48,48,255,35,35,35,255, +22,22,22,255,11,11,11,255,3,3,3,255,1,1,1,255,0,0,0,255,3,3,3,254,133,133,133,206,255,255,255,138, +255,255,255,111,255,255,255,96,255,255,255,83,255,255,255,72,255,255,255,61,255,255,255,51,255,255,255,42,255,255,255,34, +255,255,255,27,255,255,255,21,255,255,255,16,255,255,255,12,255,255,255,9,255,255,255,6,255,255,255,4,255,255,255,3, +255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,104,104,1,255,255,255,1,255,255,255,2, +255,255,255,4,255,255,255,5,255,255,255,7,255,255,255,10,255,255,255,14,255,255,255,18,255,255,255,23,255,255,255,30, +255,255,255,37,255,255,255,45,255,255,255,54,255,255,255,68,249,249,249,102,80,80,80,205,8,8,8,251,7,7,7,252, +6,6,6,253,4,4,4,254,0,0,0,255,0,0,0,255,1,1,1,255,2,2,2,255,9,9,9,255,21,21,21,255, +36,36,36,255,49,49,49,255,60,60,60,255,70,70,70,255,79,79,79,255,86,86,86,255,90,90,90,255,92,92,92,255, +90,90,90,255,87,87,87,255,80,80,80,255,72,72,72,255,62,62,62,255,51,51,51,255,40,40,40,255,28,28,28,255, +16,16,16,255,6,6,6,255,2,2,2,255,1,1,1,255,0,0,0,255,14,14,14,252,209,209,209,188,255,255,255,133, +255,255,255,107,255,255,255,92,255,255,255,80,255,255,255,69,255,255,255,58,255,255,255,49,255,255,255,41,255,255,255,33, +255,255,255,26,255,255,255,20,255,255,255,15,255,255,255,11,255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,3, +255,255,255,2,167,167,167,1,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,57,57,57,0,247,247,247,1,255,255,255,2, +255,255,255,3,255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,13,255,255,255,17,255,255,255,22,255,255,255,28, +255,255,255,35,255,255,255,43,255,255,255,52,255,255,255,62,254,254,254,83,214,214,214,127,181,181,181,163,173,173,173,178, +164,164,164,191,134,134,134,215,11,11,11,252,0,0,0,255,0,0,0,255,1,1,1,255,4,4,4,255,12,12,12,255, +24,24,24,255,38,38,38,255,49,49,49,255,58,58,58,255,66,66,66,255,72,72,72,255,75,75,75,255,76,76,76,255, +76,76,76,255,72,72,72,255,67,67,67,255,60,60,60,255,51,51,51,255,42,42,42,255,30,30,30,255,19,19,19,255, +9,9,9,255,3,3,3,255,1,1,1,255,0,0,0,255,0,0,0,255,4,4,4,254,106,106,106,217,247,247,247,146, +255,255,255,109,255,255,255,90,255,255,255,77,255,255,255,66,255,255,255,56,255,255,255,47,255,255,255,39,255,255,255,31, +255,255,255,24,255,255,255,19,255,255,255,15,255,255,255,11,255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,2, +255,255,255,1,104,104,104,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,15,15,0,238,238,238,1,255,255,255,2, +255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,9,255,255,255,12,255,255,255,16,255,255,255,21,255,255,255,26, +255,255,255,33,255,255,255,40,255,255,255,49,255,255,255,58,255,255,255,70,255,255,255,86,255,255,255,102,255,255,255,116, +255,255,255,131,247,247,247,161,74,74,74,229,1,1,1,255,0,0,0,255,1,1,1,255,1,1,1,255,5,5,5,255, +13,13,13,255,24,24,24,255,36,36,36,255,45,45,45,255,53,53,53,255,58,58,58,255,61,61,61,255,63,63,63,255, +61,61,61,255,59,59,59,255,54,54,54,255,48,48,48,255,40,40,40,255,30,30,30,255,20,20,20,255,10,10,10,255, +4,4,4,255,1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,8,8,8,252,120,120,120,201, +248,248,248,127,255,255,255,91,255,255,255,73,255,255,255,63,255,255,255,53,255,255,255,44,255,255,255,36,255,255,255,29, +255,255,255,23,255,255,255,18,255,255,255,13,255,255,255,10,255,255,255,7,255,255,255,5,255,255,255,3,255,255,255,2, +254,254,254,1,99,99,99,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,0,167,167,167,1,255,255,255,2, +255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,11,255,255,255,15,255,255,255,19,255,255,255,24, +255,255,255,30,255,255,255,38,255,255,255,46,255,255,255,55,255,255,255,65,255,255,255,75,255,255,255,87,255,255,255,99, +255,255,255,112,255,255,255,134,200,200,200,185,22,22,22,249,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255, +5,5,5,255,12,12,12,255,21,21,21,255,30,30,30,255,38,38,38,255,43,43,43,255,46,46,46,255,47,47,47,255, +47,47,47,255,44,44,44,255,40,40,40,255,35,35,35,255,27,27,27,255,19,19,19,255,10,10,10,255,4,4,4,255, +1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,10,10,10,251, +135,135,135,179,252,252,252,96,255,255,255,70,255,255,255,59,255,255,255,50,255,255,255,41,255,255,255,34,255,255,255,27, +255,255,255,21,255,255,255,16,255,255,255,12,255,255,255,9,255,255,255,7,255,255,255,5,255,255,255,3,255,255,255,2, +240,240,240,1,21,21,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,104,104,1,255,255,255,1, +255,255,255,2,255,255,255,3,255,255,255,5,255,255,255,7,255,255,255,10,255,255,255,13,255,255,255,17,255,255,255,22, +255,255,255,28,255,255,255,35,255,255,255,43,255,255,255,51,255,255,255,60,255,255,255,70,255,255,255,81,255,255,255,92, +255,255,255,104,255,255,255,123,247,247,247,164,67,67,67,236,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255, +1,1,1,255,4,4,4,255,9,9,9,255,15,15,15,255,21,21,21,255,26,26,26,255,29,29,29,255,31,31,31,255, +30,30,30,255,29,29,29,255,25,25,25,255,20,20,20,255,14,14,14,255,8,8,8,255,3,3,3,255,1,1,1,255, +1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,4,4,4,253, +103,103,103,190,251,251,251,94,255,255,255,66,255,255,255,55,255,255,255,46,255,255,255,38,255,255,255,31,255,255,255,25, +255,255,255,19,255,255,255,15,255,255,255,11,255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2, +231,231,231,1,14,14,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,57,57,57,0,247,247,247,1, +255,255,255,2,255,255,255,3,255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,12,255,255,255,16,255,255,255,20, +255,255,255,25,255,255,255,32,255,255,255,39,255,255,255,47,255,255,255,56,255,255,255,65,255,255,255,75,255,255,255,86, +255,255,255,99,255,255,255,123,190,190,190,181,15,15,15,250,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +1,1,1,255,1,1,1,255,2,2,2,255,5,5,5,255,8,8,8,255,11,11,11,255,14,14,14,255,15,15,15,255, +15,15,15,255,14,14,14,255,11,11,11,255,8,8,8,255,5,5,5,255,2,2,2,255,1,1,1,255,1,1,1,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,61,61,61,222, +237,237,237,126,255,255,255,79,255,255,255,61,255,255,255,51,255,255,255,43,255,255,255,35,255,255,255,28,255,255,255,22, +255,255,255,18,255,255,255,14,255,255,255,10,255,255,255,7,255,255,255,5,255,255,255,4,255,255,255,2,255,255,255,1, +113,113,113,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,14,14,0,231,231,231,1, +255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,11,255,255,255,14,255,255,255,18, +255,255,255,23,255,255,255,29,255,255,255,36,255,255,255,43,255,255,255,51,255,255,255,60,255,255,255,70,255,255,255,80, +255,255,255,96,246,246,246,134,71,71,71,223,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,2,2,2,255,3,3,3,255,4,4,4,255,4,4,4,255, +4,4,4,255,4,4,4,255,3,3,3,255,2,2,2,255,1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,32,32,32,238,208,208,208,148, +255,255,255,90,255,255,255,66,255,255,255,55,255,255,255,47,255,255,255,39,255,255,255,32,255,255,255,26,255,255,255,21, +255,255,255,16,255,255,255,12,255,255,255,9,255,255,255,7,255,255,255,5,255,255,255,3,255,255,255,2,247,247,247,1, +57,57,57,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,113,113,113,1, +255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,13,255,255,255,17, +255,255,255,21,255,255,255,26,255,255,255,32,255,255,255,39,255,255,255,47,255,255,255,55,255,255,255,64,255,255,255,75, +255,255,255,94,174,174,174,162,10,10,10,250,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255, +1,1,1,255,1,1,1,255,1,1,1,255,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,7,7,7,253, +63,63,63,237,45,45,45,241,5,5,5,253,0,0,0,255,0,0,0,255,15,15,15,248,168,168,168,169,254,254,254,100, +255,255,255,71,255,255,255,59,255,255,255,50,255,255,255,43,255,255,255,36,255,255,255,29,255,255,255,23,255,255,255,19, +255,255,255,15,255,255,255,11,255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2,231,231,231,1, +14,14,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,104,104,1, +255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,11,255,255,255,15, +255,255,255,19,255,255,255,23,255,255,255,29,255,255,255,36,255,255,255,43,255,255,255,50,255,255,255,59,255,255,255,68, +255,255,255,87,181,181,181,150,32,32,32,237,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,3,3,3,254,41,41,41,242,149,149,149,204, +244,244,244,168,237,237,237,165,136,136,136,198,36,36,36,238,8,8,8,250,119,119,119,191,251,251,251,110,255,255,255,76, +255,255,255,62,255,255,255,53,255,255,255,45,255,255,255,38,255,255,255,32,255,255,255,26,255,255,255,21,255,255,255,17, +255,255,255,13,255,255,255,9,255,255,255,7,255,255,255,5,255,255,255,3,255,255,255,2,255,255,255,1,113,113,113,1, +1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,104,104,1, +255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,7,255,255,255,10,255,255,255,13, +255,255,255,17,255,255,255,21,255,255,255,26,255,255,255,32,255,255,255,39,255,255,255,46,255,255,255,54,255,255,255,62, +255,255,255,74,254,254,254,100,208,208,208,151,61,61,61,224,4,4,4,253,0,0,0,255,0,0,0,255,0,0,0,255, +1,1,1,255,35,35,35,246,84,84,84,237,15,15,15,252,1,1,1,255,3,3,3,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,45,45,45,242,230,230,230,182,254,254,254,146, +255,255,255,128,255,255,255,122,254,254,254,125,228,228,228,142,154,154,154,163,243,243,243,113,255,255,255,80,255,255,255,64, +255,255,255,55,255,255,255,48,255,255,255,41,255,255,255,34,255,255,255,28,255,255,255,23,255,255,255,19,255,255,255,15, +255,255,255,11,255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2,247,247,247,1,57,57,57,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,104,104,1, +255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,4,255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,11, +255,255,255,15,255,255,255,19,255,255,255,23,255,255,255,29,255,255,255,35,255,255,255,41,255,255,255,49,255,255,255,56, +255,255,255,65,255,255,255,77,255,255,255,98,237,237,237,136,101,101,101,206,10,10,10,251,0,0,0,255,1,1,1,255, +46,46,46,238,205,205,205,192,238,238,238,194,34,34,34,247,19,19,19,252,88,88,88,243,3,3,3,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,57,57,57,234,246,246,246,155,255,255,255,123, +255,255,255,111,255,255,255,103,255,255,255,98,255,255,255,95,255,255,255,89,255,255,255,77,255,255,255,65,255,255,255,56, +255,255,255,49,255,255,255,42,255,255,255,36,255,255,255,31,255,255,255,25,255,255,255,20,255,255,255,16,255,255,255,13, +255,255,255,9,255,255,255,7,255,255,255,5,255,255,255,4,255,255,255,2,255,255,255,1,167,167,167,1,8,8,8,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,13,13,0,168,168,168,1, +255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,5,255,255,255,6,255,255,255,8,255,255,255,10, +255,255,255,13,255,255,255,17,255,255,255,21,255,255,255,26,255,255,255,31,255,255,255,37,255,255,255,44,255,255,255,51, +255,255,255,59,255,255,255,67,255,255,255,77,255,255,255,94,248,248,248,125,149,149,149,184,25,25,25,242,54,54,54,230, +214,214,214,170,255,255,255,150,207,207,207,184,12,12,12,251,46,46,46,244,195,195,195,215,13,13,13,252,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,63,63,63,228,247,247,247,142,255,255,255,110, +255,255,255,100,255,255,255,93,255,255,255,86,255,255,255,79,255,255,255,72,255,255,255,64,255,255,255,57,255,255,255,50, +255,255,255,44,255,255,255,38,255,255,255,32,255,255,255,27,255,255,255,22,255,255,255,18,255,255,255,14,255,255,255,11, +255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2,254,254,254,1,99,99,99,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,14,14,14,0,57,57,57,0,168,168,168,1,254,254,254,1, +255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,5,255,255,255,6,255,255,255,8,255,255,255,10, +255,255,255,12,255,255,255,15,255,255,255,19,255,255,255,23,255,255,255,28,255,255,255,34,255,255,255,40,255,255,255,46, +255,255,255,53,255,255,255,61,255,255,255,68,255,255,255,77,255,255,255,91,253,253,253,113,203,203,203,147,226,226,226,142, +255,255,255,125,255,255,255,133,149,149,149,195,5,5,5,253,68,68,68,232,237,237,237,185,47,47,47,239,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,68,68,68,219,248,248,248,128,255,255,255,99, +255,255,255,90,255,255,255,84,255,255,255,77,255,255,255,71,255,255,255,64,255,255,255,57,255,255,255,51,255,255,255,45, +255,255,255,39,255,255,255,33,255,255,255,28,255,255,255,24,255,255,255,20,255,255,255,16,255,255,255,12,255,255,255,9, +255,255,255,7,255,255,255,5,255,255,255,4,255,255,255,2,255,255,255,2,232,232,232,1,20,20,20,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,8,8,8,0,57,57,57,0,113,113,113,1,231,231,231,1,247,247,247,1,255,255,255,1,255,255,255,1, +255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,9, +255,255,255,12,255,255,255,14,255,255,255,18,255,255,255,22,255,255,255,26,255,255,255,30,255,255,255,36,255,255,255,42, +255,255,255,49,255,255,255,55,255,255,255,62,255,255,255,69,255,255,255,77,255,255,255,86,255,255,255,96,255,255,255,101, +255,255,255,106,253,253,253,129,99,99,99,210,1,1,1,255,91,91,91,217,250,250,250,158,105,105,105,209,8,8,8,251, +11,11,11,250,21,21,21,247,39,39,39,237,60,60,60,226,84,84,84,211,154,154,154,169,252,252,252,107,255,255,255,88, +255,255,255,81,255,255,255,76,255,255,255,69,255,255,255,63,255,255,255,57,255,255,255,51,255,255,255,45,255,255,255,40, +255,255,255,35,255,255,255,30,255,255,255,25,255,255,255,21,255,255,255,17,255,255,255,14,255,255,255,11,255,255,255,8, +255,255,255,6,255,255,255,5,255,255,255,3,255,255,255,2,254,254,254,1,108,108,108,1,1,1,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,0, +57,57,57,0,167,167,167,1,247,247,247,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,9, +255,255,255,11,255,255,255,14,255,255,255,16,255,255,255,20,255,255,255,24,255,255,255,28,255,255,255,33,255,255,255,39, +255,255,255,45,255,255,255,51,255,255,255,57,255,255,255,63,255,255,255,70,255,255,255,76,255,255,255,83,255,255,255,89, +255,255,255,98,246,246,246,132,58,58,58,227,2,2,2,254,118,118,118,202,255,255,255,134,214,214,214,146,170,170,170,171, +206,206,206,163,236,236,236,150,243,243,243,139,246,246,246,129,251,251,251,118,254,254,254,102,255,255,255,87,255,255,255,79, +255,255,255,73,255,255,255,68,255,255,255,62,255,255,255,56,255,255,255,51,255,255,255,46,255,255,255,40,255,255,255,36, +255,255,255,31,255,255,255,26,255,255,255,22,255,255,255,19,255,255,255,15,255,255,255,12,255,255,255,9,255,255,255,7, +255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2,240,240,240,1,21,21,21,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,20,20,20,0,161,161,161,1, +247,247,247,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,8,255,255,255,9, +255,255,255,11,255,255,255,13,255,255,255,16,255,255,255,19,255,255,255,23,255,255,255,26,255,255,255,31,255,255,255,36, +255,255,255,41,255,255,255,47,255,255,255,53,255,255,255,58,255,255,255,64,255,255,255,70,255,255,255,75,255,255,255,81, +255,255,255,93,238,238,238,138,27,27,27,242,4,4,4,253,146,146,146,185,255,255,255,116,255,255,255,105,255,255,255,107, +255,255,255,105,255,255,255,101,255,255,255,96,255,255,255,91,255,255,255,86,255,255,255,81,255,255,255,76,255,255,255,71, +255,255,255,66,255,255,255,61,255,255,255,56,255,255,255,51,255,255,255,46,255,255,255,41,255,255,255,36,255,255,255,32, +255,255,255,28,255,255,255,24,255,255,255,20,255,255,255,17,255,255,255,13,255,255,255,11,255,255,255,8,255,255,255,6, +255,255,255,5,255,255,255,3,255,255,255,2,255,255,255,1,167,167,167,1,8,8,8,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,63,63,63,0,232,232,232,1,254,254,254,1, +255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,10, +255,255,255,12,255,255,255,14,255,255,255,16,255,255,255,19,255,255,255,22,255,255,255,25,255,255,255,29,255,255,255,34, +255,255,255,38,255,255,255,43,255,255,255,49,255,255,255,54,255,255,255,59,255,255,255,64,255,255,255,69,255,255,255,75, +255,255,255,91,200,200,200,152,11,11,11,250,7,7,7,252,172,172,172,168,255,255,255,103,255,255,255,91,255,255,255,89, +255,255,255,87,255,255,255,85,255,255,255,82,255,255,255,79,255,255,255,76,255,255,255,72,255,255,255,68,255,255,255,64, +255,255,255,60,255,255,255,55,255,255,255,50,255,255,255,46,255,255,255,42,255,255,255,37,255,255,255,33,255,255,255,29, +255,255,255,26,255,255,255,22,255,255,255,18,255,255,255,15,255,255,255,12,255,255,255,10,255,255,255,8,255,255,255,6, +255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,1,104,104,104,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,63,63,63,0,239,239,239,1,255,255,255,1,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5, +255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,12,255,255,255,14,255,255,255,16,255,255,255,19,255,255,255,22,255,255,255,25,255,255,255,29,255,255,255,32, +255,255,255,37,255,255,255,41,255,255,255,46,255,255,255,50,255,255,255,55,255,255,255,60,255,255,255,64,255,255,255,70, +255,255,255,90,150,150,150,171,5,5,5,252,10,10,10,250,200,200,200,151,255,255,255,93,255,255,255,82,255,255,255,80, +255,255,255,79,255,255,255,77,255,255,255,75,255,255,255,72,255,255,255,69,255,255,255,65,255,255,255,62,255,255,255,58, +255,255,255,54,255,255,255,50,255,255,255,46,255,255,255,43,255,255,255,39,255,255,255,35,255,255,255,31,255,255,255,27, +255,255,255,24,255,255,255,20,255,255,255,17,255,255,255,14,255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,5, +255,255,255,4,255,255,255,3,255,255,255,2,247,247,247,1,57,57,57,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,56,56,56,0,239,239,239,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7, +255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,10,255,255,255,11,255,255,255,12, +255,255,255,13,255,255,255,15,255,255,255,17,255,255,255,20,252,252,252,25,255,255,255,26,255,255,255,28,255,255,255,32, +255,255,255,36,255,255,255,40,255,255,255,44,255,255,255,48,255,255,255,53,255,255,255,57,255,255,255,60,255,255,255,66, +255,255,255,91,114,114,114,189,1,1,1,254,15,15,15,248,227,227,227,136,255,255,255,85,255,255,255,75,255,255,255,74, +255,255,255,72,255,255,255,70,255,255,255,68,255,255,255,66,255,255,255,63,255,255,255,60,255,255,255,57,255,255,255,54, +255,255,255,50,255,255,255,47,255,255,255,43,255,255,255,40,255,255,255,37,255,255,255,33,255,255,255,29,255,255,255,26, +255,255,255,23,255,255,255,19,255,255,255,16,255,255,255,13,255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,5, +255,255,255,4,255,255,255,3,255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,13,13,13,0,168,168,168,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,8, +255,255,255,9,255,255,255,10,255,255,255,10,255,255,255,11,255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,14, +255,255,255,15,255,255,255,17,255,255,255,19,247,247,247,28,173,173,173,53,251,251,251,34,255,255,255,30,255,255,255,32, +255,255,255,36,255,255,255,39,255,255,255,43,255,255,255,47,255,255,255,51,255,255,255,54,255,255,255,58,255,255,255,64, +251,251,251,95,85,85,85,203,0,0,0,255,25,25,25,241,240,240,240,123,255,255,255,78,255,255,255,69,255,255,255,68, +255,255,255,67,255,255,255,65,255,255,255,64,255,255,255,61,255,255,255,59,255,255,255,56,255,255,255,53,255,255,255,50, +255,255,255,47,255,255,255,45,255,255,255,41,255,255,255,38,255,255,255,36,255,255,255,35,255,255,255,35,255,255,255,33, +255,255,255,27,255,255,255,20,255,255,255,16,255,255,255,13,255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,5, +255,255,255,4,255,255,255,2,255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,1,1,0,108,108,108,1,254,254,254,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,3, +255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10,255,255,255,10, +255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,13,255,255,255,14,255,255,255,15,255,255,255,16,255,255,255,16, +255,255,255,17,255,255,255,19,255,255,255,22,252,252,252,35,134,134,134,102,240,240,240,54,255,255,255,35,255,255,255,34, +250,250,250,39,255,255,255,41,255,255,255,43,255,255,255,47,255,255,255,49,255,255,255,53,255,255,255,56,255,255,255,63, +247,247,247,99,64,64,64,214,0,0,0,255,39,39,39,231,243,243,243,113,255,255,255,72,255,255,255,65,255,255,255,64, +255,255,255,63,255,255,255,62,255,255,255,60,255,255,255,58,255,255,255,55,255,255,255,53,255,255,255,51,255,255,255,48, +255,255,255,46,255,255,255,43,255,255,255,42,255,255,255,43,255,255,255,50,252,252,252,63,240,240,240,75,181,181,181,87, +174,174,174,67,251,251,251,24,255,255,255,16,255,255,255,13,255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,5, +255,255,255,4,255,255,255,2,255,255,255,1,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,20,20,20,0,232,232,232,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4, +255,255,255,5,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,13, +255,255,255,13,255,255,255,14,255,255,255,15,255,255,255,16,255,255,255,17,255,255,255,17,255,255,255,18,255,255,255,19, +255,255,255,20,255,255,255,22,255,255,255,25,255,255,255,40,129,129,129,132,186,186,186,93,255,255,255,44,253,253,253,39, +192,192,192,61,247,247,247,50,255,255,255,45,255,255,255,47,255,255,255,49,255,255,255,52,255,255,255,55,255,255,255,63, +244,244,244,104,47,47,47,224,0,0,0,255,54,54,54,221,245,245,245,105,255,255,255,68,255,255,255,62,255,255,255,61, +255,255,255,60,255,255,255,58,255,255,255,57,255,255,255,55,255,255,255,53,255,255,255,51,255,255,255,49,255,255,255,47, +255,255,255,45,255,255,255,46,255,255,255,55,249,249,249,78,194,194,194,122,95,95,95,180,43,43,43,214,101,101,101,155, +223,223,223,54,254,254,254,23,255,255,255,16,255,255,255,13,255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,5, +255,255,255,4,255,255,255,2,255,255,255,1,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,1,1,0,108,108,108,1,254,254,254,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5, +251,251,251,9,254,254,254,12,255,255,255,14,255,255,255,13,255,255,255,12,255,255,255,12,255,255,255,14,255,255,255,15, +255,255,255,16,255,255,255,17,255,255,255,18,255,255,255,19,255,255,255,20,255,255,255,20,255,255,255,21,255,255,255,22, +255,255,255,24,255,255,255,25,255,255,255,28,255,255,255,44,138,138,138,130,117,117,117,152,254,254,254,58,255,255,255,44, +183,183,183,78,190,190,190,84,255,255,255,52,255,255,255,48,255,255,255,50,255,255,255,52,255,255,255,55,255,255,255,64, +242,242,242,110,34,34,34,233,0,0,0,255,69,69,69,211,248,248,248,98,255,255,255,65,255,255,255,60,255,255,255,59, +255,255,255,58,255,255,255,57,255,255,255,55,255,255,255,54,255,255,255,53,255,255,255,51,255,255,255,49,255,255,255,48, +255,255,255,52,254,254,254,69,217,217,217,113,86,86,86,193,15,15,15,244,7,7,7,250,110,110,110,168,246,246,246,66, +255,255,255,32,255,255,255,20,255,255,255,16,255,255,255,13,255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,5, +255,255,255,4,255,255,255,2,255,255,255,1,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +14,14,14,0,231,231,231,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,7, +204,204,204,20,163,163,163,50,237,237,237,42,254,254,254,32,255,255,255,23,255,255,255,18,255,255,255,16,255,255,255,17, +255,255,255,18,255,255,255,20,255,255,255,21,255,255,255,22,255,255,255,23,255,255,255,24,255,255,255,25,255,255,255,26, +255,255,255,27,255,255,255,28,255,255,255,31,255,255,255,46,168,168,168,120,57,57,57,203,244,244,244,80,255,255,255,51, +238,238,238,71,118,118,118,139,249,249,249,68,255,255,255,53,255,255,255,51,255,255,255,53,255,255,255,56,255,255,255,66, +239,239,239,116,23,23,23,242,0,0,0,255,85,85,85,202,251,251,251,92,255,255,255,64,255,255,255,59,255,255,255,59, +255,255,255,58,255,255,255,57,255,255,255,55,255,255,255,54,255,255,255,53,255,255,255,51,255,255,255,50,255,255,255,57, +250,250,250,83,161,161,161,149,33,33,33,231,2,2,2,254,2,2,2,254,85,85,85,193,245,245,245,80,255,255,255,38, +255,255,255,24,255,255,255,19,255,255,255,16,255,255,255,13,255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,5, +255,255,255,4,255,255,255,2,255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +21,21,21,0,240,240,240,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,8, +252,252,252,15,190,190,190,54,87,87,87,143,135,135,135,125,235,235,235,70,254,254,254,43,255,255,255,29,255,255,255,23, +255,255,255,22,255,255,255,22,255,255,255,24,255,255,255,25,255,255,255,26,255,255,255,27,255,255,255,28,255,255,255,30, +255,255,255,31,255,255,255,32,255,255,255,34,255,255,255,47,213,213,213,106,27,27,27,236,202,202,202,117,255,255,255,60, +250,250,250,68,104,104,104,162,209,209,209,102,255,255,255,62,255,255,255,54,255,255,255,55,255,255,255,57,255,255,255,69, +228,228,228,125,15,15,15,247,0,0,0,255,103,103,103,193,254,254,254,88,255,255,255,63,255,255,255,59,255,255,255,59, +255,255,255,58,255,255,255,57,255,255,255,55,255,255,255,54,255,255,255,53,255,255,255,53,255,255,255,60,247,247,247,91, +121,121,121,173,13,13,13,246,9,9,9,253,18,18,18,252,37,37,37,228,223,223,223,106,255,255,255,46,255,255,255,28, +255,255,255,23,255,255,255,20,255,255,255,16,255,255,255,14,255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,5, +255,255,255,4,255,255,255,3,255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +99,99,99,1,254,254,254,1,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,5,255,255,255,6,255,255,255,8, +255,255,255,11,254,254,254,24,221,221,221,65,78,78,78,177,44,44,44,212,140,140,140,143,240,240,240,78,255,255,255,46, +255,255,255,32,255,255,255,27,255,255,255,27,255,255,255,28,255,255,255,30,255,255,255,31,255,255,255,32,255,255,255,34, +255,255,255,35,255,255,255,36,255,255,255,38,255,255,255,48,239,239,239,97,29,29,29,234,119,119,119,171,254,254,254,75, +255,255,255,68,143,143,143,143,115,115,115,164,253,253,253,77,255,255,255,59,255,255,255,58,255,255,255,60,255,255,255,73, +205,205,205,136,11,11,11,249,1,1,1,254,118,118,118,185,255,255,255,86,255,255,255,64,255,255,255,61,255,255,255,60, +255,255,255,59,255,255,255,58,255,255,255,56,255,255,255,56,255,255,255,55,255,255,255,62,248,248,248,91,118,118,118,177, +8,8,8,249,19,19,19,248,114,114,114,223,25,25,25,246,145,145,145,156,254,254,254,63,255,255,255,34,255,255,255,27, +255,255,255,24,255,255,255,20,255,255,255,17,255,255,255,14,255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,5, +255,255,255,4,255,255,255,3,255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +104,104,104,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,8, +255,255,255,10,255,255,255,14,255,255,255,28,241,241,241,67,100,100,100,169,14,14,14,243,52,52,52,212,172,172,172,131, +248,248,248,72,255,255,255,45,255,255,255,35,255,255,255,32,255,255,255,33,255,255,255,35,255,255,255,36,255,255,255,38, +255,255,255,39,255,255,255,41,255,255,255,42,255,255,255,50,244,244,244,90,49,49,49,218,49,49,49,220,243,243,243,100, +255,255,255,71,213,213,213,114,53,53,53,214,238,238,238,102,255,255,255,67,255,255,255,62,255,255,255,63,255,255,255,77, +184,184,184,147,9,9,9,250,3,3,3,253,131,131,131,177,255,255,255,85,255,255,255,65,255,255,255,63,255,255,255,62, +255,255,255,61,255,255,255,60,255,255,255,59,255,255,255,58,255,255,255,64,251,251,251,90,135,135,135,170,10,10,10,249, +17,17,17,246,158,158,158,191,84,84,84,220,41,41,41,225,238,238,238,96,255,255,255,46,255,255,255,32,255,255,255,28, +255,255,255,24,255,255,255,21,255,255,255,17,255,255,255,14,255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,5, +255,255,255,4,255,255,255,3,255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +104,104,104,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,7,255,255,255,9, +255,255,255,10,255,255,255,13,255,255,255,17,255,255,255,30,247,247,247,66,127,127,127,157,14,14,14,245,12,12,12,246, +85,85,85,191,214,214,214,109,254,254,254,63,255,255,255,44,255,255,255,39,255,255,255,39,255,255,255,41,255,255,255,42, +255,255,255,43,255,255,255,45,255,255,255,47,255,255,255,52,251,251,251,83,84,84,84,198,11,11,11,248,189,189,189,140, +255,255,255,79,243,243,243,100,53,53,53,215,169,169,169,144,255,255,255,78,255,255,255,66,255,255,255,66,255,255,255,82, +167,167,167,158,7,7,7,251,4,4,4,253,145,145,145,171,255,255,255,85,255,255,255,67,255,255,255,65,255,255,255,64, +255,255,255,63,255,255,255,62,255,255,255,62,255,255,255,65,254,254,254,87,162,162,162,158,15,15,15,245,10,10,10,249, +142,142,142,184,191,191,191,168,18,18,18,245,117,117,117,173,253,253,253,69,255,255,255,40,255,255,255,33,255,255,255,29, +255,255,255,25,255,255,255,21,255,255,255,18,255,255,255,15,255,255,255,12,255,255,255,9,255,255,255,7,255,255,255,6, +255,255,255,4,255,255,255,3,255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +104,104,104,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,7,255,255,255,9, +255,255,255,11,255,255,255,13,255,255,255,16,255,255,255,20,255,255,255,31,250,250,250,64,150,150,150,148,18,18,18,241, +2,2,2,254,30,30,30,232,150,150,150,153,247,247,247,84,255,255,255,55,255,255,255,45,255,255,255,45,255,255,255,46, +255,255,255,48,255,255,255,50,255,255,255,51,255,255,255,55,255,255,255,78,126,126,126,175,4,4,4,253,102,102,102,190, +253,253,253,94,252,252,252,94,94,94,94,191,95,95,95,191,252,252,252,94,255,255,255,72,255,255,255,70,255,255,255,87, +152,152,152,168,5,5,5,252,6,6,6,252,158,158,158,164,255,255,255,86,255,255,255,70,255,255,255,68,255,255,255,67, +255,255,255,66,255,255,255,66,255,255,255,67,255,255,255,84,192,192,192,143,26,26,26,239,5,5,5,252,109,109,109,193, +242,242,242,134,79,79,79,208,20,20,20,241,212,212,212,118,255,255,255,55,255,255,255,38,255,255,255,33,255,255,255,30, +255,255,255,26,255,255,255,22,255,255,255,18,255,255,255,15,255,255,255,12,255,255,255,10,255,255,255,8,255,255,255,6, +255,255,255,4,255,255,255,3,255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +104,104,104,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,9, +255,255,255,11,255,255,255,14,255,255,255,16,255,255,255,19,255,255,255,23,255,255,255,34,252,252,252,64,164,164,164,143, +21,21,21,240,0,0,0,255,9,9,9,249,90,90,90,192,231,231,231,105,255,255,255,65,255,255,255,52,255,255,255,51, +255,255,255,52,255,255,255,54,255,255,255,56,255,255,255,59,255,255,255,74,181,181,181,147,9,9,9,250,43,43,43,228, +242,242,242,116,255,255,255,93,145,145,145,165,43,43,43,226,241,241,241,115,255,255,255,80,255,255,255,75,255,255,255,93, +139,139,139,177,4,4,4,253,7,7,7,251,172,172,172,159,255,255,255,88,255,255,255,74,255,255,255,72,255,255,255,71, +255,255,255,70,255,255,255,71,255,255,255,83,221,221,221,129,44,44,44,228,2,2,2,254,75,75,75,210,242,242,242,124, +201,201,201,146,16,16,16,245,77,77,77,202,249,249,249,86,255,255,255,48,255,255,255,39,255,255,255,34,255,255,255,30, +255,255,255,26,255,255,255,22,255,255,255,19,255,255,255,15,255,255,255,12,255,255,255,10,255,255,255,8,255,255,255,6, +255,255,255,4,255,255,255,3,255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +104,104,104,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,10, +255,255,255,12,255,255,255,14,255,255,255,17,255,255,255,20,255,255,255,23,255,255,255,27,255,255,255,37,253,253,253,66, +168,168,168,144,21,21,21,240,0,0,0,255,3,3,3,253,58,58,58,216,214,214,214,122,255,255,255,74,255,255,255,59, +255,255,255,57,255,255,255,59,255,255,255,61,255,255,255,63,255,255,255,73,237,237,237,121,28,28,28,239,12,12,12,249, +197,197,197,148,255,255,255,98,206,206,206,140,24,24,24,242,191,191,191,148,255,255,255,91,255,255,255,81,255,255,255,99, +128,128,128,185,3,3,3,254,9,9,9,251,186,186,186,155,255,255,255,90,255,255,255,77,255,255,255,76,255,255,255,75, +255,255,255,75,255,255,255,82,243,243,243,117,74,74,74,211,2,2,2,254,43,43,43,229,222,222,222,133,251,251,251,110, +100,100,100,194,8,8,8,250,164,164,164,151,255,255,255,68,255,255,255,46,255,255,255,40,255,255,255,35,255,255,255,31, +255,255,255,27,255,255,255,23,255,255,255,19,255,255,255,16,255,255,255,13,255,255,255,10,255,255,255,8,255,255,255,6, +255,255,255,4,255,255,255,3,255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +104,104,104,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,10, +255,255,255,12,255,255,255,14,255,255,255,17,255,255,255,20,255,255,255,24,255,255,255,27,255,255,255,31,255,255,255,41, +253,253,253,71,162,162,162,151,16,16,16,244,0,0,0,255,1,1,1,254,45,45,45,225,205,205,205,132,254,254,254,81, +255,255,255,66,255,255,255,64,255,255,255,66,255,255,255,68,255,255,255,74,248,248,248,107,70,70,70,213,2,2,2,254, +117,117,117,190,254,254,254,110,241,241,241,126,37,37,37,233,118,118,118,188,254,254,254,104,255,255,255,87,255,255,255,105, +117,117,117,193,1,1,1,254,10,10,10,250,200,200,200,152,255,255,255,93,255,255,255,82,255,255,255,80,255,255,255,81, +239,239,239,91,249,249,249,110,120,120,120,188,5,5,5,252,20,20,20,244,186,186,186,155,247,247,247,104,217,217,217,133, +30,30,30,237,33,33,33,233,237,237,237,110,255,255,255,59,255,255,255,46,255,255,255,42,254,254,254,38,255,255,255,32, +255,255,255,28,255,255,255,23,255,255,255,19,255,255,255,16,255,255,255,13,255,255,255,10,255,255,255,8,255,255,255,6, +255,255,255,4,255,255,255,3,255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +104,104,104,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,10, +255,255,255,12,255,255,255,15,255,255,255,18,255,255,255,21,255,255,255,24,255,255,255,28,255,255,255,32,255,255,255,36, +255,255,255,47,251,251,251,79,139,139,139,166,10,10,10,249,0,0,0,255,1,1,1,255,42,42,42,229,205,205,205,137, +255,255,255,87,255,255,255,73,255,255,255,71,255,255,255,73,255,255,255,77,255,255,255,98,130,130,130,184,3,3,3,253, +51,51,51,227,244,244,244,129,248,248,248,122,71,71,71,214,58,58,58,222,246,246,246,123,255,255,255,96,255,255,255,111, +108,108,108,200,0,0,0,255,12,12,12,250,214,214,214,150,255,255,255,97,255,255,255,86,255,255,255,87,247,247,247,95, +215,215,215,121,175,175,175,167,16,16,16,246,7,7,7,251,134,134,134,183,250,250,250,111,206,206,206,121,139,139,139,178, +6,6,6,252,93,93,93,196,252,252,252,88,255,255,255,55,255,255,255,49,247,247,247,50,215,215,215,54,255,255,255,35, +255,255,255,28,255,255,255,24,255,255,255,20,255,255,255,16,255,255,255,13,255,255,255,10,255,255,255,8,255,255,255,6, +255,255,255,4,255,255,255,3,255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +104,104,104,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,10, +255,255,255,12,255,255,255,15,255,255,255,18,255,255,255,21,255,255,255,25,255,255,255,29,255,255,255,33,255,255,255,37, +255,255,255,42,255,255,255,55,248,248,248,92,108,108,108,186,5,5,5,252,0,0,0,255,1,1,1,255,44,44,44,229, +209,209,209,140,255,255,255,93,255,255,255,80,255,255,255,78,255,255,255,81,255,255,255,94,205,205,205,151,13,13,13,249, +14,14,14,248,206,206,206,156,254,254,254,123,118,118,118,194,20,20,20,245,220,220,220,148,255,255,255,106,254,254,254,118, +98,98,98,206,0,0,0,255,14,14,14,249,228,228,228,148,255,255,255,100,255,255,255,92,255,255,255,97,197,197,197,131, +204,204,204,157,39,39,39,235,2,2,2,254,84,84,84,210,245,245,245,125,221,221,221,116,188,188,188,148,56,56,56,224, +9,9,9,250,175,175,175,151,255,255,255,75,255,255,255,55,255,255,255,53,204,204,204,75,165,165,165,87,255,255,255,40, +255,255,255,29,255,255,255,24,255,255,255,20,255,255,255,17,255,255,255,13,255,255,255,10,255,255,255,8,255,255,255,6, +255,255,255,4,255,255,255,3,255,255,255,2,247,247,247,1,57,57,57,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +57,57,57,0,247,247,247,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,10, +255,255,255,12,255,255,255,15,255,255,255,18,255,255,255,21,255,255,255,25,255,255,255,29,255,255,255,34,255,255,255,38, +255,255,255,43,255,255,255,48,255,255,255,64,241,241,241,108,70,70,70,212,1,1,1,254,0,0,0,255,1,1,1,255, +45,45,45,229,210,210,210,144,255,255,255,100,255,255,255,87,255,255,255,86,255,255,255,94,244,244,244,130,49,49,49,230, +3,3,3,254,125,125,125,195,254,254,254,131,171,171,171,174,12,12,12,249,146,146,146,184,255,255,255,118,252,252,252,125, +90,90,90,211,0,0,0,255,17,17,17,248,237,237,237,148,255,255,255,105,255,255,255,100,242,242,242,118,163,163,163,173, +83,83,83,218,2,2,2,254,44,44,44,232,226,226,226,143,249,249,249,113,155,155,155,154,181,181,181,170,12,12,12,250, +41,41,41,230,240,240,240,114,255,255,255,68,255,255,255,56,255,255,255,61,159,159,159,112,149,149,149,113,255,255,255,45, +255,255,255,30,255,255,255,25,255,255,255,21,255,255,255,17,255,255,255,13,255,255,255,11,255,255,255,8,255,255,255,6, +255,255,255,5,255,255,255,3,255,255,255,2,255,255,255,1,104,104,104,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +15,15,15,0,238,238,238,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,10, +255,255,255,12,255,255,255,15,255,255,255,18,255,255,255,22,255,255,255,26,255,255,255,30,255,255,255,34,255,255,255,39, +255,255,255,44,255,255,255,49,255,255,255,56,255,255,255,76,213,213,213,133,33,33,33,236,1,1,1,255,14,14,14,254, +3,3,3,254,47,47,47,229,212,212,212,148,255,255,255,106,255,255,255,94,255,255,255,96,253,253,253,119,110,110,110,201, +2,2,2,254,57,57,57,228,246,246,246,145,227,227,227,157,20,20,20,246,80,80,80,216,250,250,250,134,251,251,251,134, +83,83,83,216,0,0,0,255,21,21,21,246,239,239,239,149,255,255,255,111,255,255,255,114,172,172,172,164,121,121,121,211, +9,9,9,252,17,17,17,247,183,183,183,169,254,254,254,119,187,187,187,141,166,166,166,167,98,98,98,208,3,3,3,253, +114,114,114,189,253,253,253,94,255,255,255,65,255,255,255,58,255,255,255,69,129,129,129,149,143,143,143,130,255,255,255,49, +255,255,255,31,255,255,255,25,255,255,255,21,255,255,255,17,255,255,255,14,255,255,255,11,255,255,255,8,255,255,255,6, +255,255,255,5,255,255,255,3,255,255,255,2,255,255,255,1,104,104,104,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +15,15,15,0,238,238,238,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,10, +255,255,255,12,255,255,255,15,255,255,255,19,255,255,255,22,255,255,255,26,255,255,255,31,255,255,255,35,255,255,255,41, +255,255,255,46,255,255,255,51,255,255,255,56,255,255,255,65,254,254,254,91,156,156,156,169,10,10,10,250,19,19,19,253, +51,51,51,249,4,4,4,254,49,49,49,229,217,217,217,150,255,255,255,111,255,255,255,102,255,255,255,113,191,191,191,169, +11,11,11,251,15,15,15,249,207,207,207,171,246,246,246,152,56,56,56,230,35,35,35,239,240,240,240,152,250,250,250,143, +78,78,78,220,0,0,0,255,26,26,26,244,240,240,240,151,255,255,255,120,243,243,243,137,109,109,109,212,33,33,33,245, +4,4,4,253,114,114,114,202,251,251,251,131,242,242,242,125,114,114,114,186,220,220,220,163,32,32,32,240,16,16,16,247, +206,206,206,146,249,249,249,86,255,255,255,65,255,255,255,63,251,251,251,83,88,88,88,186,145,145,145,138,255,255,255,52, +255,255,255,32,255,255,255,26,255,255,255,22,255,255,255,18,255,255,255,15,255,255,255,11,255,255,255,9,255,255,255,7, +255,255,255,5,255,255,255,3,255,255,255,2,255,255,255,1,104,104,104,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +57,57,57,0,247,247,247,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,10, +255,255,255,12,255,255,255,15,255,255,255,19,255,255,255,23,255,255,255,27,255,255,255,32,255,255,255,36,255,255,255,42, +254,254,254,49,251,251,251,57,255,255,255,60,255,255,255,65,255,255,255,77,247,247,247,114,83,83,83,209,2,2,2,254, +62,62,62,245,67,67,67,242,4,4,4,254,57,57,57,227,226,226,226,150,255,255,255,117,255,255,255,114,243,243,243,146, +45,45,45,235,2,2,2,254,119,119,119,206,252,252,252,154,111,111,111,209,13,13,13,250,197,197,197,176,249,249,249,152, +74,74,74,223,0,0,0,255,29,29,29,243,241,241,241,156,255,255,255,133,173,173,173,179,42,42,42,244,3,3,3,254, +47,47,47,233,235,235,235,151,254,254,254,126,149,149,149,170,152,152,152,181,152,152,152,192,6,6,6,253,66,66,66,220, +213,213,213,134,238,238,238,88,255,255,255,68,255,255,255,69,239,239,239,105,43,43,43,222,161,161,161,133,255,255,255,52, +255,255,255,33,255,255,255,27,255,255,255,23,255,255,255,19,255,255,255,15,255,255,255,12,255,255,255,9,255,255,255,7, +255,255,255,5,255,255,255,4,255,255,255,2,255,255,255,1,167,167,167,1,8,8,8,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +104,104,104,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,10, +255,255,255,13,255,255,255,16,255,255,255,19,255,255,255,23,255,255,255,28,255,255,255,32,255,255,255,38,255,255,255,44, +247,247,247,57,185,185,185,89,253,253,253,71,255,255,255,70,252,252,252,77,255,255,255,94,214,214,214,146,29,29,29,240, +7,7,7,254,128,128,128,228,61,61,61,239,3,3,3,254,71,71,71,222,238,238,238,149,255,255,255,124,253,253,253,136, +113,113,113,207,2,2,2,254,47,47,47,236,242,242,242,167,180,180,180,189,12,12,12,251,131,131,131,204,248,248,248,164, +72,72,72,227,0,0,0,255,32,32,32,243,242,242,242,161,249,249,249,151,75,75,75,223,5,5,5,254,9,9,9,251, +167,167,167,186,255,255,255,134,225,225,225,145,84,84,84,211,229,229,229,166,63,63,63,228,6,6,6,252,151,151,151,187, +164,164,164,148,247,247,247,89,255,255,255,72,255,255,255,82,168,168,168,151,21,21,21,242,205,205,205,116,255,255,255,50, +255,255,255,34,255,255,255,28,255,255,255,23,255,255,255,19,255,255,255,15,255,255,255,12,255,255,255,9,255,255,255,7, +255,255,255,5,255,255,255,4,255,255,255,2,255,255,255,2,238,238,238,1,15,15,15,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +104,104,104,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,10, +255,255,255,13,255,255,255,16,255,255,255,20,255,255,255,24,255,255,255,29,255,255,255,34,255,255,255,39,255,255,255,45, +253,253,253,60,150,150,150,124,201,201,201,109,254,254,254,83,213,213,213,96,243,243,243,96,253,253,253,115,133,133,133,189, +5,5,5,253,30,30,30,247,184,184,184,211,47,47,47,241,4,4,4,253,95,95,95,214,246,246,246,150,255,255,255,137, +205,205,205,176,16,16,16,249,10,10,10,252,182,182,182,192,237,237,237,176,30,30,30,244,76,76,76,227,243,243,243,177, +70,70,70,230,0,0,0,255,34,34,34,243,242,242,242,169,216,216,216,177,19,19,19,248,0,0,0,255,69,69,69,227, +246,246,246,152,251,251,251,140,112,112,112,198,141,141,141,194,187,187,187,186,12,12,12,250,38,38,38,240,196,196,196,173, +149,149,149,157,254,254,254,89,255,255,255,80,245,245,245,109,64,64,64,213,38,38,38,227,242,242,242,95,255,255,255,47, +255,255,255,34,255,255,255,29,255,255,255,24,255,255,255,20,255,255,255,16,255,255,255,13,255,255,255,10,255,255,255,8, +255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2,240,240,240,1,21,21,21,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,0, +167,167,167,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,5,255,255,255,6,255,255,255,8,255,255,255,11, +255,255,255,13,255,255,255,17,255,255,255,21,255,255,255,25,255,255,255,30,255,255,255,35,255,255,255,40,255,255,255,47, +255,255,255,60,219,219,219,100,91,91,91,184,237,237,237,112,237,237,237,104,165,165,165,135,251,251,251,112,240,240,240,141, +55,55,55,229,2,2,2,255,80,80,80,232,194,194,194,203,32,32,32,245,8,8,8,252,126,126,126,205,250,250,250,154, +247,247,247,160,67,67,67,230,1,1,1,255,90,90,90,224,245,245,245,178,76,76,76,228,33,33,33,245,233,233,233,191, +70,70,70,233,0,0,0,255,36,36,36,243,242,242,242,181,129,129,129,211,3,3,3,254,12,12,12,251,186,186,186,186, +255,255,255,145,198,198,198,169,62,62,62,228,228,228,228,175,79,79,79,224,4,4,4,254,123,123,123,211,116,116,116,201, +203,203,203,133,255,255,255,91,254,254,254,98,155,155,155,167,9,9,9,249,99,99,99,188,252,252,252,78,255,255,255,45, +255,255,255,35,255,255,255,30,255,255,255,25,255,255,255,21,255,255,255,17,255,255,255,13,255,255,255,10,255,255,255,8, +255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2,254,254,254,1,99,99,99,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,57,57,57,0, +247,247,247,1,255,255,255,2,255,255,255,2,255,255,255,4,255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,11, +255,255,255,14,255,255,255,18,255,255,255,22,252,252,252,30,251,251,251,38,255,255,255,41,255,255,255,43,255,255,255,48, +255,255,255,58,252,252,252,83,114,114,114,173,100,100,100,190,245,245,245,125,161,161,161,155,184,184,184,147,254,254,254,128, +181,181,181,177,14,14,14,249,8,8,8,253,149,149,149,212,175,175,175,204,19,19,19,249,14,14,14,250,162,162,162,197, +253,253,253,165,156,156,156,203,6,6,6,253,27,27,27,247,227,227,227,191,137,137,137,213,14,14,14,251,189,189,189,210, +71,71,71,237,0,0,0,255,37,37,37,245,234,234,234,195,59,59,59,237,0,0,0,255,71,71,71,229,247,247,247,162, +246,246,246,157,79,79,79,220,133,133,133,206,189,189,189,194,14,14,14,250,33,33,33,245,181,181,181,198,83,83,83,209, +245,245,245,118,255,255,255,101,218,218,218,139,35,35,35,234,13,13,13,247,193,193,193,136,255,255,255,64,255,255,255,44, +255,255,255,37,255,255,255,31,255,255,255,26,255,255,255,22,255,255,255,18,255,255,255,14,255,255,255,11,255,255,255,8, +255,255,255,7,255,255,255,5,255,255,255,3,255,255,255,2,255,255,255,1,167,167,167,1,8,8,8,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,113,113,113,1, +255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,10,255,255,255,12, +255,255,255,15,255,255,255,19,255,255,255,24,231,231,231,42,148,148,148,91,240,240,240,69,255,255,255,58,255,255,255,55, +255,255,255,59,255,255,255,73,231,231,231,115,56,56,56,218,119,119,119,191,233,233,233,149,101,101,101,199,221,221,221,147, +250,250,250,147,101,101,101,213,3,3,3,254,33,33,33,244,219,219,219,193,143,143,143,211,10,10,10,252,27,27,27,246, +195,195,195,194,236,236,236,188,36,36,36,244,4,4,4,254,140,140,140,216,209,209,209,201,17,17,17,251,125,125,125,229, +73,73,73,240,0,0,0,255,37,37,37,247,203,203,203,214,16,16,16,251,9,9,9,252,173,173,173,197,254,254,254,160, +164,164,164,192,47,47,47,239,223,223,223,189,71,71,71,231,5,5,5,254,125,125,125,221,84,84,84,226,147,147,147,176, +255,255,255,115,245,245,245,127,76,76,76,213,2,2,2,254,70,70,70,211,247,247,247,98,255,255,255,57,255,255,255,44, +255,255,255,38,255,255,255,32,255,255,255,27,255,255,255,23,255,255,255,19,255,255,255,15,255,255,255,12,255,255,255,9, +255,255,255,7,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2,247,247,247,1,57,57,57,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,20,20,0,232,232,232,1, +255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,5,255,255,255,6,255,255,255,8,255,255,255,10,255,255,255,13, +255,255,255,16,255,255,255,20,255,255,255,25,254,254,254,38,180,180,180,96,85,85,85,175,195,195,195,116,252,252,252,82, +255,255,255,70,255,255,255,72,255,255,255,91,187,187,187,149,32,32,32,238,126,126,126,201,168,168,168,190,89,89,89,212, +239,239,239,156,228,228,228,172,39,39,39,240,2,2,2,254,97,97,97,224,243,243,243,185,107,107,107,222,5,5,5,254, +46,46,46,241,222,222,222,199,111,111,111,227,2,2,2,255,58,58,58,240,234,234,234,201,46,46,46,243,71,71,71,243, +72,72,72,244,0,0,0,255,36,36,36,250,127,127,127,235,4,4,4,254,49,49,49,239,242,242,242,178,236,236,236,175, +51,51,51,236,125,125,125,217,168,168,168,207,10,10,10,252,44,44,44,244,146,146,146,219,50,50,50,232,235,235,235,144, +253,253,253,128,139,139,139,187,7,7,7,252,12,12,12,248,180,180,180,151,255,255,255,77,255,255,255,54,255,255,255,45, +255,255,255,39,255,255,255,33,255,255,255,28,255,255,255,24,255,255,255,19,255,255,255,16,255,255,255,12,255,255,255,10, +255,255,255,8,255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,1,168,168,168,1,13,13,13,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,0,161,161,161,1,254,254,254,1, +255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,11,255,255,255,14, +255,255,255,18,255,255,255,22,255,255,255,26,255,255,255,34,253,253,253,57,157,157,157,133,41,41,41,222,115,115,115,175, +232,232,232,116,254,254,254,92,255,255,255,90,252,252,252,110,140,140,140,181,19,19,19,247,123,123,123,215,98,98,98,225, +93,93,93,215,241,241,241,172,154,154,154,205,8,8,8,253,14,14,14,251,181,181,181,202,240,240,240,187,73,73,73,233, +3,3,3,254,76,76,76,237,198,198,198,218,17,17,17,252,12,12,12,252,192,192,192,214,97,97,97,232,29,29,29,251, +70,70,70,248,0,0,0,255,29,29,29,252,63,63,63,249,3,3,3,254,129,129,129,216,252,252,252,177,126,126,126,212, +37,37,37,245,215,215,215,203,54,54,54,239,8,8,8,254,136,136,136,228,43,43,43,243,129,129,129,197,253,253,253,142, +185,185,185,172,22,22,22,244,2,2,2,254,83,83,83,206,248,248,248,105,255,255,255,67,255,255,255,54,255,255,255,47, +255,255,255,40,255,255,255,34,255,255,255,29,255,255,255,24,255,255,255,20,255,255,255,16,255,255,255,13,255,255,255,10, +255,255,255,8,255,255,255,6,255,255,255,5,255,255,255,3,255,255,255,2,255,255,255,2,254,254,254,1,108,108,108,1, +1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,57,57,57,0,247,247,247,1,255,255,255,1, +255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,10,255,255,255,12,255,255,255,16, +255,255,255,19,255,255,255,23,255,255,255,27,255,255,255,32,255,255,255,44,252,252,252,71,172,172,172,139,35,35,35,229, +40,40,40,228,145,145,145,171,240,240,240,125,255,255,255,112,247,247,247,132,98,98,98,207,13,13,13,251,108,108,108,230, +56,56,56,243,89,89,89,223,229,229,229,193,73,73,73,235,1,1,1,255,46,46,46,241,227,227,227,192,223,223,223,194, +45,45,45,242,6,6,6,254,114,114,114,236,71,71,71,245,1,1,1,255,97,97,97,234,163,163,163,224,14,14,14,253, +45,45,45,252,0,0,0,255,16,16,16,255,14,14,14,254,20,20,20,250,219,219,219,197,216,216,216,193,31,31,31,245, +117,117,117,226,143,143,143,221,7,7,7,253,63,63,63,244,90,90,90,238,38,38,38,240,230,230,230,169,208,208,208,173, +36,36,36,238,1,1,1,255,39,39,39,233,219,219,219,136,255,255,255,83,255,255,255,63,255,255,255,55,255,255,255,48, +255,255,255,42,255,255,255,36,255,255,255,30,255,255,255,26,255,255,255,21,255,255,255,17,255,255,255,14,255,255,255,11, +255,255,255,9,255,255,255,7,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,1,239,239,239,1, +63,63,63,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,13,13,0,168,168,168,1,255,255,255,1,255,255,255,2, +255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,11,255,255,255,14,255,255,255,17, +255,255,255,20,255,255,255,25,255,255,255,29,255,255,255,34,255,255,255,40,255,255,255,52,254,254,254,76,204,204,204,130, +57,57,57,218,9,9,9,250,51,51,51,226,174,174,174,169,248,248,248,138,238,238,238,155,73,73,73,224,12,12,12,252, +85,85,85,242,31,31,31,250,79,79,79,233,193,193,193,216,30,30,30,249,2,2,2,254,82,82,82,231,244,244,244,190, +193,193,193,205,25,25,25,249,14,14,14,253,100,100,100,246,7,7,7,255,30,30,30,249,206,206,206,222,23,23,23,251, +10,10,10,255,0,0,0,255,1,1,1,255,0,0,0,255,74,74,74,235,245,245,245,192,101,101,101,225,32,32,32,248, +200,200,200,215,37,37,37,246,17,17,17,253,121,121,121,238,16,16,16,252,128,128,128,214,217,217,217,184,50,50,50,235, +1,1,1,255,23,23,23,243,185,185,185,162,254,254,254,100,255,255,255,77,255,255,255,67,255,255,255,61,255,255,255,54, +255,255,255,47,255,255,255,39,255,255,255,32,255,255,255,27,255,255,255,22,255,255,255,19,255,255,255,15,255,255,255,12, +255,255,255,10,255,255,255,8,255,255,255,6,255,255,255,5,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1, +239,239,239,1,56,56,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,108,108,108,1,254,254,254,1,255,255,255,2,255,255,255,2, +255,255,255,3,255,255,255,5,255,255,255,6,255,255,255,8,255,255,255,10,255,255,255,12,255,255,255,15,255,255,255,18, +255,255,255,22,255,255,255,26,255,255,255,31,255,255,255,36,255,255,255,42,255,255,255,49,255,255,255,59,255,255,255,79, +235,235,235,120,100,100,100,197,13,13,13,248,13,13,13,249,87,87,87,214,213,213,213,172,230,230,230,176,72,72,72,230, +10,10,10,253,50,50,50,250,17,17,17,253,72,72,72,241,140,140,140,234,13,13,13,253,6,6,6,254,119,119,119,223, +248,248,248,192,153,153,153,216,11,11,11,252,24,24,24,254,16,16,16,254,5,5,5,254,139,139,139,234,63,63,63,245, +0,0,0,255,0,0,0,255,0,0,0,255,6,6,6,254,155,155,155,218,211,211,211,204,26,26,26,249,118,118,118,231, +110,110,110,233,5,5,5,254,86,86,86,244,41,41,41,249,39,39,39,246,199,199,199,208,55,55,55,237,1,1,1,255, +17,17,17,248,162,162,162,181,253,253,253,121,255,255,255,100,254,254,254,94,248,248,248,93,243,243,243,90,242,242,242,82, +241,241,241,69,243,243,243,54,248,248,248,39,254,254,254,29,255,255,255,24,255,255,255,20,255,255,255,16,255,255,255,13, +255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2, +255,255,255,1,168,168,168,1,13,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,56,56,56,0,239,239,239,1,255,255,255,1,255,255,255,2,255,255,255,3, +255,255,255,4,255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,11,255,255,255,13,255,255,255,16,255,255,255,20, +255,255,255,24,255,255,255,30,255,255,255,37,255,255,255,44,255,255,255,52,255,255,255,59,255,255,255,68,255,255,255,77, +255,255,255,93,249,249,249,120,177,177,177,171,51,51,51,231,6,6,6,253,26,26,26,244,122,122,122,213,214,214,214,200, +81,81,81,235,9,9,9,254,28,28,28,253,15,15,15,254,47,47,47,249,84,84,84,248,6,6,6,255,12,12,12,252, +149,149,149,218,246,246,246,197,108,108,108,229,4,4,4,254,1,1,1,255,0,0,0,255,59,59,59,247,113,113,113,240, +2,2,2,255,0,0,0,255,0,0,0,255,30,30,30,249,229,229,229,206,98,98,98,230,36,36,36,248,178,178,178,225, +21,21,21,251,32,32,32,252,80,80,80,246,13,13,13,254,126,126,126,235,50,50,50,244,1,1,1,255,17,17,17,250, +153,153,153,201,244,244,244,153,225,225,225,146,156,156,156,165,104,104,104,187,74,74,74,199,72,72,72,194,95,95,95,164, +137,137,137,126,168,168,168,89,197,197,197,55,249,249,249,32,255,255,255,25,255,255,255,21,255,255,255,17,255,255,255,14, +255,255,255,12,255,255,255,10,255,255,255,8,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2, +255,255,255,1,254,254,254,1,162,162,162,1,13,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,13,13,13,0,168,168,168,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,3, +255,255,255,5,255,255,255,6,255,255,255,8,255,255,255,10,255,255,255,12,255,255,255,14,255,255,255,18,254,254,254,24, +246,246,246,33,243,243,243,44,239,239,239,57,205,205,205,79,185,185,185,99,178,178,178,115,177,177,177,126,181,181,181,133, +191,191,191,138,215,215,215,141,239,239,239,149,229,229,229,171,128,128,128,214,29,29,29,248,6,6,6,254,39,39,39,245, +130,130,130,230,89,89,89,243,9,9,9,254,20,20,20,254,17,17,17,255,23,23,23,254,26,26,26,254,1,1,1,255, +18,18,18,251,163,163,163,217,237,237,237,203,67,67,67,240,1,1,1,255,0,0,0,255,12,12,12,254,145,145,145,239, +12,12,12,254,0,0,0,255,1,1,1,255,88,88,88,236,207,207,207,213,26,26,26,250,120,120,120,236,68,68,68,243, +8,8,8,255,78,78,78,249,13,13,13,254,58,58,58,250,35,35,35,251,1,1,1,255,19,19,19,252,142,142,142,224, +146,146,146,208,66,66,66,224,26,26,26,242,35,35,35,235,89,89,89,200,159,159,159,155,231,231,231,112,245,245,245,88, +252,252,252,70,255,255,255,57,254,254,254,45,255,255,255,35,255,255,255,27,255,255,255,22,255,255,255,18,255,255,255,15, +255,255,255,13,255,255,255,10,255,255,255,9,255,255,255,7,255,255,255,6,255,255,255,4,255,255,255,3,255,255,255,3, +255,255,255,2,255,255,255,1,254,254,254,1,108,108,108,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,1,1,0,108,108,108,1,254,254,254,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4, +255,255,255,5,255,255,255,7,255,255,255,9,255,255,255,11,255,255,255,13,255,255,255,16,228,228,228,24,191,191,191,38, +170,170,170,55,167,167,167,73,158,158,158,94,147,147,147,115,137,137,137,135,125,125,125,156,105,105,105,177,78,78,78,197, +56,56,56,217,34,34,34,236,32,32,32,239,55,55,55,231,90,90,90,226,113,113,113,233,59,59,59,248,7,7,7,255, +5,5,5,254,38,38,38,251,50,50,50,252,6,6,6,255,11,11,11,255,14,14,14,255,3,3,3,255,0,0,0,255, +0,0,0,255,20,20,20,251,159,159,159,220,210,210,210,214,35,35,35,248,0,0,0,255,1,1,1,255,86,86,86,246, +49,49,49,250,0,0,0,255,6,6,6,254,156,156,156,228,97,97,97,235,38,38,38,250,122,122,122,238,8,8,8,254, +48,48,48,252,23,23,23,253,4,4,4,255,12,12,12,254,0,0,0,255,4,4,4,255,50,50,50,249,32,32,32,249, +17,17,17,249,55,55,55,229,139,139,139,189,230,230,230,145,250,250,250,123,246,246,246,112,240,240,240,107,215,215,215,106, +169,169,169,109,153,153,153,108,166,166,166,84,186,186,186,56,216,216,216,36,253,253,253,23,255,255,255,19,255,255,255,16, +255,255,255,14,255,255,255,11,255,255,255,9,255,255,255,8,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,3, +255,255,255,2,255,255,255,2,255,255,255,1,239,239,239,1,63,63,63,0,1,1,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,20,20,20,0,232,232,232,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5, +255,255,255,6,255,255,255,8,255,255,255,9,255,255,255,11,255,255,255,14,255,255,255,17,251,251,251,22,247,247,247,28, +252,252,252,32,255,255,255,37,255,255,255,44,255,255,255,52,255,255,255,60,255,255,255,70,253,253,253,81,248,248,248,95, +243,243,243,110,226,226,226,132,152,152,152,172,81,81,81,211,35,35,35,237,14,14,14,250,9,9,9,253,1,1,1,255, +0,0,0,255,0,0,0,255,3,3,3,255,1,1,1,255,0,0,0,255,3,3,3,255,4,4,4,255,0,0,0,255, +0,0,0,255,0,0,0,255,15,15,15,252,132,132,132,230,164,164,164,229,15,15,15,253,0,0,0,255,25,25,25,253, +98,98,98,246,2,2,2,255,9,9,9,254,144,144,144,236,26,26,26,251,97,97,97,244,24,24,24,252,24,24,24,254, +35,35,35,253,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,5,5,5,254,32,32,32,246,98,98,98,221, +189,189,189,189,233,233,233,166,220,220,220,159,158,158,158,170,110,110,110,186,74,74,74,201,71,71,71,197,105,105,105,169, +146,146,146,126,206,206,206,79,243,243,243,54,246,246,246,40,250,250,250,30,255,255,255,24,255,255,255,20,255,255,255,17, +255,255,255,14,255,255,255,12,255,255,255,10,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4, +255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,232,232,232,1,20,20,20,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,1,1,0,108,108,108,1,254,254,254,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5, +255,255,255,7,255,255,255,8,255,255,255,10,255,255,255,12,255,255,255,15,255,255,255,18,255,255,255,21,255,255,255,25, +255,255,255,28,255,255,255,33,255,255,255,38,255,255,255,44,255,255,255,50,255,255,255,57,255,255,255,64,255,255,255,72, +255,255,255,80,255,255,255,91,255,255,255,105,250,250,250,122,240,240,240,142,194,194,194,170,123,123,123,202,62,62,62,229, +22,22,22,248,6,6,6,253,1,1,1,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,7,7,7,254,78,78,78,244,93,93,93,246,4,4,4,255,3,3,3,255, +79,79,79,250,8,8,8,255,4,4,4,255,40,40,40,251,39,39,39,252,47,47,47,251,7,7,7,255,32,32,32,254, +2,2,2,255,0,0,0,255,2,2,2,255,14,14,14,253,60,60,60,243,139,139,139,224,179,179,179,210,132,132,132,212, +85,85,85,220,49,49,49,231,36,36,36,236,65,65,65,212,122,122,122,174,195,195,195,128,241,241,241,96,251,251,251,74, +255,255,255,59,255,255,255,48,255,255,255,39,255,255,255,33,255,255,255,28,255,255,255,24,255,255,255,21,255,255,255,18, +255,255,255,15,255,255,255,13,255,255,255,11,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,5,255,255,255,4, +255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,1,254,254,254,1,108,108,108,1,1,1,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +20,20,20,0,232,232,232,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6, +255,255,255,7,255,255,255,9,255,255,255,11,255,255,255,13,255,255,255,16,255,255,255,18,255,255,255,22,255,255,255,26, +255,255,255,32,255,255,255,38,255,255,255,46,255,255,255,54,255,255,255,63,255,255,255,72,255,255,255,81,255,255,255,89, +254,254,254,96,254,254,254,103,253,253,253,111,253,253,253,118,253,253,253,127,254,254,254,136,254,254,254,147,247,247,247,161, +228,228,228,179,162,162,162,205,93,93,93,228,41,41,41,245,12,12,12,253,3,3,3,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,1,1,1,255,21,21,21,254,8,8,8,255,0,0,0,255, +19,19,19,254,4,4,4,255,0,0,0,255,14,14,14,255,52,52,52,252,3,3,3,255,2,2,2,255,2,2,2,255, +1,1,1,255,21,21,21,254,63,63,63,249,92,92,92,243,71,71,71,241,37,37,37,246,22,22,22,248,34,34,34,239, +77,77,77,214,142,142,142,177,219,219,219,137,246,246,246,110,254,254,254,89,255,255,255,75,255,255,255,63,255,255,255,54, +255,255,255,46,255,255,255,41,255,255,255,36,255,255,255,32,255,255,255,28,255,255,255,24,255,255,255,21,255,255,255,18, +255,255,255,16,255,255,255,14,255,255,255,12,255,255,255,10,255,255,255,9,255,255,255,7,255,255,255,6,255,255,255,5, +255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,231,231,231,1,14,14,14,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +99,99,99,1,254,254,254,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6, +255,255,255,8,255,255,255,10,255,255,255,11,255,255,255,14,255,255,255,16,255,255,255,20,255,255,255,27,254,254,254,37, +246,246,246,52,242,242,242,69,234,234,234,87,194,194,194,113,159,159,159,138,137,137,137,159,122,122,122,174,111,111,111,185, +104,104,104,193,98,98,98,198,95,95,95,203,91,91,91,206,94,94,94,207,103,103,103,206,112,112,112,205,121,121,121,205, +132,132,132,206,144,144,144,209,155,155,155,213,161,161,161,221,140,140,140,234,86,86,86,246,41,41,41,253,6,6,6,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,14,14,14,255,4,4,4,255,0,0,0,255,0,0,0,255,0,0,0,255, +2,2,2,255,13,13,13,255,12,12,12,254,32,32,32,250,72,72,72,238,124,124,124,217,188,188,188,189,237,237,237,162, +249,249,249,140,255,255,255,121,255,255,255,105,255,255,255,92,255,255,255,81,255,255,255,72,255,255,255,64,255,255,255,57, +255,255,255,50,255,255,255,44,255,255,255,38,255,255,255,34,255,255,255,30,255,255,255,26,255,255,255,22,255,255,255,19, +255,255,255,17,255,255,255,15,255,255,255,13,255,255,255,11,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,5, +255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,1,247,247,247,1,57,57,57,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0, +113,113,113,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,7, +255,255,255,8,255,255,255,10,255,255,255,12,255,255,255,14,254,254,254,18,230,230,230,30,167,167,167,64,145,145,145,99, +103,103,103,132,83,83,83,162,72,72,72,188,64,64,64,202,57,57,57,211,51,51,51,221,45,45,45,229,38,38,38,237, +28,28,28,244,18,18,18,250,12,12,12,253,8,8,8,254,4,4,4,255,1,1,1,255,1,1,1,255,2,2,2,254, +3,3,3,254,4,4,4,254,6,6,6,253,7,7,7,253,9,9,9,254,10,10,10,254,6,6,6,255,1,1,1,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,1,1,1,255,22,22,22,253,54,54,54,248,65,65,65,240,76,76,76,231,85,85,85,222,96,96,96,212, +110,110,110,201,125,125,125,189,143,143,143,175,163,163,163,160,187,187,187,144,216,216,216,128,238,238,238,113,241,241,241,101, +244,244,244,90,247,247,247,79,251,251,251,69,255,255,255,59,255,255,255,51,255,255,255,43,255,255,255,36,255,255,255,30, +255,255,255,25,255,255,255,20,255,255,255,16,255,255,255,13,255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,6, +255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,104,104,104,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,14,14,0, +231,231,231,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7, +255,255,255,9,255,255,255,10,255,255,255,13,255,255,255,16,248,248,248,22,197,197,197,39,228,228,228,48,241,241,241,61, +242,242,242,73,243,243,243,84,244,244,244,97,241,241,241,111,236,236,236,128,232,232,232,143,224,224,224,160,195,195,195,181, +162,162,162,202,131,131,131,220,92,92,92,237,55,55,55,248,27,27,27,253,4,4,4,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0,255, +1,1,1,255,2,2,2,254,4,4,4,253,6,6,6,251,9,9,9,250,13,13,13,248,20,20,20,242,32,32,32,232, +46,46,46,220,63,63,63,206,86,86,86,190,111,111,111,173,132,132,132,154,157,157,157,133,192,192,192,110,231,231,231,87, +241,241,241,72,245,245,245,58,252,252,252,44,255,255,255,34,255,255,255,26,255,255,255,19,255,255,255,14,255,255,255,10, +255,255,255,7,255,255,255,5,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,167,167,167,1,8,8,8,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,15,15,0, +238,238,238,1,255,255,255,1,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,6,255,255,255,8,255,255,255,11, +255,255,255,15,255,255,255,20,255,255,255,26,255,255,255,35,253,253,253,45,246,246,246,59,242,242,242,75,232,232,232,93, +184,184,184,120,144,144,144,149,115,115,115,175,83,83,83,197,56,56,56,217,36,36,36,233,19,19,19,245,11,11,11,250, +8,8,8,252,6,6,6,253,4,4,4,253,4,4,4,253,5,5,5,252,6,6,6,252,7,7,7,251,9,9,9,251, +10,10,10,251,10,10,10,250,11,11,11,250,12,12,12,250,13,13,13,250,14,14,14,249,14,14,14,249,15,15,15,249, +18,18,18,248,23,23,23,245,28,28,28,243,32,32,32,241,36,36,36,239,41,41,41,237,45,45,45,235,49,49,49,233, +52,52,52,231,56,56,56,229,59,59,59,227,62,62,62,226,64,64,64,224,66,66,66,223,67,67,67,222,68,68,68,221, +71,71,71,219,73,73,73,217,75,75,75,216,76,76,76,214,76,76,76,214,73,73,73,214,70,70,70,215,66,66,66,216, +61,61,61,218,57,57,57,219,54,54,54,220,50,50,50,221,46,46,46,223,42,42,42,225,38,38,38,227,34,34,34,230, +29,29,29,233,25,25,25,237,21,21,21,241,17,17,17,244,16,16,16,244,16,16,16,242,18,18,18,241,24,24,24,235, +37,37,37,219,57,57,57,196,93,93,93,169,124,124,124,138,159,159,159,104,221,221,221,68,241,241,241,49,246,246,246,34, +254,254,254,22,255,255,255,14,255,255,255,8,255,255,255,4,255,255,255,2,255,255,255,1,238,238,238,1,15,15,15,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,15,15,0, +238,238,238,1,255,255,255,1,255,255,255,3,255,255,255,5,255,255,255,9,255,255,255,15,254,254,254,22,246,246,246,33, +241,241,241,47,226,226,226,64,166,166,166,96,130,130,130,130,102,102,102,161,65,65,65,188,44,44,44,212,32,32,32,231, +28,28,28,234,32,32,32,228,38,38,38,222,48,48,48,215,59,59,59,208,72,72,72,201,86,86,86,195,99,99,99,190, +110,110,110,185,119,119,119,181,129,129,129,176,140,140,140,172,152,152,152,167,163,163,163,164,174,174,174,160,184,184,184,158, +193,193,193,156,201,201,201,154,207,207,207,153,214,214,214,152,219,219,219,151,225,225,225,151,229,229,229,150,234,234,234,149, +239,239,239,148,240,240,240,146,241,241,241,144,241,241,241,143,242,242,242,142,243,243,243,140,244,244,244,138,244,244,244,137, +245,245,245,135,246,246,246,134,246,246,246,132,247,247,247,130,247,247,247,129,248,248,248,127,248,248,248,125,248,248,248,123, +248,248,248,120,249,249,249,118,249,249,249,115,249,249,249,113,249,249,249,110,249,249,249,108,248,248,248,106,248,248,248,104, +247,247,247,103,246,246,246,101,245,245,245,99,245,245,245,97,244,244,244,96,243,243,243,94,243,243,243,94,242,242,242,94, +241,241,241,93,240,240,240,94,239,239,239,95,237,237,237,96,221,221,221,100,200,200,200,107,180,180,180,114,161,161,161,122, +145,145,145,131,131,131,131,139,119,119,119,149,108,108,108,156,89,89,89,164,74,74,74,167,72,72,72,152,88,88,88,130, +132,132,132,106,141,141,141,74,180,180,180,33,246,246,246,10,255,255,255,3,255,255,255,1,238,238,238,1,15,15,15,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,15,15,0, +238,238,238,1,248,248,248,3,242,242,242,9,240,240,240,17,185,185,185,37,140,140,140,76,132,132,132,105,92,92,92,126, +75,75,75,144,83,83,83,157,104,104,104,153,119,119,119,143,131,131,131,132,151,151,151,120,177,177,177,108,211,211,211,96, +235,235,235,88,240,240,240,85,242,242,242,82,244,244,244,80,246,246,246,79,249,249,249,77,251,251,251,76,254,254,254,76, +255,255,255,77,255,255,255,78,255,255,255,79,255,255,255,80,255,255,255,81,255,255,255,83,255,255,255,84,255,255,255,86, +255,255,255,88,255,255,255,90,255,255,255,91,255,255,255,92,255,255,255,94,255,255,255,95,255,255,255,96,255,255,255,97, +255,255,255,97,255,255,255,98,255,255,255,97,255,255,255,97,255,255,255,97,255,255,255,96,255,255,255,96,255,255,255,95, +255,255,255,94,255,255,255,93,255,255,255,92,255,255,255,91,255,255,255,90,255,255,255,89,255,255,255,87,255,255,255,85, +255,255,255,83,255,255,255,81,255,255,255,79,255,255,255,76,255,255,255,74,255,255,255,71,255,255,255,68,255,255,255,65, +255,255,255,62,255,255,255,59,255,255,255,56,255,255,255,53,255,255,255,50,255,255,255,47,255,255,255,45,255,255,255,42, +255,255,255,40,255,255,255,38,255,255,255,37,255,255,255,36,255,255,255,35,255,255,255,34,255,255,255,34,255,255,255,34, +255,255,255,35,255,255,255,36,255,255,255,37,254,254,254,37,250,250,250,39,245,245,245,41,242,242,242,43,240,240,240,43, +238,238,238,41,201,201,201,37,151,151,151,40,201,201,201,18,255,255,255,3,255,255,255,1,167,167,167,1,8,8,8,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,15,15,0, +235,235,235,2,159,159,159,9,154,154,154,23,151,151,151,40,147,147,147,51,190,190,190,43,238,238,238,41,240,240,240,43, +243,243,243,41,247,247,247,39,253,253,253,36,255,255,255,35,255,255,255,34,255,255,255,34,255,255,255,33,255,255,255,33, +255,255,255,33,255,255,255,34,255,255,255,35,255,255,255,37,255,255,255,38,255,255,255,40,255,255,255,42,255,255,255,45, +255,255,255,47,255,255,255,50,255,255,255,52,255,255,255,55,255,255,255,58,255,255,255,60,255,255,255,63,255,255,255,65, +255,255,255,67,255,255,255,69,255,255,255,71,255,255,255,73,255,255,255,74,255,255,255,76,255,255,255,77,255,255,255,78, +255,255,255,79,255,255,255,79,255,255,255,80,255,255,255,80,255,255,255,80,255,255,255,80,255,255,255,80,255,255,255,79, +255,255,255,79,255,255,255,78,255,255,255,78,255,255,255,77,255,255,255,76,255,255,255,75,255,255,255,73,255,255,255,72, +255,255,255,70,255,255,255,68,255,255,255,66,255,255,255,64,255,255,255,62,255,255,255,59,255,255,255,56,255,255,255,54, +255,255,255,51,255,255,255,48,255,255,255,45,255,255,255,42,255,255,255,39,255,255,255,36,255,255,255,34,255,255,255,31, +255,255,255,29,255,255,255,26,255,255,255,24,255,255,255,22,255,255,255,20,255,255,255,19,255,255,255,17,255,255,255,16, +255,255,255,15,255,255,255,14,255,255,255,13,255,255,255,13,255,255,255,12,255,255,255,12,255,255,255,12,255,255,255,11, +255,255,255,11,255,255,255,9,255,255,255,7,255,255,255,4,255,255,255,2,255,255,255,1,104,104,104,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,0, +167,167,167,1,248,248,248,2,254,254,254,5,255,255,255,7,255,255,255,9,255,255,255,11,255,255,255,11,255,255,255,12, +255,255,255,12,255,255,255,12,255,255,255,13,255,255,255,14,255,255,255,14,255,255,255,16,255,255,255,17,255,255,255,19, +255,255,255,20,255,255,255,23,255,255,255,25,255,255,255,27,255,255,255,30,255,255,255,32,255,255,255,35,255,255,255,37, +255,255,255,39,255,255,255,42,255,255,255,45,255,255,255,47,255,255,255,50,255,255,255,52,255,255,255,54,255,255,255,57, +255,255,255,58,255,255,255,60,255,255,255,61,255,255,255,63,255,255,255,64,255,255,255,65,255,255,255,66,255,255,255,67, +255,255,255,68,255,255,255,68,255,255,255,69,255,255,255,69,255,255,255,69,255,255,255,69,255,255,255,69,255,255,255,68, +255,255,255,68,255,255,255,68,255,255,255,67,255,255,255,66,255,255,255,65,255,255,255,64,255,255,255,63,255,255,255,62, +255,255,255,60,255,255,255,59,255,255,255,57,255,255,255,55,255,255,255,54,255,255,255,51,255,255,255,49,255,255,255,46, +255,255,255,44,255,255,255,41,255,255,255,39,255,255,255,36,255,255,255,34,255,255,255,32,255,255,255,30,255,255,255,27, +255,255,255,25,255,255,255,23,255,255,255,21,255,255,255,19,255,255,255,18,255,255,255,16,255,255,255,15,255,255,255,13, +255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5, +255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,2,255,255,255,1,247,247,247,1,57,57,57,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +99,99,99,1,254,254,254,1,255,255,255,1,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,5, +255,255,255,6,255,255,255,7,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,13,255,255,255,14,255,255,255,16, +255,255,255,18,255,255,255,20,255,255,255,22,255,255,255,24,255,255,255,26,255,255,255,28,255,255,255,30,255,255,255,32, +255,255,255,34,255,255,255,37,255,255,255,39,255,255,255,41,255,255,255,43,255,255,255,45,255,255,255,47,255,255,255,49, +255,255,255,50,255,255,255,51,255,255,255,52,255,255,255,53,255,255,255,55,255,255,255,55,255,255,255,56,255,255,255,57, +255,255,255,57,255,255,255,58,255,255,255,58,255,255,255,59,255,255,255,59,255,255,255,59,255,255,255,58,255,255,255,58, +255,255,255,58,255,255,255,57,255,255,255,56,255,255,255,56,255,255,255,55,255,255,255,54,255,255,255,53,255,255,255,52, +255,255,255,51,255,255,255,50,255,255,255,48,255,255,255,47,255,255,255,45,255,255,255,44,255,255,255,41,255,255,255,39, +255,255,255,37,255,255,255,35,255,255,255,33,255,255,255,31,255,255,255,29,255,255,255,27,255,255,255,26,255,255,255,24, +255,255,255,22,255,255,255,20,255,255,255,18,255,255,255,17,255,255,255,16,255,255,255,14,255,255,255,13,255,255,255,12, +255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4, +255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,231,231,231,1,14,14,14,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +20,20,20,0,232,232,232,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4,255,255,255,4, +255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,13,255,255,255,14, +255,255,255,16,255,255,255,17,255,255,255,19,255,255,255,21,255,255,255,22,255,255,255,24,255,255,255,26,255,255,255,28, +255,255,255,30,255,255,255,31,255,255,255,33,255,255,255,34,255,255,255,36,255,255,255,38,255,255,255,39,255,255,255,41, +255,255,255,42,255,255,255,43,255,255,255,44,255,255,255,45,255,255,255,46,255,255,255,47,255,255,255,47,255,255,255,48, +255,255,255,48,255,255,255,48,255,255,255,48,255,255,255,49,255,255,255,49,255,255,255,49,255,255,255,48,255,255,255,48, +255,255,255,48,255,255,255,47,255,255,255,47,255,255,255,47,255,255,255,46,255,255,255,45,255,255,255,45,255,255,255,44, +255,255,255,43,255,255,255,42,255,255,255,40,255,255,255,39,255,255,255,38,255,255,255,36,255,255,255,34,255,255,255,33, +255,255,255,31,255,255,255,29,255,255,255,28,255,255,255,26,255,255,255,25,255,255,255,23,255,255,255,22,255,255,255,20, +255,255,255,19,255,255,255,17,255,255,255,16,255,255,255,15,255,255,255,14,255,255,255,13,255,255,255,11,255,255,255,10, +255,255,255,9,255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4, +255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,1,254,254,254,1,108,108,108,1,1,1,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,1,1,0,108,108,108,1,254,254,254,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,4, +255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,10,255,255,255,11,255,255,255,12, +255,255,255,13,255,255,255,15,255,255,255,16,255,255,255,18,255,255,255,19,255,255,255,21,255,255,255,22,255,255,255,23, +255,255,255,25,255,255,255,26,255,255,255,27,255,255,255,29,255,255,255,30,255,255,255,31,255,255,255,32,255,255,255,34, +255,255,255,35,255,255,255,36,255,255,255,36,255,255,255,37,255,255,255,38,255,255,255,38,255,255,255,39,255,255,255,39, +255,255,255,39,255,255,255,40,255,255,255,40,255,255,255,40,255,255,255,40,255,255,255,40,255,255,255,40,255,255,255,39, +255,255,255,39,255,255,255,39,255,255,255,39,255,255,255,38,255,255,255,38,255,255,255,37,255,255,255,37,255,255,255,36, +255,255,255,35,255,255,255,34,255,255,255,33,255,255,255,32,255,255,255,31,255,255,255,30,255,255,255,28,255,255,255,27, +255,255,255,26,255,255,255,24,255,255,255,23,255,255,255,22,255,255,255,20,255,255,255,19,255,255,255,18,255,255,255,17, +255,255,255,15,255,255,255,14,255,255,255,13,255,255,255,12,255,255,255,11,255,255,255,11,255,255,255,10,255,255,255,9, +255,255,255,8,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3, +255,255,255,2,255,255,255,2,255,255,255,1,254,254,254,1,162,162,162,1,13,13,13,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,13,13,13,0,168,168,168,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,10, +255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,14,255,255,255,16,255,255,255,17,255,255,255,18,255,255,255,19, +255,255,255,21,255,255,255,22,255,255,255,23,255,255,255,24,255,255,255,25,255,255,255,26,255,255,255,27,255,255,255,27, +255,255,255,28,255,255,255,29,255,255,255,29,255,255,255,30,255,255,255,31,255,255,255,31,255,255,255,31,255,255,255,32, +255,255,255,32,255,255,255,32,255,255,255,32,255,255,255,32,255,255,255,32,255,255,255,32,255,255,255,32,255,255,255,32, +255,255,255,31,255,255,255,31,255,255,255,31,255,255,255,31,255,255,255,30,255,255,255,30,255,255,255,29,255,255,255,29, +255,255,255,28,255,255,255,27,255,255,255,26,255,255,255,26,255,255,255,25,255,255,255,24,255,255,255,23,255,255,255,22, +255,255,255,21,255,255,255,20,255,255,255,19,255,255,255,18,255,255,255,17,255,255,255,15,255,255,255,14,255,255,255,14, +255,255,255,13,255,255,255,12,255,255,255,11,255,255,255,10,255,255,255,9,255,255,255,9,255,255,255,8,255,255,255,7, +255,255,255,7,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,1,255,255,255,1,232,232,232,1,20,20,20,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,56,56,56,0,239,239,239,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,8, +255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,14,255,255,255,15,255,255,255,16, +255,255,255,17,255,255,255,18,255,255,255,18,255,255,255,19,255,255,255,20,255,255,255,21,255,255,255,21,255,255,255,22, +255,255,255,23,255,255,255,23,255,255,255,24,255,255,255,24,255,255,255,25,255,255,255,25,255,255,255,25,255,255,255,26, +255,255,255,26,255,255,255,26,255,255,255,26,255,255,255,26,255,255,255,26,255,255,255,26,255,255,255,26,255,255,255,26, +255,255,255,25,255,255,255,25,255,255,255,25,255,255,255,25,255,255,255,24,255,255,255,24,255,255,255,23,255,255,255,23, +255,255,255,22,255,255,255,22,255,255,255,21,255,255,255,20,255,255,255,20,255,255,255,19,255,255,255,18,255,255,255,17, +255,255,255,16,255,255,255,15,255,255,255,15,255,255,255,14,255,255,255,13,255,255,255,12,255,255,255,12,255,255,255,11, +255,255,255,10,255,255,255,9,255,255,255,9,255,255,255,8,255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,6, +255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,239,239,239,1,63,63,63,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,1,1,0,63,63,63,0,239,239,239,1,255,255,255,1,255,255,255,1,255,255,255,2, +255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,7, +255,255,255,7,255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,10,255,255,255,11,255,255,255,12,255,255,255,12, +255,255,255,13,255,255,255,14,255,255,255,15,255,255,255,15,255,255,255,16,255,255,255,16,255,255,255,17,255,255,255,17, +255,255,255,18,255,255,255,18,255,255,255,18,255,255,255,19,255,255,255,19,255,255,255,19,255,255,255,19,255,255,255,20, +255,255,255,20,255,255,255,20,255,255,255,20,255,255,255,20,255,255,255,20,255,255,255,20,255,255,255,20,255,255,255,20, +255,255,255,19,255,255,255,19,255,255,255,19,255,255,255,19,255,255,255,18,255,255,255,18,255,255,255,18,255,255,255,17, +255,255,255,17,255,255,255,17,255,255,255,16,255,255,255,16,255,255,255,15,255,255,255,15,255,255,255,14,255,255,255,13, +255,255,255,13,255,255,255,12,255,255,255,11,255,255,255,11,255,255,255,10,255,255,255,10,255,255,255,9,255,255,255,8, +255,255,255,8,255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5, +255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1, +254,254,254,1,168,168,168,1,56,56,56,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,63,63,63,0,232,232,232,1,254,254,254,1,255,255,255,1, +255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5, +255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,9, +255,255,255,10,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,12,255,255,255,13,255,255,255,13,255,255,255,13, +255,255,255,13,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,15,255,255,255,15,255,255,255,15, +255,255,255,15,255,255,255,15,255,255,255,15,255,255,255,15,255,255,255,15,255,255,255,15,255,255,255,15,255,255,255,15, +255,255,255,15,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,14,255,255,255,13,255,255,255,13, +255,255,255,13,255,255,255,13,255,255,255,12,255,255,255,12,255,255,255,11,255,255,255,11,255,255,255,10,255,255,255,10, +255,255,255,10,255,255,255,9,255,255,255,9,255,255,255,8,255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,7, +255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,247,247,247,1, +161,161,161,1,13,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,20,20,20,0,161,161,161,1,247,247,247,1, +255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4, +255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,7, +255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,10, +255,255,255,10,255,255,255,10,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11, +255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11, +255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,11,255,255,255,10,255,255,255,10,255,255,255,10,255,255,255,10, +255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,9,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,7, +255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5, +255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,247,247,247,1,167,167,167,1,57,57,57,0, +8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,0,57,57,57,0, +167,167,167,1,247,247,247,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,5, +255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7, +255,255,255,7,255,255,255,7,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8, +255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8, +255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,8,255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,7, +255,255,255,7,255,255,255,7,255,255,255,7,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,5, +255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,1,255,255,255,1,254,254,254,1,240,240,240,1,167,167,167,1,57,57,57,0,8,8,8,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +8,8,8,0,57,57,57,0,167,167,167,1,247,247,247,1,255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5, +255,255,255,5,255,255,255,5,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6, +255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6,255,255,255,6, +255,255,255,6,255,255,255,6,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,5, +255,255,255,5,255,255,255,5,255,255,255,5,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1,247,247,247,1, +238,238,238,1,167,167,167,1,99,99,99,1,21,21,21,0,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,8,8,8,0,57,57,57,0,113,113,113,1,231,231,231,1,240,240,240,1,254,254,254,1, +255,255,255,1,255,255,255,1,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4, +255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,4,255,255,255,3,255,255,255,3,255,255,255,3, +255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,3,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1, +255,255,255,1,254,254,254,1,240,240,240,1,238,238,238,1,231,231,231,1,113,113,113,1,104,104,104,1,57,57,57,0, +15,15,15,0,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,14,14,14,0,21,21,21,0,99,99,99,1, +104,104,104,1,167,167,167,1,238,238,238,1,240,240,240,1,254,254,254,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2, +255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,2,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,254,254,254,1,240,240,240,1,238,238,238,1,238,238,238,1,231,231,231,1,113,113,113,1,104,104,104,1, +104,104,104,1,99,99,99,1,21,21,21,0,15,15,15,0,14,14,14,0,1,1,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,8,8,8,0,15,15,15,0,21,21,21,0,99,99,99,1,104,104,104,1,104,104,104,1,113,113,113,1, +231,231,231,1,238,238,238,1,238,238,238,1,238,238,238,1,238,238,238,1,240,240,240,1,254,254,254,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1,255,255,255,1, +255,255,255,1,255,255,255,1,255,255,255,1,254,254,254,1,240,240,240,1,238,238,238,1,238,238,238,1,238,238,238,1, +238,238,238,1,238,238,238,1,238,238,238,1,238,238,238,1,231,231,231,1,113,113,113,1,104,104,104,1,104,104,104,1, +104,104,104,1,99,99,99,1,21,21,21,0,15,15,15,0,15,15,15,0,14,14,14,0,1,1,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0, +14,14,14,0,15,15,15,0,15,15,15,0,15,15,15,0,15,15,15,0,21,21,21,0,99,99,99,1,104,104,104,1, +104,104,104,1,104,104,104,1,104,104,104,1,104,104,104,1,104,104,104,1,104,104,104,1,104,104,104,1,104,104,104,1, +104,104,104,1,104,104,104,1,104,104,104,1,104,104,104,1,104,104,104,1,104,104,104,1,104,104,104,1,104,104,104,1, +104,104,104,1,104,104,104,1,104,104,104,1,99,99,99,1,21,21,21,0,15,15,15,0,15,15,15,0,15,15,15,0, +15,15,15,0,15,15,15,0,15,15,15,0,15,15,15,0,14,14,14,0,1,1,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +}; +} embedded_image; diff --git a/Editor/main_SDL2.cpp b/Editor/main_SDL2.cpp index 6cc2ba8f6..6bd2afc5a 100644 --- a/Editor/main_SDL2.cpp +++ b/Editor/main_SDL2.cpp @@ -4,7 +4,7 @@ #include "sdl2.h" #include -#include "icon.c" +#include "icon.h" #ifdef __linux__ # include @@ -95,7 +95,7 @@ void set_window_icon(SDL_Window *window) { // to assume the data it gets is byte-wise RGB(A) data Uint32 rmask, gmask, bmask, amask; #if SDL_BYTEORDER == SDL_BIG_ENDIAN - int shift = (gimp_image.bytes_per_pixel == 3) ? 8 : 0; + int shift = (embedded_image.bytes_per_pixel == 3) ? 8 : 0; rmask = 0xff000000 >> shift; gmask = 0x00ff0000 >> shift; bmask = 0x0000ff00 >> shift; @@ -104,10 +104,10 @@ void set_window_icon(SDL_Window *window) { rmask = 0x000000ff; gmask = 0x0000ff00; bmask = 0x00ff0000; - amask = (gimp_image.bytes_per_pixel == 3) ? 0 : 0xff000000; + amask = (embedded_image.bytes_per_pixel == 3) ? 0 : 0xff000000; #endif - SDL_Surface* icon = SDL_CreateRGBSurfaceFrom((void*)gimp_image.pixel_data, gimp_image.width, - gimp_image.height, gimp_image.bytes_per_pixel*8, gimp_image.bytes_per_pixel*gimp_image.width, + SDL_Surface* icon = SDL_CreateRGBSurfaceFrom((void*)embedded_image.pixel_data, embedded_image.width, + embedded_image.height, embedded_image.bytes_per_pixel*8, embedded_image.bytes_per_pixel* embedded_image.width, rmask, gmask, bmask, amask); SDL_SetWindowIcon(window, icon); @@ -196,7 +196,7 @@ int main(int argc, char *argv[]) } #endif - wi::arguments::Parse(argc, argv); + wi::arguments::Parse(argc, argv); sdl2::sdlsystem_ptr_t system = sdl2::make_sdlsystem(SDL_INIT_EVERYTHING | SDL_INIT_EVENTS); if (*system) { @@ -208,7 +208,7 @@ int main(int argc, char *argv[]) bool fullscreen = false; wi::Timer timer; - if (editor.config.Open("config.ini")) + if (wi::helper::FileExists("config.ini") && editor.config.Open("config.ini")) { if (editor.config.Has("width")) { @@ -225,7 +225,7 @@ int main(int argc, char *argv[]) height = std::max(100, height); sdl2::window_ptr_t window = sdl2::make_window( - "Wicked Editor", + exe_customization.name_256padded, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, width, height, SDL_WINDOW_SHOWN | SDL_WINDOW_VULKAN | SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI); diff --git a/Editor/main_Windows.cpp b/Editor/main_Windows.cpp index 2d857f736..5fae53fa4 100644 --- a/Editor/main_Windows.cpp +++ b/Editor/main_Windows.cpp @@ -12,6 +12,8 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow) { + wi::arguments::Parse(lpCmdLine); + SetProcessDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2); static auto WndProc = [](HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) -> LRESULT { @@ -117,11 +119,13 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance, wcex.cbWndExtra = 0; wcex.hInstance = hInstance; wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(1001)); // 1001 = icon from Resource.rc file - wcex.hIconSm = wcex.hIcon; + wcex.hIconSm = NULL; wcex.hCursor = LoadCursor(hInstance, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); wcex.lpszMenuName = NULL; - wcex.lpszClassName = L"Wicked Editor"; + wchar_t wname[256] = {}; + wi::helper::StringConvert(exe_customization.name_256padded, wname, arraysize(wname)); + wcex.lpszClassName = wname; RegisterClassExW(&wcex); @@ -132,7 +136,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance, bool borderless = false; wi::Timer timer; - if (editor.config.Open("config.ini")) + if (wi::helper::FileExists("config.ini") && editor.config.Open("config.ini")) { if (editor.config.Has("width")) { @@ -197,9 +201,6 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance, UpdateWindow(hWnd); DragAcceptFiles(hWnd, TRUE); - - wi::arguments::Parse(lpCmdLine); - editor.SetWindow(hWnd); MSG msg = { 0 }; diff --git a/Editor/wicked.ico b/Editor/wicked.ico index f7f3f5bac592df91113e13924396fbf20e464eaf..49e9bd2c1f62795f2303ce36fec8f1ed662e4bbf 100644 GIT binary patch literal 88878 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 W=Q}Zl^X5}GT8=4;Ov$6st^Xe)Ov+vW literal 86358 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 CVa=le diff --git a/Samples/Example_ImGui/wicked.ico b/Samples/Example_ImGui/wicked.ico index f7f3f5bac592df91113e13924396fbf20e464eaf..49e9bd2c1f62795f2303ce36fec8f1ed662e4bbf 100644 GIT binary patch literal 88878 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 W=Q}Zl^X5}GT8=4;Ov$6st^Xe)Ov+vW literal 86358 zcmeI51)NpY+K0~>(gG7f)S*E@#Q;IT0Ys2e#17KdYhYj^27+;IQBmv`?6`UjP%OM6 zh>Cy;hzg37bj_UadG?((?m5g*7d~;A^ZWhJ?!DJ~d%bJzwG)YCqIBZws}n4%BTpjU;YrbXuDbSNxkQBjZWsR-Q=pgv#S|!}Krsc1DNsy-VhR*fpqK*1 z6xehqP_bgg#IC#Unh&*W*G^n~@x`>EuHK;Vp58nCdGT$_Q~cYo6xe#}ts|PJ^Yx~i zZc0p;Fd_NVPe0|uj2SbMsZ?sCz){mysYJ zaoLa_`W9(ZRDXf*>iEKi3-jqr0eYOyH89$a@Uboj;Hl&BXMcQB^ zlG?~4p8g{Acl zbq+L8A6$?0LK~qhXczv@a!|c`^~BRpKONWiP~Wf&G>OwK&{P^r`>=F9@O2B;U64LR!S-Ax{>x3x8KRIQr;eX#R^ z-=VH?z6TlwopKqct+Wn&i1T!7_KR(DQI2Ig%Cm1>kbb?};r?M6o*T*%%I2~lxd<}h zGSt;&TqXiN0(}C#BKj!@>QRLX6*l?sAel@i6J?jH zNVf~pDW4p?{`%|5_U+r#le_8u+O=y}5buLr2bs6d)<4)yX_U_M!0$lkIFIFz{M;!Q z6fvXlveY$zA$@}P|fvJmV- zkcYS|NQYn-%CH_}K>i2B`Ja)Uot=E{x#yCbQVyv`jT(sp;=RCo>!I#jw;=QCfVvRu zeBir&S6$cUs$W6J)yGT__$^Q5Q{Zh~*6V@#U{A0Y*gF>uSjMpr+X3Am*=%8}2E%Y|ji1VJ7wvt<-7V;9R!}s2l*jy!(eK%YibW zJx~sU3`nE63tnqFtf%!Ah1q)f zu02(k8_1jLU#@EeY~u zVE+91QI6=Z7J%J$+b!|qk3X8LDErJa&+IgG=+Ih^J@(i>|Ni&C_n9(f%6{ZF_akoI zlk(OfKB!I|)DdZu4);qp=_k*%wT1CqU6v>EMqbIgHlQtN2ik)Upc6O@93Dew)z*gP#%sNY_wt_J+h-^n%7xEW9<&$QiC`O)Pvt=0WIe1?CeW4zzYuJ}_UsF`KsgXW z7J^L(x)Ya+lAMxwI`xO?Ehfw$dq%Plu@{Hm8;dg;Rd{O3QXPn|loJ9*C&X3m^> z%$zxMx^S<~OO`A-44=}Gdddrzab6z5b{B9YI2s%Wjt3`zlR#I{4Ri-RK+hQ57Tsg; zT(9xk6M^^fp2q_3?{j>na$;GOiy#xqpLXX!pgd@o_5pi?`al`34T4Ol1IoFw5r_Lk z_2tW#*P1(bZawlSd#gXtXWx+{N7h5HYJdIp*UF7{Aj%JFfB(u~;J@X`Etj@x3!p6T zIB(v(YRE;SZ@&4a19_}7{`t>;4!Go!OCIUmx%0o8Hf{Q!efQn>yZZI(Ppwz4-sA=i z8hqEJNt5x19(w2(#~yp^r^w6)mtK15yVqWO?OQkAc;jog-+uc`_uY5juty$w1XJ_O zlgQ6wv^gJn@4fdP`tZXKhm0CEYRH%|V;=bGtFP|IKi*GFdOx%q{PWL0-#dN!^g+nj z-Poc#k+VBy&6;)V?Afz#fzCHm#vA|mkG*()FX(Uz z`f(~eJPUrF|LUu+Uh?FVPxc!;c<{hmZ@u;Q>#x85zN@afYRK7VpZzd8^Wcdmo_Omy z=bUr-{rBI0@lkPuOd(y=G9i1>0`B?eZnu)TuLX&pr2?v(G;J%xcuA(M;s;*Q~6p>8)C|`lW5# zwm*?y`>|7}PE(Q1$z8g1`QfOej{2T_=6A^A#1l?9;oGiVyN(B63%0)|7xVQIM;tM} zW5@{)1+$^u%$hZ8{)F6r zeaIn)jDXkABImcF=jVO-<(G%U-^TD;dtvOTK1t6!`@bphpZY}Ob0}9j|Klz-I@k-Hxd5H*kNyt&;)^eye(kl_-oE$Vd&gXP<&{&R z`CRC_4BF)&4=Ln+lLGRYQZ|vxWyqp(Hy6A1%Yg?TI0+dUjXitsnrp6k9y>M!9^dfp zyYF5|KBp`8p%b>F8Szm)=u-t$1loCduKvh(^+~-~zao9Jf9S8a|F%J~=}~!d%Vqg2 zXFC7&3EHl5D_5@Eo|rKcd)EAkC!Xkb`Q?{iiQW%B>7Y51LFd9 zdp97z)$wgX;JNe)d=I?O$A5DGf2HjY&vx8GZu>vj0Lv*XcWI#hTOak``dLrwYul(M zvfl_h&;ecOj!s;PZrpa)U3Wc(Eqn=m`8RRn`@{?%UwGk#pPhH!d81i=fjt-v-A5yP zqwl`^?l16rCcL928ypWHF6fcM*bKH-u)^>E9Fg{Y-4~3-RDs;@Fq4V*{`ar%>MZlv|s>H?V#M@n3qV7y3te zukHuizY6cA^QM&lRR$dIQ$Qa;;JKkpx8f(Cd{UD({QjT~?fDa+-+B1(>)_LU z&~X_29!@+s4tx7EdO4Fe)^yrQ)6PBj+}{s4;DBYs+bQ%^o4p)cyi%Pd{!S4G=8F?) z2QDKv`vDvME$yu(@=~65@7{e8vF0+j)qi4$Ux+Vel9yOUY&Va4$>(h1&unFc_#pBb zuCsqRvbY4Bu$XfFOm5;m;@Z2>&&$aR^d_b`pEk?|_@>@G`%L29&L4mLaU=4g)j7v} zaPa-|f30*M8Tvbo0SK}ij|1X1K;Ku9__#XtYCvuz3wb!2u`Xx6_~MI~z3{>d{b}Re zOgw!%?ZrDd=icwW`|d^Zhu=c?#qu2)m`_e|2Ku&u7%fL%jvlAvmp)#;vRqD|=|ptz zb7Hr-?i02V(Dy%VSA>1Y*6-vb$D?0Mk-yor|K}qEImqC$9e3O@o9C@S4wrjA?e`V< zfobG9za%D@f}NOyOw2g#w9`f*#}A{YeTWD2TZe!HKz&dR821|cSpQ)ArAx5;+RIh! zKKnL_oG*1R^ye5LWz@2QbQ@s3v;oR`WCK`g1GR;_gBm~@?FaOktw0BG;))e3EU$hfXJ@wSj$kKA+{uS_ei86p)n0@fU2QTn^ zp1BlWk0PIC&T$a-;~9>>gY6$ljPVxv?;*&?rP#Nlk>Q5q4fS=#{sr0o5cA9Xz<+5N zjjhxd;5!<#oK>!qL< zu)W`nTvk`gejMfOh_7pkE!YFP6x7}iwqN~_PWgDxb`ts7B>H;`;(7W$=#fBI<2E4J z0qbTQsGJ8IVEhwofV8Ow>Huv(2W)ZwHf`EWB;H!yvSrJu_=BPF^Ja4Q55SMf$izzY zasheN<-`iV(k7pzPnIvedi9!4J9#*{_Ah87m>bR}_Ftl{ATPHR9{x!DXMQ>2e~9tW z+nMC{-={tKBlci1{$~>HfrZA5=<{6TNb)`3Oq@9JEz0zp&#F?T%6#tkIAuN=bOZ;3 zW}p$U{Z|X9`@#0>`?dY*fwo_|1pezcBfV!Cjj7bGrqg*--X`CfKnLP7V4dW@kpI?M zA0Q2+h4GNIsS4^5AGIL{xD`JAgw9PPCVU=!>c_G3h^_jcfByMj!21>d_{Tqf#V5=s zw>p_TfHrrg{GhEqk67$|eDFx}uYcIiBWE<5Tz;hQ#O=QklTC%E**qii|N0JN2-xkHJWCj|;IOKK}>p3H<{LXfMnq-kd{zZ|K;uV_#r>md~V|Gq~m^%Gd>D0eyZ0 zum{k$Y2UQ{wtGX|zgpebmpZ0eyZU$f`R)q7Gvoz>{%hCbHbB`o_B9R)KA;-BZ;ZXZ z2|GIh+xs$n?8EUB!SUG7bIA9-f!|$3Zg3*}|B*cGcw)$5_~9?``780!%di8V)3$sY z8}X}pO`QKbZSwE2|0|3M$RA7~Z#l#EAMN?2@{e}kO8ojV+KoB4-FDjqp7k=m8G4e?(t*FbPIa_LS|-W6c3zo$|<9f&$HOC{;T_Y1MOLL5b}Q7 zyO8sd|3UZj*?oQJrjp}bAK7!9D)D+jHb6UPor4dM7Sf~=ysw4tIEDUzXWoDR{ma-s zg8gm4q2L5)eIK#d%$sk%dDOGdKKuTeXP)^bcHu#E|9Ncm9QlZio+qXFVj2@zvm!RpKBNB<6D4Dh3J= zy^#OvN@V->q59Il>(87(0ewSp8=w!62EhkZq))TnK#DgEe^WVwuj5zMN<7|KAU;`$j z>r=VcE1c7t*zRiX^Of>Nj`&M#z{%`4hgl!g1i|-*cE5EF{8u01{C7M}QXl$v|M?!H zb)kMjxeold&c*@SfIJ^SY?lc?Yq3wCDed&12h#rQ(yw2?=kfdRalgLgR0b254dU2U zj30Ovo4-_^F*f9D@&}`Bm(d!*DUASZ)h__aXj{8 zKDn8Xp?kEAUHF+e@Nu5^AiVvK_QDwa#z^l=JAXd@?Q_~9|DpfNxc?Mn@fPIoH~huxx=);2B;Ery4sd)Z^$PsAj>>wR|I)&E z$hgS($T&%Vso&IpHl@9H7QX&v?7{`;@>$%oKeBQ@Ii1^RAN-`=kq4O0SfJ6wa|^J= zE9oB?jVuj@hmT_CfA$>iF@^0{$rt_PdGPxKbb5xz$oc(2yW$P_JkA(^zMy5;gSUD9 z?X)3=(bq7A9QUile^We8-svlVdHKkg&pc00;+AKLL6*~AeH)q82PnhVCB%Ml->?0X z_tGNpKS}?1lI#EOs-IVWVz>nLi}OF&0P8LdJ)uW4e8OeqPA_1) z3o%7EV!K|fUjVP(Beq{jn{N^M!f)`^bL9>F#NVK|_i)Y)pMCb(E4lpzE3g^wBSWtc z>n%VAreU{VQP1T+`JQ>m(=f(oy-IFxvHOUZ;hUm=$D&Vd*>01oS6#``41$kyjLC`HenCIy80*8&@1ecCzXHAt zBwqN!{rK>i*y?A9&)y@CzZ}{5oO?Y%8{tQJjqRRC-{KSG=_Zk1H3x)B&E^UB);ghkT`IMHR6FPYz_I|89A|_l!yL`Uu zskx^(>aV2n!q{w1@l-{ zL7e}_JJ#8{Yy0JY-1qp4XNmFF)fi=Ai5M!~fgJ8%~n{ z+1T+W_*v7O)K^9ka;EoI^}D zPJRVo-=~p>y_4f71NBfCBlg!Oz@r@U5FfDb8e+tkum{WV+i$Vm2fpR$FML#Gf!T*muMLy7k%`YiHAzu;T$p#9LB-GjhOwDp!U?&l}$!o^&3Fi=LDGREWr z#;f#ZUD;KZmx_`AtS0`8`+sd>ybWj@peis1tP2`J_mk+aecO0H z@SZ&EH2PI<<@ib9aBvtn0(2w(x}P?_eYQ)m*AKJrGHmw;=>Gz8If2g?(_cH<`;jwP zJZaJ-_n!hzLNv;(7jEVS7v-!jT4-!9|K^t@+ zZP4GzB~2%G=*=}v!Cs&)*J`_r{pA17Amsgn{+D52KK}bIWl?JTLD$4u@ZVTi{%af6 z5osm=Ye2(R`0P6wgA?`bsL%A@kfQmzFUPgF(z{9SvKh-P&<;BGg)g&c=Pjk3cQ5;T z;ty`8KVTNTbNhJE8T2AndrSUfTkJP{h%|b&2y|c~|b^{EvM9X2}07phMulIY4zpT2-appT)SE zJJE;P@`qgVQu=y_L!+}fuDpgR!u1W8GfUK>5Je|13q>;Eg0M?Hi--l6b*K4a^~(a$%4*y~V^)d$spG_4A>t+ox) zWuXCn`Xur}6Up07B42PS=Nv+;cqwhQFNo33W?SAi2U(yaeZcpaOEi~r=bd-H%s%-q zp99Z5*Vsbeav;b;#*XLQq4M9{5IN!Z$wz-rE^;zC#FIHkd9dewg1Y! z@?YfbKY6mKPm{VT10`}{y{*4KU@NdQW9QnEi+_Q3-Pn8XxyN}LI0)2mlxM3MF%3@-ZX^aD1#8|l)^w8S%)8j3IiSw&OzjAst(uP2ca2v7}ofUfRr%7l_M2MfMjY3wz?5ucD3k z5q{uE&hfsT(Chx_>mh8*JL5!`^0OuO;xgKWQ5ypp{1h8;68p12Vf^2pW8Pz5&=~nW zlKjNI^hreH2#h-!8)jVCh2u4WW!(W-pKU<8{>y)9l2H`ff5cVh0K!;c<-oe;*#O#1 z+CqJzv~d~Ww)zs61L>$O6>)h`7Sy%6%pEX*oZh|Ies#7Uw&m~-KKS5h*5z3PAm8Mn zx}1fd>CJeq>GF;I;8^73WcIfJ%|OuqCaeej5B#^y;r-k`gq-q4^d$`^E_A&4a>k!N zN3Qr_j%5PN8~AU$6Sx0Gn*Y#sb?*mj14102O_VM|8U>jMa$wsj$U?9SK^~L^WuP{B z;;V`2PGP+sx?GFgzwh42`#pg+S-u7SA4H6JHnHLl@}D-sB+fmXG(FOv3O{*zycYydhL_XEnk2(dsx za-gk@+k+qral4=_C&dumb+;PNs|HVMv)qI2dO-fG|MF0M&Z50}3gdaA zTrvGTKhp-ei2ddVS_17r76@`+9H?FKdSyx(@Sfh=XBfBagWMfN%yT&7!@AN>)RJ=P z1C(FOUzq+ES^g^n#sR*^M*V{ihG0NVuGf`C9Tm&!ws31uM2fx5K=y1P4L z{Pu(A)!8_k zh2SHk?RMDNooJiu2c)_2K;VBJ*5#4B(spahwGpkriT3SK#uV*c4)uUXrWdDDh z|6!dtJN}KJg8V_y3276TgSO4X|c31yj9jN=- zXJa;x@eHVf=z**o-a4P5lP6WpQuTu`RAFV)hpbYE> zlmVYv15^RpA#H$V(*`K3mRbH=4`m>a|Kz+A+|a7`$3L(axTj>If&bYf@GjD z{%dEAwWYcGR|{zO<%|A03&=C=x%zw@=*f7U>xoUKQm_=`K|W*O^^EVii@enH3@C@nqjDLy0b8)WiVt86dXakn zBahjuSqXCBca@=gx-6vI1MNUM|MjctR`C7OT-w(K`v7%Q{u~12y}auVa1Y6*}vp~8G zRAXP<4-{krtW#tIkT2i+j@rztAz6_ zI*B~tHC%VH_XD;UytlSR{}Pu0ZIHGo?gxxjEO&u6z`69uNf%ijuT911PfsWV&?rDV zApc8&p#O2-ukF{)W`dfaKF}5$pB)V3PdEC5`tlyno5UY;c^Bj-`X7d}e-Lv#yu~}8 z%gF`KCx1AJ=STB=1)j&3$mfsvg4?+6T%Zhe1;z!3gF``(0b@eTVR?)Nf*(k?0oEzl zfGAg9l->bd8-5pb4)4MQ-n&fazq%v;wf%A3ug>-!z<9qgXbI%KbMfEAc)ih#^~>We z?+?skJ^iua2lI(o4E+1JtFU`|6nXc2A() z*XOs#-k%JQ@8dne$=dihFI}h4b`j$@X47}G!f_y+vx?1+U&9!MKd{knaqm09)!;JF zmoeXW&=>ePeF_(`tu4?F7<(v-%A~PC+z*szJG2GjHXsA}@*6*EOR6Gy9`A1@ppX0y zx*zy&+o>SkSI5+~VD}GU{TRpmGA1CJ*CEcw^<8%k5M*E;F~jHNoS(&ZJVn3b$Gk&6 zi*W$U7#A{}oWH)IBTxpFMP*Xi%mn%YWmefW4hS~D`U&fsWE^7xSuB#gT~np3H}mck z#D9H%VY+Y3w>MDd)V=ng8*S<*Xk+Br{MGSY{a+p8*U~=7Mn`86Gt5yY!ZF4JFJ>&U zafPu#TW}yS7Em_zPqqh)RrOni*?^>NA;y=jiBv`Mxb?RF&?o4BT=(U_e&6=Abd;Xz zem$V>Hv{T^XV8P(!a(Nvi28T~kJ6Wc=j4DQ`|mr&@HB$!`UH=K^U|+R-{zeVpscW~w)F zzaMlz#C#n%ZcMHYUe3GV|3apsxt^hBo_`Pgl(+Jmd7z^?q=^xo6Fh?J*!Ad`=d7(9 zz`O794OjF0!$5POY$~JLfDi}h1C(WDx(qN5i1^QPv-JVyK&(Fq{Fg4$M>>VL&zzcc zl%8?jZ^QNx;3RMcxPq~IPclbHz8FB>%S-i}+<(MtVnF)=okKd6nVA{Eb;kFnuVHm4snPM8yhK7s#n+rJh2 zrI)_5BFF^NQ@RGfA9TML`_2ag$m724Jg`Cc1Mk&mVguj*^m`8}<_Jq+yHmU?=p646 z7~7X(E>PzPNb&x#-wa9N`y;stwjkU$zN8+@cwh8Ya)mu9gEDC@!Z;wb1uC_-_+0PR3%3z!qC0YV(8574IR+w%DU^TCWG+nm^M{x?CpD(HUTzjTp4aoex{1lzwq z>(ci~=7G6}d6}M~FZWf(1CL<*?*#gHR|MY3FZrh4V_O~fV-6tVGw+K#k5GzSe+vJd zVm?6U4@ogMtn-XG&u@x3NF%?X9nf#+3%qBL1KtPCVf^O=;?BD$&pAN;cLMr=#=tmG zo0SPF0&Q8`2jq(ZYzJ>nKgRE_&i5NDg}8rr)@y=2fwuo(#(tefE@u?HU50+HfIlm- z@p)}Cc_hE&n>L?3aKw9g%N)NcVg$zlr?3|(-tml<r+B|N#rFat8PGTA3zQxD38Gja*Z`l2ZOI`Y^abU)37iXhfFr@7AhZMOvR)0W zDF#T=AN7}i>-8_-zp^h1;=k=a^+x?skM#Y$p#e|2B}+s0G(jrG)J zZN7T1zVq&Ait*bi`h$IcI0AD@rOF-||yY36PAy`2>O|0(+ZQ{-@+Gcd*bT`9_wqCYN0 z-+zkvBBR(qe_`acIl+88#(p9GlMeFV*e}k1?PgUF_^(|(lJ|WcByY1yo<|vw|F-vx`Ssn} ze)(vOr@zX&e;s)D1{!5 zLN?D?L|pNs?-rATIE6B{2F5D3SB+haVRi<_G{!dOH;i@j_+Qk=1#dw9ALAU%@HlUd zu%P>K{%fzz>8QWPbH@3+dz@l^h)DP8cSxbTDeje`k0+7^ViLbCkYet@C>G@XbmxqY zVgP+fyd4mKW>_c2m`cCk1@P4vaBcW+%%lC!uq}jt;#Ql-Z$0h5`rn2A*N1oydmj3@ ziVOt(5ByjEjpfvT`Oo~|5&s#77U}+@k3O1WtVoJEf>QEd-_X5#_dNdFW(@kjCjQg^ zFrGYwvEVxM-y8tnK;Ari%XZA_`hb$W&s^l@g@iVR z{+t60^!B^ZIq$_QnL}gw6HIcYTC1qR*H2=6$vM<`d%W zer$ak*~ z!W+LGm!SUYzcf%6q=~c%ZGiL`U@wjtSGNR*Gk*3$Vz`g&hgB!zkpFQR&<>anv@NGC zFeb2VFTeE-w)5n>`C?_od`~*>gYIKLe&b!S$0edD|j>p=$Oqx`g8pg%W1q)pH_2zjo2$aiHW^!0`7!~Hmx!1!Z?OI9zVO`Nh{j{>W(y&mNh_qAdRJU zXXf&`nr}2sgmU@pfBJUdqjC^rLBB4qh3oP>91rKaOurZYV;-@~Lp=XXa5QKS(sjQo z`_z5o{_VgvK;75A<=K8>ha&YYz;%^i-+?Q{2grZzrL>cV(o&jgSGBLk0jA)MOJpPm-!+OcpXc%X&fs8RTpIkozAEUx@*9u) zgYHMRe{+8iH0A?>A1EjejOPNRZC$VrI1p%ed+_E9^TZUdxgCa4MY1L~W4*A7~qPA>li@;F~G7v$5l%Wh)-_3Xc!IPp!|>NBwK ztJnglzKVS(7Fa?2ze=0JbMY0~(i4+b!Az>~D~rx_zScM$!~&m&{{eB=F=K;G+z z0`D_f*GBCKj9aw(+A!rfpYA*6pZ0O$4w+Kn^8`MmFaD}96iX8y3d z*ghF_09inrFYoIC{ZVM^>+|Dwe-+&~=GX7@+|8EX=@l=)2IvRmzjm_>&<3ba=`s-P zfbqb-K)x7{9SjZyhk+A#H|TbBcos6SEInVqvsVy54&^*`yC>-CH9#A30{l9Or8ead zps#5N;x<2%?Oj0J=UZN7*Rop=i6*^HJak zpxm?v+7j=fOlj}6GkbwOKn;)y;=I>SX{#*nD!eCWm1KPBW*zevCg|Ej>|)@*OZgxC zfOa5V26kYd@qjU5Ca4bT0R4fsSvhC|+n;8Et?( z&jRYZeBU3a^V<8`K;N@FD2VsL=UZmWZ#^=!`%gXfRFeE-VI_xm0!bFT#%2sR+d zfcm5iNZ;TKlmYFod@%N|3iQY7r#?ZR$vgeRfuK3C&DIhq69KJQ&jKE|O)1YC0rg#* z;=Pou8bDvaE2sqG{$9N=koW9QYWL}X+U$9}CIUDwgfgJMKsRMT1Q}4L^sD+;>8-up z4(tfD1#vl$SMsbb&}J(O@>6-xHpt&N+~;xQ2zjm@@mlrWdnsGWn9uN8KGSFGlM3U# zx*xUm8GDr6oO3;E;(PqKdZNBaJ5ZPmsB6+)`YQ*<-RW|mu2uuu1o^04(1zCs@;AV3 z_seh3@m#O*TJI6(d(e5~5TC6qYL}GDd^Vr$jNtR*^($UqJq6Sg^@X@B$bd_ANf=K{ z=eR$R2l7Im1Ub+zR0PHc@=rci1=WH2EPn&scE9}goJ`;~!OpAi@?C$EuJiKVvRJN? zz%nYcQQ4gXx!C8gp5KKXW!!c&PiQVJrKym<(mBY1dM6KpJuo&<7UWZq1^K5eXuE?v z$lo~RwZ}ZibG=3x(x!MHWlKBb{nK?mUGF2_>&NtG#lQ8Zfb)dLVnXQ}mw~t(sDnWk z-ZR?j_O8S;AN$@>Mq2b~Xm&!_k1v(@`z-mgF3<5x;Y z+lIORAlQK*2f-c`Bn#SvAPe$PUaH6PHQ0y1XSY2T^xX4`Z&1n_?HY^472aXvrrh?|d7R2Qs$b!D1Apa0#LB19Qbv)>Koafq=!1v(i^XWXt zqiKQhj9?Mw0R??(aN^++%#G{G32C`RYIFiE}}9(|9| z7%~q1x$%T^GCDrBnCE{#eiv3^?Sb#v2N*x5qu8z&M!n+w#S|!}Krsc1DNsy-VhR*f zpqK*16ey;^rcMF!7{$L$jRH%Rn#?~-HI-Krv;N#nrP8;TmcFlF{P>8>?9AA9PNMnn zf${CBmks|aww+qM;NcbV?bL$I?0nm)%$)f43OdUB#da)NGCVarww>xXJT)b@J$G)t zqZ}EYnj1TwO1+(LYxtD(^WV*PeD3gk+c{H)znAZLT4}QT^&1{9|5BbGf50-fr^Ifs zfbH03YDP}}ZO$FOBzA%)$LZHEJ9e<()hTJa*StL=-xX^+_$z=B@nP zOQmrW3AN`e_DkDdnYO+3{QT!nO{8xp^VNT9B4KJi?>8@zFlC$fThn&>^=#*R;E4R& zP9GIN?sok71#QR6Jt#J9Ty1_6WB7<<%yYT8r&?`8?mDEP21H)3&*NX5K+o zIG(o)gT0mdMP^OfVl(g87j)DjCeRGY5av4`ZJk^QdLeFBkgY3hRq4aKHWf zUd#LV8O#BjDX7tz&aK-4)?{!#)ff{VT@!LJC(0K%)ybtw{q8eY!u(*NZ5bR zvn{)Hl4h3MGFx8D=(||Ef$+XZ4c2Rc+A+9Y6I2IP!S0|kaIClWa{QWWM#CKmYvmM(@1y&Jlcf?Nq+I z)|>e&E@r(C^WI+k@y8!ug#KOh<(FSx%zL(dzWeUGOX*|1obOs(#yFfyX3UszF=KZx zK;O?}JjU6xXU{$j^q4tw<_R1-n)z=#(;wS$%9JVXc~*ODLr0!>829YJ{4FiGZ*Asz z-NLaK>+-YjmitAr1KrCqf5Q%xp$_Hk^7!MA55Qi&jNSZ-Z@>M{J4cI{8*m}>0nX=L z@%d~opx<~t-wm8cKkyvphn&S+^S?89Yd-@^shrh{p+@4`R z`9a+KD&`UC_0?Bj9n9SBH5ngR-tkB4T7KSDPdKg+K58SC#j@O|9QVtl&$I% zdUxg<9O{EMOuMEI_}mQmk>t8{5ufN>=KM+MQ=og`!Iscz2kdiAc+d*@>c#sBk0M8t zz%;%awV3Y?t>BxYOZdLfRODqba|$nIp22L6&t%T&S$u19Dd#O=|9rkh^C{mjd>G$# zHM-;X4YXm}2yLADTf%w5^waD6bNmCe2{u$7Xy+VoNeL_6+3;H;PF&tCT&zX$< z_zk&PO8MvWy_f&+y~y#{!daX@61>h_@c-uC+E@L8{zTa+EzkKr)CQTG*D(jo8zm2v zM}6gX&`Vy|h3`G6$934e+xQmYROhQgmp_5NU-GSj@0jEG2j-%g<+^eP&t9d>6Zl@y zIPB~d9DkGfYI<-leW0?h?3BXxWH4Xh|4RDkdi4N%A7n`0>SroJquS8FCH(J9dEaDS z-NoqS$HZiJ5Mxf_`?#MmH`gbO-T(QGH{N)Kd#1vlK|_ZQeTp&u6PXj{Ui9TN&buC8)`{)z+{buAx=5cAjyKv+@BA`HRYH1r z-`x90I?Q?%d5?Tg%?4DZ}5$ym(kbP@vm2*uisO~TbK)@J9T;y`S}3f z@(5#{UW9kevB&#yoiT*v*GA~CHrTrimY=!VEWh$Eee^FoF@NJx&~_~IalD2cbz)y5 z{6lB#Z z-WcVV{$-H+^28@cAtSHgL;FF)ec4|d)Wu$($ecniq0{|FjT&_^V-7oF1HT|{x|QQu zpgFpEB6S>zK7UPo+@F1!Antcdz?%(Le&)hVpm&k{Q1(*zt-6eLI|bS`<+L+aTT9sZ0l*IyFHwPauLyOH18kmc71 zA>RpXrenEF5>LzL(DqPfZ3`IxRv0~cwBHGAN9@^*bB&XmVJrWQO?`}Y?Ywm`&TfF* zw`VSLrgXpmdg2siNZ(@lGbn##`!>{{?E%LZdT*c{`5bjYd*^el&$h& z%FkSuFCfpau`NGZ0qbGBRv+vEpY}mdv_FyWVwr&r*kJM#Xh3Y7z*Z-1*YOPNpg!x9 zt&8=r4)VeFRb9{+v_^Iwf(IY5-W?nRIs)r)05ERI1j>J&{-XOya~&J{M=X{wo-ih) zZDu`$_0VqkeC)+UAv+acheRfPd#46zl|V{cm`X0CdcK6`e0qvALUU0Thh3V z_QZxRe%}4Gsrah|vJ&j7^w)n{j=hkdHk5lHcII>1ukR3B{7O3}nh%xs!3u2C1Dw~L z^R%DpL>-_Vh`$peagZ9z45dAK)-&Led5w#}+KZrBu*bd;@MxZKC543G1_)gnKDZlMG z^N2hn$c}!j9`E3G!>@iu+vRuSuc(}~$D;3g`K@n!arBKRWGkBU-E;V!^ZQ(D44nnE zyS4)&8KP~m!Q!|$A^Z*sG*5#uh6pjZ34eh;d?TzrQ1NW#4q=i1EByo4rT*8L_A=?RZHu3Tszc)bVuH~KW#g@x? z_mvgm{^%RKeshnQH2U7M-`L~4Xx?>XF~{5r?S|92hyFl2q&+Bw9oQ)E*EzR_EX=b{n76>9Wi3WKhclKSE&QqAM!wv?eY6eew#}> zYW>JDO~)4x#7`g3wT(elkY|53WIG_82DAmEn3U&f|BXZSy$z77bFr1tcd4}XmeZx* zn2_ey$$g?})26=?^IgPstw4Q{XaDU7&_`~ppM5eh9nfCLcYQz;+Fv*D&D>9DH@t@I z{2a=w?}h%0`HqGi-+ns@wVi4#WE)c2+YXSQC7tJ(I&ZAvNAsu}rxU{jA1n{F9olf? ze`A}j#F8(B@{{|SLTqN9_IdiFMw)}*9OcG(8~dqCrDampt7|#CsoN&+lU2QQ&Z7-uQE0px&teQS8RDgnkQI3y;~TOW(W2 z_UQ{k9prGhG(sz&fuGmJUcR@GDrX=__L4x?fe6{)@FN`geDgB$} zR5!Jau1jz0D9!bOC5)#myY%?0e&$Ni%Ou}tPL3HfCWD-nb+LTX*Rl%Nty@%XWzT+2 z-`U$#e$tSBil~3y{%La;l-IhHu>FkB${@#*G{;P=n%EdVc0@dT9tF|f6vPqleplb2Kqk}b?VefIKP*CPFuUBVx~kkJ2}pH_+c21L`gCJ>+p@+h#*ns0>jB#quGaxIKqfF&HYTtv zmOb*P&?dR2@glYz=o2eTKWugKZ_S814rBW`#wBzkemj|cr_;7L%lMkHAm{PjtW{h0bxsQB{+D(pa)8DS?N1NEbePy6DbSMuUY9r6x=y!bu zS^l23~?Kc~}IG>e#FN#DMGzhmE2`tH6apYjg! zb0W_*Z>mm|GG79H)>QSpi7m!DXQP0CE<8#pCE!J%dY9F`YoQzDy zovq7HJDA(ARtj0F57Z^w!WAjQUgR;(!=@fhd%g|d41En9J(^<;(Ya1M{{_bHTn69O zy|U}`e9Nk?@+@f(Y_WE|oPBcGvIgA0KD0OpIe3|z=_wp*2KI;cjgei){n*|wgDuR! zR;^3*qjU8Yj;&>kiSr!AeUUn)Z0!x&AO}O~hrbl6}%%Uts;Wgf}G|JG;I= za~a6I_8`ckHpTIKN03Jvf-ZhYE_enqHkUDL&vNWI%4^R7|f5H!dpSN=BV?+465m!`jcy`PVN@%i#!o2D;1A0E$<*Tlyu+WOJA z$L;$dhnU|hbwKV$h^dn^x>r#h73c*g?c6UX>m#<+dkzkmOC(Utd*ee?F( zAoZmbal`-I@87z0>jXJYBmd@14ulg&y{jTMml6qE*aiJE6Q#>+ zw_Ul?r3)e9PP>*bS82;#%O^~)7WAu_*ttZB(&Y;+U%85uKasFCTF7tv#4g(vcK7I# z0%fm|n{CRwuO=KGLA((#mG!B_9iO&Mr6!(E$u9x@Ko+qH`%SA0yMUJ>Wg_g0!r9@R zyXwz4h3=C?6_AYnS&7FfY^MK=JBd$$2H9&u+BoDnheH(C-Lxo|lvNYYXkWlH=KdyhDM{ zw3=2EE8t{EPQ^?jk?en(|lRotX@CZH4`8=TL?%IKLS*{S3Nflh0hn z`x76tzZq@dGU@z}-^=l2Jf|Eqyn-=SONfok5_MH{>qtCE?@-RPUG8tEa+NA=v2)lWsNSY>Wixnx{&p@OJN)PFKi4YfKfc9| zJDT#%`|Vh+5^>g_zY;spXAt}CzV#0I9~e8fhSfi9=hDnXA_Dd_C)iZi*&j#T*8U$$ CVa=le diff --git a/Samples/Example_ImGui_Docking/wicked.ico b/Samples/Example_ImGui_Docking/wicked.ico index f7f3f5bac592df91113e13924396fbf20e464eaf..49e9bd2c1f62795f2303ce36fec8f1ed662e4bbf 100644 GIT binary patch literal 88878 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 W=Q}Zl^X5}GT8=4;Ov$6st^Xe)Ov+vW literal 86358 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 CVa=le diff --git a/Samples/Tests/wicked.ico b/Samples/Tests/wicked.ico index f7f3f5bac592df91113e13924396fbf20e464eaf..49e9bd2c1f62795f2303ce36fec8f1ed662e4bbf 100644 GIT binary patch literal 88878 zcmeI52YeM(+J}>Xb#*Ok*EMtjK@<_i7DTFoil`t+5wU=Zy)S|atYX22xc0SU$6fuz z0*In(!$Mb3REkLN1VZljJi|S4xZZ@SM3ek}|ID4ab7#(Z`}>|VXEHJ}GsXpH^ zTt?NcGc)RDWMtH@pWJVdkn>zUVtA(zw=`T=av4IQlOLq zr4%ToKq&=EDNss*QVNt(pp*io6ex}q$jr>l`0HQ)nz6$UJFJ0ScilDPth3I_Jny{o zHYvQO*G|1(eBbuiuF}6vM}e)k-a4XrDqk;6Xe*0n{ z9t7Ucn>Vk(zs33#`YG=N9i&U3lXMF-4EzrCmJjkI@N-8#i=C3#nQg$|_#DSB?5_>+ z^ZgvIUVZL4}#-2Svr$|!va2r_J6(&>EA_jG)Z^ISSh_rT}C zUwOKB68o_IdlLJy&5ofQpVx-?`F{2qB3#q!d#@lzK}M91xLm|#LV1Y$kzgNEWg*zV zR5?g11Nv2CtK#&hJYI0Y1%>(h!g!y`cj+bH)$>%IOYgvMc@lUmUn_u$pi&Z**;Ywn zKeho?`J4{n`>+ka^*X}qdVTLx9(d1eU>o9cpWsEDmG42v zEAw68xBQSd@=9LT1_y&W;1F zE|fjnWZNnNb$g3U(_4vroPK}X&U&h{so@P3;80C0Y?L`t=xF8AREervUdQ`Mg&=?#Aoe- z?YAHHXHQ`NjAQJta$x^=0McY_G9X>c0_8v%i0UfVh&K11wd+~4W@SD4=%d>_@W2DR z4;(nK>OJ?|bMVliL-(hyS&bV1{)-kZszx5W->Oxsq>Vh4K0J88{9!2Q9z};KU?OVw;Nao#zRE<8O}#UaKi+43v)sK)FyRlm~5v zGN>#Z2$WCTtW5}Vkj-c9!CoM43zUOk3zUPu0%buc4*@}s)G2jKImiOh_+xS4zx8YM zzs$mg3%7yaI}I5!r1EXI-PXK!@7`U{IOB}#k3atSJ6pAC^)Tb5|GMg`tNPz`(@njR zldA_09(=**(W5&dKW+Hksr>%r#ful8v~=mx6LWKOTdZ8UvN<*-m5=hTC1?ds0jGgB zpe<+z&Hx=iN6-nJnMCK%+6_0{ z@CtJE!u|K(|I8ClJn`g9FTM2G8*jYv$h+^p`w(<_;PcNv|JS&2|Fn{Nhw|NZv^ zr%ju7-_Jk)Jb=9UUg&r??YI;4hpu;ElWs%S`hi=Z^*?E6U(g#nbtAX|dF}~%fa}23 z$m5mZGH?m#4ldw$H*g;3pUZF0<~nDAGr49buHQj$uMXU^J@@ZGJ37vpGpEz!$&eQLRJ*OdeKOTMb(LdC$Uw=x21`WPD_Sj>;ZP>8kfU!t}rY z{qHmP+;h)4%y(F@(@r}r-f_nr#X{P(V2?fam{qxQncYT?9J$}r zsZ$T6k4GT~&Cr!o(3>;azi9UC*}ag9{!^w*dF;LS-g}LF_ha;9624^4p@$y2eDA&Y zRt^%#eX#&}SRyMcD_{9UE|p1Ta5;JLLgeiy`&_{ouo){mpDF{k zUAeU%#x#FLo_C%;efqw%zdp9_taHyjw>NtKIQH&sbnjzyVf4WVA3PcToQ4j~L2nnM zE9&+t`YW9i(mc?;Oqnts%hyI=6IMb0eC&by(K(w!PQ2G{yY03L9bb;`nvV^baq6k3 ze%q;2r!n}ak9zdz@lOB#{a?l}J@(dHZ{0az!h~Mv=Oys=Y~;EvKH@~;nMU;Axba}H zKhWpz3(OC+k2?Z&M4K7nJ#|RltM_a0-}z^o)AomZr{w>s{11LW{@X8Q+J4&Ky^VLU zadof(jqug2M~oP83HGnwEw|kA=(X2g`x5#xgnqu;xpU_aI(F>%NxOFKMs?`W;d5kW z)WsKH{Mj|vT=N!JvA}Kgfx7(*H>HU;Ji^?>o9x?KfS0P{Ef8+z$8pqmy=}-*Ot zZny|s33{@BGq?x6`Zs>$Klq5x@SjuR`4a5}Hla|ytIPP}d~8W{4sk|gQ|L-U{u2-6 z`Fr^;!ui3^#JLhKByPkNA+Z_y06dG_ZEjg=o7F1tN*DsAk_yb>-O9J?+K(wd7uoa zC+bT*p#CTa=6vR5UCE8EC6>MeJMr9g*IoB9@!B-`pzW7W@~|l2AM#H);e^G=%2M@Q zKA(8viN=_b-dC+!b>)8h?Uz@pR;`tsn?T?5l>x8m7Mia*^2j3>-FoY-Q~vXx|9pk* z8G|2~L>xJTxN}M+f*Gu=2ugv09|5XOp!3Jp0 zlP9ZZ;c!9BeVC~Yp<1Oo_XeCV)HzZ z&;8c8kG~@a(HAV`x0B!DZ|2OIPfwaO>Cs0XdE`0bfj7zDKEh6n?Ao>Kpu6wB`}$F% zMx97M>S71PWw0{2&Fa}td4G8>?d;oTPk72`xReA2Y=ME(n zYzFN*P&>Q~-~UhIsfVE5V01Og2eGrWq4zxE{~2xDw*7&ab0+!Pa&=T*5GSrA_cAX` zkOxL~Tp5s80{L7?TrugZuf7@wKbLz_zE`haq8L`RH-JJSKNoNnAdWSnU&X`uV{|$V>8%d4Z=Mr`|G~I?`BvyW;Ar zubxf*zewMJ9Oe=O<{y6e;VY1zm7Yu7kcZ!&f_{HN9bgK-S;%*@Xv_bQwFmLh7n9eu z!M-)7ul49_O|})m-oV&L9~f+Zs^9-r%vT)kKDw~RU&c?BV!}+nbXkQNG51>0{gKHJ2F4`caQD6@4mUn*eLA!bo}{p#0WVguzrg&D^UVG7si}TP3^5!YO~5Zi{+!xd zzCHtc{WCHB68RqBZ^$FRW?bS^WGwf}E3ce^KcDIO_=?5k7rEG+r5}Fy;TPEaIY}8< zPX6&4HvJmf+XX%Cz&+bz)7p~Po=hCrNZ-$~{rJwYpy2zp{rbXS`&0A1;76nRfAlFG z$&1}F+Zme+R+J4e?okJ{0qTUbsQ{{iI?$^5r=Na$BlV!K(eD-L{twjr2SLYv)K(s( z20KOlCjMTSot?dcIDRH$0Ta|=bUOd!lTV(3UJm8hXT*8dgI6I(ON|*khnVbJ{DigR zi2w3ZIY4)3VYi2$efHVkqxZ|H)sHvdQ@*G-%te0k^g$CRPJ9Eoo8|Ag&LaHQ@1l@9Q%Qc(2dbuKtn!;8_N-eY`GcpY#LTw|E?& z4oC~*A!#FxYTz@Qyzs&cx8hHyk&{iuPd`sQ)r0RY=DNMH&z~b_E3xU*q0J(E?swSj zcae#RAJkkI{P^RK!@v9PyAjk87pm8nUV7ecChaTB!TPZGTa^pIMyay`toim??Vx1APc};lTgYI6xa<929&&1?*@&>*Ltk zZyggN-?^OYoWVJ5k&Euw_t%KMmXZIDM-ILxmmiOfeS!H0pK;$+@Ngw@BmwR1lB;DfKx;XG{ywfAwzz)!@HD;dX$@&P{Q!QWiZXRL7o_Zp0^AA{~MA^!Y? z+V4E`ftzo>dFuZA@4tw1M$*jSXKbK%QJ z_?V&S{TOuQA#%wV&_83jeE2#Ae>>#-^UwcQzpX9!_SOXqCqG!*Zvy2hR3FqOvUu7)nW&F-;^3jRh?{j=b9^=-FiTS_5_Wwj|awjs- zi&)|{UgVJOV za;EC{-g|F5bhi=vhXZY>abPpPy9`_ZH8I^V>MaBC&mS^QdJp;bJ$xRk-j*+4ela%q zUF`K}dBs@aQsig^e0&@JE|$00j|pFX`Q=C0f|c-f8a86S{7281ee%gC_77(Y<2c!joIM!e7y8#7k8U%RotiV)QA4j|6*}Kh-Z}XLVW=GzAtq_=~WHv5A>gojkdynzexNx z6k7LSoaaI24cr5NdSUAaWAk&h{p5OMUVi!IPw@}Ndn<^`wb4(JmwiGEunKutMqDtA zoNTOqg3{er@N`a+|4Xn7?~xZq`y8JJA08)ne3;mBQlCD3MsfZKuZx^5;l3YW@4uuy zSJK9_zyA7b;}vs{WyGAu0ri3WuMDz581vEJ>G$;g+Wx@*0^KhTW4oI|_KXAU3w?~o z0dXH74fFx#0bxAAIH@A23XGkPM5ntj_V)%goQuJEPd)Y2KarD*u@kpjd(*CypZ~@bM22Heclmyv}j+7aT9(U)I-`A67{KAh7IS?o;i_zboqmod?|k=YYC zuKl+!_Q@P4#D4ZU?)wXDKi7$#1>Y3(FAmpmoSMGI`EOt2K0sQ87{J^(Zi8ufIMV`FVx&7b62da-G5Of4cmq#w`B_5%&+qenc^0qehK>3JWRVz=UyivTNg5iVJzSM$hA6hO!-}x*sp;9$aJ&@QE}ki zrf9=@@L#{Ee{_6If2kj+f&SJb#y%Z>H(|dqdewq$2Wo$J6SL1J?#d@0pUOO}dFm~8 z`&;S*132d&{N`qAe4p!=k&W5#6n#pp{v`3=kMbY8A^-nPjcy=wy}r}W zqsuF?U)q4a)c5Yf=Z_}Oe40FAD*hyoIhk(}AKXhD<-alN$;62RsTnRr?k;D)Hjw}J zX>Gng@{z@1Ue~7Jd$>kQ46wEsP#T3gKqWp`N4E|_|BR&^7d!^EfZmttd*v&3c?tG? zp*ER&{m59MdVdAD6#c&2d48Tp+&Bu^d4N3NOMLVS>anlD>-(wqd?){rrA6eC5AnM` z#D4!_4&P$s3Avd`oIj9uT#v3l$2jC`V7T!Fb^l4&qrUL04Zmv$8j+85B|rR@7)8HO z2b2f)Xl!_MAMe9)h+H#(MBSUI#K>(ry|97(+WAApe`A zZ++m)Y~wj%@%*HYP8&03%)NZy4Rip;2Uj^aPu<5ZOojJ%5&J((U1BM*;ski#7hd(n zj!cmM*zBd~u6{%Lxs>|jlhk`hn+uXFF8ja#`@ccR-c|Vj+ZoG!hT78?+*{drhkJQX z`F}WQL<~8A9P~y$+wN=-kNx7Yzj2W9@Sm3d>tX-pzwxoO3NfHDK*$5@W1lY|UK<1N zqj7j;z)*+FT|jG~E_R^yeG|iMe+l28Oa0~z&bbnQ(1V;{ zwETz1%ZUw@A?tTt(Df^+5x0WOQfaTcehv5HpjOUF&|CeCDBU{0-E79Xo@}Ki^$?rU_ z9GwBqBu2Q2F{p>BEk-c}@!wb0AE-NB&iv1N@g-BR4=boS=r@iBhk`@+&GF=@%Az@J zyzaXb`-SFy#5I44x=*nEZa0Acdq5-OW&LI)PzyVKA~n{h@%g#(O5PKnO@qg`@V#_y z2FwrKnjds#UdS8TXX1k&u?0TUb1k{SIO@OO;tQ_hoKD~(Wa@ujQ(Y#fFn%}_XhT}V zkB-#-uYteM;OiYbT-mp8-~YpRT!c(rLz`YT4`2-9eQZe^ek1=6;&-+AU0psK!`K)5 zv8oYGG5LG)$pxNsN)TU{!yJ?+mFrv9^Usxf7SH{pnh_z z4L%NDpO2r2>amR94duM<_>SwT@y^5syv_c3oTuD$<@VsYC zPEC3Q^~M#{0S0oO@+beb`|5r+*c+7cKYjkU4YV;9lK<*Pr~y^Lp4Nw^{R8jePcE_A zaK?eUa-Okv9bjJQR$F@*P!5hGHoHf^44PBZd>8^Zy@HFstiyg`ig5?m%JO>w1npXK2GL=2Xel7i}{PO zU&#IJn{kfu&bDA{VEk7WMDc$Kv;SMs@4$b3qWs?lWaD4!Q}eyoXC$RHHufj>|Aoyx zh3^jqHIq=+q<3wgEco3C)c#+Vr#x#s)Z7eN;<2F)!>9`n^E2nj+s2?ZwVY?Q>-ur# zAV0}5eZSwS%f|x!i}3R)%pK@Ytze$Np+@j7GSHVXfiLh23&=sQe*c-JCb@UtN&@`u~05aRbKTA0{66S)QfL1sI0CxAvdI_cegJC8~kyV1J-I)B<&^ zzYwQ?K;36K<8|f+&b{w)$RUS}XD;@g?4JMvPfw=4`-r-)yg1K@?@k5sS{q|rkpqrS z!unHd;*m$FYb-GyWe)Hg_>^anRp$!5h`cr8Ty^PySEe%jYK z|Nnwc?SXGShFa`k{OcIzX!NJ1qMimi8bb+VX>DpYkiHc_Tow)_UO$ss{?F9=pXa*z z_=eQt`ZJg8Np!OX`+<-0v>AEC&De@ua{zLKAso~G*9WP5Ka68S`+hWX*^cuE6Z_>l zUPvAAJLZ`##fDgG$l)B@W}Ei_`n3|tf8w_cc$rE6MUVkyUK!XLf4l?h1=VF)n{=G5h0>KfZ$VjwF_7NDbm~>O|_k`dk;t z!+M|*HJ={X@@3Wlc&_+e?%jstIY2oHvf{b^#@`;2#F6-_cGQSpq|USy8?p)?kVlR= zmAOLQI7itHxu5(uzA16~k1a21jfkzNmF+^EwKh4MIkP$~&-InkOP%qv^wWka3x1zY z7P2{h0Qut8)SN%T51hpQ!PwL$=;^J*<_+1GcgBfs4+9Ob7nd`Cd!hU%)^MEX434Y+ zMe*Nj)CTpCuU3rp4WI@v!&p^top-4ddVl?sZ8i3{KgK!f?7w>Pr?mgr)xw?$iEIG$ z-Uhy#6R8{0$IoHkcsVWy(otE6%R`U_b*)Cfe*JDF4!fUg>Z@xoZgT?mpyM{bn5MyN4>2!6m=*jO;cgX)Mfpgag=BQ6WUE(Ced zF6bMoGWOP+I!=2&*TCQJN4|Cxc3Pg-1m+0xE$}}FJ8>Rk{8Q+2f;rxk(c7+kudRs3 ze#%nt0l|iN9k1tgwe>#VbpmtHt|ia>FSUko%u9U`Ur-nM&}Nlb{-@Z0cpMOyfi0m? zkOSjm^8!(nEJ#yjK{?osSfV2J`E!Uj^wY+L6|m1CKQN{U{15g&2iZ7_Ia}l8KjS}AUK)Q#fc#G<10gpI_Mj+P2tHy5uB8m@g6`=D_5#KOf&W$cTmz`D@=aT=J~sgE zoWo)Mhwom_9Fdzjb}Bd?90#-oje)Y@`8mMfdJW|$$bj8}VfkSYgd`A#`l7g-3gqV$dY09$21`pbX$p>ArY<(2kZ{%PCg zYg=l|&s)z;jsXtjnDN8O;3RM&XaST5WuXx`2Iv#CAwdR$AJEpQ``JL<*Y>Ob%BS|~ zFF>27T-!hU8u1_d^`{&E54s<=K?YpMgt#bG4x~eXbP147LYolm!q$8?J}8R+75Kgi zP&W?(@=E(H@8zRBZRfZzHJ}y5?RnH3pXJ!O9tWp`)QP}pS8Q$pb}8`YXR-P`Wp0J-nRtpsS)&}X5<{=Rm=?=!m-OiS8#rEdp6rn zK$$oV_&epG31|S00>%W!7RrG4^xoybJ|J!bY^!Y!{8z3c{b&29oBtc z&j@Mz?0*vSKaRLfkY2$C1paGR<-c}TT1#{FPg`t$CSUZ|IiN9+cddZ>-I+YSH}eX7 zKGYiU#~kbH^98I;^gQzhp5Xbx`^XD!<-8k+7q7%_ox?fW1?@pI&=BYk;xbT`ePtjU zD396z{Zp_3w*6N=z*?y_(~|TT|<@?U!@|Fy5uSXvwVOM7jxc3=A} ze;NUOxjL*qpAEWEC%A!eim$Ls37#{XNY3~O>rZ`2yH@HK;Kwp@!#S+|_JhxW@T~bD z;!JHr8xU-P*UkaTnewLGDFYRO?b#FT3U&gvH?0lOC;pM2``#G2)h}2t)+SKLEi66= z{MUZ!N9DgdrEY2a)%^-U+G~ro``Tx9RNl9P-VIk)*sXdaT(ACX^Y~1KwD+IQ*A(G^NQmd zZyUqc4f$;m^@3FXZx0>SDRoQT&jyu24WJ$x?;Q)|k8AVvfY)!3>o26Pd^h2JjgY#0~djF zy*}s&P6yu4`+9%dp&zOQvVnfUI7J(v?548;B`OY-*XjOJ_^)or{}B6W`=wu8_ti1& z?E#=J(B~hAK6PQOo`F0g>a*L?+MnDn;;%Bm^I%Ky>vO38UQ!@oP{oa!s%~*nSrZEUkL$kll5WOP##7Q$x=P;=^QrsB?}dig6G5cnx?(cuL4 zyI>7z&QAzrF*@dVp0h4;;B|>NzQs3O&;3sXM*(G18LbG61LC=W@yu4hek$wsyTtl{ zG`>IZKOXlj9yi4704b=UML0`srhOka!^!%ti3cORF$@_i&KjJlO_avCR zV_uk`1{8rg$qCjWHBU$|PT<<#3F3*!KZNVV`5r!-XELYtKhz34(FXldhyy|{us6qy z0}J&5C9xii%`I%r5Od{V`$N5_Jjbd6^X$Wcbk^>l11<+Qq5J>l*}ZAcP8^LS?TBkD~(X+t~E4CDZF zff~SgCB%WoF~+lTA5ez<5?Kpci|-F{f2!@T1HFzW=59qzuO~U*6U+sAm1hWtF(+(1 zb^L;Qo^qhgSMTM$I?wYW5#L$UC&8Lf37+puutrz}_wgMG>i-FzC->R&$W~|v^c%q! z1ik0l`Q5s8n~2=qO`9$R#(*t=KEU`S#DUp-)`k`41ELr}U&ysf%wLM{*Y?MKe?0Ej z_E!cqL0!<0Ihg0LzKd%C`wpM*?#O7p5C|CAed9Ozrp;IH<-NS+nQ`9-j}zJa6ze?db!~2gV^Mfkr?ZrLEEj zXuHeBbJ2JyJxcPU=ZvtvKVhjdW) z_4&s2+Hq~Z_FmreE(yo~5{v~VXhVWEgcFPdCU_<-k_Fa+iDW?Epf4~UAf||NgSZXg zbH3|^(zbr!BB1|o1)7482UO>C1&}TVScCt6#^=I{lI0lxmH%|HUp(*A_a6wC=u)KnJgejT-V)k;^$|o6^3ga?f3K}4W>4^* zxCHNlOR&CY0v;w2uH_JT5Z?y= zYp<>EsK5Gh*6v7X+nIM0@tHM261+1g!TiJo&vr+$z&bGr#v^=pNaO?b8N34^iUEux z)8zs2ds9pJfw3ZM5skrNzgR2&526NU()|?i2k=?{Pj^{vPHod}SV?b*G@;_DoHCe|$%Ynh#P4|Kst$@t=8<_TTu=d`ka+JahNX;~9=S;oTe9>WRd7 z(YxB@Mc}`AzjZw8e8&E~10tbcr&gQb+0n@Nv#v*E`HPrRjK*f=zww`SJD&ND>OR){jOTe@Sc3PtM>fD1fagdPp{wm z@}nOymrShz#C6|%5dZNOZR!XbfOIv$5dW2E|F4f*3;&IgM8&m<-)AXswf)j!D z)~=ujb14T=wwk`tsiPntS5T?IN!r(;}PPB=V{OBAP1D@e=@p|zar|t>W2I`Rx)Nzt^d{MSaZ-C zbOBdVe}9nL&J1oxO&a6P965rcpDVgufU=Trq-mZ7!uf%|Jb1y-L5O|JoB6&sf(?TmLO-W5DERVa=GL zasX)-VnB01W56STF+fYug}Tcv#Pna83j|$s8)U$oUH!Ed!1EnZJa0WnIWQ)$Cd`^3 z5#P-dlo9n_-dp#L+x@_M@5LHWqpbZAi{4BOaxHP6zR3FTF~HhSYVNN;)2^lR-~N}l zIUvw7b?#qbFV{ubKM4V(c^vOPe#3~_%YKK~sU!z#zxe&u>=5cqGu zOYCzXu{v-jbSP{bP`@b+rKL2j0i?0D;Fjpl^~~G&20j;z{|8>hw{ba;x5|R!d2x6w z)OW)9@oR+7zg~t6Q{W;JyKA#ts{HHefHDf&&aDR1QTNGmcDty*g1>M(&DaUDb zzob3~4*jFQ6d#~Jl>Z?POlJeK`Mxp;en7ozMh&OoPCL)`K1E*EkK=tgelO2{ zzHWUWoh_gdYsiIiLJW{cJPX=*Jk_yKclV*zunAY1^CHGv=ljriOgoDAB4j^G?{ z75?GXbaet+5a~a)fH};;a6R$+Iao+2X zvVpu`tKH{1C3gLn!sNXW8<6S;lmYcBoeb3AxG|x8F%Lf$Gy^AscD%#q4%Yxz2K3>^ zaI_`TeUJI>PtLm-bO!B#a?{2we&r0d+7#`JzNRkF-)r*&@AXT8_u8uMKw7(B(qsO@ zWFXDjp}`Nt^MOlm=9?mrB#w<(ryc|6;PjyrImr;3#<)Ee{(MRVGLdq90ZgDYlZTzA!q^QZ#!@% zxxsnx<3h#{&*PrPbK3T%An@Fpj`}X&>i~6LUvJz|5g6;mZGO;u{nf90zWs7NL~UK^ zUwR4?8_@2`2V(+lfi_wF)F;R@d1sEMP0%;U*9JhD(5AaJZpZo%u>6bp697Y*Fgr6nsOF1$9`Snm5SbI6UTeo}=6Zo-0dUCmrAQMatn8 zU=6*O_r@~%v(mo}r$Cx`AT9%`_CS7U6V%J#8&YLKJyss%ZyX-;JNd1BkMlhEc&{7$ ze6aVaypPs5Hr6lY{f6^B{!8g-ZkXZ^f*i!{fxOTM%Nu1uUZu){emmF(c^vrcF~1Ya zj6BztC`VpLxeEI3J>q<~4Ynt0qd9(Qo)_of#(xg}AZ0CiX&#q@!ek-D2|*U*YdXkl z5%fIpJRRSEW$(@LO5^;E=XFt6P_G;>P!4=<)|wjp5t8+Jm@FkdMJX$lFwe z?*qSsjSspW?0f;=l|$Q5YVUu0o)>io_0H!C%o%u=FO%mnGO7D#GOm{;lCmHlgH4dP zsR-Z4`5otZDc_4?LNWPHSzw-i^!_1z1oJ|ag}599yHMCxKF1N+c%ReJ&XnqVF=6yt zn!%i(44&)B`1gGyoTC-zx%Q>hzpsVp#q4YO#oW*g#(Og# zee}`HY15`<&YU?jlXpHv@uT)34*j|DgmaUfpIXZEV#d&oXpZ(kei}CxhSE50BM4mj z(^3kQQlOLqr4%ToKq&=EDNss*QVNt(V6#$yI@WLh#|j({n1;XkQIB)Nu5<1E3kOzz zosr>~jeozY14Dn=kD4DN=-T#I^ZOSDB=>uT4s76l_<4}g&AngH zpQO&LZGU)ZaPs`r{V6Hm7cew=egQ+1`vnY5(zAeJ$^AsHVA-iU~*IUgFGdY0+p1<0+U^^pOoP2aQ`F$bHaX-AU(r= zvV#TtNfQ#j<`u3=bU|~IKB1sFNgG&j`=mr=|ML6j0>4~7GLo^&MIs!#96#(;;ON!>w{h(Gou{;`D?IxQ~JM@0;Lq#G!)>O(hQy@&0sybOx6$0?9rn~ zCTm4yvMzAutFOMA$+}@{h39#`zYAb3lT6mB%k;Wl-!Y8h^2b^$8McqL^fOs^!!h#s zII8AVJWTH?T?*&{Ei!pGTqf^+*yJQY)-s$^l+t(kWWU3lLfapnNec6foloxE z^1|kxI}hFY=kYn{@#hZ0vqsV>l_uWXHpFR>KfL>GlaPRS#iZ-IJh$)i+jhx6+iJV*Yh_Rk)Bv@>LBMAW>wrT*-6Z@hJYE}k zp6B~JfA4j?UU=qMc~L%;ukdVwbdVSFq<{uv#*E2iZM%)4fwuMIk3TN^>8GFmjqCj# zJG?h*p~zeNDgvLg`79r+f||g-914yE^}(^AF=z^o1IH)f=Vrj;e%}yy{!ySFkY)z} zY2o#=f%lZ&(p|Yr)eYsLtoA_vurYtm3DEB_e`p)t`&R+`()6K+9y<5N8*jXcxrX<# zhWz8aN9xi3{rlg?@!NSXW#1t~hTMox>^W-GsDDhHIPqH661f)rxt6&m*D)8#_Z45u z^{z%nuL4&<&r7i_7l8{wSDsHl8*~Eg*gp-lKkvo(UJFIp3A#2&LEaJX2ggQ@+OP*?l)>uvN4DAYPnV!px!HI%H8hFqp1cOee%gC z=Rg1a^LO2L+im}aCSS6S{!gsAyqtA(S0R6^TzA8Dmbg})U>(kt%)waB+?-{s$-0>L zbu40S#RcWdm!HQvy>oeQ<80UUV@=*!?9bx6Ijq|{o3(i6V2ft5j_(xS+d76dxZj2T z&$1@-&G4nuci(+i7y9@dm$pGY*y#Q%JFFoT^xtc$W7~l3x!10&F;Q@zDfAulyfbFtTCQpQ8RD`_Ve1TrZz@kW6Eq z>Qefihn(jjH;Z_7XbJBv%0(a4o9JBLVX}aClzj2lTW>x6+;h)8$h#))8Z>B7x39kX z>IiI!{!ts4%KI$nlxe)Sss51T5dQ=_5a|H--UWFq&+}PznQPe+dv`YP=(+BtmtJ~} zwYKN;PNk{vaRKWu=fhL^o6q~#CNs}2TDKp)Sdx_YTaIy6@~K*v|o_odKd3GZuq zpZ7M7#Fh==*}7Y?H>YvG>fBq|Gag9geI_<}qwHQfy4`&9&8afreZ9XvInn{vh&zpU z4ZaWWzhf=A=Xj^sB-WG5MTce+mo8@x@%Ilt_~3YWt_@tpvu$%-msWj1cE+$K{aoaI z4(}sa%DXA1^L~P<*pZ*+%$aiyI@K!a1M2YEn95j7TdXXq_mSM2Z*t9aUD&8&=03^z zKUD^7$G&{mocC-F!yev`OkBu&@rLt`gz4lGMh4$9N!a_q0RmePr)hyDigp{#Jj^ zCFNdmJD?2g3}4DU@x&7sAeSew--tZ5KmB+Q-}Dx?;RWo#@|RzJ`4jlQnC)lyw;a&7H?C7|uo{(Aoq z?_}}L!{4gw(RHP*^P;(@GN8;UdpqKf_5`-8Ch@}YykGMv;>H_!F0MDa@FQ~mJvL-+ zzkdBb##g@szn38IpRkVq6!d)wYj{q;AIzh_pA);hNIt8aEJB7pV=neZPd)Y2qu8_0 zxX0n#LtP8HAADXJewX=M=D&fk>KFHq>wx~pcr+VSCr)g|yJ|%{-ZA$Ac5eyqpP9|t z!Cw;7-GX1Aj82SkjauyFyYPP@{r?pE_dn(xFXLIJfARS(-dFcU=gytSV(--b(|GU5 z7s!|X)%$oqb>IH$^Rldogf{+`Ti&6V+JD=j4KVlF4<4zbM-#7Hf^ILs?k&U4k2mHe zUc4D!u#DLFdHml`KmYvmL+HX>?DYr8)gAbZdDw=prc9aA5B+$JIA}ipFm zNB5^75516&pW)pHe18G*@H8>OqQQd)Kh4^OcOo~FSWDnxzB`(=2s^W$-6?$bKE{07 zzDW1kW?3uzE%_dC4L^mH5+0F>KWs6p0>}pr=b7X-z?-R zH1Rjxrs=u< z%;(d<37prKcxO0va}xS-HS#eHT{@HRYJdvB`>fG_@`9}2YyNsl|J6VFuroZW!aEfQ z@XY=aV%9N_OIdlHh2H&OC{bT`6xX5lJ&>WqkZzKGT09os~(6ixCfg) zSigY258{~gX-Z7-F)}`u&&`3g59Q@3>|qypKNVRSiLIDGOqIj&Y+$@;+!^A&vcG5l ztu=G+f*6Rp#$MDzdJ*@TpV@EqQ|J$}fihd2emwid7hiNEj_Jw3f$KVIw;n~e^ z`FuP$5*!Y!9UVqK(G{7QR=s-l#l!&pIOetVefr$Z(tqA38u}l_0OUQp!y9!{o(OeQ zduThARcTQfpFa?Le>kyWd;Gcms{@WizF($ZGK24w|06)?zuzBBJkW-Bm3@FsoJD-w zhGSkc-v2W2|94woFeM)jagcsUei)Bx5A_MsLOtCD+mKBypd+8F5Ca^@_5h$=ID&OK zA7hQy1<tQbTB51(_#nO zzbo~+iX6`dRe=51mmU4eE3e#1O)Qrfp&R>6K_hSsP!~L>7N`co?^ESp{{L?FKR8$H zRt7dct_x*p;}%K8X`wu*6UuEis0wNW``38<`0>}{yH-w`H0cKRPXi}|7N7~p0qTnM zl5WO+!Tzn0`)q8jH}q?Lw#0H7jyb{KI31J+X(0^?{3D;W5%SQ!DBq32$9}XkuUrK%XZQ_D& zTDNXJmwdq)O;Mec+-DKz_2&F@fVR>2KpN~1;`N^b8K8c&S!5v4+#H0q$$w>1Teuxi zR0IV-+#blU@Vp z7u5rO!Cyfn1NwpAD-Q}hk8huT`f2$ebYJ`YH=y3j`y6lzxR`kHi_m}jjm}5!WAojc zf;v<5&Njab=egybZA+=QYcsT;+7e|zJ0Pv4d6qngx9Ru#>{ux^(75c&7k!mB-&pQA za5lc8FM0hm`(ytc6Qb4?y^E5XNW%A)`%X&VRp@v~oCeg&=70O`x7Tr<2Ee#LJD`3^ z>&OlopZ{Kcj^9WBOW#8Ol}BZNFQBd-LHu?DF~ex=`cz~*UzzsZd(=b|#8cKuqIdK9 zPF~;7iY1G>bRwcljK%eafLWNx9qy zm=iU)lAF0cW=S1lk;SnF@JLEX3iaosm=X+qydhW^WYbsl++-oeW_QG)zALESS! zT__OAIbG2^j2#p8H-UcW_|x<^2UG{zK>M!^blyW2`DC0mzsu)B z(uP3x*CI`V4F6%&{+yhidn7a&n^gvR`%8RSCui66C{?4p1|WY$0PG1^l=F z{+9U;cXQoT{zv`S2RdK!_x_97zqs$0H}c3_$Jpg!=8Ak|Kh%GH9rKi;_tUEb)VmVh zx^+uXV~F&^cNQ~FxP}if4j^aJ2bdES8~ul$(OenYWbCIdYLoT=#y+;S1+sYwdCJ(p zM{NK#(db>wzLy){5WSC`d?50H(kHI_#DPPo9X~>TWE^oY(6_E(|EU{q^t`7Hm7U~V z5p7_Iea(By1LL(O)JI>y1{B2j%Ca=DpV~s|T+w@~%khq4;<$poYd5GHy}>mu0;ho- zU`%CfWsJ4i{l7Fb2c<2>0Ko?upX&o79Uw>RNxzoJ{{U&AE=ULC9ieS74)#0GbIZ8E zn_TBi&=k}K%9Xw^*go%>wK;PjayI8l#A6_1K;^Rnh-82|*rUkwD&qRZty;C3>fET% zNBbEN=o7Zsf}gl{d#NNY<@^VBc=%yQ`^{KZcBaP7U}n z_8S2EUKtqkNY?_rckY909BuADWgt056zqV$Ks^XF&}Z2XePR>FL(Yb8@1eKf5Vy?a z`H6QpuAXb>S|TIO*&YFE0sF2j+4ms#QOrXOy}7$yaQ|%POvmO)D4WV?kOSMV{O%9* zVfL*tIEi{!8_<%^%6Sf`2WkWDr#2+;-M&j#eQlO&mr3{H^ymERWPMm$APsDBUC-h<3 z26OrHNo2G2nBUoNrlCQ=w z#!J$~&-Pj0F0Jgh=li>;@AAF4_dU=;yG%|OtwEUd4bs7Ws2B26`yefpZMP!y+3!QY z%lLcs{kNRw7TUe3x7NtaldRF%2Wq=veO~EcALH*t&{b)Sp6o@*8} zC(?ClU86SYXXr0m=kaEl&p5W?7)x=p@kRA*UB4q1&R~8+CSxF(%o{3r{?U4p@iei~ zx?ZaEyiy93QeZtPfSoDiZ}{qUc3g8o?;Wkpkds`qfwYUSGcs^Zz1(8D+<4*|+l;WL zM9Oi_>*b03Zg_ml^`^Mb^`mWe^1f@^(yq|HwQZv{B{)A?OM-2*h6LNF;n{45bAPus z!1OZRR+sGY_;z@5zp(9;uuep;9ohMV{ZT{6pr+z`STd<2M$d;EX9PHJi@IV2=3Hk| zSKVlTs&Dd{0P^%K=4}N39pXCUm%?DqT88I~C$6)?#cv%XvNP@@M?U@4UCa_gdc1@lI=!m4Lb1 z{=nQ$n9o%QRX}-Q9&EgCoBX})k8*kDeiqpT>CPPLZK!uuqb}5h@ql(b2YCk1MYUm$ za2v+h+cNjI1M%gV#892dsXIaM_Mi=D37UYTI9`YEYf_7<$?pzkUSeIwmiAMJXld$5YQa{=RML!sHVj3*xr9psz2$ClJvvKXH(lKy_F{xDyu zfCkj8Dna)XnWOg_^_+2x^DJR3dr9~1-KQ}&w46C^tH^<-LZ7A7dgd_J^Cr*C`AmT0 zxaNDxVj0FqillwKVT=(58f*(c_oV)Q3AyH#*IaYWN6agYo;zY*&Ckp?{+W8ja^@vZ z;PX^s%`eY7>#R@F*%P^^dAB;TrDMnI6K{GhwK-{^?3%ak$8(D3AV)VfZQ67ueH_WN zZWDRt?Mvo3|Hv5NchtuI!&uKm#&E7;&eJXY#@dFoFU#2XI`=)$0UmmPbx{2)5C4wf zKA$3ABbh6CBYpk|85_d=CsJ#DvUl&^?=ZglKKj#z@wjgM#u|fmqYQGp-uGvY?i%-J z{O%EG`wlX7JkM-AjBOi44s#=Q%(3WNTgG=^M85w$V8DQZJR4Ap`&!@FmhZ|qhP1wa z;r{e{7sgj^z4zXGZ$}oaA05P)>a&o$AK#q-ZNKDLGj$)@4B?ryp&Zvf$+vC1|N8Jg zv{T#9@3%mI59WC%@2f6FH9qKl4YJUd{Uf0Nr`)d*pX;IL4WQ9b=JWi6ePw^^4ZT0Q zl)-hQHgFwvNLl(T$97{rN^SH~+glGm_#yXb#pfJQ7u13;&9RZ%9PgjCA^n#Q_^u3n z2iFO{Pkm6QtYIAlnjnX7U}JmIp0n9+0S*KDf{6cY%P<}u$hzKJY-|R$Cio=pFI{~e zsTnf(1hV)J&!harIMYhT&tKxZ(}12;_rtM=FK~|I z{j2aB(fAH^t9i6_6!zgc&XE_94r0U0m=AC0AM*&jzrI{sPz|(X&dBqQDLK!`F-Ckr zH1Eb^Jgbol-_GE?%D_5YS)RAtU>Y!&+xu&a3Kx$+O?Hi@-w|gaRn1kPs<}~4xqPY#wIO2hF!8q3l?yHVO_wTh4&+$QT z>2FM8%vXbF=PqD;J&FT}I}-T)XikOnP!{n&|HWr_=G>|v(gEfkZE*jQFKvkp$XEw#3_Bh!FbwR$W4;6tnLHOCRB){9*`s3PS?)7b#eu+NI z3w?t8&@XvE{eto#eYUXQoBH0Nt;Xr)%a_mKdFo7bQJ!cUw@^lHn>Bgk*x%#NdAU66 z7v-PKcmBh@PYSwGY1qLkL{BObIaDdK!464eb4=v$eLzpo6;v#GqVPSbROBR)&2~); W=Q}Zl^X5}GT8=4;Ov$6st^Xe)Ov+vW literal 86358 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 CVa=le diff --git a/WickedEngine/shaders/fontPS.hlsl b/WickedEngine/shaders/fontPS.hlsl index c52d6e20e..ef463b99f 100644 --- a/WickedEngine/shaders/fontPS.hlsl +++ b/WickedEngine/shaders/fontPS.hlsl @@ -36,6 +36,8 @@ float4 main(VertextoPixel input) : SV_TARGET color.a *= value; } + color.rgb *= color.a; // NOTE: premultiplied blending! This is important for blending in HDR linear space + [branch] if (flags & FONT_FLAG_OUTPUT_COLOR_SPACE_LINEAR) { diff --git a/WickedEngine/wiApplication.cpp b/WickedEngine/wiApplication.cpp index b889bb86e..fbfd4dfea 100644 --- a/WickedEngine/wiApplication.cpp +++ b/WickedEngine/wiApplication.cpp @@ -114,6 +114,11 @@ namespace wi desc.height = swapChain.desc.height; desc.format = Format::R11G11B10_FLOAT; desc.bind_flags = BindFlag::RENDER_TARGET | BindFlag::SHADER_RESOURCE; + // try to set background color for swapchain color as if it's using hdr scaling: + desc.clear.color[0] = swapChain.desc.clear_color[0] * 9; + desc.clear.color[1] = swapChain.desc.clear_color[1] * 9; + desc.clear.color[2] = swapChain.desc.clear_color[2] * 9; + desc.clear.color[3] = swapChain.desc.clear_color[3]; bool success = graphicsDevice->CreateTexture(&desc, nullptr, &rendertargetPreHDR10); assert(success); graphicsDevice->SetName(&rendertargetPreHDR10, "Application::rendertargetPreHDR10"); @@ -169,20 +174,30 @@ namespace wi if (!startup_script) { startup_script = true; - std::string startup_lua_filename = wi::helper::GetCurrentPath() + "/startup.lua"; - if (wi::helper::FileExists(startup_lua_filename)) + if (wi::helper::FileExists(rewriteable_startup_script_text)) { - if (wi::lua::RunFile(startup_lua_filename)) + if (wi::lua::RunFile(rewriteable_startup_script_text)) { - wi::backlog::post("Executed startup file: " + startup_lua_filename); + wi::backlog::post("Executed startup file: " + rewriteable_startup_script_text); } } - std::string startup_luab_filename = wi::helper::GetCurrentPath() + "/startup.luab"; - if (wi::helper::FileExists(startup_luab_filename)) + else { - if (wi::lua::RunBinaryFile(startup_luab_filename)) + std::string startup_lua_filename = wi::helper::GetCurrentPath() + "/startup.lua"; + if (wi::helper::FileExists(startup_lua_filename)) { - wi::backlog::post("Executed startup file: " + startup_luab_filename); + if (wi::lua::RunFile(startup_lua_filename)) + { + wi::backlog::post("Executed startup file: " + startup_lua_filename); + } + } + std::string startup_luab_filename = wi::helper::GetCurrentPath() + "/startup.luab"; + if (wi::helper::FileExists(startup_luab_filename)) + { + if (wi::lua::RunBinaryFile(startup_luab_filename)) + { + wi::backlog::post("Executed startup file: " + startup_luab_filename); + } } } } @@ -725,13 +740,8 @@ namespace wi canvas.init(window); - SwapChainDesc desc; - if (swapChain.IsValid()) - { - // it will only resize, but keep format and other settings - desc = swapChain.desc; - } - else + SwapChainDesc desc = swapChain.desc; + if (!swapChain.IsValid()) { // initialize for the first time desc.buffer_count = 3; @@ -802,6 +812,11 @@ namespace wi #endif // PLATFORM_WINDOWS_DESKTOP } + bool Application::IsScriptReplacement() const + { + return wi::helper::FileExists(rewriteable_startup_script_text); + } + } diff --git a/WickedEngine/wiApplication.h b/WickedEngine/wiApplication.h index b4edb8c49..13b76033c 100644 --- a/WickedEngine/wiApplication.h +++ b/WickedEngine/wiApplication.h @@ -134,6 +134,8 @@ namespace wi } bool IsFaded() const { return fadeManager.IsFaded(); } + const std::string rewriteable_startup_script_text = "wicked_engine_rewriteable_startup_script_path_paddedlength_256_uniquestring "; + bool IsScriptReplacement() const; }; } diff --git a/WickedEngine/wiFont.cpp b/WickedEngine/wiFont.cpp index e635afff8..c7f19b283 100644 --- a/WickedEngine/wiFont.cpp +++ b/WickedEngine/wiFont.cpp @@ -319,7 +319,7 @@ namespace wi::font BlendState bd; bd.render_target[0].blend_enable = true; - bd.render_target[0].src_blend = Blend::SRC_ALPHA; + bd.render_target[0].src_blend = Blend::ONE; // premultiplied blending bd.render_target[0].dest_blend = Blend::INV_SRC_ALPHA; bd.render_target[0].blend_op = BlendOp::ADD; bd.render_target[0].src_blend_alpha = Blend::ONE; diff --git a/WickedEngine/wiHelper.cpp b/WickedEngine/wiHelper.cpp index 822ede32e..052713501 100644 --- a/WickedEngine/wiHelper.cpp +++ b/WickedEngine/wiHelper.cpp @@ -3,11 +3,14 @@ #include "wiBacklog.h" #include "wiEventHandler.h" #include "wiMath.h" +#include "wiImage.h" +#include "wiRenderer.h" #include "Utility/lodepng.h" #include "Utility/dds.h" #include "Utility/stb_image_write.h" #include "Utility/zstd/zstd.h" +#include "Utility/portable-file-dialogs.h" #include #include @@ -30,7 +33,6 @@ #ifdef PLATFORM_LINUX #include -#include "Utility/portable-file-dialogs.h" #endif // PLATFORM_LINUX #ifdef PLATFORM_WINDOWS_DESKTOP @@ -673,6 +675,181 @@ namespace wi::helper assert(desc.format == Format::R8G8B8A8_UNORM || desc.format == Format::R8G8B8A8_UNORM_SRGB); // If you need to save other texture format, implement data conversion for it } + if (!extension.compare("ICO")) + { + struct ICONDIR + { + uint16_t idReserved; // Reserved (must be 0) + uint16_t idType; // Resource Type (1 for icon) + uint16_t idCount; // Number of images + }; + struct ICONDIRENTRY + { + uint8_t bWidth; // Width, in pixels + uint8_t bHeight; // Height, in pixels + uint8_t bColorCount; // Number of colors (0 if >= 8bpp) + uint8_t bReserved; // Reserved (must be 0) + uint16_t wPlanes; // Color Planes + uint16_t wBitCount; // Bits per pixel + uint32_t dwBytesInRes; // Size of image data + uint32_t dwImageOffset;// Offset to image data + }; + struct BITMAPINFOHEADER + { + uint32_t biSize; // Size of this header + int32_t biWidth; // Width in pixels + int32_t biHeight; // Height in pixels (doubled for icon) + uint16_t biPlanes; // Number of color planes + uint16_t biBitCount; // Bits per pixel + uint32_t biCompression;// Compression method + uint32_t biSizeImage; // Size of image data + int32_t biXPelsPerMeter; // Horizontal resolution + int32_t biYPelsPerMeter; // Vertical resolution + uint32_t biClrUsed; // Colors used + uint32_t biClrImportant; // Important colors + }; + + const uint32_t minsize = 32; + + size_t filesize = sizeof(ICONDIR); + + ICONDIR icondir = { 0,1,0 }; + + for (auto& mip : mips) + { + if (mip.width > 256 || mip.height > 256) + continue; + if (mip.width < minsize || mip.height < minsize) + break; + icondir.idCount++; + filesize += sizeof(ICONDIRENTRY); + } + + if (icondir.idCount < 1) + { + wilog_assert(0, "No valid images were found that can be added to ICO file format!"); + return false; + } + + uint32_t imageDataOffset = (uint32_t)filesize; + + for (auto& mip : mips) + { + if (mip.width > 256 || mip.height > 256) + continue; + if (mip.width < minsize || mip.height < minsize) + break; + const uint32_t pixelCount = mip.width * mip.height; + const uint32_t rgbDataSize = pixelCount * 4; // 32-bit RGBA + const uint32_t maskSize = ((mip.width + 7) / 8) * mip.height; // 1-bit mask, padded to byte + const uint32_t imageDataSize = sizeof(BITMAPINFOHEADER) + rgbDataSize + maskSize; + filesize += imageDataSize; + } + + filedata.resize(filesize); + uint8_t* ptr = filedata.data(); + + std::memcpy(ptr, &icondir, sizeof(ICONDIR)); + ptr += sizeof(ICONDIR); + + for (auto& mip : mips) + { + if (mip.width > 256 || mip.height > 256) + continue; + if (mip.width < minsize || mip.height < minsize) + break; + + const uint32_t pixelCount = mip.width * mip.height; + const uint32_t rgbDataSize = pixelCount * 4; // 32-bit RGBA + const uint32_t maskSize = ((mip.width + 7) / 8) * mip.height; // 1-bit mask, padded to byte + const uint32_t imageDataSize = sizeof(BITMAPINFOHEADER) + rgbDataSize + maskSize; + + ICONDIRENTRY iconEntry = { + static_cast(mip.width > 255 ? 0 : mip.width), // Width (0 for 256+) + static_cast(mip.height > 255 ? 0 : mip.height), // Height (0 for 256+) + 0, // Color count (0 for 32-bit) + 0, // Reserved + 1, // Color planes + 32, // Bits per pixel + imageDataSize, // Size of image data + imageDataOffset // Offset to image data + }; + std::memcpy(ptr, &iconEntry, sizeof(ICONDIRENTRY)); + ptr += sizeof(ICONDIRENTRY); + imageDataOffset += imageDataSize; + } + + for (auto& mip : mips) + { + if (mip.width > 256 || mip.height > 256) + continue; + if (mip.width < minsize || mip.height < minsize) + break; + + const uint32_t pixelCount = mip.width * mip.height; + const uint32_t rgbDataSize = pixelCount * 4; // 32-bit RGBA + const uint32_t maskSize = ((mip.width + 7) / 8) * mip.height; // 1-bit mask, padded to byte + + BITMAPINFOHEADER bmpHeader = { + sizeof(BITMAPINFOHEADER), // Size of header + int32_t(mip.width), // Width + int32_t(mip.height * 2), // Height (doubled for XOR + AND mask) + 1, // Planes + 32, // Bits per pixel + 0, // No compression + rgbDataSize + maskSize, // Image size + 0, // X pixels per meter + 0, // Y pixels per meter + 0, // Colors used + 0 // Important colors + }; + std::memcpy(ptr, &bmpHeader, sizeof(BITMAPINFOHEADER)); + ptr += sizeof(BITMAPINFOHEADER); + + // Convert RGBA to BGRA and write XOR mask (flipped vertically) + for (uint32_t y = mip.height; y > 0; --y) + { + const uint8_t* src = mip.address + (y - 1) * mip.width * 4; + for (uint32_t x = 0; x < mip.width; ++x) + { + // Convert RGBA to BGRA + ptr[0] = src[2]; // B + ptr[1] = src[1]; // G + ptr[2] = src[0]; // R + ptr[3] = src[3]; // A + ptr += 4; + src += 4; + } + } + + // Write AND mask (1-bit transparency mask) + for (uint32_t y = mip.height; y > 0; --y) + { + const uint8_t* src = mip.address + (y - 1) * mip.width * 4; + for (uint32_t x = 0; x < mip.width; x += 8) + { + uint8_t maskByte = 0; + for (uint32_t bit = 0; bit < 8 && (x + bit) < mip.width; ++bit) + { + // Set bit to 0 if pixel is opaque (alpha > 0), 1 if transparent + if (src[(x + bit) * 4 + 3] == 0) + { + maskByte |= (1 << (7 - bit)); + } + } + *ptr++ = maskByte; + } + // Pad to 32-bit boundary + while ((ptr - filedata.data() - sizeof(ICONDIR) - sizeof(ICONDIRENTRY) - sizeof(BITMAPINFOHEADER) - rgbDataSize) % 4 != 0) + { + *ptr++ = 0; + } + } + } + + return true; + } + int write_result = 0; filedata.clear(); @@ -703,6 +880,35 @@ namespace wi::helper { write_result = stbi_write_bmp_to_func(func, &filedata, (int)mip.width, (int)mip.height, dst_channel_count, mip.address); } + else if (!extension.compare("H")) + { + const size_t datasize = mip.width * mip.height * sizeof(wi::Color); + std::string ss; + ss += "struct EmbeddedImage {\n"; + ss += "const unsigned int width = " + std::to_string(mip.width) + ";\n"; + ss += "const unsigned int height = " + std::to_string(mip.height) + ";\n"; + ss += "const unsigned int bytes_per_pixel = 4;\n"; + ss += "const char comment[256] = \"RGBA Image Header Generated By Wicked Engine\";\n"; + ss += "const unsigned char pixel_data[" + std::to_string(mip.width) + " * " + std::to_string(mip.height) + " * 4] = {"; + for (size_t i = 0; i < datasize; ++i) + { + if (i % 32 == 0) + { + ss += "\n"; + } + ss += std::to_string((uint32_t)mip.address[i]) + ","; + } + ss += "\n};\n};\n"; + filedata.resize(ss.size()); + std::memcpy(filedata.data(), ss.c_str(), ss.length()); + return true; + } + else if (!extension.compare("RAW")) + { + filedata.resize(mip.width* mip.height * sizeof(wi::Color)); + std::memcpy(filedata.data(), mip.address, filedata.size()); + return true; + } else { assert(0 && "Unsupported extension"); @@ -923,6 +1129,13 @@ namespace wi::helper } } + std::string BackslashToForwardSlash(const std::string& str) + { + std::string ret = str; + std::replace(ret.begin(), ret.end(), '\\', '/'); + return ret; + } + void DirectoryCreate(const std::string& path) { std::filesystem::create_directories(ToNativeString(path)); @@ -1021,6 +1234,11 @@ namespace wi::helper return std::chrono::duration_cast>(tim.time_since_epoch()).count(); } + bool FileCopy(const std::string& filename_src, const std::string& filename_dst) + { + return std::filesystem::copy_file(ToNativeString(filename_src), ToNativeString(filename_dst), std::filesystem::copy_options::overwrite_existing); + } + std::string GetTempDirectoryPath() { #if defined(PLATFORM_XBOX) || defined(PLATFORM_PS5) @@ -1061,6 +1279,19 @@ namespace wi::helper #endif // PLATFORM_PS5 } + std::string GetExecutablePath() + { +#ifdef _WIN32 + wchar_t wstr[1024] = {}; + GetModuleFileName(NULL, wstr, arraysize(wstr)); + char str[1024] = {}; + StringConvert(wstr, str, arraysize(str)); + return str; +#else + return std::filesystem::canonical("/proc/self/exe").string(); +#endif // _WIN32 + } + void FileDialog(const FileDialogParams& params, std::function onSuccess) { #ifdef PLATFORM_WINDOWS_DESKTOP @@ -1191,6 +1422,16 @@ namespace wi::helper #endif // PLATFORM_LINUX } + std::string FolderDialog(const std::string& description) + { + if (!pfd::settings::available()) + { + messageBox("No dialog backend available!", "Error!"); + return ""; + } + return pfd::select_folder(description).result(); + } + void GetFileNamesInDirectory(const std::string& directory, std::function onSuccess, const std::string& filter_extension) { std::filesystem::path directory_path = ToNativeString(directory); diff --git a/WickedEngine/wiHelper.h b/WickedEngine/wiHelper.h index 7dc0ca47d..cecbaa217 100644 --- a/WickedEngine/wiHelper.h +++ b/WickedEngine/wiHelper.h @@ -51,16 +51,16 @@ namespace wi::helper // Save raw pixel data from the texture to memory bool saveTextureToMemory(const wi::graphics::Texture& texture, wi::vector& texturedata); - // Save texture to memory as a file format + // Save texture to memory as a file format (file format is determined by extension, supported extensions: .png, .jpg, .jpeg, .tga, .bmp, .dds, .ico, .h, .raw) bool saveTextureToMemoryFile(const wi::graphics::Texture& texture, const std::string& fileExtension, wi::vector& filedata); - // Save raw texture data to memory as file format + // Save raw texture data to memory as file format (file format is determined by extension, supported extensions: .png, .jpg, .jpeg, .tga, .bmp, .dds, .ico, .h, .raw) bool saveTextureToMemoryFile(const wi::vector& textureData, const wi::graphics::TextureDesc& desc, const std::string& fileExtension, wi::vector& filedata); - // Save texture to file format + // Save texture to file format (file format is determined by extension, supported extensions: .png, .jpg, .jpeg, .tga, .bmp, .dds, .ico, .h, .raw) bool saveTextureToFile(const wi::graphics::Texture& texture, const std::string& fileName); - // Save raw texture data to file format + // Save raw texture data to file format (file format is determined by extension, supported extensions: .png, .jpg, .jpeg, .tga, .bmp, .dds, .ico, .h, .raw) bool saveTextureToFile(const wi::vector& texturedata, const wi::graphics::TextureDesc& desc, const std::string& fileName); // Download buffer from GPU into CPU memory @@ -89,6 +89,8 @@ namespace wi::helper void MakePathAbsolute(std::string& path); + std::string BackslashToForwardSlash(const std::string& str); + void DirectoryCreate(const std::string& path); // Returns the file size if the file exists, otherwise 0 @@ -109,9 +111,12 @@ namespace wi::helper uint64_t FileTimestamp(const std::string& fileName); + bool FileCopy(const std::string& filename_src, const std::string& filename_dst); + std::string GetTempDirectoryPath(); std::string GetCacheDirectoryPath(); std::string GetCurrentPath(); + std::string GetExecutablePath(); struct FileDialogParams { @@ -125,6 +130,8 @@ namespace wi::helper }; void FileDialog(const FileDialogParams& params, std::function onSuccess); + std::string FolderDialog(const std::string& description = "Select folder"); + void GetFileNamesInDirectory(const std::string& directory, std::function onSuccess, const std::string& filter_extension = ""); void GetFolderNamesInDirectory(const std::string& directory, std::function onSuccess); diff --git a/WickedEngine/wiVersion.cpp b/WickedEngine/wiVersion.cpp index f883fc43d..83302e827 100644 --- a/WickedEngine/wiVersion.cpp +++ b/WickedEngine/wiVersion.cpp @@ -9,7 +9,7 @@ namespace wi::version // minor features, major updates, breaking compatibility changes const int minor = 71; // minor bug fixes, alterations, refactors, updates - const int revision = 787; + const int revision = 788; const std::string version_string = std::to_string(major) + "." + std::to_string(minor) + "." + std::to_string(revision);